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

17263 commits

Author SHA1 Message Date
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