1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-03 13:20:26 +02:00
Commit graph

1396 commits

Author SHA1 Message Date
Andy Wingo
97b3800e88 tweaks to print-locals
* module/system/repl/debug.scm (print-locals): Run the before-print-hook
  on the values, so we can hook into (ice-9 history) if available. Don't
  bother printing binding indices. Give a little per-line-prefix.
2010-07-09 18:34:24 +02:00
Andy Wingo
3ae78d95e6 tweaks to new repl
* module/system/repl/command.scm (read-command): Remove a pk.
* module/system/repl/repl.scm (run-repl): Export. Use % and abort to
  implement the prompt.
2010-07-09 18:22:08 +02:00
Andy Wingo
33df2ec719 integrate the debugger into the repl
* module/system/repl/debug.scm: New file, defines a data type to hold
  state for a debugger stack, and some helper procedures to print the
  stack or print a frame. Most pieces are from (system vm debug).

* module/system/repl/error-handling.scm: New file, implements
  call-with-error-handling and with-error-handling, and instead of going
  into a debugger, we go into a recursive repl that happens to have
  debugging information. Will be removing the old debugger from (system
  vm debug) shortly.

* module/Makefile.am (SYSTEM_SOURCES): Add error-handling and debug scm
  files.

* module/system/repl/repl.scm (prompting-meta-read): Better error
  handling -- we don't want to go into a debugger when reading a
  command.
  (start-repl): Add #:debug keyword argument, and just dispatch to
  run-repl.
  (run-repl): New function, with the guts of the old start-repl. Added a
  prompt, to which a throw to 'quit will abort.

* module/system/repl/common.scm (repl-prepare-eval-thunk): New
  helper. In the future we will use this to not enter the debugger on
  errors that happen at compile time.
  (repl-eval): Use repl-prepare-eval-thunk.
  (repl-print): Run the before-print-hook when printing a value.

