summaryrefslogtreecommitdiff
path: root/module/Makefile.am
Commit message (Expand)AuthorAgeFilesLines
* Plumbing changes to rename "syntax-module"...* module/ice-9/psyntax.scm (%syntax-module): Rename from syntax-module in order to make room for a new syntax-module primitive binding. * module/ice-9/psyntax-pp.scm: Regenerate. * module/ice-9/boot-9.scm: Push syntax bindings into an internal module. * module/system/syntax.scm: New file. * module/Makefile.am (SOURCES): Add system/syntax.scm. Andy Wingo2017-03-281-0/+2
* Add handle-interrupts inst and compiler pass...* libguile/vm-engine.c (vm_engine): Remove initial VM_HANDLE_INTERRUPTS call; surely our caller already handled interrupts. Add handle-interrupts opcode. * am/bootstrap.am (SOURCES): * module/Makefile.am (SOURCES): Add handle-interrupts.scm. * module/system/vm/assembler.scm (system): * module/language/cps/compile-bytecode.scm (compile-function): (lower-cps): Add handle-interrupts support. * module/language/cps/handle-interrupts.scm: New file. Andy Wingo2016-11-161-0/+1
* Add atomic boxes...* doc/ref/api-scheduling.texi (Atomics): New manual section. * libguile.h: Include atomic.h. * libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES): (DOT_X_FILES, DOT_DOC_FILES, modinclude_HEADERS): Add atomic. * libguile/atomic.c: * libguile/atomic.h: New files. * libguile/atomics-internal.h (scm_atomic_set_scm, scm_atomic_ref_scm) (scm_atomic_swap_scm, scm_atomic_compare_and_swap_scm): New facilities. * libguile/goops.c (class_atomic_box, scm_sys_goops_early_init): Add support for <atomic-box>. Remove duplicate <keyword> fetch. * libguile/init.c (scm_i_init_guile): Call scm_register_atomic_box. * libguile/print.c (iprin1): Add atomic box case. * libguile/tags.h (scm_tc7_atomic_box): New tag. * libguile/validate.h (SCM_VALIDATE_ATOMIC_BOX): New macro. * module/Makefile.am (SOURCES): Add ice-9/atomic.scm. * module/ice-9/atomic.scm: New file. * module/oop/goops.scm (<atomic-box>): New var. Andy Wingo2016-09-061-0/+1
* Add file descriptor finalizers...* doc/ref/posix.texi (Ports and File Descriptors): Document new interfaces. * libguile/filesys.c (scm_close, scm_close_fdes) * libguile/fports.c (fport_close): * libguile/ioext.c (scm_primitive_move_to_fdes): Call scm_run_fdes_finalizers. * module/ice-9/fdes-finalizers.scm: * test-suite/tests/fdes-finalizers.test: * libguile/fdes-finalizers.h: * libguile/fdes-finalizers.c: New files. * module/Makefile.am: * test-suite/Makefile.am: * libguile/Makefile.am: * libguile.h: * libguile/init.c: Wire up new files. Andy Wingo2016-08-301-0/+1
* Add meta/build-env...* meta/build-env.in: New file which sets up an environment that does not inherit GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH (unless cross-compiling). * doc/ref/Makefile.am (autoconf-macros.texi): * libguile/Makefile.am (snarf2checkedtexi): * module/Makefile.am (ice-9/psyntax-pp.go): * test-suite/standalone/Makefile.am (GUILE_INSTALL_LOCALE): * am/bootstrap.am (.scm.go): * am/guilec (.scm.go): Use build-env. * configure.ac: Create build-env. Andy Wingo2016-07-101-1/+1
* Update port documentation, rename sports to suspendable ports...* module/ice-9/suspendable-ports.scm: Rename from ice-9/sports.scm, and adapt module names. Remove exports that are not related to the suspendable ports facility; we want people to continue using the port operations from their original locations. Add put-string to the replacement list. * module/Makefile.am: Adapt to rename. * test-suite/tests/suspendable-ports.test: Rename from sports.test. * test-suite/Makefile.am: Adapt to rename. * module/ice-9/textual-ports.scm (unget-char, unget-string): New functions. * doc/ref/api-io.texi (Textual I/O, Simple Output): Flesh out documentation. (Line/Delimited): Undocument write-line, read-string, and read-string!. This is handled by (ice-9 textual-ports). (Bytevector Ports): Fix duplicated section. (String Ports): Move the note about encodings down to the end. (Custom Ports): Add explanatory text. Remove mention of C functions; they should use the C port interface. (Venerable Port Interfaces): Add text, and make documentation refer to recommended interfaces. (Using Ports from C): Add documentation. (Non-Blocking I/O): Document more fully and adapt to suspendable-ports name change. Andy Wingo2016-06-091-1/+1
* Add (ice-9 textual-ports)...* module/ice-9/textual-ports.scm: New module. * module/Makefile.am: Add new module. Andy Wingo2016-06-081-0/+1
* Add (ice-9 sports) module...* module/ice-9/sports.scm: New module. * module/Makefile.am (SOURCES): Add new module. Andy Wingo2016-05-131-0/+1
* Load port bindings in separate (ice-9 ports) module...* module/ice-9/ports.scm: New file. * am/bootstrap.am (SOURCES): Add ice-9/ports.scm. * libguile/fports.c (scm_init_ice_9_fports): New function. (scm_init_fports): Arrange for scm_init_ice_9_fports to be called via load-extension, and load snarfed things there. Move open-file definition early, to allow ports to bootstrap. * libguile/ioext.c (scm_init_ice_9_ioext): New function. (scm_init_ioext): Similarly, register scm_init_ice_9_ioext as an extension. * libguile/ports.c (scm_set_current_input_port) (scm_set_current_output_port, scm_set_current_error_port): Don't define Scheme bindings; do that in Scheme. * libguile/ports.c (scm_i_set_default_port_encoding): (scm_i_default_port_encoding, scm_i_default_port_conversion_handler): (scm_i_set_default_port_conversion_handler): Since we now init encoding early, remove the "init" flags on these encoding/strategy vars. (scm_init_ice_9_ports): New function. (scm_init_ports): Register scm_init_ice_9_ports extension, and define some bindings needed by the bootstrap. * module/Makefile.am (SOURCES): Add ice-9/ports.scm. * module/ice-9/boot-9.scm: Remove code that's not on the boot path, moving it to ice-9/ports.scm. At the end, load (ice-9 ports). * module/ice-9/psyntax.scm (include): Use close-port instead of close-input-port. * module/ice-9/psyntax-pp.scm (include): Regenerate. Andy Wingo2016-04-151-0/+1
* Add new pass to specialize "add" into "fadd" where possible...* module/language/cps/specialize-numbers.scm: New pass, to turn "add" into "fadd", and similarly for sub, mul, and div. * module/language/cps/optimize.scm: * module/Makefile.am: * bootstrap/Makefile.am: Wire up the new pass. Andy Wingo2015-11-111-0/+1
* Use a bootstrapped -O0 compiler to compile the -O2 Guile...This reduces total build time to around 30 minutes or so. * Makefile.am (SUBDIRS): Visit bootstrap/ before module/. * bootstrap/Makefile.am: New file. * configure.ac: Generate bootstrap/Makefile. * meta/uninstalled-env.in (top_builddir): Add bootstrap/ to the GUILE_LOAD_COMPILED_PATH. * module/Makefile.am: Simplify to just sort files in alphabetical order; since bootstrap/ was already compiled, we don't need to try to optimize compilation order. Although the compiler will get faster as more of the compiler itself is optimized, this isn't a significant enough effect to worry about. Andy Wingo2015-10-231-310/+263
* Remove unused (language tree-il inline) module....* module/language/tree-il/inline.scm: Remove. * module/Makefile.am (TREE_IL_LANG_SOURCES): Remove inline.scm. Andy Wingo2015-09-171-1/+0
* Loop peeling...* module/language/cps/peel-loops.scm: New pass. Only enabled if the loop has one successor. * module/language/cps/optimize.scm: Peel instead of doing LICM on higher-order CPS, then LICM on first-order CPS. * module/Makefile.am: Wire up new pass. Andy Wingo2015-07-271-0/+1
* Rotate comparisons down to loop back-edges...* module/language/cps/rotate-loops.scm: New pass. * module/Makefile.am: * module/language/cps/optimize.scm: Wire up the new pass. Andy Wingo2015-07-241-0/+1
* Loop-invariant code motion...* module/language/cps/licm.scm: New pass. * module/language/cps/optimize.scm: Wire up new pass. * module/Makefile.am: Add new file. Andy Wingo2015-07-241-0/+1
* Factor out compute-effects/elide-type-checks from dce.scm...* module/language/cps/type-checks.scm: New module. * module/language/cps/dce.scm: Use new module. * module/Makefile.am: Add new module. Andy Wingo2015-07-241-0/+1
* Rename CPS2 to CPSAndy Wingo2015-07-221-30/+27
* Remove CPS1 language...* module/language/cps.scm: * module/language/cps/compile-bytecode.scm: * module/language/cps/dfg.scm: * module/language/cps/renumber.scm: * module/language/cps/slot-allocation.scm: * module/language/cps/spec.scm: * module/language/cps/verify.scm: * module/language/cps2/compile-cps.scm: Delete. * module/Makefile.am: Remove deleted files. Andy Wingo2015-07-221-9/+1
* Slot allocation and bytecode compilation from CPS2....* module/language/cps2/compile-bytecode.scm: New file. * module/language/cps2/slot-allocation.scm: New file. * module/Makefile.am: Add new files. Andy Wingo2015-07-221-0/+2
* Reify primitives in CPS2...* module/language/cps/reify-primitives.scm: Remove. * module/language/cps2/reify-primitives.scm: New file. * module/Makefile.am: Adapt build. * module/language/cps/compile-bytecode.scm: * module/language/cps2/compile-cps.scm: Reify primitives in CPS2 instead of CPS. Andy Wingo2015-07-161-1/+1
* Remove CPS optimization passes and closure conversion...* module/language/cps/closure-conversion.scm: * module/language/cps/constructors.scm: * module/language/cps/contification.scm: * module/language/cps/cse.scm: * module/language/cps/dce.scm: * module/language/cps/effects-analysis.scm: * module/language/cps/elide-values.scm: * module/language/cps/prune-bailouts.scm: * module/language/cps/prune-top-level-scopes.scm: * module/language/cps/self-references.scm: * module/language/cps/simplify.scm: * module/language/cps/specialize-primcalls.scm: * module/language/cps/type-fold.scm: * module/language/cps/types.scm: Remove these files, obsoleted by CPS2. * module/Makefile.am: Update. Andy Wingo2015-07-161-14/+0
* Add CPS2 closure conversion module...* module/language/cps2/closure-conversion.scm: New module. * module/Makefile.am: Add new file. Andy Wingo2015-07-141-1/+2
* Add split-rec pass...* module/language/cps2/split-rec.scm: New pass. * module/language/cps2/optimize.scm: Run new pass. * module/Makefile.am: Add new pass to build. Andy Wingo2015-06-071-0/+1
* Tweaks to bootstrap build order...* module/Makefile.am (SOURCES): Since intmaps and intsets are used so much in CPS2, bump them up. Demote (language cps types). Andy Wingo2015-06-051-3/+3
* Add CPS2 verification pass...* module/language/cps2/verify.scm: New diagnostic pass. * module/Makefile.am: Add verify.scm. * module/language/cps2/optimize.scm: Wire up verification pass. Always run the pass at the end, and if a variable is set run it between passes too. Andy Wingo2015-06-051-0/+1
* Port self-references pass to CPS2...* module/language/cps2/self-references.scm: New pass, ported from CPS. * module/language/cps2/optimize.scm: Wire up the self references pass. * module/Makefile.am: Add new file. Andy Wingo2015-06-051-0/+1
* Port type-fold to CPS2...* module/language/cps2/type-fold.scm: New file, ported from CPS. * module/language/cps2/optimize.scm: Wire up type-fold. * module/Makefile.am (CPS2_LANG_SOURCES): Add language/cps2/type-fold.cps. Andy Wingo2015-06-031-0/+1
* Port CSE to CPS2...* module/language/cps2/cse.scm: New file, ported from CPS. * module/language/cps2/optimize.scm: Wire up CSE. * module/Makefile.am: Add language/cps2/cse.scm. * module/language/cps/compile-bytecode.scm (optimize): Disable prune-top-level-scopes on old CPS. It seems to not work if CSE has run beforehand. Andy Wingo2015-06-031-0/+1
* Port prune-bailouts pass to CPS2...* module/language/cps2/prune-bailouts.scm: New file. * module/language/cps2/optimize.scm: Wire up prune-bailouts pass. * module/Makefile.am (CPS2_LANG_SOURCES): Add language/cps2/prune-bailouts.scm. Andy Wingo2015-06-021-0/+1
* Port elide-values pass to CPS2...* module/language/cps2/elide-values.scm: New file. * module/language/cps2/optimize.scm (optimize): Wire up elide-values. * module/Makefile.am: Add new file. Andy Wingo2015-06-021-0/+1
* Port specialize-primcalls pass to CPS2...* module/language/cps2/specialize-primcalls.scm: New file. * module/language/cps2/optimize.scm: Wire up specialize-primcalls. * module/Makefile.am: Add new file. Andy Wingo2015-06-021-0/+1
* Port inline-constructors pass to CPS2...* module/language/cps2/constructors.scm: New file. * module/language/cps2/optimize.scm: Enable inline-constructors pass. * module/Makefile.am: Add new file to build. Andy Wingo2015-06-021-0/+1
* Factor with-cps out to separate module...* module/language/cps2/with-cps.scm: New file. * module/language/tree-il/compile-cps2.scm: Use (language cps2 with-cps). * module/Makefile.am: Add language/cps2/with-cps.scm. * .dir-locals.el: Add indentation rules for with-cps. Andy Wingo2015-06-021-1/+2
* Port contification pass to CPS2....* module/language/cps2/contification.scm: New pass, ported from CPS. Faster! * module/language/cps2/optimize.scm: Wire up contification pass. * module/Makefile.am: Add language/cps2/contification.scm. Andy Wingo2015-06-021-0/+1
* Port prune-top-level-scopes pass to CPS2...* module/language/cps2/prune-top-level-scopes.scm: Port to CPS2. * module/language/cps2/optimize.scm: Enable prune-top-level-scopes pass. * module/Makefile.am (CPS2_LANG_SOURCES): Add prune-top-level-scopes.scm. Andy Wingo2015-06-021-0/+1
* Port type inference module to CPS2...* module/Makefile.am: * module/language/cps2/types.scm: Port to CPS2. Relative to the CPS1 module, this one uses worklists, which should result in fewer visits, though it does use a different strategy for deciding when to saturate. We'll see! Andy Wingo2015-06-021-0/+1
* Port dead code elimination (DCE) pass to CPS2...* module/language/cps2/dce.scm: New file. * module/language/cps2/optimize.scm: Enable CPS2 DCE pass. * module/Makefile.am: Add language/cps2/dce.scm. Andy Wingo2015-05-201-0/+1
* Port effects analysis to CPS2...* module/Makefile.am (CPS2_LANG_SOURCES): Add effects-analysis.scm. * module/language/cps2/effects-analysis.scm: New file, based on cps/effects-analysis.scm. * module/language/cps2/utils.scm (intmap-map): (compute-defining-expressions, compute-constant-values): New helpers. Andy Wingo2015-05-201-0/+1
* Add optimization pass over CPS2...* module/language/cps2/optimize.scm: New file. * module/language/cps2/simplify.scm: New file, factored out of simplify2.scm. * module/language/cps/simplify2.scm: Remove, as it's obsolete. * module/language/cps2/compile-cps.scm: Optimize the CPS. * module/Makefile.am: Adapt for added and deleted files. Andy Wingo2015-05-121-1/+2
* Consolidate CPS2 above CPS in the compiler...This is an intermediate step. We'll replace CPS bit by bit. If it turns out to be a terrible idea we can just revert. * module/Makefile.am (TREE_IL_LANG_SOURCES): Remove compile-cps.scm. (CPS_LANG_SOURCES): Remove arities.scm. * module/language/cps/arities.scm: Remove. * module/language/tree-il/compile-cps.scm: Remove. * module/language/tree-il/spec.scm: Remove use of compile-cps.scm. * module/language/cps/compile-bytecode.scm: Remove use of arities.scm. Instead, incoming terms are expected to call their continuations with the correct number of arguments. Andy Wingo2015-05-111-2/+0
* Register up cps2 compiler with language tower...* module/language/tree-il/compile-cps2.scm (compile-cps2): Rename from compile-cps. * module/language/cps2/spec.scm: New file. * module/Makefile.am (CPS2_LANG_SOURCES): Add spec.scm. * module/language/tree-il/spec.scm (tree-il): Declare compiler to cps2. Andy Wingo2015-05-081-0/+1
* Add compiler from tree-il to cps2...* module/language/tree-il/compile-cps2.scm: New file. * module/Makefile.am: Add the file to the build. Andy Wingo2015-05-081-0/+1
* Beginnings of CPS2 language....The tentative plan is to replace CPS with CPS2, and to rename CPS2 to CPS. We will add a pass to compile tree-il to CPS2, then work from the top down to replace the CPS compiler passes. * module/language/cps2.scm: * module/language/cps2/compile-cps.scm: * module/language/cps2/renumber.scm: * module/language/cps2/utils.scm: New files. * module/Makefile.am: Add new files to build. Andy Wingo2015-05-081-0/+7
* Add "cps2" experiment...* module/Makefile.am: Add new file to makefile. * module/language/cps/simplify2.scm: New file. Andy Wingo2015-04-081-0/+1
* Fold (oop goops util) into (oop goops)...* module/oop/goops/util.scm: Removed. Instead we fold these definitions into goops.scm. * module/oop/goops/save.scm: Remove useless import of util.scm. * module/oop/goops.scm: Fold in util.scm. Since we always use add-interesting-primitive!, import (language tree-il primitives) in the header. Clean up some early comments, and use of eval-when. * module/Makefile.am: Adapt. Andy Wingo2015-01-231-1/+0
* Fold GOOPS compile and dispatch modules into main GOOPS module...* libguile/goops.c (scm_sys_invalidate_method_cache_x): Remove C interface to this internal method. Instead, internal callers are all from Scheme, so we move the implementation to Scheme. (scm_make): Dispatch to `make' in Scheme. This is an incompatible but great change, as it fulfills the common user perception that scm_make is the same as GOOPS's `make'. (scm_sys_goops_early_init): Capture `make'. (scm_no_applicable_method): Define in Scheme and capture in C. * module/Makefile.am: Remove oop/goops/compile.scm and oop/goops/dispatch.scm. * module/oop/goops/compile.scm: * module/oop/goops/dispatch.scm: Fold into goops.scm. * module/oop/goops.scm: Fold in the generic compile and dispatch modules. This eliminates a circularity that caused some eval-when shenanigans, so remove the eval-whens as well. Reimplement the boot version of `make' in Scheme, and make the <generic> `initialize' method handle invalidation instead of the generic %allocate-instance. (no-applicable-method): Define here. Import the utils module in the normal define-module block. Andy Wingo2015-01-231-3/+1
* Merge commit '8cf2a7ba7432d68b9a055d29f18117be70375af9'Andy Wingo2015-01-221-0/+1
|\
| * Implement SRFI 28: Basic Format Strings....* module/srfi/srfi-28.scm: New module. * module/Makefile.am (SRFI_SOURCES): Add srfi/srfi-28.scm. * doc/ref/srfi-modules.texi (SRFI-28): New node. Chris Jester-Young2014-12-021-0/+1
* | Merge branch 'stable-2.0'...Conflicts: benchmark-suite/benchmarks/ports.bm libguile/async.h libguile/bytevectors.c libguile/foreign.c libguile/gsubr.c libguile/srfi-1.c libguile/vm-engine.h libguile/vm-i-scheme.c module/Makefile.am module/language/tree-il/analyze.scm module/language/tree-il/peval.scm module/scripts/compile.scm module/scripts/disassemble.scm test-suite/tests/asm-to-bytecode.test test-suite/tests/peval.test test-suite/tests/rdelim.test Mark H Weaver2014-09-301-13/+4
|\|
| * Add (ice-9 unicode) module...* libguile/unicode.c: * libguile/unicode.h: * test-suite/tests/unicode.test: * module/ice-9/unicode.scm: New files. * module/Makefile.am: * libguile/Makefile.am: * test-suite/Makefile.am: * libguile/init.c: Wire new files into the build. * doc/ref/api-data.texi: Add docs. Andy Wingo2014-09-291-1/+2