summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix @ and @@ to not capture lexicals; new @@ @@ form for R6RS librariesvtable-vtable-deprecationMark H Weaver2012-07-065-22/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | * module/ice-9/psyntax.scm (@): Return top-wrap instead of the wrap applied to the '@' form, so that the symbol will be interpreted as a top-level identifier and never refer to any lexical variable. (@@): Change the syntax used to support R6RS 'library' forms to: (@@ @@ (mod ...) body). Change the behavior of the documented (@@ (mod ...) id) form to be the same as that of @, except for the use of 'private' instead of 'public' in the psyntax mod: use syntax->datum on the identifier, and return top-wrap instead of the wrap applied to the '@@' form. This fixes <http://bugs.gnu.org/10756> reported by Ludovic Courtès. * module/ice-9/psyntax-pp.scm: Regenerate. * module/ice-9/r6rs-libraries.scm (library): Use '@@ @@' syntax instead of the older '@@' syntax. * test-suite/tests/syncase.test (changes to expansion environment): Use '@@ @@' syntax. * module/Makefile.am: Add explicit dependencies for boot-9.go on the files that it includes: quasisyntax.scm and r6rs-libraries.scm.
* deprecate make-vtable-vtableAndy Wingo2012-07-063-51/+46
| | | | | | | | * libguile/struct.h: * libguile/struct.c (scm_make_vtable_vtable): Deprecate, as you can handle most of the use cases with make-vtable, and we don't want to promote the creation of new roots to the type hierarchy. (scm_i_make_vtable_vtable): The internal replacement.
* simplify %condition-type-vtableAndy Wingo2012-07-061-8/+8
| | | | | * module/srfi/srfi-35.scm (%condition-type-vtable): Use make-vtable instead of make-vtable-vtable.
* record-type-vtable is not a new root of the vtable hierarchyAndy Wingo2012-07-061-10/+7
| | | | | * module/ice-9/boot-9.scm (record-type-vtable): Simplify to use make-vtable instead of make-vtable-vtable.
* Scheme standard-vtable-fields bindingAndy Wingo2012-07-061-0/+1
| | | | | * libguile/struct.c (scm_init_struct): Export standard-vtable-fields to Scheme.
* add Scheme binding for scm_standard_vtable_vtableAndy Wingo2012-07-061-0/+1
| | | | | * libguile/struct.c (scm_init_struct): Export <standard-vtable> to Scheme.
* simplify scm_init_printAndy Wingo2012-07-061-5/+3
| | | | | * libguile/print.c (scm_init_print): Simplify creation of print-state vtable.
* deprecate struct-vtable-tagAndy Wingo2012-07-065-26/+27
| | | | | | | | * libguile/deprecated.c: * libguile/deprecated.h: * libguile/struct.c: * libguile/struct.h: * doc/ref/api-compound.texi: Deprecate struct-vtable-tag.
* disable some uri tests if --disable-networkingAndy Wingo2012-07-061-35/+38
| | | | | * test-suite/tests/web-uri.test: Disable some tests if we don't have inet-pton.
* add --match pattern to git-version-genAndy Wingo2012-07-061-1/+1
| | | | * configure.ac: Add --match pattern so we only get v2.0.x tagx.
* git-version-gen: add --match argumentAndy Wingo2012-07-061-7/+12
| | | | | * build-aux/git-version-gen (Options): Add --match argument. (v_from_git): Remove path without --match.
* update git-version-gen from gnulibAndy Wingo2012-07-061-2/+3
| | | | * build-aux/git-version-gen: Import from gnulib.
* fixed repl command ,describe to also handle syntaxDaniel Krueger2012-07-061-1/+6
|
* Add alignment for Sun Studio 12Dagobert Michelsen2012-07-061-1/+2
|
* more uri-related ipv6 fixesAndy Wingo2012-07-062-15/+21
| | | | | | | | | | | | | | * module/web/uri.scm (ipv6-regexp): IPv6 numeric addresses do not have brackets. It's only in URIs that they have them. (ipv6-host-pat, authority-regexp, parse-authority): Refactor ipv6 detection to fix a bug with |, and to extract IPv6 hosts from their brackets. This way we can pass the uri-host directly to inet-pton. (uri->string): If the host contains a `:', assume it is ipv6 and add brackets. * test-suite/tests/web-uri.test ("build-uri"): Adapt tests to assume that the address returned by uri-host and passed to build-uri #:host does not have brackets.
* enhance IPv6 supportDaniel Hartwig2012-07-062-6/+14
| | | | | | | * module/web/uri.scm (valid-host?): Support dotted-quad notation in IPv6 addresses. (parse-authority): Support IPv6 literals. * test-suite/tests/web-uri.test: Add and fix tests.
* support URIs with domain names starting with numbersDaniel Hartwig2012-07-062-2/+49
| | | | | | | * module/web/uri.scm (valid-host?): Fix regexp to support domain names starting with numbers. * test-suite/tests/web-uri.scm: Add tests for above and IP literals.
* fix typo in web.texiAndy Wingo2012-07-061-1/+1
| | | | | * doc/ref/web.texi (HTTP Headers): Fix typo in example. Fixes http://bugs.gnu.org/10890.
* better procedure-arguments for interpreted procs with opt, rest, kwargsAndy Wingo2012-07-063-4/+38
| | | | | | | | | | | * module/ice-9/session.scm (procedure-arguments): Arrange to interpret numbers in the "req" and "opt" positions of an 'arglist as N arguments with unknown name. * module/ice-9/eval.scm (primitive-eval): Set 'arglist on "complex" procedures. Fixes http://bugs.gnu.org/10922. * test-suite/tests/session.test ("procedure-arguments"): Add a test.
* add check for fchmodAndy Wingo2012-07-062-3/+4
| | | | | | | * configure.ac: Add a check for fchmod. * libguile/filesys.c (scm_chmod): Guard the fchmod case with HAVE_FCHMOD.
* remove mkdir alias in filesys.c for mingwAndy Wingo2012-07-061-1/+0
| | | | | * libguile/filesys.c (mkdir): Remove alias, as gnulib handles this for us.
* fix warnings in mingw in expand.cAndy Wingo2012-07-061-12/+15
| | | | | * libguile/expand.c (VOID_, CONST_): Add trailing underscores to avoid name conflicts on MinGW.
* fix warning about vsnprintf on mingwAndy Wingo2012-07-061-6/+0
| | | | | * libguile/deprecation.c: Remove a vsnprintf alias for mingw, now that gnulib handles it correctly.
* be sure to include time.h for struct timespecAndy Wingo2012-07-061-10/+9
| | | | | | * libguile/gen-scmconfig.c: The GNU libc manual says that struct timespec is defined in time.h. So, just include both sys/time.h and time.h, if they are available.
* fix `vector' instruction emission for big vectorsAndy Wingo2012-07-051-0/+1
| | | | | | | * module/language/glil/compile-assembly.scm (dump-constants): Only use the `vector' instruction for vectors whose length can fit in 16 bits. Fixes http://bugs.gnu.org/11087.
* fix-letrec uses effects.scm for effects analysisAndy Wingo2012-07-051-12/+22
| | | | | | * module/language/tree-il/fix-letrec.scm: Use effects.scm for effects analysis, instead of primitives.scm. (simple-expression?, partition-vars): Adapt.
* simplify one kind of degenerate promptAndy Wingo2012-07-052-37/+114
| | | | | | | | | | | | | * module/language/tree-il/peval.scm (<operand>): Instead of having a `residualize?' field, have it be a use count. (peval): Adapt to <operand> change. Add function to kill uses of an operand. Use it in the <prompt> inliner. Add another kind of degenerate prompt to elide. We should really switch to CPS though, as that will allow us to contify more aggressively. * test-suite/tests/peval.test ("partial evaluation"): Adapt (while #t #t) test, which was sensitive to how far the recursive inlining got. Add a test for the degenerate prompt elision.
* fix bugs in effects analysis of "effect+exception-free-primitives"Andy Wingo2012-07-052-7/+34
| | | | | | | | | * module/language/tree-il/effects.scm (make-effects-analyzer): Be more precise regarding the effects of the so-called effect+exception-free-primitives: now we check their arities. * test-suite/tests/cse.test ("cse"): Add a test that we don't elide (cons 1 2 3) in effect context.
* optimize (apply foo 0 (list 1 2)) => (foo 0 1 2)Andy Wingo2012-07-052-1/+20
| | | | | | | * module/language/tree-il/peval.scm (peval): Inline applications where we know the contents of the tail. * test-suite/tests/peval.test ("partial evaluation"): Add tests.
* compile ecmascript's `return' as an abortAndy Wingo2012-07-051-3/+24
| | | | | | | * module/language/ecmascript/compile-tree-il.scm (current-return-tag): (with-return-prompt, comp): Compile `return' as an abort instead of a primcall to `return'. Fixes beta-reduction by the optimizer -- it doesn't make sense for `return' to move from one function to another!
* fix goops compilation when current language is not schemeAndy Wingo2012-07-051-0/+1
| | | | | * module/oop/goops/dispatch.scm (compute-dispatch-procedure): Set source language to Scheme, not (current-language).
* add scm_c_nvalues to newsAndy Wingo2012-07-041-1/+1
| | | | * NEWS: Add scm_c_nvalues.
* add scm_c_nvalues with docs; also, docs for scm_c_valuesAndy Wingo2012-07-043-5/+30
| | | | | | | | | | * libguile/values.h: * libguile/values.c (scm_c_nvalues): New function. * doc/ref/api-control.texi (Multiple Values): Add docs for scm_c_values and scm_c_nvalues. Fixes http://bugs.gnu.org/11764.
* add scm_{to,from}_pointer docsAndy Wingo2012-07-041-0/+16
| | | | | * doc/ref/api-foreign.texi: Add documentation for scm_to_pointer and scm_from_pointer.
* update NEWSAndy Wingo2012-07-021-0/+169
| | | | * NEWS: Update.
* dead code eliminationAndy Wingo2012-07-021-53/+0
| | | | | * module/ice-9/psyntax.scm: Remove commented-out definitions of `do' and `case'.
* remove docs for smob-call instructionAndy Wingo2012-07-021-7/+0
| | | | * doc/ref/vm.texi (Trampoline Instructions): Remove docs for smob-call.
* typo fix in web.texiAndy Wingo2012-07-021-4/+4
| | | | * doc/ref/web.texi (URIs): Fix a typo/thinko.
* Have `procedure-arguments' always return the `allow-other-keys?' pair.Ludovic Courtès2012-07-022-8/+19
| | | | | | | | | | | | Fixes <http://bugs.gnu.org/10938>. Based on a patch by Stefan Israelsson Tampe <stefan.itampe@gmail.com>. * module/ice-9/session.scm (procedure-arguments): When the 'arglist property is available, emit the `allow-other-keys?' pair. Use `match-lambda'. * test-suite/tests/session.test ("procedure-arguments")["aok? is preserved"]: New test.
* Add tests for `procedure-arguments'.Ludovic Courtès2012-07-021-1/+42
| | | | | * test-suite/tests/session.test ("procedure-arguments"): New test prefix.
* Update `THANKS'.Ludovic Courtès2012-07-021-0/+1
|
* Remove backward-compatible `GC_PTR' definition.Ludovic Courtès2012-07-021-7/+1
| | | | | | | | Fixes <http://bugs.gnu.org/11500>. Reported by Kevin J. Fletcher <dev@kjfletch.co.uk>. * libguile/bdw-gc.h (GC_PTR)[(defined GC_VERSION_MAJOR) && (GC_VERSION_MAJOR >= 7)]: Remove.
* Use `void *' instead of `GC_PTR' internally.Ludovic Courtès2012-07-0210-33/+30
| | | | | | | * libguile/finalizers.c, libguile/foreign.c, libguile/guardians.c, libguile/hashtab.c, libguile/numbers.c, libguile/ports.c, libguile/smob.c, libguile/struct.c, libguile/vectors.c, libguile/weaks.c: Use `void *' instead of `GC_PTR'.
* doc: Remove reference to `closure?', now deprecated.Ludovic Courtès2012-07-022-5/+5
| | | | | | | Fixed <http://bugs.gnu.org/11611>. * doc/ref/api-procedures.texi (Procedure Properties): Remove reference to `closure?'. Suggested by David Jaquay <djaquay@gmail.com>.
* add char->integer, number->string etc to interesting primitivesAndy Wingo2012-06-221-0/+3
| | | | | | | * module/language/tree-il/primitives.scm (*interesting-primitive-names*): (*effect-free-primitives*): Add string->number, number->string, integer->char, and char->integer to allow for constant folding and better effects analysis.
* update version-etc copyright yearAndy Wingo2012-06-221-1/+1
| | | | | * module/ice-9/command-line.scm (version-etc): Update copyright year to 2012.
* cse: expressions evaluated for effect do not provide predicatesAndy Wingo2012-06-222-3/+18
| | | | | | | | * module/language/tree-il/cse.scm (cse): When trying to fold conditionals, only look at entries in the database that were added in test context. * test-suite/tests/cse.test ("cse"): Add a test case.
* scandir: select? takes basenames, operates on (sub)dirs alsoAndy Wingo2012-06-222-10/+16
| | | | | | | | | * module/ice-9/ftw.scm (scandir): Run the select? procedure on all items, including subdirs and the `.' and `..' entries. Pass it the basename of the file in question instead of the full name. * test-suite/tests/ftw.test ("scandir"): Adapt expectation for the .test selector. Add test for a selector that rejects everything.
* Fix possible deadlock upon `encoding-error' in `open-input-string'.Ludovic Courtès2012-06-202-7/+39
| | | | | | | | | | | | Partly addresses <http://bugs.gnu.org/11197>. * libguile/strports.c (scm_mkstrport): Call `scm_port_non_buffer', set Z's cell type and stream, and release `scm_i_port_table_mutex' early. Reacquire `scm_i_port_table_mutex' once BUF, C_BUF, and STR_LEN are initialized. * test-suite/tests/ports.test ("string ports")["encoding failure leads to exception"]: New test.
* Make SRFI-6 string ports Unicode-capable.Ludovic Courtès2012-06-202-9/+35
| | | | | | | | | | | | Partly addresses <http://bugs.gnu.org/11197>. Reported by Klaus Stehle <klaus.stehle@uni-tuebingen.de>. * module/srfi/srfi-6.scm (open-input-string, open-output-string): New procedures. * test-suite/tests/srfi-6.test ("open-input-string")["read-char, Unicode"]: New test. ("open-output-string")["λ"]: New test.