1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 21:10:27 +02:00
Commit graph

13578 commits

Author SHA1 Message Date
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
Neil Jerram
a8f8d5b11f Remove doc of STKlos compatibility
As module/oop/goops/stklos.scm, the available compatibility is
superficial only, so it isn't worth documenting.

* doc/ref/goops.texi (STKlos Compatibility): Removed.
2010-10-02 18:14:45 +01:00
Neil Jerram
58ad1de7b1 Continue separating simple and more complex GOOPS doc
* doc/ref/goops.texi (Defining New Classes): Move `Class Definition
  Internals' and `Customizing Class Definition' notes to the
  metaobject protocol section.
2010-10-02 18:14:45 +01:00
Andy Wingo
2c5fc8d034 source breakpoints accept user line numbers
* module/system/vm/trap-state.scm (add-trap-at-source-location!):
* module/system/vm/traps.scm (trap-at-source-location): Rename "line"
  argument to "user-line", indicating that the line is one-based instead
  of zero-based. Decrement the line before handing off to
  source-closures-or-procedures and source->ip-range.
2010-10-01 18:25:44 +02:00
Andy Wingo
e867d563a5 add source:line-for-user, returning a 1-indexed line number
* module/system/vm/program.scm (source:line-for-user): New exported
  procedure, returns a 1-indexed line, suitable for presentation to a
  user.
  (write-program): Use source:line-for-user when making fallback names.

* module/system/vm/coverage.scm (coverage-data->lcov):
* module/language/assembly/disassemble.scm (source->string):
* module/system/repl/debug.scm (print-frame): Use source:line-for-user.
2010-10-01 18:15:23 +02:00
Andy Wingo
c005daf923 api-debug tweak
* doc/ref/api-debug.texi (Debug Options): Fix wording.
2010-10-01 17:26:41 +02:00
Andy Wingo
3b3518e7f6 update api-debug.texi discussion of stack overflow
* doc/ref/api-debug.texi (Debug Options): Update stack overflow
  discussion.
2010-10-01 17:11:25 +02:00
Andy Wingo
b95d76fcf2 c stack overflow checked for, once more
* libguile/stackchk.h: Include private-options.h if we are building
  guile.

* libguile/vm.c (scm_c_vm_run): Check for C stack overflow before
  entering the engine.
2010-10-01 16:47:39 +02:00
Andy Wingo
138bf22d82 scm_report_stack_overflow eventually resets scm_stack_checking_enabled_p
* libguile/stackchk.c (scm_report_stack_overflow): Surround in a
  dynwind, so that scm_stack_checking_enabled_p is reset when the error
  throws.
2010-10-01 16:36:34 +02:00
Neil Jerram
d0110327ab Fix typo in configure.ac
Fixes an error when running ./configure:
./configure: line 31873: text: command not found

* configure.ac: Change "text" to "test", in libltdl-related code.
2010-10-01 16:01:35 +02:00
Andy Wingo
e2e2631d75 deprecate turn-on-debugging, it is obsolete
* libguile/script.c (scm_compile_shell_switches): Don't generate calls
  to turn-on-debugging.

* module/ice-9/boot-9.scm (turn-on-debugging): Remove.

* module/ice-9/deprecated.scm (turn-on-debugging): Add deprecated shim.
2010-10-01 13:17:44 +02:00
Andy Wingo
ab9c9100d2 scm_debug_opts to debug.c, backtrace on by default, scm_*_opts internal linkage
* libguile/eval.c:
* libguile/debug.c (scm_debug_opts): Move here, from eval.c. Change
  SCM_BACKTRACE_P to 1, initially.

* libguile/private-options.h: Make all options vars private.
2010-10-01 13:11:51 +02:00
Andy Wingo
1f603ae283 document call-with-error-handling
* doc/ref/api-debug.texi (Pre-Unwind Debugging): Document
  call-with-error-handling.
2010-10-01 13:03:08 +02:00
Andy Wingo
659c1e2927 api-debug.texi refactors
* doc/ref/api-debug.texi (Programmatic Error Handling): Rename from
  "Debug on Error". Reorganize subsections according to when the error
  is handled.
* doc/ref/api-options.texi: Adapt xref.
2010-10-01 12:49:16 +02:00
Andy Wingo
9866cfe484 update tour.texi
* doc/ref/tour.texi (Using the Guile Module System): Remove "in flux"
  language. Update examples to use #:export instead of (export ...).
2010-10-01 11:54:38 +02:00
Andy Wingo
1cfdb1bbca finish cleaning out api-options.texi
* doc/ref/api-debug.texi (Debug on Error): Move debug options here (for
  now). Leave debug-options-interface undocumented.

* doc/ref/api-options.texi (Runtime Options): Remove debug options. Link
  to the sections where the options documentation is now. Update the
  options example transcript.
