Ian Price
265e7bd92a
Fix inlining of tail list to apply.
...
Fixes <http://bugs.gnu.org/15533 >.
* module/language/tree-il/peval.scm (peval): Final list argument to
`apply' should not be inlined if it is mutable.
* test-suite/tests/peval.test ("partial evaluation"): Add test.
2014-01-07 03:37:21 +00:00
Ludovic Courtès
70511cc403
Thank Aleix.
2013-12-21 22:01:45 +01:00
Aleix Conchillo Flaque
ecf0498df5
allow specifying a required version in GUILE_PROGS
...
* meta/guile.m4: GUILE_PROGS now takes an optional argument to specify a
required Guile version. By default, it requires Guile >= 2.0. A micro
version can also be specified (e.g. GUILE_PROGS([2.0.10])).
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-21 22:01:45 +01:00
Mark H Weaver
0b83be7eb6
Revert "Fix bound-identifier=? to compare binding names, not just symbolic names."
...
This reverts commit 70c74b8476
.
2013-12-16 22:55:25 -05:00
Mark H Weaver
70c74b8476
Fix bound-identifier=? to compare binding names, not just symbolic names.
...
Fixes <http://bugs.gnu.org/16158 >.
* module/ice-9/psyntax.scm (bound-id=?): Use 'id-var-name' to compare
binding names (gensyms), not just symbolic names.
* module/ice-9/psyntax-pp.scm: Regenerate.
* test-suite/tests/syntax.test: Add test.
2013-12-15 19:04:59 -05:00
Ludovic Courtès
032a16fced
Hide EINTR returns from 'accept'.
...
* libguile/socket.c (scm_accept): Wrap 'accept' call in 'SCM_SYSCALL'.
2013-12-15 22:48:41 +01:00
Mark H Weaver
aa8630efb3
syntax-case: fix error reporting for misplaced ellipses.
...
Reported by taylanbayirli@gmail.com (Taylan Ulrich B.).
* module/ice-9/psyntax.scm (cvt*): Use 'syntax-case' to destructure
the pattern tail, instead of 'pair?', 'car', and 'cdr'.
(gen-clause): When checking for errors, check for misplaced ellipsis
before duplicate pattern variables, to improve the error message in
case of multiple misplaced ellipses.
* module/ice-9/psyntax-pp.scm: Regenerate.
* test-suite/tests/syntax.test: Add tests.
2013-12-13 13:25:07 -05:00
Mark H Weaver
d8c476b68d
THANKS Tom Tromey.
...
* THANKS: Add Tom Tromey to fixes section.
2013-12-13 00:35:39 -05:00
Mark H Weaver
61989c7053
Merge branch 'stable-2.0'
...
Conflicts:
libguile/pairs.c
libguile/vm.c
test-suite/tests/control.test
2013-12-12 23:44:46 -05:00
Tom Tromey
e0096e4798
Remove unused function scm_i_tag_name.
...
* libguile/gc.c (scm_i_tag_name): Remove.
2013-12-12 23:39:31 -05:00
Tom Tromey
97dd74c00e
Add missing FUNC_NAME defines for pair accessors.
...
* libguile/pairs.c (scm_car, scm_cdr, scm_caar, scm_cadr, scm_cdar,
scm_cddr, scm_caaar, scm_caadr, scm_cadar, scm_caddr, scm_cdaar,
scm_cdadr, scm_cddar, scm_cdddr, scm_caaaar, scm_caaadr, scm_caadar,
scm_caaddr, scm_cadaar, scm_cadadr, scm_caddar, scm_cadddr,
scm_cdaaar, scm_cdaadr, scm_cdadar, scm_cdaddr, scm_cddaar,
scm_cddadr, scm_cdddar, scm_cddddr): Add missing FUNC_NAME defines.
2013-12-12 21:53:01 -05:00
Tom Tromey
2bbdd2ce1c
Fix computation of LIBLOBJS.
...
Fixes <http://bugs.gnu.org/14193 >.
* configure.ac (LIBLOBJS): Add prefix to computed .lo file name so
dependencies work properly.
2013-12-12 21:43:31 -05:00
Andy Wingo
812c83d48b
Fix section table writing for non-loadable sections
...
* module/system/vm/linker.scm (add-elf-objects): Don't fill in the
sh_addr field if the section is not loadable.
2013-12-10 20:03:59 +01:00
Andy Wingo
18e1113513
Quick documentation fixes.
...
* doc/ref/compiler.texi: Make it build.
2013-12-10 19:53:55 +01:00
Andy Wingo
a236867dc1
Non-loadable sections should not have an sh_addr field set
...
* module/system/vm/linker.scm (relocate-section-header):
(write-linker-object): Sections that are not loadable should not have
their sh_addr fields set. Fix.
2013-12-10 19:49:56 +01:00
Andy Wingo
58b2315657
Beginnings of CPS section in manual
...
* doc/ref/compiler.texi (Continuation-Passing Style): Beginnings of this
section. Will be finished when we fix implicit truncation.
2013-12-10 19:49:56 +01:00
Andy Wingo
660f2775e9
Fix cross-references in api-macros.texi
...
* doc/ref/api-macros.texi (Macro Expansion): Fix cross-references.
2013-12-10 19:49:56 +01:00
Andy Wingo
7bbfc02959
Arities-fixing pass handles incoming $ktrunc with rest args
...
* module/language/cps/arities.scm (fix-clause-arities): Allow $ktrunc
arities with rest arguments.
2013-12-06 12:04:10 +01:00
Andy Wingo
67b5d06c1a
Elide values primcalls with continuations with rest arguments
...
* module/language/cps/elide-values.scm (elide-values): Elide values
primcalls when continuation has rest arguments.
2013-12-06 11:39:04 +01:00
Andy Wingo
fa48a2f79a
(call-with-values foo (lambda (a . b) a)) avoids consing rest list
...
* module/language/cps/slot-allocation.scm (allocate-slots): Don't
allocate slots to unused results of function calls. This can allow us
to avoid consing a rest list for call-with-values with an ignored rest
parameter, and can improve the parallel move code.
* module/language/cps/compile-bytecode.scm (compile-fun): Adapt to avoid
emitting bind-rest in values context if the rest arg is unused.
2013-12-06 11:08:45 +01:00
Ludovic Courtès
70057f3408
vm: Gracefully handle stack overflows.
...
Fixes <http://lists.gnu.org/archive/html/guile-user/2013-12/msg00017.html >.
Reported by rvclayton@verizon.net (R. Clayton).
* libguile/vm.c (reinstate_stack_reserve): New function.
(vm_error_stack_overflow): Install it as an unwind handler.
* test-suite/tests/control.test ("the-vm")["stack overflow reinstates
stack reserve"]: New test.
2013-12-05 22:19:01 +01:00
Andy Wingo
d297e544d9
compiler.texi tweaks
...
* doc/ref/compiler.texi (Compiler Tower): Reword a couple things.
(Tree-IL): Add more vertical space, for readability in info.
2013-12-05 11:55:10 +01:00
Andy Wingo
67915ab079
Doc updates to macroexpansion, compiled procs, and compiler.texi
...
* doc/ref/api-macros.texi (Macro Expansion): New section.
* doc/ref/api-procedures.texi (Compiled Procedures): Beginnings of a
revision. Not finished.
* doc/ref/compiler.texi (Compiling to the Virtual Machine): Beginnings
of a revision. CPS and bytecode are not done yet.
2013-12-04 20:46:02 +01:00
Andy Wingo
691697de09
Rename "RTL" to "bytecode"
...
"RTL" didn't make any sense, and now that there's no other bytecode to
disambiguate against, just call it bytecode.
* module/Makefile.am:
* module/ice-9/eval-string.scm:
* module/language/bytecode.scm:
* module/language/bytecode/spec.scm:
* module/language/cps/arities.scm:
* module/language/cps/compile-bytecode.scm:
* module/language/cps/compile-rtl.scm:
* module/language/cps/contification.scm:
* module/language/cps/elide-values.scm:
* module/language/cps/primitives.scm:
* module/language/cps/reify-primitives.scm:
* module/language/cps/spec.scm:
* module/language/cps/specialize-primcalls.scm:
* module/language/rtl.scm:
* module/language/rtl/spec.scm:
* module/scripts/compile.scm:
* module/system/base/compile.scm:
* module/system/repl/common.scm:
* module/system/vm/assembler.scm:
* module/system/vm/debug.scm:
* module/system/vm/disassembler.scm:
* module/system/vm/dwarf.scm:
* test-suite/tests/cross-compilation.test:
* test-suite/tests/dwarf.test:
* test-suite/tests/rtl-compilation.test:
* test-suite/tests/rtl.test:
* test-suite/vm/run-vm-tests.scm: Fixups.
2013-12-02 21:31:47 +01:00
Andy Wingo
e54c7dd67c
Fix brainfuck comment
...
* module/language/brainfuck/parse.scm: Fix outdated comment.
2013-12-02 19:03:50 +01:00
Andy Wingo
60ce72b9b9
Fix brainfuck->scheme compiler.
...
* module/language/brainfuck/compile-scheme.scm (compile-scheme): Fix
brainfuck compiler.
2013-12-02 19:03:48 +01:00
Andy Wingo
7f71030837
Fix brainfuck comment
...
* module/language/brainfuck/parse.scm: Fix outdated comment.
2013-12-02 19:02:38 +01:00
Andy Wingo
cdc75fd001
Fix brainfuck->scheme compiler.
...
* module/language/brainfuck/compile-scheme.scm (compile-scheme): Fix
brainfuck compiler.
2013-12-02 19:02:38 +01:00
Mark H Weaver
7cfcb60bc1
GOOPS doc fix: #:dsupers is the init keyword for the dsupers slot.
...
* doc/ref/goops.texi (Metaclasses): #:dsupers is the initialization
keyword for the dsupers slot, not #:supers.
2013-12-01 18:41:31 -05:00
Mark H Weaver
79657fd3ec
Thread safe port properties.
...
* libguile/ports.c (scm_i_port_property, scm_i_set_port_property_x):
Lock the port mutex while accessing the port alist.
* libguile/read.c (set_port_read_option): Lock the port mutex
while modifying port read options.
2013-12-01 18:34:30 -05:00
Andy Wingo
1f6f591d66
Add section to vm.texi about Guile's use of ELF
...
* doc/ref/vm.texi (Object File Format): New section.
2013-12-01 12:35:12 +01:00
Andy Wingo
9e9745b355
vm.texi tweak
...
* doc/ref/vm.texi (Why a VM?): Small tense tweak.
2013-11-30 20:59:14 +01:00
Andy Wingo
69aecc6abb
Update vm.texi's "Instruction Set" section.
...
* doc/ref/vm.texi (Instruction Set): Update.
2013-11-30 18:46:14 +01:00
Andy Wingo
ddf0d7bb2e
Fix more vm-engine comments
...
* libguile/vm-engine.c: Fix more comments.
2013-11-30 18:46:14 +01:00
Andy Wingo
2b6659e438
Remove slot-ref and slot-set! ops
...
* libguile/vm-engine.c: Remove slot-ref and slot-set! ops.
2013-11-30 18:46:14 +01:00
Andy Wingo
4d6a7ac6ad
Remove GOOPS-internal @slot-ref and @slot-set!
...
* module/oop/goops.scm: Remove definitions of @slot-ref and @slot-set!.
They are equivalent to struct-ref and struct-set!.
(define-standard-accessor-method): Reimplement using syntax-case.
(bound-check-get, standard-get, standard-set): Replace @slot-ref and
@slot-set! uses with struct-ref and struct-set!.
* module/language/cps/reify-primitives.scm (primitive-module): Remove
@slot-set! and @slot-ref references.
2013-11-30 18:46:14 +01:00
Andy Wingo
23e2e78067
Beginning vm.texi updates
...
* doc/ref/vm.texi: Updates.
2013-11-30 18:46:14 +01:00
Andy Wingo
02f9d49614
Fix vm-engine.c comments
...
* libguile/vm-engine.c: Fix some comments.
2013-11-30 18:46:14 +01:00
Andy Wingo
1b1c912544
Unknown files print as (unknown file) in disassembler
...
* module/system/vm/disassembler.scm (disassemble-buffer): Print unknown
files as "(unknown file)".
2013-11-30 18:46:14 +01:00
Andy Wingo
321c32dc9d
,x disassembles nested programs too
...
* module/system/vm/disassembler.scm (code-annotation):
(disassemble-buffer, disassemble-addr, disassemble-program): Arrange
to disassemble nested procedures.
(disassemble-image): Adapt.
2013-11-30 18:46:14 +01:00
Andy Wingo
f5729276a9
Update history.texi
...
* doc/ref/history.texi (A Timeline of Selected Guile Releases, Status):
Update.
2013-11-30 18:46:10 +01:00
Andy Wingo
0d1788039a
Remove outdated section of api-memory.texi
...
* doc/ref/api-memory.texi (Memory Blocks): Remove section documenting
scm_must_malloc and friends.
2013-11-29 12:28:53 +01:00
Andy Wingo
d511a2e160
Merge remote-tracking branch 'origin/stable-2.0'
2013-11-28 16:24:38 +01:00
Andy Wingo
8f0ecae98c
Critical sections in guardians do not need to block asyncs
...
* libguile/guardians.c: Critical sections here cannot cause an
async_tick, so they do not need to block asyncs.
2013-11-28 16:20:42 +01:00
Andy Wingo
fcd953f699
Merge commit ' d364a89718
'
...
Conflicts:
libguile/deprecated.h
libguile/gc.c
2013-11-28 16:16:48 +01:00
Andy Wingo
5dfafc3c76
Merge commit ' e7bd20f7d9
'
2013-11-28 16:15:55 +01:00
Andy Wingo
ae9c16e895
Merge commit ' 17330398d5
'
2013-11-28 16:15:51 +01:00
Andy Wingo
9b95f3ced4
Merge commit ' a38024baaa
'
...
Conflicts:
libguile/ports.h
2013-11-28 16:15:38 +01:00
Andy Wingo
6683f204ba
Merge commit ' 2437c7b2e8
'
...
Conflicts:
libguile/guardians.c
2013-11-28 16:03:58 +01:00
Andy Wingo
f76cf73a49
Merge commit ' 8571dbde63
'
...
Conflicts:
libguile/procprop.c
2013-11-28 15:00:17 +01:00