| Commit message (Expand) | Author | Age | Files | Lines |
* | 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 Wingo | 2017-03-28 | 1 | -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 Wingo | 2016-11-16 | 1 | -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 Wingo | 2016-09-06 | 1 | -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 Wingo | 2016-08-30 | 1 | -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 Wingo | 2016-07-10 | 1 | -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 Wingo | 2016-06-09 | 1 | -1/+1 |
* | Add (ice-9 textual-ports)...* module/ice-9/textual-ports.scm: New module.
* module/Makefile.am: Add new module.
| Andy Wingo | 2016-06-08 | 1 | -0/+1 |
* | Add (ice-9 sports) module...* module/ice-9/sports.scm: New module.
* module/Makefile.am (SOURCES): Add new module.
| Andy Wingo | 2016-05-13 | 1 | -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 Wingo | 2016-04-15 | 1 | -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 Wingo | 2015-11-11 | 1 | -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 Wingo | 2015-10-23 | 1 | -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 Wingo | 2015-09-17 | 1 | -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 Wingo | 2015-07-27 | 1 | -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 Wingo | 2015-07-24 | 1 | -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 Wingo | 2015-07-24 | 1 | -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 Wingo | 2015-07-24 | 1 | -0/+1 |
* | Rename CPS2 to CPS | Andy Wingo | 2015-07-22 | 1 | -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 Wingo | 2015-07-22 | 1 | -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 Wingo | 2015-07-22 | 1 | -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 Wingo | 2015-07-16 | 1 | -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 Wingo | 2015-07-16 | 1 | -14/+0 |
* | Add CPS2 closure conversion module...* module/language/cps2/closure-conversion.scm: New module.
* module/Makefile.am: Add new file.
| Andy Wingo | 2015-07-14 | 1 | -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 Wingo | 2015-06-07 | 1 | -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 Wingo | 2015-06-05 | 1 | -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 Wingo | 2015-06-05 | 1 | -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 Wingo | 2015-06-05 | 1 | -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 Wingo | 2015-06-03 | 1 | -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 Wingo | 2015-06-03 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-06-02 | 1 | -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 Wingo | 2015-05-20 | 1 | -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 Wingo | 2015-05-20 | 1 | -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 Wingo | 2015-05-12 | 1 | -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 Wingo | 2015-05-11 | 1 | -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 Wingo | 2015-05-08 | 1 | -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 Wingo | 2015-05-08 | 1 | -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 Wingo | 2015-05-08 | 1 | -0/+7 |
* | Add "cps2" experiment...* module/Makefile.am: Add new file to makefile.
* module/language/cps/simplify2.scm: New file.
| Andy Wingo | 2015-04-08 | 1 | -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 Wingo | 2015-01-23 | 1 | -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 Wingo | 2015-01-23 | 1 | -3/+1 |
* | Merge commit '8cf2a7ba7432d68b9a055d29f18117be70375af9' | Andy Wingo | 2015-01-22 | 1 | -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-Young | 2014-12-02 | 1 | -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 Weaver | 2014-09-30 | 1 | -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 Wingo | 2014-09-29 | 1 | -1/+2 |