2010-10-01 11:47:53 +02:00
Andy Wingo
84898084c0 debug and readline options doc tweak
* doc/ref/api-options.texi (Debugger options):
* doc/ref/repl-modules.texi (Readline Options): Use 'help instead of
  'full (they are entirely equivalent right now). Update output to show
  options in the right order.
2010-10-01 11:15:12 +02:00
Andy Wingo
1518f64948 move read and print options docs to the procedures they parameterize
* doc/ref/api-evaluation.texi (Scheme Read): Fold all reader options
  docs into this section. Undocument read-options-interface.
  (Scheme Write): New section for `write' and `display', and the print
  options. print-enable/print-disable are not documented, as there are
  no boolean print options. print-options-interface is likewise
  undocumented.

* doc/ref/api-options.texi: Remove discussion of options in
  general. Move read options to Scheme Read, and print options to Scheme
  Write.

* doc/ref/api-io.texi (Reading): Link to Scheme Read.
  (Writing): Move write and display to Scheme Write, and link there.

* doc/ref/srfi-modules.texi:
* doc/ref/api-debug.texi:
* doc/ref/api-data.texi: Update xrefs.
2010-10-01 11:09:28 +02:00
Andy Wingo
24259edb8b remove elisp-strings and elisp-vectors read options
* libguile/private-options.h (SCM_ELISP_VECTORS_P, SCM_ESCAPED_PARENS_P):
* libguile/read.c (scm_read_opts): Remove unused elisp-vectors option,
  and the elisp-strings option (which allowed \( and \) escapes in
  strings).
  (scm_read_string): Remove the elisp-strings case.

* doc/ref/api-options.texi (Reader options): Update, and update wording
  of the case-insensitive bit.
