summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-11-30Fix more vm-engine commentsAndy Wingo1-8/+6
* libguile/vm-engine.c: Fix more comments.
2013-11-30Remove slot-ref and slot-set! opsAndy Wingo1-28/+3
* libguile/vm-engine.c: Remove slot-ref and slot-set! ops.
2013-11-30Remove GOOPS-internal @slot-ref and @slot-set!Andy Wingo2-37/+21
* 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-30Beginning vm.texi updatesAndy Wingo1-181/+203
* doc/ref/vm.texi: Updates.
2013-11-30Fix vm-engine.c commentsAndy Wingo1-5/+6
* libguile/vm-engine.c: Fix some comments.
2013-11-30Unknown files print as (unknown file) in disassemblerAndy Wingo1-1/+1
* module/system/vm/disassembler.scm (disassemble-buffer): Print unknown files as "(unknown file)".
2013-11-30,x disassembles nested programs tooAndy Wingo1-21/+38
* module/system/vm/disassembler.scm (code-annotation): (disassemble-buffer, disassemble-addr, disassemble-program): Arrange to disassemble nested procedures. (disassemble-image): Adapt.
2013-11-30Update history.texiAndy Wingo1-27/+26
* doc/ref/history.texi (A Timeline of Selected Guile Releases, Status): Update.
2013-11-29Remove outdated section of api-memory.texiAndy Wingo1-64/+1
* doc/ref/api-memory.texi (Memory Blocks): Remove section documenting scm_must_malloc and friends.
2013-11-28Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo1-7/+6
2013-11-28Critical sections in guardians do not need to block asyncsAndy Wingo1-7/+6
* libguile/guardians.c: Critical sections here cannot cause an async_tick, so they do not need to block asyncs.
2013-11-28Merge commit 'd364a8971828e38e8f9112b711066f4962bb400e'Andy Wingo2-40/+0
Conflicts: libguile/deprecated.h libguile/gc.c
2013-11-28Merge commit 'e7bd20f7d9b2110fdc0fa25db5a2bfe6b2214923'Andy Wingo1-34/+52
2013-11-28Merge commit '17330398d50524058c2ef488bd21ac5ec9c8b6e8'Andy Wingo1-24/+21
2013-11-28Merge commit 'a38024baaa32d1a6d91fdc81388c88bbb926c3ae'Andy Wingo3-22/+32
Conflicts: libguile/ports.h
2013-11-28Merge commit '2437c7b2e8b4ab7786847ee1ce0b59e446a70fe2'Andy Wingo1-2/+16
Conflicts: libguile/guardians.c
2013-11-28Merge commit '8571dbde639e0ee9885bad49c9e180474bd23646'Andy Wingo12-30/+359
Conflicts: libguile/procprop.c
2013-11-28Merge commit '750ac8c592e792e627444f476877f282525b132e'Andy Wingo10-138/+97
Conflicts: .gitignore libguile/deprecated.c
2013-11-28Merge commit 'c61be45084d04b1db792b7e232f5bd77099f3287'Andy Wingo0-0/+0
Conflicts: libguile/ports.c
2013-11-28Merge commit 'd360671c1cca335600079f1c5714572d1c2e676d'Andy Wingo1-1/+1
2013-11-28Deprecate gc-live-object-statsAndy Wingo4-39/+20
* 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-28Avoid needless GC on startup due to scm_gc_register_allocationAndy Wingo1-1/+1
* libguile/gc.c (bytes_until_gc): Initialize to DEFAULT_INITIAL_HEAP_SIZE, to avoid forced GC on the first mallocation.
2013-11-28Remove private-gc.hAndy Wingo9-60/+22
* 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-28scm_i_tag_name internal to gc.cAndy Wingo2-3/+2
* libguile/gc.c (scm_i_tag_name): Make internal to gc.c. * libguile/private-gc.h: Remove from here.
2013-11-28More private-gc excisionsAndy Wingo2-18/+14
* 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-28Remove unused enum policy_on_errorAndy Wingo1-3/+0
* libguile/private-gc.h (enum policy_on_error): Remove unused enum.
2013-11-28Tune initial heap sizeAndy Wingo3-15/+9
* 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-28Remove another GC 6.8 hackAndy Wingo1-7/+0
* libguile/gc.c (scm_storage_prehistory): Remove hack for BDW-GC 6.8.
2013-11-28Fix "include" doc typoAndy Wingo1-1/+1
* doc/ref/api-evaluation.texi (Local Inclusion): Fix typo.
2013-11-28Use version 2.2 in manual examplesAndy Wingo4-16/+16
* 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-28Fix some references to objcode in the manualAndy Wingo1-5/+5
* doc/ref/api-evaluation.texi (Compilation): Update references from "objcode" to "rtl".
2013-11-27Remove nonfunctional gdb interfaceAndy Wingo7-473/+1
* 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-27Remove the restore-continuation-hook.Andy Wingo5-33/+4
* 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-27Declare r6rs-ports functionsAndy Wingo2-1/+4
* libguile/r6rs-ports.h: * libguile/r6rs-ports.c: Declare scm_unget_bytevector and scm_i_make_transcoded_port.
2013-11-27Fix uninitialized variable error in some peek-char error casesAndy Wingo1-1/+1
* 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-27Declare scm_i_open_file to silence a warningAndy Wingo1-0/+2
* libguile/fports.c (scm_i_open_file): Declare.
2013-11-27Remove generalized vector interface; deprecated in 2.0 already.Andy Wingo1-83/+0
* libguile/deprecated.c: Remove the generalized-vector interface, deprecated since 2.0.8.
2013-11-27Declare scm_nil_pAndy Wingo1-1/+2
* libguile/boolean.h: Declare scm_nil_p.
2013-11-26Build psyntax-pp serially after eval.go.Andy Wingo1-17/+18
* module/Makefile.am: Arrange to build psyntax-pp.go in serial mode, after eval.go. Before the expander is compiled, expanding all the Scheme files dominates compile-time, even for larger files like psyntax-pp.scm. If we compile psyntax in parallel with other files, it could be one of the other files finishes first, leading to two consecutive compiles that have to use an uncompiled psyntax expander. Ordering the compilation minimizes total real and user time, at least locally on a 4-core machine. Also take the opportunity to shuffle compile order for the rest of the Scheme files, to build parts of the RTL compiler early.
2013-11-26Contification converges more quicklyAndy Wingo1-10/+47
* module/language/cps/contification.scm (compute-contification): Converge more quickly by using the information we compute within a compute-contification pass.
2013-11-25Compute-contification also visits bodyAndy Wingo1-3/+6
* module/language/cps/contification.scm (compute-contification): If we decide to contify, don't forget to visit the body. Should make contification converge faster.
2013-11-23Make (ice-9 popen) thread-safe.Mark H Weaver1-34/+52
Fixes <http://bugs.gnu.org/15683>. Reported by David Pirotte <david@altosw.be>. * module/ice-9/popen.scm: Import (ice-9 threads) and (srfi srfi-9). (<pipe-info>): New record type. (port/pid-table): Mark as deprecated in comment. (port/pid-table-mutex): New variable. (open-pipe*): Store the pid in the pipe-info record, and store the pipe-info as a port property. Guard the pipe-info instead of the port. Lock 'port/pid-table-mutex' while mutating 'port/pid-table'. (fetch-pid): Removed. (fetch-pipe-info): New procedure. (close-process-quietly): Removed. (close-pipe): Use 'fetch-pipe-info' instead of 'fetch-pid'. Clear the pid from the pipe-info. Improve error messages. (reap-pipes): Adapt to the fact that the pipe-info is now guarded instead of the port. Incorporate the 'waitpid' code that was previously in 'close-process-quietly', but let the port finalizer close the port. Clear the pid from the pipe-info.
2013-11-23Stylistic improvements for (ice-9 popen).Mark H Weaver1-24/+21
* module/ice-9/popen.scm (close-process, close-process-quietly): Accept 'port' and 'pid' as separate arguments. Improve style. (close-pipe, read-pipes): Improve style.
2013-11-23Make port properties accessible from Scheme.Mark H Weaver3-21/+31
* libguile/ports.c (scm_i_port_alist, scm_i_set_port_alist_x): Removed. (scm_i_port_property, scm_i_set_port_property_x): New procedures, available from Scheme as '%port-property' and '%set-port-property!'. * libguile/ports.h (scm_i_port_alist, scm_i_set_port_alist_x): Removed. (scm_i_port_property, scm_i_set_port_property_x): New prototypes. * libguile/read.c (set_port_read_option, init_read_options): Adapt to use scm_i_port_property and scm_i_set_port_property_x.
2013-11-23Make guardians thread-safe.Mark H Weaver1-2/+16
* libguile/guardians.c (t_guardian): Add mutex. (finalize_guarded, scm_i_guard, scm_i_get_one_zombie): Lock mutex and block system asyncs during critical sections. (scm_make_guardian): Initialize mutex.
2013-11-23Block system asyncs while 'overrides_lock' is held.Mark H Weaver1-2/+8
* libguile/procprop.c (scm_set_procedure_property_x): Block system asyncs while overrides_lock is held. Use dynwind block in case an exception is thrown.
2013-11-23Add mutex locking functions that also block asyncs.Mark H Weaver3-0/+33
* libguile/async.h (scm_i_pthread_mutex_lock_block_asyncs, scm_i_pthread_mutex_unlock_unblock_asyncs): New macros. * libguile/threads.c (do_unlock_with_asyncs): New static helper. (scm_i_dynwind_pthread_mutex_lock_block_asyncs): New function. * libguile/threads.h (scm_i_dynwind_pthread_mutex_lock_block_asyncs): Add prototype.
2013-11-22Convert test-suite/tests/exceptions.test to use hygienic macros.Chris K. Jester-Young1-12/+14
* test-suite/tests/exceptions.test (push): New syntax parameter. (throw-test): Convert to a syntax-rules macro, using syntax parameters to support the otherwise-unhygienic use of "push".
2013-11-22Expandable stacks.Andy Wingo2-28/+123
* libguile/vm-engine.c (CHECK_OVERFLOW): Call vm_expand_stack, not vm_error_stack_overflow. * libguile/vm.c (hard_max_stack_size, default_max_stack_size): Recast #defines as locals. Have both hard and soft stack limits. (initialize_default_stack_size): Set soft stack limit from GUILE_STACK_SIZE. (expand_stack, vm_expand_stack): Support for expanding stacks as needed. Whee! (make_vm): Adapt limits. (scm_call_n): Expand stack if needed. * libguile/vm.h (struct scm_vm): Add max_stack_size member.
2013-11-22VM copes with moving FPAndy Wingo2-49/+56
* libguile/_scm.h (SCM_ASYNC_TICK_WITH_GUARD_CODE): New macro. * libguile/vm-engine.c (VM_HANDLE_INTERRUPTS): Restore FP after ticking. (CACHE_FP): New macro. (CHECK_OVERFLOW): Use CACHE_FP. (BR_ARITHMETIC, RETURN_EXP, RETURN_ONE_VALUE, BINARY_INTEGER_OP): (call, return-values, subr-call, foreign-call) (resolve, define!, toplevel-box, module-box): Restore the FP from the vp where needed.