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

16114 commits

Author SHA1 Message Date
Ludovic Courtès
a6505cb49c SRFI-1: Make `fold-right' tail-recursive.
* module/srfi/srfi-1.scm (fold-right): Make tail-recursive.

* test-suite/tests/srfi-1.test ("fold-right"): New test prefix.
2010-10-08 15:25:56 +02:00
Ludovic Courtès
07076c1e61 SRFI-1: Make `unfold' tail-recursive (fix bug #30071).
* module/srfi/srfi-1.scm (unfold): Make tail-recursive, following a
  suggestion by Szavai Gyula.

* test-suite/tests/srfi-1.test ("unfold"): New test prefix.
2010-10-08 15:25:56 +02:00
Ludovic Courtès
c00623281b Register `scm_init_r6rs_ports' as an extension.
* libguile/r6rs-ports.c (scm_register_r6rs_ports): New function.
* libguile/r6rs-ports.h (scm_register_r6rs_ports): New declaration.

* libguile/init.c (scm_i_init_guile): Call it.
2010-10-08 15:25:56 +02:00
Ludovic Courtès
8a954f3df5 Always run at least the ASCII regexp tests.
* test-suite/tests/regexp.test (with-ascii-or-latin1-locale): New macro.
  ("regexp-quote"): Use it instead of `with-latin1-locale'.