2010-10-01 10:20:54 +02:00
Andy Wingo
edca9d6ef4 (foo-options 'full) displays options doc in correct order
* libguile/options.c (get_documented_option_setting): Reverse options
  interface list before returning, so that they are in the original
  order.
2010-10-01 10:07:47 +02:00
Andy Wingo
4272304761 remove unused print-options
* libguile/private-options.h (SCM_PRINT_CLOSURE, SCM_PRINT_SOURCE_P):
* libguile/print.c (scm_print_opts):
* doc/ref/api-options.texi (Printing options): Remove source and
  closure-hook print options.
2010-10-01 09:56:15 +02:00
Andy Wingo
542f975e60 add ,registers
* libguile/frames.h:
* libguile/frames.c (scm_frame_stack_pointer): New function.

* module/system/repl/debug.scm (print-registers): New function, prints
  out registers.

* module/system/repl/command.scm (registers): New debugging
  meta-command.
  (inspect): Not a stack-command, a normal meta-command.
2010-09-30 21:29:20 +02:00
Andy Wingo
33002867d7 fix check-guile.in for default vm change
* check-guile.in: Make the --debug fix in the source file, not the
  generated file. Grr.
2010-09-28 10:03:55 +02:00
Andy Wingo
97b18a6640 default to regular vm for noninteractive use
* libguile/script.c (scm_compile_shell_switches): Select the debugging
  VM in the cases that we previously would select deval -- when running
  interactively without --no-debug, or otherwise with --debug.

* libguile/vm.c: Default to the regular engine.
  (scm_c_set_vm_engine_x): Remove requirement for the VM to have no
  pending computations.
2010-09-28 09:22:38 +02:00
Ludovic Courtès
f2ee6341ba Fix pattern variable extraction in match' with ..1'.
* module/ice-9/match.upstream.scm (match-extract-vars): Support `..1'.
2010-09-27 23:52:10 +02:00
Ludovic Courtès
1ffed5aa95 Add support for ..1' to match'.
Patch accepted upstream:
<http://lists.gnu.org/archive/html/guile-devel/2010-09/threads.html#00114>.

* module/ice-9/match.upstream.scm (match-two): Add support for `..1'.

* test-suite/tests/match.test ("matches")["list ..1", "list ..1, with
  predicate"]: New tests.
  ("doesn't match")["list ..1", "list ..1, with predicate"]: New tests.
2010-09-27 22:50:36 +02:00
Andreas Rottmann
56ec46a7c3 Add implementation of SRFI 27
* module/srfi/srfi-27.scm: New file; implementation of SRFI 27 in terms
  of the existing random number generator.
* module/Makefile.am (SRFI_SOURCES): Add srfi/srfi-27.scm.

* test-suite/tests/srfi-27.test: New file; minimal test suite for SRFI 27.
* test-suite/Makefile.am (SCM_TESTS): Add tests/srfi-27.test.

* doc/ref/srfi-modules.texi: Add subsection on SRFI-27 based
  on the specification.
2010-09-27 22:15:51 +02:00
Andy Wingo
ea9f4f4b15 add call-with-vm; remove thread-vm bits; remove vm-apply; engines settable.
* libguile/vm.h (scm_c_vm_run): Make internal.
* libguile/vm.c (vm_default_engine): New static global variable.
  (make_vm): Set vp->engine based on
  (scm_vm_apply): Remove in favor of call-with-vm.
  (scm_thread_vm, scm_set_thread_vm_x): Remove these, as they did not
  have a well-defined meaning, and were dangerous to call on other
  threads.
  (scm_the_vm): Reinstate previous definition.
  (symbol_to_vm_engine, vm_engine_to_symbol)
  (vm_has_pending_computation): New helpers.
  (scm_vm_engine, scm_set_vm_engine_x, scm_c_set_vm_engine_x): New
  accessors for VM engines.
  (scm_c_set_default_vm_engine_x, scm_set_default_vm_engine_x): New
  setters for the default VM engine.
  (scm_call_with_vm): New function, applies a procedure to arguments in
  a context in which a given VM is current.

* libguile/eval.c (eval, scm_apply): VM dispatch goes through
  scm_call_with_vm.

* test-suite/tests/control.test ("the-vm"):
* module/system/vm/coverage.scm (with-code-coverage): Use call-with-vm.

* module/system/vm/vm.scm: Update exports.

* test-suite/vm/run-vm-tests.scm (run-vm-program):
* test-suite/tests/compiler.test ("current-reader"): Just rely on the
  result of make-program being an applicable.

* test-suite/tests/eval.test ("stack overflow"): Add a note that this
  test does not test what it should.
2010-09-27 21:12:29 +02:00
Ludovic Courtès
864e7d424e Fix bignum memory leak.
The `mpz_t' associated with a bignum would never be freed, so an
expression like `(while #t (expt 2 5000))' would quickly lead to memory
exhaustion.

* libguile/numbers.c (finalize_bignum): New function.
  (make_bignum): Register it as a finalizer for P.
2010-09-27 11:20:14 +02:00
Ludovic Courtès
d017fcdfcb Allocate bignums in pointer-less memory.
* libguile/numbers.c (make_bignum): New function.
  (scm_i_mkbig, scm_i_long2big, scm_i_ulong2big, scm_i_clonebig,
  scm_i_dbl2big, scm_i_mpz2num): Use it.
2010-09-27 11:10:01 +02:00
Ludovic Courtès
99765ed172 Remove `scm_t_aligned_cell'.
* libguile/_scm.h (scm_aligned_cell, scm_t_aligned_cell): Remove.  The
  whole approach was misguided as the compiler can't guarantee absolute
  alignment on the stack.
2010-09-27 01:28:49 +02:00
Ludovic Courtès
8e4c60ff29 Fix argument passing in VM hooks.
* libguile/vm.c (vm_dispatch_hook): Take care of FRAME's alignment
  explicitly so that it's correct even if the current stack frame isn't
  8-byte aligned (as can be the case on i686--the SysV i386 ABI just
  says that the stack is word-aligned.)
2010-09-27 01:25:45 +02:00
Ludovic Courtès
8684029d21 Have `@abort' honor VM changes by winds.
* libguile/control.c (scm_c_abort): Update VM after the `scm_dowinds'
  call.

* test-suite/tests/control.test ("the-vm"): New test prefix.
2010-09-27 01:07:21 +02:00
Michael Gran
c03ef352bc Favor non-hex string escapes over hex escapes when writing strings
The characters U+0007 to U+000D have non-hex forms for their
escapes when in written strings.

* libguile/print.c (write_character): use non-hex escapes
* test-suite/tests/reader.test (write R6RS string escapes): adjust test
2010-09-26 12:25:18 -07:00
Neil Jerram
8445eb1db5 Edit define-class doc
* doc/ref/goops.texi (Defining New Classes): Remove "fixme" text
  (saying we should have something that we in fact already have).  A
  few minor edits throughout.

  (Basic Class Definition): Move content up into `Defining New
  Classes'.

  (Class Options): Move after `Slot Options' (because slot options are
  more important).  Remove doc of the #:environment option, since I
  believe it's now fictitious.

  (Slot Options): Reorder the options so that the most commonly used
  ones come first.
2010-09-26 19:42:01 +01:00
Neil Jerram
630f46f192 Remove unwarranted para
* doc/ref/goops.texi (Metaobjects and the Metaobject Protocol): Remove
  para about GOOPS classes belonging to the usual Scheme namespace.
  Interest doesn't justify the space that it takes.
2010-09-26 10:11:20 +01:00
Neil Jerram
5aaf0709e6 Edit text about the MOP
* doc/ref/goops.texi (The Metaobject Protocol, Metaobjects and the
  Metaobject Protocol): Minor edits.
2010-09-26 10:11:20 +01:00