1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 22:40:25 +02:00
Commit graph

12971 commits

Author SHA1 Message Date
Andy Wingo
d53e5a7edb deprecated sc-expand in deprecated (ice-9 syncase)
* module/ice-9/syncase.scm: Export sc-expand as macroexpand.
2010-04-07 00:05:34 +02:00
Andy Wingo
fb53c347a6 Update NEWS to reflect the current state
* NEWS: Update a number of old entries.
2010-04-07 00:01:35 +02:00
Andy Wingo
a34a2022c8 remove transient 1.9.9 entries from the NEWS
* NEWS: Cull 1.9.9 entries.
2010-04-06 23:58:51 +02:00
Andy Wingo
b9264dc5f3 finish ffi docs
* libguile/foreign.c: Some doc tweaks.
* doc/ref/api-foreign.texi: Finish FFI docs.
2010-04-06 23:17:10 +02:00
Andy Wingo
71725997c7 more ffi docs
* libguile/foreign.c (scm_make_foreign_function): Doc a little.
* doc/ref/api-foreign.texi (Foreign Function Interface): Document some
  more.
2010-04-06 00:45:35 +02:00
Michael Gran
dcc69bab8c copyright dates
* libguile/unidata_to_charset.pl: change copyright date
* test-suite/tests/srfi-14.test: change copyright date
2010-04-03 06:46:23 -07:00
Michael Gran
119682690f Remove obsolete docs for multi-byte text
These describe the initial, unimplemented plan for Unicode
support.  These have been overcome by events.

* doc/mbapi.texi: removed
* doc/mltext.texi: removed
2010-04-02 22:25:30 -07:00
Michael Gran
897bf7b0f7 Update standard character sets to Unicode 5.2
* srfi-14.i.c: all character ranges updated to Unicode 5.2
2010-04-02 21:12:55 -07:00
Michael Gran
6d30df5dbd Unicode data parsing script incorrect for char-set:ascii
char-set:ascii is the only char-set consisting of a single contiguous
range, and there was an off-by-one error for that case.

* libguile/unidata_to_charset.pl (compute): fix off-by-one
2010-04-02 21:08:42 -07:00
Andy Wingo
43cd9cec23 deprecate dynamic-args-call, and update docs some more
* libguile/deprecated.h (scm_dynamic_args_call): Deprecate.
* libguile/deprecated.c:
* libguile/dynl.h:
* libguile/dynl.c:

* doc/ref/api-foreign.texi: More doc updates.
2010-04-02 00:34:49 +02:00
Andy Wingo
726b8ba3fd add api-foreign.texi
* doc/ref/api-foreign.texi: New file.
* doc/ref/api-modules.texi: Reorganize bits about dynamic linking into
  api-foreign.

* doc/ref/guile.texi:
* doc/ref/Makefile.am: Adapt to api-foreign.texi.
2010-04-02 00:23:24 +02:00
Andy Wingo
7b702b5391 fix vector-ref and vector-set opcodes for weak vectors
* libguile/vectors.h (SCM_I_IS_NONWEAK_VECTOR): New internal predicate.
* libguile/vm-i-scheme.c (vector-ref, vector-set): Only inline access to
  nonweak vectors.
2010-04-01 09:05:59 +02:00
Andy Wingo
a587d6a973 more fixes to equal? for arrays
* libguile/array-map.c (array_compare, scm_array_equal_p): Rewrite as
  something that operates on the generic array handle infrastructure.
  Based on array->list.
  (scm_i_array_equal_p): Change the docs, as array-equal? is now the same
  as equal?, except that it typechecks its args.

* doc/ref/api-compound.texi (Array Procedures): Update array-equal?
  docs.

* libguile/deprecated.h:
* libguile/deprecated.c (scm_raequal): Deprecate.

* libguile/bytevectors.c (scm_bytevector_eq_p): Bugfix: bytevectors are
  bytevector=? only if their element type is the same.