2010-10-08 15:25:56 +02:00
Andy Wingo
aee24bac50 fix a bug in `finish'
* module/system/repl/command.scm (repl-pop-continuation-resumer)
  (finish): Fix a bug printing return values.
2010-10-08 12:31:56 +02:00
Andy Wingo
9b78275eb0 stepping traps use frame-next-source, not frame-source
* module/system/vm/trap-state.scm (add-ephemeral-stepping-trap!): Use
  frame-next-source in stepping traps.
2010-10-08 12:31:56 +02:00
Andy Wingo
b262b74b51 add program-sources-pre-retire to core and define frame-next-source
* libguile/programs.h:
* libguile/programs.c (scm_program_source): Add an optional arg, the
  sources table to traverse. Defaults to the result of
  scm_program_sources.

* module/system/vm/program.scm (program-sources-pre-retire): Move
  definition here from (system vm traps), and export.

* module/system/vm/traps.scm: Adapt.

* module/system/vm/frame.scm (frame-next-source): New exported binding,
  returns the source line corresponding to the next instruction instead
  of the previous instruction.
2010-10-08 12:31:56 +02:00
Andy Wingo
d608db1d59 fix error in frame-return-values
* module/system/vm/frame.scm (frame-return-values): Fix off-by-one
  error.
2010-10-08 12:31:56 +02:00
Andy Wingo
4388818adb fix tracing of mv returns
* module/system/vm/trace.scm (print-return): Fix multiple-value-return
  printing.
2010-10-08 12:31:56 +02:00
Andy Wingo
381ccb0b89 more inlining in psyntax
* module/ice-9/psyntax.scm (make-wrap, wrap-marks, wrap-subst): Use
  identifier syntax here too.

* module/ice-9/psyntax-pp.scm: Regenerated.
2010-10-08 12:31:56 +02:00
Andy Wingo
cf45ff030c inline symbol? and vector? to opcodes, and a psyntax inlining tweak
* libguile/vm-i-scheme.c (symbol?, vector?): New
  instructions. Renumbered the rest.
* libguile/vm-i-system.c: Renumber instructions.
* libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump.

* module/ice-9/psyntax.scm (binding-type, binding-value): Define using
  macros so that we inline to car and cdr opcodes. Oh, for an inliner :)

* module/language/tree-il/compile-glil.scm (*primcall-ops*)
* module/language/tree-il/primitives.scm
  (*interesting-primitive-names*, *effect-free-primitives*)
  (*effect+exception-free-primitives*): Add symbol? and vector?
  inlines.
2010-10-08 12:31:56 +02:00
Andy Wingo
1ecf39a6a7 add repl debugging command docs
* doc/ref/scheme-using.texi (Debug Commands): Add docs for new debugging
  commands (break, step, registers, etc).
2010-10-08 12:31:50 +02:00
Andy Wingo
6b1d1af7da proof-reading fixen in api-debug
* doc/ref/api-debug.texi (Trap States, High-Level Traps): A couple of
  proof-reading fixes.
2010-10-08 10:54:03 +02:00
Andy Wingo
63e36ea6da finish traps documentation
* doc/ref/api-debug.texi (Low-Level Traps, Tracing Traps, Trap States):
  Add notes on using modules.
  (High-Level Traps): Combine "Trap Handlers" and "Setting Traps"
  here. Flesh out docs.
2010-10-08 00:00:16 +02:00
Andy Wingo
3b541ca244 remove old debugging examples from api-debug
* doc/ref/api-debug.texi (Debugging Examples): Remove section, as the
  tracing bits are adequately covered in tracing, and the breakpoints
  and such will get covered in the debugging meta-commands section.
2010-10-07 22:57:07 +02:00
Andy Wingo
de03880abe document trap states
* module/system/vm/trap-state.scm: Export add-trap!.

* doc/ref/api-debug.texi (Trap States): Document.
2010-10-07 22:50:33 +02:00
Andy Wingo
90729e7105 document tracing traps
* doc/ref/api-debug.texi (Tracing Traps): Document the traps.
2010-10-07 22:27:00 +02:00
Andy Wingo
5db7c0bf4a finish documenting low-level traps, other api-debug.texi fixes
* doc/ref/api-debug.texi (Stack Capture): Rename from "Capturing the
  Stack or Innermost Stack Frame". Move start-stack docs here.
  (Frames): Document accessors for fp, sp, ip, et al.
  (Source Properties): Raise to a subsection.
  (VM Hooks): Add notes about the VM trace level within hook firing.
  (Low-Level Traps): Flesh out.
2010-10-07 22:15:35 +02:00
Andy Wingo
6e069bbfce update traps documentation (unfinished)
* doc/ref/Makefile.am:
* doc/ref/guile.texi:
* doc/ref/scheme-debugging.texi: Remove scheme-debugging.texi, which
  only described tracing. Tracing documentation is now in
  api-debugging.

* doc/ref/scheme-using.texi (Evaluating Scheme Code): Remove reference
  to source traps, as that section is going away.

* doc/ref/api-modules.texi (Included Guile Modules): Remove reference to
  Tracing. This section is a little silly, anyway...

* doc/ref/api-evaluation.texi (VM Behaviour): Remove section, it is in
  api-debugging now.

* doc/ref/api-debug.texi (Stacks, Frames): Rename sections from
  "Examining the Stack" and "Examining Stack Frames", respectively.
  (Traps): Update for current API. A big and not-quite-finished update.
2010-10-07 13:06:57 +02:00
Andy Wingo
a43b4d6e1f update docs regarding --debug
* doc/ref/scheme-scripts.texi (Invoking Guile): Update docs on --debug.
2010-10-07 12:56:43 +02:00
Andy Wingo
e7544f39a4 rename vm-trace to call-with-trace
* module/system/vm/trace.scm (print-application, print-return): Change
  to add more whitespace, as (ice-9 debug) did.
  (call-with-trace): Rename from vm-trace, and make the vm a keyword
  argument.

* module/system/repl/command.scm: Don't autoload (system vm profile).
  (trace): Update for call-with-trace name change.
2010-10-07 12:55:37 +02:00
Andy Wingo
90966af895 update (system repl debug) todo
* module/system/repl/debug.scm: Update todo.
2010-10-06 21:19:49 +02:00
Andy Wingo
439e032b0b add ,step ,stepi ,next and ,nexti
* module/system/vm/traps.scm (trap-matching-instructions): New trap,
  just installs a next hook and runs the handler when a predicate
  succeeds.

* module/system/vm/trap-state.scm (add-ephemeral-stepping-trap!): New
  procedure, uses trap-matching-instructions with an appropriate
  predicate to handle step, stepi, next, and nexti repl metacommands.

* module/system/repl/command.scm (step, step-instruction, next)
  (next-instruction): New repl debugger commands.
2010-10-06 21:19:08 +02:00
Andy Wingo
e8e4e7310c cleanups to ,finish
* module/system/repl/command.scm (repl-pop-continuation-resumer): Factor
  out of finish.
  (finish): Adapt.

* module/system/vm/trap-state.scm (add-ephemeral-trap-at-frame-finish!):
  Rename to add "ephemeral" to the name.

* module/system/vm/traps.scm (trap-calls-to-procedure): Remove unused
  #:width kwarg.
2010-10-06 21:17:06 +02:00
Andy Wingo
5f8760e467 build guile-readline/ after module/
* Makefile.am (SUBDIRS): Build module/ before guile-readline/. Reformat.
2010-10-06 10:24:45 +02:00
Andy Wingo
c6025e76ff add ,finish repl meta-command
* module/system/repl/command.scm (finish): New REPL meta command. Uses
  fancy prompt stuff.
2010-10-05 21:53:58 +02:00
Andy Wingo
df067433a5 (system vm trap-state): add-trap-at-frame-finish!
* module/system/vm/traps.scm: Fix a comment.

* module/system/vm/trap-state.scm (<trap-state>): Add next-ephemeral-idx
  slot.
  (wrapper-at-index): Use eqv? instead of = to avoid type errors in user
  inputs.
  (next-ephemeral-index!, ephemeral-handler-for-index): New functions,
  allocate ephemeral trap ids for functions to be called only once.
  (add-trap-at-frame-finish!): New export, traps when a frame finishes.
2010-10-05 21:53:29 +02:00
Andy Wingo
6a4a1ef0f4 (system vm frame): frame-return-values
* module/system/vm/frame.scm (frame-return-values): New exported
  function, gives the return values for a frame.
* module/system/vm/trace.scm: Remove frame-return-values from here.
2010-10-05 21:51:44 +02:00
Andy Wingo
ee02e238a3 debug-trap-handler ephemeral trap enhancement
* module/system/repl/error-handling.scm (call-with-error-handling): If
  the given index is false, assume this was an ephemeral trap, and don't
  print a welcome message or reference the trap by index.
2010-10-05 21:50:57 +02:00
Andy Wingo
586aff5a27 (system repl debug): add frame->stack-vector
* module/system/repl/debug.scm (frame->stack-vector): New public
  function.
2010-10-05 21:49:13 +02:00
Andy Wingo
2c04cf390b fix embarrassing error preventing ,del from working
* module/system/vm/trap-state.scm (remove-trap-wrapper!): Oops, fix
  newbie error regarding delq and mutation.
2010-10-05 21:48:27 +02:00
Andy Wingo
35c46aad66 system repl repl comments
* module/system/repl/repl.scm (meta-reader): Add a comment about peek,
  read, and the EOF object.
2010-10-05 19:58:13 +02:00
Andy Wingo
fe78af419c bugfixes and simplifications to ice-9 buffered-input.
* module/ice-9/buffered-input.scm (make-buffered-input-port): Simplify,
  and fix one case in which we would buffer the EOF object.
2010-10-05 19:55:37 +02:00
Andy Wingo
62651cb317 guile-readline slight modernization
* guile-readline/Makefile.am: Update to use am/guilec.

* guile-readline/ice-9/readline.scm (activate-readline): Update to use a
  lambda*.
2010-10-05 19:38:21 +02:00
Andy Wingo
78e836efff Revert "repl.scm next-char needed to read EOF from port"
Actually peek-char => EOF does not guarantee that read-char => EOF. I
don't know what to do about this.

This reverts commit 6e1dccc42f.
2010-10-04 22:54:41 +02:00
Neil Jerram
17285a7c49 Edit section on generic functions
* doc/ref/goops.texi (Generic Functions and Accessors): Renamed from
  `Creating Generic Functions'.  Explain what an accessor is.
  (Basic Generic Function Creation): Clarify the point of the text
  about generics having short names.