* module/system/repl/command.scm (*command-table*): Move `option' to the
  `system' group. Move `trace' to the `profile' group. Add `debug' and
  `inspect' groups.
  (command-abbrevs): Rename from command-abbrev, and allow multiple
  abbreviations.
  (display-group): Fix the case where abbrev? was #f.
  (display-summary): Fix alignment of the command and
  abbreviations. Allow multiple abbreviations.
  (read-command): Rename from read-datum, and have better error
  handling.
  (meta-command): Better error handling.
  (define-meta-command): Better error handling.
  (help, show, import, compile, disassemble, time, profile, trace): Fix
  docstrings and error messages.
  (define-stack-command): New helper, for commands that operate on a
  saved stack.
  (backtrace, up, down, frame, procedure, locals): New debugger
  commands, in the REPL now.
  (inspect, pretty-print): New "inspect" commands.
2010-07-09 17:05:25 +02:00
Andy Wingo
ff10e93c3f define* in ice-9 regex
* module/ice-9/regex.scm (match:start, match:end, match:substring)
  (fold-matches, list-matches): Reimplement using define*.
2010-07-09 17:05:24 +02:00
Andy Wingo
bd6fed8e23 untabify (ice-9 regex)
* module/ice-9/regex.scm: Untabify.
2010-07-09 17:05:02 +02:00
Andy Wingo
ab6becd47f fix (set! MACRO exp) hygiene
* module/ice-9/psyntax.scm (lookup): Reflow comment.
  (chi-top, syntax): Add comments about mod for lookup.
  (set!): Lookup the identifier in the module attached to its syntax
  object. In the (set! MACRO foo) case, after expanding the macro, chi
  the resulting expression with the empty wrap, as syntax-type
  does. Seems to fix the case where the expansion references
  lexically-bound variables.

* module/ice-9/psyntax-pp.scm: Regenerated.

* test-suite/tests/syncase.test: Add a bunch of tests.
2010-07-09 17:05:02 +02:00
Andy Wingo
d5e0eb5797 fix repl level printing
* module/system/repl/common.scm (repl-prompt): Fix repl level printing.
2010-06-29 12:20:09 +02:00
Tristan Colgate
962b910318 Update #:procedure method for <applicable-struct>
* modules/oop/goop.scm (initialize-object-procedure): Use slot-set!
  instead of set-object-procedure!.
2010-06-29 11:43:04 +02:00
Andy Wingo
d83eb93f45 * module/srfi/srfi-60.scm (bit-count): #:replace core definition. 2010-06-28 15:03:34 +02:00
Andy Wingo
652f48c062 use *repl-stack* instead of *repl-level*
* module/ice-9/boot-9.scm (*repl-stack*): Instead of repl-level, have a
  stack.
  (batch-mode?): Change to poke the stack.

* module/ice-9/deprecated.scm (set-batch-mode?!): Update deprecation
  method.

* module/system/repl/common.scm (repl-prompt): Update to poke
  *repl-stack* to get the level.

* module/system/repl/repl.scm (start-repl): Bind *repl-stack*
  appropriately.
2010-06-26 22:28:21 +02:00
Andy Wingo
9d2136ba40 tweak to ensure-batch-mode!
* module/ice-9/boot-9.scm (ensure-batch-mode!): Fix to be correct
  regarding dynamic extent (so far as this hack goes).
2010-06-26 22:18:37 +02:00
Andy Wingo
5b27d9d25e add repl inport and outport fields and accessors
* module/system/repl/common.scm (<repl>): Add inport and outport fields
  and accessors.
  (make-repl): Add optional "debug" argument. Bind inport and outport to
  the current inport and output ports at the time of repl creation.
  (repl-read): Read from the repl inport.
  (repl-print): Write to the repl outport.

* module/system/repl/command.scm (read-datum, read-line, meta-command):
  Respect repl-inport, and bind the outport of meta-commands to the repl
  outport.
2010-06-26 21:55:13 +02:00
Andy Wingo
fda1dd3860 allow kwargs to repl metacommands
* module/system/repl/command.scm (define-meta-command): Allow repl
  meta-commands to have optional or keyword arguments.
2010-06-26 21:46:42 +02:00
Andy Wingo
ff87b2bd7c top-repl out to its own module
* module/ice-9/boot-9.scm:
* module/ice-9/top-repl.scm: Move top-repl out here.

* module/Makefile.am: Add new file.

* module/ice-9/deprecated.scm (top-repl): Deprecated shim.

* libguile/script.c (scm_compile_shell_switches): Invoke top-repl from
  its new location.
2010-06-22 23:50:27 +02:00
Andy Wingo
8fba85750d simplify top-repl
* module/ice-9/boot-9.scm (top-repl): Simplify.
2010-06-22 23:29:43 +02:00
Andy Wingo
c592de96c0 don't bother catching SIGSEGV et al in top-repl
* module/ice-9/boot-9.scm (exit-hook): Move up with the other hooks.
  (top-repl): Don't install handlers for SIGFPE, SIGILL, SIGSEGV, or
  SIGBUS, as they will have no effect.
2010-06-22 23:16:49 +02:00
Andy Wingo
049ec20299 deprecate named-module-use!, load-emacs-interface, and remove --emacs
* module/ice-9/boot-9.scm:
* module/ice-9/deprecated.scm (named-module-use!)
  (load-emacs-interface): Deprecate these.

* module/ice-9/gds-client.scm (run-utility): Redefine to not use
  named-module-use!.

* libguile/script.c (scm_shell_usage): Remove --emacs option.
  (scm_compile_shell_switches): Remove support for --emacs.

* module/ice-9/boot-9.scm (top-repl): Don't muck with --emacs.

* doc/ref/scheme-scripts.texi (Invoking Guile): Remove note about
  --emacs.
2010-06-22 22:39:21 +02:00
Andy Wingo
6669cd8137 require-extension using syntax-case
* module/ice-9/boot-9.scm (require-extension): Implement using
  syntax-case.
2010-06-22 22:25:20 +02:00
Andy Wingo
1fdd5bec02 cond-expand in syntax-case
* module/ice-9/boot-9.scm: Some spacing improvements.
  (cond-expand): Reimplement in syntax-case.
2010-06-22 22:15:50 +02:00
Andy Wingo
1623ca6849 more aspiration in boot-9
* module/ice-9/boot-9.scm: Spacing fixes for local-ref et al.
2010-06-22 21:47:15 +02:00
Andy Wingo
ec0f307ee9 begin-deprecated using syntax-case
* module/ice-9/boot-9.scm (begin-deprecated): In terms of syntax-case.
2010-06-22 21:43:09 +02:00
Andy Wingo
7cdd1615e0 relax restriction on _ in literals
* module/ice-9/psyntax.scm: Relax restriction on _ in literals.

* module/ice-9/psyntax-pp.scm: Regen.
2010-06-21 21:47:42 +02:00
Andy Wingo
b78d91d517 syntax-case treats _ as placeholder
* module/ice-9/psyntax.scm (underscore?): New helper, like ellipsis?.
  (syntax-case): Treat the _ pattern as a matches-all pattern,
  disallowing it from the keyword list. Another well-thought part of the
  R6RS.
  ($sc-dispatch): Dispatch _ patterns.

* module/ice-9/psyntax-pp.scm: Regenerated.

* test-suite/tests/syncase.test ("_ is a placeholder"): Add a test.
2010-06-21 20:56:05 +02:00
Andy Wingo
77b79cce0c freshly regenerate psyntax-pp
* module/ice-9/psyntax-pp.scm: A fresh regen to get the lowest gensyms
  we can. Needs a better solution in the end.
2010-06-21 11:02:00 +02:00
Andy Wingo
8d10ccae79 fix rnrs duplicate bindings warnings
* module/rnrs.scm: Fix i/o duplicate bindings warnings by excluding some
  bindings.
2010-06-21 00:07:46 +02:00
Andy Wingo
1052739b74 rnrs modules #:replace as appropriate
* module/ice-9/boot-9.scm (export!): New syntax, as export is to
  module-export!, export! is to module-replace!. I thought that taking
  up the name `replace' would be presumptuous, hence the name mismatch.

