1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-19 10:10:23 +02:00
Commit graph

18255 commits

Author SHA1 Message Date
Andy Wingo
f826a8864a fix (class-of #u32())
* libguile/goops.c (scm_class_of, create_standard_classes): Return
  <bytevector> or <uvec> for bytevectors, as appropriate.
2010-01-15 22:33:49 +01:00
Andy Wingo
5afa815c9c add reader option for parsing [] as ().
* libguile/private-options.h:
* libguile/read.c (scm_read_opts, SCM_SQUARE_BRACKETS_P): Add an option
  for treating [ and ] as parentheses, on by default. Note that this
  makes them delimiters also, so [ and ] cannot appear in a symbol name,
  with this read option on.
  (scm_read_sexp): If we start with [, we end with ].
  (scm_read_expression): Add case for [.
2010-01-15 22:31:23 +01:00
Andy Wingo
e1138ba199 fix call counting in statprof, enhance repl support
* module/statprof.scm: Use VM modules, instead of using @ hacks.
  (statprof): New public export, a functional interface to the profiler.
  (profile-signal-handler, count-call, statprof-start, statprof-stop):
  Fix call counting with the VM.
  (statprof-call-data->stats): Hack around a case in which a call could
  be sampled but not counted, if you get my drift.
  (procedure=?): Update for current API.
  (with-statprof): Use `statprof'.

* module/system/repl/command.scm (profile): Use the `statprof'
  procedural interface.
2010-01-14 22:52:07 +01:00
Andy Wingo
7055591c2e vm.c uses scm_c_take_bytevector instead of scm_take_u8vector
* libguile/vm.c (really_make_boot_program): Use scm_c_take_bytevector to
  avoid loading srfi-4 at boot time.
2010-01-14 13:55:50 +01:00
Andy Wingo
f207859b0b 1.8 compat in ice-9 syncase
* module/ice-9/syncase.scm: Export datum->syntax-object and
  syntax-object->datum as aliases of datum->syntax and syntax->datum.
  Thanks to Daniel Llorens del Río for the suggestion.
2010-01-14 00:40:20 +01:00
Andy Wingo
7ea3e4ff28 vm-trace prints return values
* module/system/vm/trace.scm (vm-trace): Add a #:width argument. Print
  return values, as Chez Scheme does.
2010-01-14 00:09:54 +01:00
Andy Wingo
45cc48673a RETURN_HOOK communicates the number of returned values
* libguile/vm-engine.h (RUN_HOOK1): Add some machinery whereby a hook
  can push an arg on the stack, run the hook, then drop the value.
  (RETURN_HOOK): Use it here, so we push the number of returned values.

* libguile/vm-i-system.c (return, return-values): Adapt to RETURN_HOOK
  changes.
2010-01-13 23:14:12 +01:00
Andy Wingo
7e9f96021a vm-trace only traces execution of its thunk
* module/system/vm/trace.scm (vm-trace): Change to just export the one
  procedure, vm-trace. This way it's threadsafe and more robust. Also
  refactor to not print any of Guile's internal bits. Hopefully Neil
  will be happier :)

* module/system/repl/command.scm (option): Adapt to removal of
  vm-trace-on! and vm-trace-off!, as those are unlikely to DTRT.
2010-01-13 22:49:14 +01:00
Andy Wingo
a8fc38526a remove unused var in read.c
* libguile/read.c (scm_read_character): Remove unused var.
2010-01-13 21:08:54 +01:00
Thien-Thi Nguyen
bd4b6c1a83 Use mkstemp' instead of mktemp'.
* test-suite/standalone/test-unwind.c (check_ports):
Use `mkstemp' instead of `mktemp'.

Signed-off-by: Thien-Thi Nguyen <ttn@gnuvola.org>
2010-01-13 20:49:37 +01:00
Thien-Thi Nguyen
e744e076fa Update configure script hints wrt precious env vars.
* README: Don't suggest setting vars before running configure.
Instead, suggest specifying them on the configure command-line.

Signed-off-by: Thien-Thi Nguyen <ttn@gnuvola.org>
2010-01-13 20:46:20 +01:00
Michael Gran
6ea3048785 Document R6RS hex escapes
* doc/ref/api-data.texi (Characters, String Syntax): document r6rs hex
  escapes

* doc/ref/api-options.texi (Reader Options): document r6rs-hex-escapes
  reader option
2010-01-13 07:26:10 -08:00
Michael Gran
898a0b5a2e Disable \u and \U escapes when r6rs-hex-escapes enabled
When the reader option 'r6rs-hex-escapes is enabled, the \uNNNN and
\UNNNNNN string escape sequences should be disabled.

* libguile/read.c (scm_read_string): added checks for SCM_R6RS_ESCAPES_P
2010-01-13 07:02:07 -08:00
Michael Gran
2e85d145fc Move r6rs-hex-escape tests into reader.test
* test-suite/tests/reader.test (r6rs-hex-escapes): new tests

* test-suite/tests/chars.test (R6RS Hex escapes): remove tests by reverting
  to previous version

* test-suite/tests/strings.test (R6RS Hex escapes): remove tests by
  reverting to previous version
2010-01-12 21:27:30 -08:00
Michael Gran
dea901d66e Reader option for R6RS hex escapes
This adds a reader option 'r6rs-hex-escapes that modifies the
behavior of numeric escapes in characters and strings.  When enabled,
variable-length character hex escapes (#\xNNN) are allowed and become
the default output format for numerically-escaped characters.  Also,
string hex escapes switch to a semicolon terminated hex escape (\xNNNN;).

* libguile/print.c (PRINT_CHAR_ESCAPE): new macro
  (iprin1): use new macro PRINT_CHAR_ESCAPE

* libguile/private-options.h (SCM_R6RS_ESCAPES_P): new #define

* libguile/read.c (scm_read_opts): add new option r6rs-hex-escapes
  (SCM_READ_HEX_ESCAPE): modify to take a terminator parameter
  (scm_read_string): parse R6RS hex string escapes
  (scm_read_character): parse R6RS hex character escapes

* test-suite/tests/chars.test (with-read-options): new procedure
  (R6RS hex escapes): new tests

* test-suite/tests/strings.test (with-read-options): new procedure
  (R6RS hex escapes): new tests
2010-01-12 21:02:41 -08:00
Andy Wingo
8470b3f45b fix texinfo reflection for procedures
* module/system/vm/program.scm (program-arguments-alist): Rename from
  program-arguments, a name shadowed by features.c
  (arglist->arguments-alist, arity->arguments-alist)
  (arguments-alist->lambda-list, program-lambda-list, write-program):
  Adapt callers.

* module/system/vm/frame.scm (frame-lookup-binding): Return #f if the
  binding is not found, not an error.
  (frame-binding-set!, frame-binding-ref): Adapt to error appropriately.
  (frame-arguments): Dispatch to frame-call-representation.
  (frame-call-representation): Refactor a bit.

* module/ice-9/session.scm (procedure-arguments): Adapt to
  program-arguments name change.

* module/texinfo/reflection.scm (get-proc-args): Refactor to actually
  work with VM procedures.
2010-01-12 22:50:10 +01:00
Andy Wingo
7aec4ce019 allow simple value definitions with define*-public
* module/ice-9/optargs.scm (define*-public): Allow (define*-public ID
  VAL).
2010-01-12 20:15:36 +01:00
Andy Wingo
0d782201bf hopefully fix shared c32 / c64 uniform arrays
* libguile/srfi-4.c (DEFINE_SRFI_4_C_FUNCS): Add a width parameter,
  indicating the number of sizeof(ctype) entries comprised by one
  element of the uniform; normally 1, but 2 for c32 and c64.
2010-01-12 20:14:06 +01:00
Andy Wingo
e30f5b7d40 make-array bugfix
* libguile/vm-i-scheme.c (make-array): Fix terrible stack corruption
  bug.
2010-01-12 00:21:16 +01:00
Andy Wingo
e106eca674 inspector integration in debugger
* module/system/vm/debug.scm: Integrate with the inspector. Add a
  "procedure" command.
2010-01-12 00:20:50 +01:00
Andy Wingo
f3a1fc5a9e fix srfi-4 shared vector access from c
* libguile/srfi-4.c (DEFINE_SRFI_4_C_FUNCS): Fix
  elements/writable_elements for shared vectors. Thanks to Daniel
  Llorens del Río for the info.
2010-01-12 00:20:10 +01:00
Andy Wingo
136b5494d1 programs print as #<procedure ...>
* module/system/vm/program.scm (write-program): Print as #<procedure
  ...>. Fix stdin printing.

* doc/ref/vm.texi: Update a little bit.
2010-01-12 00:19:18 +01:00
Andy Wingo
3b12702faf add a silly inspector
* module/Makefile.am:
* module/system/vm/inspect.scm: Add a very simple and stupid inspector.
2010-01-12 00:18:24 +01:00
Andy Wingo
dfe13aa2c8 remove section on enclose-array
* doc/ref/api-compound.texi (Array Procedures): Remove section on
  `enclose-array', as it doesn't exist any more.
2010-01-11 22:29:38 +01:00
Andy Wingo
c6a4432bf1 fix compilation of #2((1 2 3) (4 5 6))
* module/language/glil/compile-assembly.scm (dump-object): Whoops,
  really fix for multidimensional arrays.
2010-01-11 22:21:18 +01:00
Andy Wingo
64fa96ef28 allow (define* SYM VAL)
* module/ice-9/psyntax.scm (define*): Allow (define* SYM VAL), as 1.8
  did. Thanks to Patrick McCarty for the report.
2010-01-11 22:08:07 +01:00
Andy Wingo
73788ca8be allow compilation of #@2(1 2 3)
* libguile/arrays.h:
* libguile/arrays.c (scm_from_contiguous_array): New public function,
  like scm_from_contiguous_typed_array but for arrays of generic Scheme
  values.

* libguile/vm-i-scheme.c (make-struct): Sync regs before making the
  struct, so if we get a GC the regs are on the heap.
  (make-array): New instruction, makes an generic (untyped) Scheme
  array.

* module/language/glil/compile-assembly.scm (dump-object): Correctly
  compile arrays.
2010-01-11 21:47:10 +01:00
Andy Wingo
5a9c6dcbb3 fix erroneous compilation of #@2(1 2 3) as #(1 2 3)
* module/language/glil/compile-assembly.scm (dump-object): Fix the
  vector case to only match 0-indexed, vectors, not arrays like #@2(1 2
  3).
2010-01-11 20:45:52 +01:00
Ludovic Courtès
411313403c Evaluate the export' and re-export' forms at compile-time.
* module/ice-9/boot-9.scm (export, re-export): Evaluate at compile-time
  in addition to load/eval.

* test-suite/tests/tree-il.test ("warnings")["unused-toplevel"]("unused
  but define-public"): Remove throw to `unresolved'.
2010-01-11 18:31:02 +01:00
Ludovic Courtès
628ddb80aa The reference graph in `-Wunused-toplevel' may contain cycles.
* module/language/tree-il/analyze.scm (<reference-graph>,
  dag-reachable-nodes, dag-reachable-nodes*, unused-toplevel-analysis):
  Replace occurrences of "dag" by "graph".
2010-01-11 18:31:01 +01:00
Michael Gran
c5661d2860 Refactor repeated code in scm_read_string
* libguile/read.c (SCM_READ_HEX_ESCAPE): new macro
  (scm_read_string): use new macro SCM_READ_HEX_ESCAPE
2010-01-10 18:24:23 -08:00
Ludovic Courtès
e63dda67d7 Move feature?' to deprecated.scm'.
* module/ice-9/boot-9.scm (feature?): Move to...

* module/ice-9/deprecated.scm (feature?): ... here.
2010-01-11 01:21:14 +01:00
Ludovic Courtès
0ea72faa4e Make `(ice-9 deprecated)' a module of its own.
* module/ice-9/boot-9.scm: Load `deprecated.scm' with
  `resolve-interface' instead of `primitive-load-path'.

* module/ice-9/deprecated.scm: Turned into a module, `(ice-9
  deprecated)'.
2010-01-11 01:21:14 +01:00
Ludovic Courtès
7385dc1243 Make boot-9.scm' more friendly with -Wunused-toplevel'.
* module/ice-9/boot-9.scm: Switch back to the `(guile)' modules at the
  end when compiling.
2010-01-11 01:21:14 +01:00
Ludovic Courtès
bf943698b6 Fix SRFI-19 exports.
* module/srfi/srfi-19.scm: Export `time-monotonic->julian-day' and
  `time-monotonic->modified-julian-day'.  Remove obscure `current-time'
  hack.  Use `(define-module :export ...)' instead of `(export ...)'.
2010-01-11 01:21:14 +01:00
Ludovic Courtès
6734191c68 Remove unused top-level variables.
* module/ice-9/runq.scm (fork-strips): Remove.

* module/language/assembly.scm (*block-alignment*): Remove.

* module/language/assembly/disassemble.scm (disassemble-objects,
  simplify): Remove.

* module/srfi/srfi-18.scm (mutex-owners): Remove.

* module/srfi/srfi-19.scm (leap-year?): Remove.

* module/system/base/compile.scm (dsu-sort): Remove.

* module/texinfo.scm (ascii->char): Remove.

* module/texinfo/html.scm (ignored?): Remove.

* module/texinfo/indexing.scm (def-name): Remove.

* module/texinfo/plain-text.scm (ignore): Remove.
2010-01-11 01:21:14 +01:00
Ludovic Courtès
e6251e7bd9 Have "guile-tools compile" use the current locale.
* meta/guile-tools.in (main): Install the user's locale.
2010-01-11 01:21:13 +01:00
Ludovic Courtès
bce5cb5641 Provide Guile-friendly `coding:' meta-data.
* module/ice-9/i18n.scm, module/rnrs/bytevector.scm,
  module/rnrs/io/ports.scm, module/scripts/compile.scm,
  module/srfi/srfi-35.scm, module/srfi/srfi-88.scm: Write `coding:'
  comment at the top.
2010-01-11 01:21:13 +01:00
Ludovic Courtès
bcae9a98b0 Add `-Wunused-toplevel' compiler warning.
* module/language/tree-il/analyze.scm (<reference-dag>): New record
  type.
  (dag-reachable-nodes, dag-reachable-nodes*, unused-variable-analysis):
  New variables.
  (unbound-variable-analysis): Slightly simplify the `up' procedure.

* module/language/tree-il/compile-glil.scm (%warning-passes): Add
  `unused-toplevel'.

* module/system/base/message.scm (%warning-types): Likewise.

* test-suite/tests/tree-il.test (%opts-w-unused-toplevel): New variable.
  ("warnings")["unused-toplevel"]: New test prefix.
2010-01-11 01:21:13 +01:00
Michael Gran
7cd554943b Merge branch 'master' of git.sv.gnu.org:/srv/git/guile 2010-01-10 15:41:55 -08:00
Michael Gran
67a4a16d8e Add R6RS backspace string escape
R6RS suggests that '\b' should be a string escape for the backspace
character.

* libguile/read.c (scm_read_string): parse backspace escape

* test-suite/tests/strings.test (R6RS backslash escapes): new test
  (Guile extensions backslash escapes): remove R6RS escapes from test.

* doc/ref/api-data.texi (Strings): document new string escape
2010-01-10 15:41:37 -08:00
Michael Gran
085a61df2e Add R6RS backslash string escape
R6RS suggests that '\b' should be a string escape for the backslash
character.

* libguile/read.c (scm_read_string): parse backspace escape

* test-suite/tests/strings.test (R6RS backslash escapes): new test
  (Guile extensions backslash escapes): remove R6RS escapes from test.

* doc/ref/api-data.texi (Strings): document new string escape
2010-01-10 15:39:55 -08:00
Michael Gran
15b6a6b284 Add R6RS character names
R6RS adds new names for some of the control characters.

* libguile/chars.c (scm_r6rs_charnames, scm_r6rs_charnums)
  (SCM_N_R6RS_CHARNAMES): new character name constants
  (scm_alt_charnames, scm_alt_charnums): modified to remove duplicates
  (scm_i_charname, scm_i_charname_to_char): use new constants

* test-suite/tests/chars.test (R5RS character names, R6RS character names):
  new tests

* doc/ref/api-data.texi (Characters): updated
2010-01-10 15:16:55 -08:00
Andy Wingo
f39ede0067 fix properties disassembly
* module/language/assembly/disassemble.scm (disassemble-meta):
  Properties start with the fourth element, not the third. (The third is
  the set of arities.)
2010-01-10 23:24:19 +01:00
Andy Wingo
ecdf15573b show args to subr calls in backtraces
* module/system/vm/frame.scm (frame-arguments): For subrs, we don't get
  names in the lambda-list, we get #f instead. But still, parse out the
  args in that case, assuming they are on the stack in that order.
2010-01-10 23:10:24 +01:00
Andy Wingo
cf8ec359cc update NEWS
* NEWS: Update for 1.9.7, and fold new entries into the main text.
2010-01-10 14:06:18 +01:00
Andy Wingo
4a45769178 fold 1.9.6 NEWS into the main text
* NEWS: Incorporate 1.9.6 NEWS items into the main text.
2010-01-10 11:11:47 +01:00
Thien-Thi Nguyen
2051e2bdbb Fix bug: Use correct FUNC_NAME' for scm_macro_binding'.
* libguile/macros.c (scm_macro_binding): Use correct FUNC_NAME.

Signed-off-by: Thien-Thi Nguyen <ttn@gnuvola.org>
2010-01-09 23:27:30 +01:00
Thien-Thi Nguyen
4168aa4675 Add cast in `make_vm' to silence compiler warning.
* libguile/vm.c (make_vm): Add cast for .stack_base assignment.

Signed-off-by: Thien-Thi Nguyen <ttn@gnuvola.org>
2010-01-09 23:27:28 +01:00
Thien-Thi Nguyen
fdcb2b82d7 Fix bug: Init auto var to unrandomize `stack_depth' rv.
* libguile/stacks.c (stack_depth): Init `n'.

Signed-off-by: Thien-Thi Nguyen <ttn@gnuvola.org>
2010-01-09 23:26:22 +01:00