2010-10-03 23:22:03 +01:00
Neil Jerram
647db87dbc Edit section on slot access
* doc/ref/goops.texi (Instance Slots): Remove a little verbosity.
  (Class Slots): Correct one `slot-missing' to `slot-unbound'.
2010-10-03 23:20:17 +01:00
Neil Jerram
1e32c6cd6e Typeset Ludo's name correctly
* doc/ref/history.texi (A Scheme of Many Maintainers): Add
  TeX-specific version of `Courtès'.
2010-10-03 23:17:54 +01:00
Andy Wingo
6e197f3d1a avoid some double-breaks in trap-at-procedure-ip-in-range
* module/system/vm/traps.scm (trap-at-procedure-ip-in-range): Rework not
  to call the handler when returning to a frame that was already
  entered. So now breaking at foo.scm:1234 doesn't break when returning
  to that line.
2010-10-03 23:09:32 +02:00
Andy Wingo
6e1dccc42f repl.scm next-char needed to read EOF from port
* module/system/repl/repl.scm (next-char): Actually read off the EOF if
  we got one. Interesting, this.
2010-10-03 23:08:27 +02:00
Andreas Rottmann
f16a20071d Add implementation of SRFI 45
* module/srfi/srfi-45.scm: New file, containing the reference implementation of
  SRFI 45, slightly adapted to use SRFI-9.
* module/Makefile.am (SRFI_SOURCES): Added srfi/srfi-45.scm.

* test-suite/tests/srfi-45.test: New file.
* test-suite/Makefile.am (SCM_TESTS): Add tests/srfi-45.test.

* doc/ref/srfi-modules.texi (SRFI-45): New node and subsection;
  essentially a shortended transcript of the SRFI-45 specification.
2010-10-03 21:54:22 +02:00
Michael Gran
5ad3881631 Add v1.8.x backward compatiblity to GUILE_SITE_DIR
* meta/guile.m4 (GUILE_SITE_DIR): use pkgdatadir if no sitedir
2010-10-03 12:25:53 +02:00
Andy Wingo
eb0b45facc srfi-67 #:replace work
* module/srfi/srfi-67.scm (string-compare, string-compare-ci): #:replace
  these bindings.
2010-10-03 12:18:14 +02:00
Andreas Rottmann
8175a07e34 Add implementation of SRFI-67
* module/srfi/srfi-67/compare.scm: New file; reference implementation of
  SRFI 67.
* module/srfi/srfi-67.scm: New module; includes the refernce
  implementation.
* module/Makefile.am (SRFI_SOURCES): Add srfi/srfi-67.scm.
  (NOCOMP_SOURCES): Add srfi/srfi-67/compare.scm.

* test-suite/tests/srfi-67.test: New file.
* test-suite/Makefile.am (SCM_TESTS): Add tests/srfi-67.test.
2010-10-03 12:14:21 +02:00
Andreas Rottmann
fdc8fd46fd Add implementation of SRFI 42
* module/srfi/srfi-42/ec.scm: New file; reference implementation of
  SRFI 42.
* module/srfi/srfi-42.scm: New file; module for SRFI 42.
* module/Makefile.am (SRFI_SOURCES): Add srfi/srfi-42.scm.
  (NOCOMP_SOURCES): Add srfi/srfi-42/ec.scm.

* test-suite/tests/srfi-42.test: New file; test suite for SRFI 42.
* test-suite/Makefile.am: SCM_TESTS: Add tests/srfi-42.test.
2010-10-03 12:09:50 +02:00
Andreas Rottmann
6e3d49a073 Reference original specification in SRFI 27 documentation
* doc/ref/srfi-modules.texi (SRFI-27): Link to the original
  specification of SRFI-27.
2010-10-03 11:55:24 +02:00
Andy Wingo
262ce91157 bugfixen in source breakpoints and in-procedure traps
* module/system/vm/traps.scm (trap-in-procedure): If we are
  (re-)entering the procedure from a return, call the enter-proc with
  the returnee, not the returner.
  (in-range?): Tighten up a bit.
  (program-sources-before-retire): New helper, like program-sources but
  indexed before instructions are retired instead of after.
  (program-sources-by-line): Use program-sources-before-retire so that
  we can break on instructions by source line *before* those
  instructions are executed.
2010-10-03 11:12:36 +02:00
Neil Jerram
1905db2b48 Flatten `Miscellaneous Functions'
* doc/ref/goops.texi (Miscellaneous Functions): Delete this container
  section, and promote its subsections.
2010-10-02 18:14:45 +01:00
Neil Jerram
9e57815ddf Customizing Instance Creation to metaobject protocol section
* doc/ref/goops.texi (Customizing Instance Creation): Moved from
  `Creating Instances' to `The Metaobject Protocol'.

* doc/ref/goops.texi (Basic Instance Creation): Flattened into parent
  `Creating Instances', refs updated accordingly.
2010-10-02 18:14:45 +01:00
Neil Jerram
3dc071e483 Remove goops-version, which is no longer defined
* doc/ref/goops.texi (Administrative Functions): Removed.

* module/oop/goops.scm (oop): Don't export `goops-version'.
2010-10-02 18:14:45 +01:00