* libguile/eq.c (scm_equal_p): Only dispatch to scm_array_equal_p if
  both args are arrays (generically).

* test-suite/tests/arrays.test ("equal?"): Add some more tests.
2010-04-01 00:25:06 +02:00
Andy Wingo
92d33877d9 fix array bugs in ecmascript
* module/language/ecmascript/array.scm (pput, *array-prototype*): Fix
  bugs in ecmascript array runtime.
2010-03-31 22:31:11 +02:00
Andy Wingo
8ecd1943ef fix bug in ash opcode
* libguile/vm-i-scheme.c (ash): Fix embarrassing bug in (ash 1 32).
* test-suite/tests/bit-operations.test ("bitshifts on word boundaries"):
  Add tests.
2010-03-31 22:29:29 +02:00
Andy Wingo
e275b8a220 rename unif.test to arrays.test
* test-suite/tests/arrays.test: Move all unif.test here. Unif.test was
  mostly testing arrays anyway. Incorporate the existing arrays.test.

* test-suite/tests/unif.test: Deleted.
* test-suite/Makefile.am: Update.
2010-03-31 21:17:05 +02:00
Ludovic Courtès
28828f40eb Move another GOOPS-less test at the beginning.
* test-suite/tests/eval.test ("promises")["extended promise
  behaviour"]("implicit forcing is not supported"): Move...
* test-suite/tests/00-initial-env.test ("goopsless"): ... here.
2010-03-31 14:54:43 +02:00
Ludovic Courtès
cedf24d8bd Add separate test file for GOOPS-less tests.
* test-suite/tests/00-initial-env.test: New file.

* test-suite/Makefile.am (SCM_TESTS): Add `tests/00-initial-env.test'.

* test-suite/tests/numbers.test ("+")["wrong type argument"]: Move to
  `00-initial-env.test'.
2010-03-31 11:38:02 +02:00
Ludovic Courtès
0ecd70a271 Adapt ECMAScript parser and lexer to `(system base lalr)'.
* module/language/ecmascript/tokenize.scm: Use `make-lexical-token' and
  related procedures instead of pairs as tokens passed to the parser.
  Pass source location information in the form of `source-location'
  objects.

* module/language/ecmascript/parse.scm (read-ecmascript,
  read-ecmascript/1): Instantiate a new parser at each call.
  (parse-ecmascript): Rename to...
  (make-parser): ... this.  Change `->' to `:' in the grammar syntax.

* module/language/ecmascript/parse-lalr.scm: Remove.

* module/Makefile.am (ECMASCRIPT_LANG_SOURCES): Remove
  `language/ecmascript/parse-lalr.scm'.
2010-03-31 00:42:01 +02:00
Ludovic Courtès
bd7131d3ad Add rudimentary ECMAScript tests.
* test-suite/Makefile.am (SCM_TESTS): Add `tests/ecmascript.test'.

* test-suite/tests/ecmascript.test: New file.
2010-03-31 00:42:01 +02:00
Ludovic Courtès
2115b8eb40 Mention `(system base lalr)' in the manual.
* doc/ref/Makefile.am (guile_TEXINFOS): Add `api-lalr.texi'.

* doc/ref/api-lalr.texi: New file.

* doc/ref/guile.texi (API Reference): Include it.
2010-03-31 00:42:00 +02:00
Ludovic Courtès
1b10152215 Add Boucher's lalr-scm' as the (system base lalr)' module.
Taken from r51 of <http://lalr-scm.googlecode.com/svn/trunk>.

* module/Makefile.am (SYSTEM_BASE_SOURCES): Add `system/base/lalr.scm'.
  (NOCOMP_SOURCES): Add `system/base/lalr.upstream.scm'.

* module/system/base/lalr.scm, module/system/base/lalr.upstream.scm: New
  files.

* test-suite/Makefile.am (LALR_TESTS, LALR_EXTRA, TESTS,
  TESTS_ENVIRONMENT): New variables.
  (EXTRA_DIST): Add $(LALR_EXTRA).

* test-suite/lalr/common-test.scm,
  test-suite/lalr/glr-test.scm,
  test-suite/lalr/test-glr-associativity.scm,
  test-suite/lalr/test-glr-basics-01.scm,
  test-suite/lalr/test-glr-basics-02.scm,
  test-suite/lalr/test-glr-basics-03.scm,
  test-suite/lalr/test-glr-basics-04.scm,
  test-suite/lalr/test-glr-basics-05.scm,
  test-suite/lalr/test-glr-script-expression.scm,
  test-suite/lalr/test-glr-single-expressions.scm,
  test-suite/lalr/test-lr-associativity-01.scm,
  test-suite/lalr/test-lr-associativity-02.scm,
  test-suite/lalr/test-lr-associativity-03.scm,
  test-suite/lalr/test-lr-associativity-04.scm,
  test-suite/lalr/test-lr-basics-01.scm,
  test-suite/lalr/test-lr-basics-02.scm,
  test-suite/lalr/test-lr-basics-03.scm,
  test-suite/lalr/test-lr-basics-04.scm,
  test-suite/lalr/test-lr-basics-05.scm,
  test-suite/lalr/test-lr-error-recovery-01.scm,
  test-suite/lalr/test-lr-error-recovery-02.scm,
  test-suite/lalr/test-lr-no-clause.scm,
  test-suite/lalr/test-lr-script-expression.scm,
  test-suite/lalr/test-lr-single-expressions.scm: New files.
2010-03-31 00:41:59 +02:00
Andy Wingo
3ffd1ba96e fix equal? between an array and a non-array
OK let's try again. While the thanks go to Daniel Llorens del Río for
the tip, the blame continues going to me :)

