| Commit message (Expand) | Author | Age | Files | Lines |
* | elisp: boot: Replace removed FRAME-PROCEDURE with FRAME-PROCEDURE-NAME....This is a follow-up to commit e139accb530c970c989b3d53d5a8a22fd75437fc.
* module/language/elisp/boot.el (backtrace-frame, guile-backtrace): Use
FRAME-PROCEDURE-NAME instead of FRAME-PROCEDURE.
wip-elisp | Ricardo Wurmus | 2020-05-19 | 1 | -8/+2 |
* | loader: Handle interned constants as well as plain bytevectors....This is a follow-up to commit b04e79283ada9a6af05552dda6446a0934c0fbe2.
* libguile/loader.c (scm_load_thunk_from_memory): Extract constants only
if the object is a pair.
| Ricardo Wurmus | 2020-05-17 | 1 | -6/+15 |
* | temporarily disable elisp exception tests...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* test-suite/tests/elisp-compiler.test ("catch without exception" test)
("catch and throw" test, "unwind-protect" test): Switch from pass-if
to expect-fail.
| Robin Templeton | 2020-04-04 | 1 | -3/+3 |
* | ignore 'expect-fail' forms in elisp tests...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* test-suite/tests/elisp-compiler.test (compile-test): Update to support
expect-fail.
| Robin Templeton | 2020-04-04 | 1 | -1/+3 |
* | update cross-compilation test...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* test-suite/tests/cross-compilation.test (test-target): Update it.
| Robin Templeton | 2020-04-04 | 1 | -2/+2 |
* | use standard evaluator...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm: Remove import of
"(language tree-il eval)".
(defmacro): Use standard "eval".
* module/language/elisp/runtime.scm: Remove import of "(language tree-il eval)".
| Robin Templeton | 2020-04-04 | 2 | -3/+1 |
* | guile-backtrace function...* module/language/elisp/boot.el (guile-backtrace): New function
extracted from `backtrace'.
(backtrace): Use it.
| Robin Templeton | 2020-04-04 | 1 | -2/+5 |
* | use guile eval for elisp tree-il...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el (eval): Update with simplified definition.
* module/language/elisp/compile-tree-il.scm: Import "(language tree-il eval)".
(eval-when-compile): Use eval-elisp.
(defmacro): Use eval-tree-il.
* module/language/elisp/runtime.scm: Import "(language tree-il eval)".
(eval-elisp): Use "eval" to evaluate compiled form within current-module.
| Robin Templeton | 2020-04-04 | 3 | -9/+6 |
* | deprecated eval-when situations...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm (eval-when): Update.
| Robin Templeton | 2020-04-04 | 1 | -3/+6 |
* | execute top level require forms...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el (require): New compiler macro.
| Robin Templeton | 2020-04-04 | 1 | -0/+4 |
* | top level fixes...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm (compile-pair): Use
compile-expr-1 instead of compile-expr.
| Robin Templeton | 2020-04-04 | 1 | -2/+2 |
* | only evaluate top-level macro definitions...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm (defmacro): Check to see
whether toplevel? is true before compiling a macro.
| Robin Templeton | 2020-04-04 | 1 | -3/+4 |
* | degenerate let forms...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm (let): Conditionally invoke
make-body within make-dynlet or just on its own depending on whether
or not dynamic? is null?.
| Robin Templeton | 2020-04-04 | 1 | -6/+8 |
* | eval-when...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm (progn): Use compile-expr-1
instead of compile-expr.
(toplevel?, compile-time-too?): New fluids.
(eval-when): New special form.
(compile-expr, compile-expr-1): compile-expr is renamed to
compile-expr-1, and compile-expr is now a procedure which, if
fulid-ref of toplevel? is true, will call compile-expr-1 with
toplevel? fulid bound to #f. Otherwise, continue with compile-expr-1.
(compile-tree-il): Set toplevel? and compile-time-too? fluids to #t
during evaluation.
| Robin Templeton | 2020-04-04 | 1 | -4/+41 |
* | fset macro...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el (fset): Update to handle macros.
| Robin Templeton | 2020-04-04 | 1 | -0/+12 |
* | use defsubst...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el (null, consp, listp, car, cdr): Update
to use defsubst.
(atom): New variable, using defsubst.
| Robin Templeton | 2020-04-04 | 1 | -5/+13 |
* | defsubst...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el (defsubst): New macro.
| Robin Templeton | 2020-04-04 | 1 | -0/+13 |
* | compiler macros...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el (%define-compiler-macro): New macro.
* module/language/elisp/compile-tree-il.scm: New function.
(compile-pair): Update to handle %compiler-macro condition.
| Robin Templeton | 2020-04-04 | 2 | -0/+24 |
* | defconst, defvar: proclaim special at compile-time...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm (defconst, defvar): Use
proclaim-special!.
| Robin Templeton | 2020-04-04 | 1 | -0/+3 |
* | elisp @@ macro...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el (@@): New macro.
| Robin Templeton | 2020-04-04 | 1 | -0/+3 |
* | compile-elisp fn...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/runtime.scm (compile-elisp): New procedure.
| Robin Templeton | 2020-04-04 | 1 | -0/+5 |
* | fix symbol-function...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/runtime.scm (symbol-function): Adjust function.
| Robin Templeton | 2020-04-04 | 1 | -4/+4 |
* | restore special operator handling...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/boot.el
(progn, eval-when-compile, if, defconst, defvar, setq, let, flet)
(labels, let*, function, defmacro, quote): Removed.
* module/language/elisp/compile-tree-il.scm (special-operators): Removed.
(compound-pair): Use find-operator to check if a 'special-operator
rather than checking the now removed special-operators table.
* module/language/elisp/runtime.scm (defspecial): Update to use
set-symbol-function!
| Robin Templeton | 2020-04-04 | 3 | -44/+7 |
* | define-module for elisp special modules...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/runtime.scm (value-slot-module)
(function-slot-module, plist-slot-module): Update to set #:pure to #t.
| Robin Templeton | 2020-04-04 | 1 | -3/+3 |
* | constant-interning fix...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/system/vm/assembler.scm (intern-constant): Switch from using
vector-ref/immediate to make-short-immediate.
| Robin Templeton | 2020-04-04 | 1 | -1/+2 |
* | defvar affects default value...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/compile-tree-il.scm (defvar): Refactor appropriately.
| Robin Templeton | 2020-04-04 | 1 | -2/+5 |
* | symbol default value procedures...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/runtime.scm:
(symbol-default-bound?, symbol-default-value, set-symbol-default-value!):
New procedure aliases. Export their symbols.
(emacs!): Update to accept new parameters dref, dset, dboundp.
| Robin Templeton | 2020-04-04 | 1 | -1/+13 |
* | read nil/t as #nil/#t...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/lexer.scm (lex): Update to handle #nil / #t.
| Robin Templeton | 2020-04-04 | 1 | -12/+18 |
* | elisp updates...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/elisp/bindings.scm (get-lexical-binding)
(get-function-binding): Use cadr instead of fluid-ref on slot.
(with-fluids**): New procedure.
(with-symbol-bindings, with-function-bindings): Use with-fluids**.
Also stop using "make-fluid", use "(list #f #f)" instead as default
lexical-bindings hashtable value.
(with-lexical-bindings): Drop the error checking for invalid targets.
* module/language/elisp/boot.el (defun, save-excursion)
(save-current-buffer, save-restriction, track-mouse, setq-default)
(catch, condition-case): New macros.
(omega, eval, gensym, interactive, autoload-do-load, fset, prin1)
(backtrace-frame, backtrace, %set-eager-macroexpansion-mode): New functions.
(null, consp, listp, car, cdr, make-symbol, signal): Wrap in eval-and-compile.
(prog1, cond, or, while): Update to make use of gensym.
(unwind-protect): Switch from funcall to %funcall.
(%functionp): Rename from functionp.
(%indirect-function): Update to use %functionp instead of functionp.
Add check for if object is null, signaling void-function. Instead of
calling symbol-function directly, call via %funcall from the module
"(language elisp runtime)".
(fset): Significant additions and refactoring.
(gload): Renamed from fload.
(defvaralias, nthcdr, nth, eq): Move functions to a different location.
(eq): Also stop using null.
(dolist): Remove quasiquoting, build list manually.
(random): Fix indentation.
(progn, eval-when-compile, if, defconst, defvar, setq, let, flet)
(labels, let*, function, defmacro, quote): Protect as special
operators by raising error if invoked as a function.
* module/language/elisp/compile-tree-il.scm: Import "(ice-9 format)".
Export compile-%function.
(lexical-binding, handle-var-def, defun, valid-symbol-list-arg?)
(process-options!): Remove.
(reference-variable): Adjust functions passed to access-variable.
(global?): Drop module parameter, use value-slot instead.
(ensure-globals!, set-variable!, parse-body-1, parse-lambda-list)
(compile-lambda, defconst, defvar, let, let*, compile-pair): Refactor.
(reference-function): Use '(elisp-functions) instead of function-slot.
(bind-lexically?): Drop module parameter, simplify.
(make-dynlet): Switch from using make-primcall to make-call.
(find-operator): Switch from using resolve-interface/resolve-module
to using function-slot.
(if, defconst, defvar, let, let*, flet, labels, guile-ref)
(guile-private-ref, guile-primitive, defmacro, `, quote, %funcall)
(%set-lexical-binding-mode): Add error checking.
(setq): Pass in args to report-error.
(function): Simplified, now calling %function.
(%function): New function, based on prior "function". Refactor, including
adding support for matching against a closure.
(%set-lexical-binding-mode): Switch from using fluid-set! to
set-lexical-binding-mode.
(special-operators): New variable. Build from following for-each
statement.
(compile-tree-il): Drop call to "process-options!"
* module/language/elisp/lexer.scm: Import "(language elisp runtime)".
(lex): Switch from using "list->string" to "make-lisp-string".
* module/language/elisp/runtime.scm: Use modules "(ice-9 format)",
"(system base compile)".
Remove from export list list, removing ensure-fluid!, symbol-fluid!,
set-symbol-fluid!. Add to export list ensure-dynamic!, symbol-name,
symbol-plist, set-symbol-plist!, bind-symbol, symbol-desc, proclaim-symbol!
special? emacs! unbound, lexical-binding?, set-lexical-binding-mode,
log!, eval-elisp, local-eval-elisp, make-lisp-string, lisp-string?
(make-list-string, lisp-string?) New function aliases.
(value-slot-module, function-slot-module): Adjust module resolution.
(nil_, t_): New variables.
(ensure-fluid!, symbol-fluid, set-symbol-fluid!): Removed.
(lexical-binding, unbound): New variables.
(lexical-binding?, set-lexical-binding-mode, unbound, dynamic?)
(make-dynamic, dynamic-ref, dynamic-set!, dynamic-unset!)
(dynamic-bound?, dynamic-bind, ensure-present!, ensure-desc!)
(schemify, symbol-name, symbol-desc, ensure-dynamic!, symbol-dynamic)
(set-symbol-plist!, special?, proclaim-special!, emacs!, eval-elisp)
(make-string): New procedures.
(symbol-value): Use dynamic-ref! instead of fluid-ref!.
(set-symbol-value!): Use dynamic-set! instead of fluid-set!.
(symbol-function, set-symbol-function!, symbol-bound?)
(symbol-fbound?, makunbound!, fmakunbound!): Refactor, including
adjusting how module resolution is being done.
* module/language/elisp/spec.scm: Import module "(system vm vm)".
Setup elisp-symbols, elisp-functions, elisp-plists.
Use "set-default-vm-engine!" and "set-vm-engine!" to be set to
'debug.
(elisp): Comment out joiner.
| Robin Templeton | 2020-04-04 | 6 | -263/+583 |
* | guile-snarf fix...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* libguile/guile-snarf.in (modern_snarf): Adjusted.
| Robin Templeton | 2020-04-04 | 1 | -1/+2 |
* | prefer compilers earlier in list...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/system/base/compile.scm (find-language-joint): Change order of cond.
| Robin Templeton | 2020-04-04 | 1 | -2/+2 |
* | allow arbitrary constants in cps...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/language/cps/types.scm (constant-type): No longer error
if type not determined. Return &all-types instead.
| Robin Templeton | 2020-04-04 | 1 | -2/+1 |
* | guile-private-ref...* module/language/elisp/compile-tree-il.scm (compile-guile-private-ref):
New special operator.
| BT Templeton | 2020-04-04 | 2 | -0/+8 |
* | multiple obarrays...* libguile/symbols.c (lookup_uninterned_symbol)
(lookup_interned_latin1_symbol, lookup_interned_utf8_symbol)
(scm_i_str2symbol): Take an `obarray' argument. All callers changed.
(scm_make_obarray, scm_find_symbol, scm_intern, scm_unintern)
(scm_obarray_for_each): New functions.
| BT Templeton | 2020-04-04 | 2 | -16/+87 |
* | check symbols constants uninterned...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* module/system/vm/assembler.scm (intern-constant, link-data):
Update to check "symbol-interned?".
| Robin Templeton | 2020-04-04 | 1 | -1/+1 |
* | intern arbitrary constants...(Best-ability ChangeLog annotation added by Christopher Allan Webber.)
* libguile/loader.c (load_thunk_from_memory): Refactor, adding
"constants" argument and passing to "init" if appropriate.
(load_thunk_from_file): Call "load-thunk-from-memory" with
"constants" set to #f.
(scm_load_thunk_from_memory): Instead of a bytevector, accept
a cons of "(bytevector . constants)", where constants is either
a vector or #f. Pass this into "load_thunk_from_memory".
* module/language/bytecode/spec.scm: Adapt printer.
* module/language/cps/compile-bytecode.scm (compile-bytecode):
New variable.
* module/system/repl/command.scm (disassemble):
Adapt to expect pair which includes bytevector as its car.
* module/system/vm/assembler.scm <asm>: Add "to-file?" slot.
(fresh-block): New variable.
(make-assembler): Adapt to expect "to-file?" keyword argument.
(intern-constant): Support "asm-to-file?" in checks.
(emit-init-constants, link-data): Likewise.
(link-assembly): Update logic for handling "(bytevector . constants)"
pair, as well as the expectations of its invocation by compile-bytecode.
| Robin Templeton | 2020-04-04 | 5 | -16/+64 |
* | Remove CFLAGS from snarfcppopts....libguile/Makefile.am (snarfcppopts): Remove CFLAGS
| Robin Templeton | 2020-04-04 | 1 | -1/+1 |
* | Fix fixpoint computation in compute-significant-bits...* module/language/cps/specialize-numbers.scm (preserve-eq?): New
helper.
(sigbits-union): Use the new helper. Fixes bugs.gnu.org/38486.
Thanks to Zack Marvel for the bug report and Matt Wette for tracking
it down.
| Andy Wingo | 2020-03-23 | 1 | -2/+23 |
* | Revert "Fix build on platforms where the stack grows upwards."...This patch was only meant to apply to the 3.0 branch.
| Andy Wingo | 2020-03-13 | 1 | -1/+1 |
* | Bump version for Guile 2.2.7....* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
(LIBGUILE_INTERFACE_REVISION): Increment.
| Ludovic Courtès | 2020-03-07 | 1 | -2/+2 |
* | Update NEWS....* NEWS: Update.
| Ludovic Courtès | 2020-03-07 | 1 | -1/+56 |
* | Bump user-visible copyright years to 2020...* module/ice-9/command-line.scm (version-etc):
* module/scripts/compile.scm (show-version): Bump to 2020.
| Andy Wingo | 2020-03-07 | 2 | -4/+4 |
* | Actually run '00-repl-server.test'....This is a followup to ddcab06f20525d975503d8d9611e02021fb0dff1. Until
now the tests would always be marked as unresolved because TMPDIR was
removed before the client and server had been started.
* test-suite/tests/00-repl-server.test (call-with-repl-server): Remove
initial call to 'rmdir'. Add calls to 'delete-file' and 'rmdir' in the
unwind handler.
| Ludovic Courtès | 2020-03-07 | 1 | -1/+2 |
* | Fix build on platforms where the stack grows upwards.... * libguile/continuations.c (scm_dynthrow): Fix missing mra
parameter to grow_stack for SCM_STACK_GROWS_UP.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| John Paul Adrian Glaubitz | 2020-02-12 | 1 | -1/+1 |
* | Handle GMP allocations through libgc and remove bignum finalizers....This significantly speeds up loads that create lots of bignums, like
(language cps slot-allocation) for files with many top-level
definitions. Compiling such a file is typically 2.5 times faster.
See <https://lists.gnu.org/archive/html/guile-devel/2020-02/msg00023.html>.
* libguile/numbers.c (custom_gmp_malloc): Use
'scm_gc_malloc_pointerless' instead of 'scm_malloc'.
(custom_gmp_realloc): Use 'scm_gc_realloc'.
(custom_gmp_free): Remove call to 'free'.
(make_bignum): Use 'scm_gc_malloc' instead of 'scm_gc_malloc_pointerless'.
Call 'scm_i_set_finalizer' only when SCM_INSTALL_GMP_MEMORY_FUNCTIONS is
false.
| Ludovic Courtès | 2020-02-12 | 1 | -7/+12 |
* | Remove duplicate procedure in slot-allocation.scm....* module/language/cps/slot-allocation.scm (add-live-slot)
(kill-dead-slot, compute-slot): Move higher up in the file.
(compute-shuffles): Remove duplicate 'add-live-slot' procedure.
| Ludovic Courtès | 2020-02-12 | 1 | -15/+12 |
* | texinfo: Properly render @acronym in plain text....Fixes <https://bugs.gnu.org/37846>.
Reported by Christopher Baines <mail@cbaines.net>.
* module/texinfo/plain-text.scm (acronym): New procedure.
(tag-handlers): Change 'acro' handle to ACRONYM, and add 'acronym'
handler.
* test-suite/tests/texinfo.plain-text.test ("stexi->plain-text")
["acronym", "recursive acronym"]: New tests.
| Ludovic Courtès | 2020-02-12 | 2 | -2/+31 |
* | texinfo: Add '*line-width*' fluid to control line wrapping....* module/texinfo/plain-text.scm (*line-width*): New variable.
(wrap*): Honor it.
* doc/ref/texinfo.texi (texinfo plain-text): Document it.
* test-suite/tests/texinfo.plain-text.test: New file.
* test-suite/Makefile.am (SCM_TESTS): Add it.
| Ludovic Courtès | 2020-02-12 | 4 | -5/+49 |
* | Fix check for rl_get_keymap...This lets Guile build on OS X (tested on 10.14) with the system-provided
libreadline.
* acinclude.m4 (GUILE_READLINE): Check for rl_get_keymap_name instead of
rl_get_keymap. The system provided libreadline is an alias to libedit,
which has _keymap but not _keymap_name, and Guile uses both.
* guile-readline/readline.c: Adjust the include guard.
| Daniel Llorens | 2020-02-12 | 2 | -7/+9 |
* | 00-repl-server.test: don't use fixed path for socket...* test-suite/tests/00-repl-server.test (make-tempdir): Add.
(call-with-repl-server): Store socket in a make-tempdir dir.
| Rob Browning | 2020-01-22 | 1 | -4/+17 |