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
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
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
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
Andy Wingo
6dd9810902
Merge commit ' 750ac8c592
'
...
Conflicts:
.gitignore
libguile/deprecated.c
2013-11-28 14:53:03 +01:00
Andy Wingo
acf7530a3e
Merge commit ' c61be45084
'
...
Conflicts:
libguile/ports.c
2013-11-28 14:47:38 +01:00
Andy Wingo
091dd0cc58
Merge commit ' d360671c1c
'
2013-11-28 14:46:24 +01:00
Andy Wingo
d364a89718
Deprecate gc-live-object-stats
...
* libguile/gc.h:
* libguile/gc.c:
* libguile/deprecated.h:
* libguile/deprecated.c (scm_gc_live_object_stats): Deprecate; it hasn't
worked in the whole 2.0 series.
2013-11-28 14:40:58 +01:00
Andy Wingo
553294d958
Avoid needless GC on startup due to scm_gc_register_allocation
...
* libguile/gc.c (bytes_until_gc): Initialize to
DEFAULT_INITIAL_HEAP_SIZE, to avoid forced GC on the first
mallocation.
2013-11-28 12:10:50 +01:00
Andy Wingo
87fc4596e5
Remove private-gc.h
...
* libguile/simpos.c (scm_getenv_int): Move here, from gc.c.
* libguile/private-gc.h: Remove, unused.
* libguile/simpos.h: Move scm_getenv_int declaration here.
* libguile/vm.c:
* libguile/gc.c: Adapt scm_getenv_int users.
* libguile/gc-malloc.c:
* libguile/load.c:
* libguile/script.c: Remove private-gc includes from non-users of
scm_getenv_int.
* libguile/Makefile.am: Adapt.
2013-11-28 11:53:57 +01:00
Andy Wingo
35164d84e0
scm_i_tag_name internal to gc.c
...
* libguile/gc.c (scm_i_tag_name): Make internal to gc.c.
* libguile/private-gc.h: Remove from here.
2013-11-28 11:46:13 +01:00
Andy Wingo
5a706f0342
More private-gc excisions
...
* libguile/private-gc.h (SCM_DOUBLECELL_ALIGNED_P): Remove; unused.
* libguile/filesys.c (MAX, MIN): Move definitions here, from
private-gc.h.
(scm_sendfile, scm_readdir): Adapt uses of SCM_MAX and SCM_MIN to use
MAX or MIN.
2013-11-28 11:43:51 +01:00
Andy Wingo
8d78304e4d
Remove unused enum policy_on_error
...
* libguile/private-gc.h (enum policy_on_error): Remove unused enum.
2013-11-28 11:37:29 +01:00
Andy Wingo
064d24093b
Tune initial heap size
...
* libguile/fluids.c (new_fluid): Don't run an explicit GC for the first
fluid.
* libguile/gc.c (DEFAULT_INITIAL_HEAP_SIZE, scm_storage_prehistory):
Enlarge from 32 kB to 512 or 1024 kB, depending on word size. Reduces
startup time by 10 or 15% by avoiding excessive
GC.
* libguile/private-gc.h: Remove SCM_DEFAULT_INIT_HEAP_SIZE_2 definition
here.
2013-11-28 11:32:08 +01:00
Andy Wingo
a0a4d859c4
Remove another GC 6.8 hack
...
* libguile/gc.c (scm_storage_prehistory): Remove hack for BDW-GC 6.8.
2013-11-28 11:05:38 +01:00
Andy Wingo
3cff108dde
Fix "include" doc typo
...
* doc/ref/api-evaluation.texi (Local Inclusion): Fix typo.
2013-11-28 10:59:42 +01:00
Andy Wingo
f88e9510f0
Use version 2.2 in manual examples
...
* doc/ref/api-evaluation.texi (Load Paths):
* doc/ref/api-options.texi (Build Config):
* doc/ref/guile-invoke.texi (Environment Variables):
* doc/ref/libguile-parallel.texi (Parallel Installations): Use 2.2 in
examples, rather than 2.0.
2013-11-28 10:57:42 +01:00
Andy Wingo
c0d928dc2b
Fix some references to objcode in the manual
...
* doc/ref/api-evaluation.texi (Compilation): Update references from
"objcode" to "rtl".
2013-11-28 10:56:55 +01:00
Andy Wingo
a5d0c135c0
Remove nonfunctional gdb interface
...
* libguile/gdb_interface.h:
* libguile/gdbint.c:
* libguile/gdbint.h: Remove. These were last modified significantly in
1997 and I think they are unused.
* libguile/guile.c: Remove use.
* libguile.h: Remove inclusion.
* libguile/Makefile.am: Remove reference.
* libguile/init.c: Remove use.
2013-11-27 22:31:00 +01:00
Andy Wingo
f689dd6982
Remove the restore-continuation-hook.
...
* libguile/vm.h:
* libguile/vm.c:
* libguile/vm-engine.c:
* module/system/vm/traps.scm:
* module/system/vm/vm.scm: Remove the unused and redundant
restore-continuation-hook.
2013-11-27 22:03:58 +01:00
Andy Wingo
36cc0b901c
Declare r6rs-ports functions
...
* libguile/r6rs-ports.h:
* libguile/r6rs-ports.c: Declare scm_unget_bytevector and
scm_i_make_transcoded_port.
2013-11-27 21:13:20 +01:00
Andy Wingo
fe8935d432
Fix uninitialized variable error in some peek-char error cases
...
* libguile/ports.c (scm_peek_char): Don't require error cases to
set *len. Fixes a bug caught by GCC whereby an EOF while reading a
multibyte character with iconv would leave len uninitialized.
2013-11-27 19:50:13 +01:00