* test-suite/Makefile.am:
* test-suite/tests/arrays.test: Add a test.

* libguile/array-map.c (raeql): Handle a few 0-dimensional cases. If the
  shapes of the arrays don't match, just return #f instead of raising
  an error.
2010-03-31 00:05:01 +02:00
Andy Wingo
d26383f427 Revert "fix equal? between an array and a non-array"
This reverts commit 9d031d4d57.
2010-03-30 23:51:40 +02:00
Andy Wingo
9d031d4d57 fix equal? between an array and a non-array
* libguile/eq.c (scm_equal_p): Only call scm_array_equal_p if both
  arguments are generalized arrays; otherwise they are not equal. Thanks
  to Daniel Llorens del Río for the tip.

* test-suite/Makefile.am:
* test-suite/tests/arrays.test: Add a test.
2010-03-30 21:23:06 +02:00
Andy Wingo
6128f34c4b correctly handle --no-autocompile (fixed broken previous patch)
* libguile/load.c (scm_init_load): Initialize %load-should-autocompile
  to false.

* libguile/init.c (scm_i_init_guile):
* libguile/load.h:
* libguile/load.c (scm_init_load_should_autocompile): At the end of
  init, check GUILE_AUTO_COMPILE.

* libguile/script.c (scm_compile_shell_switches): Instead of making
  --autocompile / --no-autocompile render into the s-expression, just
  handle them immediately, so that --no-autocompile takes effect for the
  expander.
2010-03-30 10:53:05 +02:00
Andy Wingo
2533f10b40 nil is null, whee
* libguile/pairs.h (scm_is_null): Nil is also null.

* libguile/vm-i-scheme.c (not, not-not, null?, not-null?):
* libguile/vm-i-system.c (br-if-null, br-if-not-null): Remove some more
  nil special cases.
2010-03-30 10:31:27 +02:00
Andy Wingo
d38b431ace nil is false, whee
* libguile/boolean.h (scm_is_false): Recognize nil as false, by default.
  (scm_is_bool): Recognize nil as a boolean.

