summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2009-04-17guile-tools is a scheme script that loads scheme modulesAndy Wingo22-4078/+0
* meta/guile-tools: Changed to be a scheme script. Instead of looking for executables in a "scripts dir", we just look for modules in (scripts), and load the modules directly. * module/Makefile.am: * module/scripts/: Move the scripts into module/ so they can be compiled. Rename scripts from `foo' to `foo.scm'. * libguile/Makefile.am: Invoke the snarf->texi code via guile-tools. * configure.in: * .gitignore: Update for changes.
2009-04-16support expression-by-expression compilationAndy Wingo1-32/+29
* module/language/ghil.scm (unparse-ghil): Fix unparsing of quasiquoted expressions. * module/language/ghil/spec.scm (join): Define a joiner for GHIL. * module/language/scheme/compile-ghil.scm (cenv-ghil-env): Expand the definition of a CENV so it can have an actual ghil-env, if available. (compile-ghil): Return the actual ghil env in the cenv. * module/system/base/compile.scm (compile-file): Rewrite. `output-file' is now a keyword argument, along with the new kwargs `env' and `from'. We now allow exceptions to propagate up, and instead of printing the output file to the console, we return a string corresponding to its location. (compile-and-load): Use read-and-compile. (compile-fold): Thread around the cenv as well. Return all three values. (find-language-joint, read-and-compile): New exciting helpers. The idea is that compiling a file should be semantically equivalent to compiling each expression in it, one by one. Compilation can have side effects, e.g. affecting the current language or the current reader. So what we do is find a point in the compilation path at which different expressions of a given language can be joined into one. Expressions from the source language are compiled to the joint language, then joined and compiled to the target. (compile): Just return the first value from compile-fold. * module/system/base/language.scm (language-joiner): New optional field. * scripts/compile: Rework for changes to compile-file.
2009-02-21Add `-o'/`--output' option to "guile-tools compile".Ludovic Courtès1-3/+24
* module/system/base/compile.scm (compile-file): Add optional OUTPUT-FILE argument. * scripts/compile (fail): New procedure. (%options): Add `-o'/`--output' option. (compile): Handle `-o'.
2009-02-20Add `-L'/`--load-path' option to "guile-tools compile".Ludovic Courtès1-2/+15
* scripts/compile (%options): Add `-L'/`--load-path'. (parse-args): Have `load-path' default to '(). (compile): Handle `--load-path' option.
2009-02-20Change "guile-tools compile" to use SRFI-37 to process options.Ludovic Courtès1-17/+50
* scripts/compile (%options): Rewrite in SRFI-37 style. (parse-args): New procedure. (compile): Update to SRFI-37.
2009-01-30remove conv.scm, disasm.scm; objcode->bytecode renameAndy Wingo1-2/+2
* module/system/vm/Makefile.am: * module/system/vm/conv.scm: * module/system/vm/disasm.scm: Remove these modules, as their functionality is now in (language ...). * libguile/objcodes.h: * libguile/objcodes.c: * module/system/vm/objcode.scm: Rename objcode->u8vector to objcode->bytecode. * module/system/vm/frame.scm: * module/language/bytecode/spec.scm: Fix for objcode->bytecode. * scripts/disassemble: * testsuite/run-vm-tests.scm: Fix for (system vm disasm) removal. * module/system/repl/command.scm: Use the right disassembler.
2008-10-30recompiling with compile environments, fluid languages, cleanupsAndy Wingo1-17/+3
* ice-9/boot-9.scm (compile-time-environment): Remove definition from boot-9 -- instead, autoload it and `compile' from (system base compile). * libguile/objcodes.h: * libguile/objcodes.c (scm_objcode_to_program): Add an optional argument, `external', the external list to set on the returned program. * libguile/vm-i-system.c (externals): New instruction, returns the external list. Only used by (compile-time-environment). * libguile/vm.c (scm_load_compiled_with_vm): Adapt to scm_objcode_to_program change. * module/language/scheme/translate.scm (translate): Actually pay attention to the environment passed as an argument. (custom-transformer-table): Expand out (compile-time-environment) to something that can be passed to `compile'. * module/system/base/compile.scm (*current-language*): Instead of hard-coding `scheme' in various places, use a current language fluid, initialized to `scheme'. (compile-file, load-source-file): Adapt to *current-language*. (load-source-file): Ada (scheme-eval): Removed, no one used this. (compiled-file-name): Don't hard-code "scm" and "go"; instead use the %load-extensions and %load-compiled-extensions. (cenv-module, cenv-ghil-env, cenv-externals): Some accessors for compile-time environments. (compile-time-environment): Here we define (compile-time-environment) to something that will return #f; the compiler however produces different code as noted above. (compile): New function, compiles an expression into a thunk, then runs the thunk to get the value. Useful for procedures. The optional second argument can be either a module or a compile-time-environment; in the latter case, we can recompile even with lexical bindings. (compile-in): If the env specifies a module, set that module for the duration of the compilation. * module/system/base/syntax.scm (%compute-initargs): Fix a bug where the default value for a field would always replace a user-supplied value. Whoops. * module/system/il/ghil.scm (ghil-env-dereify): New function, takes the result of ghil-env-reify and turns it back into a GHIL environment. * scripts/compile (compile): Remove some of the tricky error handling, as the library procedures handle this for us. * test-suite/tests/compiler.test: Add a test for the dynamic compilation bits.
2008-09-30Merge commit 'origin/master' into vmAndy Wingo3-4/+2
Conflicts: doc/Makefile.am ice-9/Makefile.am libguile/gc.c
2008-09-12Add `ChangeLog-2008' files to the distribution.Ludovic Courtès1-2/+2
2008-09-12Rename `ChangeLog' files to `ChangeLog-2008'.Ludovic Courtès1-0/+0
2008-09-11Remove `.cvsignore' files.Ludovic Courtès1-2/+0
2008-09-09final de-:prefixificationAndy Wingo1-9/+7
* scripts/compile: Don't (read-set! keywords 'prefix) here either.
2008-08-27move guilec and guile-disasm to be guile-tools scriptsAndy Wingo3-0/+135
* .gitignore: Some touchups. * configure.in: * src/.cvsignore: * src/Makefile.am: * Makefile.am: No more src/. * scripts/compile: * scripts/disassemble: Moved here from src/ and changed into guile-tools scripts. * scripts/Makefile.am: Add the new scriptes. * guilec.mk: Adapt to new way of invoking the compiler.
2006-04-16merge from 1.8 branchKevin Ryde18-18/+18
2005-05-23The FSF has a new address.Marius Vollmer18-36/+36
2004-11-09*** empty log message ***Marius Vollmer1-0/+7
2004-11-09(process-multiline-directive): Allow the fname attribute to a sequenceMarius Vollmer1-2/+2
of strings and append them all to form the fname. This is needed for string literals like "u8""vector?".
2004-09-08*** empty log message ***Marius Vollmer1-0/+4
2004-09-08(scripts_sources): Added snarf-guile-m4-docs.Marius Vollmer1-17/+18
2004-08-06*** empty log message ***Kevin Ryde1-0/+5
2004-08-06(parse-message): Correction to headerKevin Ryde1-2/+2
continuation, loop with read-line not cdr lines.
2002-12-09*** empty log message ***Rob Browning1-0/+4
2002-12-09* Makefile.am (subpkgdatadir): VERSION -> GUILE_EFFECTIVE_VERSION.Rob Browning1-1/+1
2002-10-26Make (scripts lint) announce resolved module name.Neil Jerram2-0/+5
2002-10-05*** empty log message ***Marius Vollmer1-0/+5
2002-10-05(end-multiline): Use '*function-name*' instead of nonexisting 'name'.Marius Vollmer1-2/+2
2002-10-05*** empty log message ***Rob Browning1-0/+4
2002-10-05* summarize-guile-TODO (as-leaf): make #\: a char-set.Rob Browning1-1/+2
2002-05-19*** empty log message ***Thien-Thi Nguyen1-0/+5
2002-05-19(group-diff): Also output +N and -N adds and subs details, respectively.Thien-Thi Nguyen1-4/+16
2002-05-13*** empty log message ***Thien-Thi Nguyen1-0/+2
2002-05-13(scan-api): No longer include timestamp.Thien-Thi Nguyen1-2/+1
2002-05-13*** empty log message ***Thien-Thi Nguyen1-0/+2
2002-05-13(scripts_sources): Add api-diff and read-rfc822.Thien-Thi Nguyen1-1/+3
2002-05-13*** empty log message ***Thien-Thi Nguyen1-0/+4
2002-05-13Initial revision.Thien-Thi Nguyen1-0/+133
2002-05-12*** empty log message ***Thien-Thi Nguyen1-0/+9
2002-05-12Use modules (ice-9 format), (ice-9 getopt-long).Thien-Thi Nguyen1-33/+116
Autoload module (srfi srfi-13). No longer export `diff-alists'. (diff, diff-alists, display-list): Remove. (put, get, read-api-alist-file, hang-by-the-roots, diff?, diff+note!, group-diff): New. (api-diff): Rewrite.
2002-05-11*** empty log message ***Thien-Thi Nguyen1-0/+5
2002-05-11(scan-api): Fix bug: No longer omit `C' and `Scheme' inThien-Thi Nguyen1-4/+5
groups in the presence of the grouper.
2002-05-10*** empty log message ***Thien-Thi Nguyen1-0/+10
2002-05-10(add-props): New proc.Thien-Thi Nguyen1-36/+50
(make-grok-proc): Renamed from `make-grok-hook'. (make-members-proc): Renamed from `make-members-hook'. (make-grouper): Renamed from `make-grouping-hook'. Update callers. Add handling for multiple grouping-defs files. (scan-api): Add handling for multiple grouping-defs files. Cache `symbol->string' result; adjust `sort' usage.
2002-05-09*** empty log message ***Thien-Thi Nguyen1-0/+4
2002-05-09(scan-C!): Use more robust regexp.Thien-Thi Nguyen1-1/+1
2002-05-08*** empty log message ***Thien-Thi Nguyen1-0/+3
2002-05-08Remove top-level `debug-enable' form.Thien-Thi Nguyen1-2/+0
2002-05-08Add TODO comment; nfc.Thien-Thi Nguyen1-0/+3
2002-05-08*** empty log message ***Thien-Thi Nguyen1-0/+1
2002-05-08(scan-api): Handle case where `grouping-hook' is #f.Thien-Thi Nguyen1-2/+4
2002-05-08*** empty log message ***Thien-Thi Nguyen1-0/+6