* module/ice-9/r6rs-libraries.scm (library): Calculate not only
  re-exports, but replacements as well.
2010-06-20 23:59:57 +02:00
Andy Wingo
73b03e98a7 ensure unicode-capable rnrs string ports
* module/rnrs/io/ports.scm (open-string-input-port):
  (open-string-output-port): Ensure that the ports are unicode-capable
  by binding %default-port-encoding to "UTF-8".
2010-06-20 23:15:29 +02:00
Andy Wingo
35d70eccac repl compiles with warnings by default
* module/system/repl/command.scm (compile): Remove the bitrotten
  options.

* module/system/repl/common.scm (repl-default-options): Add
  'compile-options option.
  (repl-compile-options): Accessor for compile-options.
  (repl-compile): Use repl-compile-options.
  (repl-eval): Adapt to repl-compile interface change.
2010-06-19 20:21:22 +02:00
Andy Wingo
23b4c817b1 typo in mutable-strings
* module/rnrs/mutable-strings.scm: Fix typo.
2010-06-19 15:40:25 +02:00
Andy Wingo
0f8e69a44e *unspecified* in rnrs exceptions
* module/rnrs/exceptions.scm (rnrs): Import *unspecified*.
2010-06-19 15:40:11 +02:00
Andy Wingo
0feb833d22 don't unconditionally restore signals in ensure-batch-mode!
* module/ice-9/boot-9.scm (ensure-batch-mode!): Remove comment about
  restoring signals, and that behavior, as it was making popen.test
  hang. I should investigate further, but instead I'm just going to hope
  that this fixes it.
2010-06-19 15:20:02 +02:00
Andreas Rottmann
c4a8200fa0 Fix SRFI-9 for records without fields
* module/srfi/srfi-9.scm (define-record-type): Deal with fieldless records.
* test-suite/tests/srfi-9.test: Add a fieldless record definition.
2010-06-19 14:52:56 +02:00
Andreas Rottmann
b1e5445f77 Ignore the SRFI name component(s) in R6RS imports
* module/ice-9/r6rs-libraries.scm (resolve-r6rs-interface): To avoid having to
  create alias libraries for all the SRFIs, we simply ignore the name
  components, so (srfi :n foo bar) will resolve to (srfi :n).
2010-06-19 14:52:21 +02:00
Andreas Rottmann
e5b218826a ice-9 receive without define-macro
* module/ice-9/receive.scm: Replace define-macro usage with syntax-rules.
2010-06-19 14:51:48 +02:00
Andreas Rottmann
a2e0b12608 add rnrs unicode to the compound rnrs module
* module/rnrs.scm: import rnrs unicode and export all of its procedures.
2010-06-19 14:51:04 +02:00
Andy Wingo
0ce1c83bbe fix ^L typo
* module/rnrs/mutable-pairs.scm: Fix ^L typo.
2010-06-19 14:45:03 +02:00
Andy Wingo
37620f3f4e set! name (lambda ...) names the lambda
* module/ice-9/psyntax.scm (build-lexical-assignment)
  (build-global-assignment): Maybe name the RHS.

* module/ice-9/psyntax-pp.scm: Regenerated.

* module/ice-9/boot-9.scm (catch, with-throw-handler, throw): Rework to
  use set! instead of define! so that we get names.