* libguile/boolean.c (scm_not, scm_boolean, scm_to_bool, scm_is_bool):
  Adapt to treat nil as false.

* libguile/vm-i-system.c (br-if, br-if-not): Just use scm_is_false
  instead of specifically mentioning nil.
2010-03-30 10:31:27 +02:00
Andy Wingo
655aadf4b0 going through scm_shell not necessary to get autocompilation
* libguile/load.c (scm_init_load): Initialize %load-should-autocompile
  from the environment variable here, so that apps that don't go through
  scm_shell get autocompilation.

* libguile/script.c (scm_compile_shell_switches): Explicitly enable or
  disable autocompilation here, if told to do so.
2010-03-30 10:28:51 +02:00
Andy Wingo
0eedfa5cab fix bug in scm_must_free
* libguile/gc-malloc.c: Update a comment.
  (scm_must_free): Must be able to free memory allocated with
  scm_must_malloc, and thus must be GC_FREE, not free.
2010-03-29 22:02:42 +02:00
Andy Wingo
4e974a1a6d remove out-of-date comment in scm_gc_malloc
* libguile/gc-malloc.c (scm_gc_malloc): Remove out-of-date comment.
2010-03-29 21:51:07 +02:00
Andy Wingo
4f08d0b50f (texinfo reflection) parses out macro metadata
* module/texinfo/reflection.scm (macro-arguments):
  (macro-additional-stexi, object-stexi-documentation): Parse out the
  metadata in macros, if it is available, so we can show defmacros'
  arguments, syntax-rules' patterns, etc.
2010-03-29 18:12:37 +02:00
Andy Wingo
a5e95abe9b metadata for syntax-rules, identifier-syntax, and define-macro macros
* module/ice-9/psyntax.scm (syntax-rules, identifier-syntax):
* module/ice-9/boot-9.scm (define-macro): Embed metadata into the macro
  transformer for use by documentation tools and the like.

* module/ice-9/psyntax-pp.scm: Regenerated.
2010-03-29 18:01:34 +02:00
Mark H Weaver
f60c2c4e10 Renumber IFLAGSs so the first 8 are reserved for lisp booleans.
This enables more efficient implementations of several operations,
e.g. scm_is_lisp_bool, canonicalize_boolean, fast_boolean_not,
converting SCM booleans to C booleans, etc.

* libguile/tags.h: Renumber IFLAGs.

* libguile/print.c: Renumber iflagnames to match.

* libguile/boolean.c:
* libguile/boolean.h:
  SCM_XXX_ANOTHER_BOOLEAN_DONT_USE --> SCM_XXX_ANOTHER_BOOLEAN_DONT_USE_0
2010-03-28 14:34:19 +02:00
Andy Wingo
98dcf051e0 Fix inlining of lambda-apply-lambda.
* module/language/tree-il/inline.scm (inline!): Only inline (lambda args
  (apply (lambda ...) args)) if the outer lambda has rest args. Thanks
  to Mark Weaver for the note.
2010-03-28 14:31:57 +02:00
Andy Wingo
83a7b43bf2 remove spurious declarations in c-tokenize.lex
* libguile/c-tokenize.lex: Remove spurious declarations of flex-internal
  functions, as their prototypes are changing in upstream flex.
2010-03-26 13:22:10 +01:00
Andy Wingo
1f51e2757c vectors of pairs in docstring position are metadata
* module/ice-9/psyntax.scm (chi-lambda-case, lambda): If we find a
  vector of pairs in the docstring position, interpret those pairs as
  additional metadata.