2010-06-19 13:56:16 +02:00
Andy Wingo
ec16eb7847 deprecate the-last-stack
* libguile/backtrace.h (scm_the_last_stack_fluid_var)
* libguile/backtrace.c (scm_init_backtrace): No more
  scm_the_last_stack_fluid_var. The replacement is to resolve
  `the-last-stack' in (ice-9 stack-catch).
  (scm_backtrace_with_highlights): Accordingly, instead of backtracing
  the last stack, backtrace the current stack.

* libguile/throw.h:
* libguile/throw.c:
* libguile/deprecated.h:
* libguile/deprecated.c (scm_internal_stack_catch): Deprecate this
  function.

* module/ice-9/save-stack.scm (the-last-stack): Move here from boot-9.

* module/ice-9/debug.scm:
* module/ice-9/debugger.scm: Use (ice-9 save-stack) for the-last-stack.

* module/ice-9/deprecated.scm (the-last-stack): Add deprecated shim.
2010-06-19 13:43:33 +02:00
Andy Wingo
a0d57eedfa don't bind the-last-stack in repl.scm
* module/system/repl/repl.scm (start-repl): Don't bind the-last-stack.
2010-06-19 13:36:53 +02:00
Andy Wingo
4c5412a288 no the-last-stack in ice-9 threads
* module/ice-9/threads.scm (thread-handler): Don't muck with
  the-last-stack.
2010-06-19 13:36:23 +02:00
Andy Wingo
27ae3651bd remove the-last-stack from boot-9
* module/ice-9/boot-9.scm (false-if-exception): Use syntax-rules. Don't
  muck with the-last-stack, it is going away. Remove a later comment
  about the-last-stack.
2010-06-19 13:35:36 +02:00
Andy Wingo
d8158b837e deprecate save-stack, stack-saved?
* module/Makefile.am:
* module/ice-9/boot-9.scm:
* module/ice-9/save-stack.scm (stack-saved?, save-stack): Move these
  bindings to their own module.

* module/oop/goops.scm (goops-error):
* module/ice-9/boot-9.scm (error, top-repl): Remove calls to save-stack.

* module/ice-9/deprecated.scm (stack-saved?, save-stack): Add deprecated
  shims.

* module/ice-9/emacs.scm:
* module/ice-9/stack-catch.scm:
* module/ice-9/debugger/command-loop.scm:
* module/ice-9/scm-style-repl.scm: Import (ice-9 save-stack).
2010-06-19 12:57:31 +02:00
Andy Wingo
bfccdcd530 add support for variable transformers: settable identifier syntax
* module/ice-9/psyntax.scm (set!): Handle variable transformers; though,
  they cannot produce definitions.
  (make-variable-transformer): New procedure.
  (identifier-syntax): Allow the R6RS form that makes variable
  transformers.

* module/ice-9/psyntax-pp.scm: Regenerated.

* doc/ref/r6rs.texi (R6RS Incompatibilities): Remove letrec* item, and
  add set! restriction.
2010-06-19 12:43:40 +02:00
Andy Wingo
7034da249b handle-system-error to scm-style-repl
* module/ice-9/boot-9.scm:
* module/ice-9/scm-style-repl.scm (handle-system-error): Move here from
  boot-9.

* module/ice-9/deprecated.scm (handle-system-error): Keep a deprecated
  wrapper in the root environment.
2010-06-19 11:43:48 +02:00
Andy Wingo
c399333044 add open-string-{input,output}-port to rnrs io ports
* module/rnrs/io/ports.scm (open-string-input-port)
  (open-string-output-port): New procedures.

* module/rnrs.scm (rnrs): Export the new (rnrs io ports) procedures.
2010-06-18 19:27:52 +02:00
Julian Graham
00f79aa4a0 Fix `define-condition-type' to use condition-accessors, not record
accessors.

* module/rnrs/conditions.scm (define-condition-type): The generated
  accessors should be condition accessors, which know how to unpack a
  compound condition; these can then delegate to the appropriate record
  accessors.
* test-suite/tests/r6rs-conditions.test: New test case to verify above.
2010-06-18 09:49:30 -04:00
Andy Wingo
5827e220ab `(debug)' debugs the current stack.
* module/system/vm/debug.scm (debug): Change to debug the current stack
  instead of the last stack.
2010-06-18 13:10:33 +02:00
Andy Wingo
48201a94eb remove before-signal-stack
* module/ice-9/boot-9.scm (before-signal-stack): Remove. We're moving
  away from using the-last-stack, so this backup copy is not much use.
  (top-repl): Don't bother saving a before-signal-stack.

* module/ice-9/debugger/command-loop.scm (debugger-handler): No need to
  restore here either.
2010-06-18 13:01:14 +02:00
Andy Wingo
352b99c43d has-shown-debugger-hint? to scm-style-repl
* module/ice-9/boot-9.scm:
* module/ice-9/scm-style-repl.scm (has-shown-debugger-hint?): Move to
  scm-style-repl.
2010-06-18 12:54:22 +02:00
Andy Wingo
8942e7a1d7 reorder hooks in boot-9
* module/ice-9/boot-9.scm: Reorder hooks.
2010-06-18 12:51:43 +02:00