* module/ice-9/psytntax-pp.scm: Regenerated.
2010-03-25 14:19:25 +01:00
Andy Wingo
3785c5b276 psyntax supports multiple docstrings, merging lambda-case metadata
* module/ice-9/psyntax.scm (build-simple-lambda, build-case-lambda):
  Don't take a docstring, take a metadata alist. Don't bother annotating
  interpreted expressions with docstrings.
  (chi-simple-lambda): Take already-parsed metadata.
  (lambda): Parse out multiple docstrings as separate "documentation"
  entries in the "meta".
  (chi-lambda-case): Merge multiple "meta" entries among the various
  cases.
  (lambda*, case-lambda, case-lambda*): Receive "meta" clauses, not
  docstrings.

* module/ice-9/psyntax-pp.scm: Regenerated.
2010-03-25 14:15:16 +01:00
Andy Wingo
dca9a4d685 make guile's welcome more gnu-conventional; also warranty and copying info
* module/system/repl/command.scm: Add support for ,show with topics
  "warranty", "copying", and "version".
  (language): Don't re-print the welcome; print sometime more terse.
* module/system/repl/common.scm (*version*, *warranty*, *copying*): New
  public globals.
  (repl-welcome): Display *version*.
2010-03-23 00:18:48 +01:00
Andy Wingo
1ea8aa7d8e Update manual examples of how to link with Guile
* doc/ref/intro.texi (Linking Guile into Programs):
* doc/ref/libguile-linking.texi (A Sample Guile Main Program): Update
  examples of how to link with guile.
2010-03-22 22:13:35 +01:00
Ludovic Courtès
df0f529585 Make `include' tail-recursive.
* module/ice-9/psyntax.scm (include)[read-file]: Make tail-recursive.

* module/ice-9/psyntax-pp.scm: Regenerate.
2010-03-20 17:03:54 +01:00
Ludovic Courtès
165a8643ae Cosmetic changes in `foreign.c'.
* libguile/foreign.c (unpack, pack): Add `const' qualifier for `type'.
  Comment.  Indent.
  (scm_i_foreign_call): Add `const' qualifier for `argv'.  Punctuate
  comments.  Clarify argument unpacking loop.
2010-03-20 17:00:38 +01:00
Ludovic Courtès
a2c6904911 Fix argument passing to foreign functions.
* libguile/foreign.c (scm_i_foreign_call): When allocating room for
  DATA, use the sum of all the argument sizes, not `cif->bytes'.
2010-03-20 16:45:14 +01:00
Andy Wingo
7f10a113c5 fix srfi-31 check after macroexpand rename
* test-suite/tests/srfi-31.test: ("rec special form"): Fix check.
2010-03-19 17:05:46 +01:00
Andy Wingo
8a73a6d294 rename sc-expand to macroexpand
* module/ice-9/boot-9.scm (macroexpand): Rename from sc-expand.
  (%pre-modules-transformer): Adapt to name change.
* module/ice-9/compile-psyntax.scm: Adapt to name change.
* module/ice-9/psyntax-pp.scm: Regenerated.
* module/ice-9/psyntax.scm: Rename sc-expand to macroexpand.
* module/language/scheme/compile-tree-il.scm (compile-tree-il): Adapt to
  name change.
2010-03-19 15:22:27 +01:00
Andy Wingo
6ffd4131ff finish macro docs
* doc/ref/api-macros.texi: Finish macro docs.
2010-03-19 13:16:57 +01:00
Andy Wingo
1fc8dcc7ac document syntax-case
* doc/ref/api-macros.texi: Document syntax-case, and tweak defmacro
  docs.

* doc/ref/api-debug.texi: Move cons-source here.
2010-03-19 12:30:38 +01:00
Andy Wingo
a6e60a9571 add GUILE-VERSION to CONFIG_STATUS_DEPENDENCIES
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add GUILE-VERSION, so that a
  change in GUILE-VERSION causes a reconfigure.
2010-03-19 12:30:38 +01:00
Ludovic Courtès
fbda9ef1b2 Bump version number for 1.9.9.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
2010-03-18 23:48:49 +01:00
Ludovic Courtès
d6ed9b92c5 Update `NEWS'. 2010-03-18 23:48:12 +01:00