[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, wip-bpt-elisp, created. release_1-9-11
From: |
Brian Templeton |
Subject: |
[Guile-commits] GNU Guile branch, wip-bpt-elisp, created. release_1-9-11-282-gc2eb588 |
Date: |
Wed, 25 Aug 2010 22:24:50 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=c2eb58825c1176ee9dcf200943eb8cb413115c44
The branch, wip-bpt-elisp has been created
at c2eb58825c1176ee9dcf200943eb8cb413115c44 (commit)
- Log -----------------------------------------------------------------
commit c2eb58825c1176ee9dcf200943eb8cb413115c44
Author: Brian Templeton <address@hidden>
Date: Mon Aug 16 03:20:55 2010 -0400
lexical function binding for elisp
* module/language/elisp/compile-tree-il.scm (access-variable)
(reference-variable, set-variable!): Handle globally-bound non-special
variables.
(bind-lexically?): Create lexical bindings for flet and flet*.
* module/language/elisp/runtime.scm (reference-variable, set-variable!):
Handle globally-bound non-special variables.
(built-in-func): Set the variable directly instead of storing the
function in a fluid.
* module/language/elisp/runtime/subrs.scm (funcall): Call apply
directly.
* test-suite/tests/elisp-compiler.test ("Function Definitions")["flet
and flet*"]:
commit 761e60535bc6ae4fdce70499b415bfc5bd1d1f91
Author: Brian Templeton <address@hidden>
Date: Sat Aug 14 19:28:56 2010 -0400
use unbound fluids instead of `void' sentinel value
* module/language/elisp/compile-tree-il.scm (reference-with-check)
(compile-without-void-checks, want-void-check?): Remove.
(compile-function, compile-pair): Use `reference-variable' instead of
`reference-with-check'.
(compile-defvar): Only set `sym' if `sym' is not bound to a bound
fluid, rather than requiring that its value be `void'.
(process-options!): Remove `#:disable-void-check' option handling.
* module/language/elisp/runtime.scm (void)
(reference-variable-with-check): Remove.
(ensure-fluid!): Use an undefined fluid as the initial value for
global variables.
* module/language/elisp/runtime/function-slot.scm (without-void-checks):
Don't import or re-export.
* module/language/elisp/runtime/macros.scm (prog1, cond, or, dolist):
Don't use `without-void-checks'.
* module/language/elisp/runtime/subrs.scm (symbol-value)
(symbol-function, apply): Use `reference-variable' instead of
`reference-variable-with-check'.
(makunbound, fmakunbound, boundp, fboundp): Unset the variable's fluid
(or the variable itself, if it isn't bound to a fluid).
* test-suite/tests/elisp-compiler.test ("Variable
Setting/Referencing")["disabled void check (all)", "disabled void
check (symbol list)", "without-void-checks"]: Remove.
commit 825bc696eddb615836dbb7727d29eb519f654681
Author: Brian Templeton <address@hidden>
Date: Sat Aug 14 19:00:20 2010 -0400
variable-unset!
* libguile/variable.c (scm_variable_unset_x): New function.
* libguile/variable.h (scm_variable_unset_x): New prototype.
commit 7f9041c80cccce4ce2e210ae8882864527035910
Author: Brian Templeton <address@hidden>
Date: Sat Aug 14 18:35:17 2010 -0400
unbound fluids
* libguile/fluids.c (scm_make_undefined_fluid, scm_fluid_unset_x)
(scm_fluid_bound_p): New functions.
(fluid_ref): New function; like scm_fluid_ref, but will not throw an
error for unbound fluids.
(scm_fluid_ref, swap_fluid): Use `fluid_ref'.
* libguile/fluids.h (scm_make_undefined_fluid, scm_fluid_unset_x)
(scm_fluid_bound_p): New prototypes.
* libguile/vm-i-system.c (fluid_ref): If fluid is unbound, jump to
`vm_error_unbound_fluid'.
* libguile/vm-engine.c (VM_NAME)[vm_error_unbound_fluid]: New error
message.
* test-suite/tests/fluids.test ("unbound fluids")["fluid-ref of unbound
fluid", "fluid-bound? of bound fluid", "fluid-bound? of unbound
fluid", "unbound fluids can be set", "bound fluids can be unset"]: New
tests.
commit 5cfb9034597d7bef5ded56156287066c7cb19f49
Author: Brian Templeton <address@hidden>
Date: Thu Jul 22 16:33:53 2010 -0400
function's argument can be a symbol
* module/language/elisp/compile-tree-il.scm (compile-function): the form
`(function SYMBOL)' evaluates to the functional value of SYMBOL
commit c9cd4ae8c15541a490e052bbaa89fd424802896d
Author: Brian Templeton <address@hidden>
Date: Thu Jul 22 16:25:29 2010 -0400
allow `(setcar nil nil)' and `(setcdr nil nil)'
* module/language/elisp/runtime/subrs.scm (setcar, setcdr): Allow
setting the car or cdr of `nil' to `nil'.
commit 1a7bb9aa941324d5d1342dbde9dbd5c6a15bbb3f
Author: Brian Templeton <address@hidden>
Date: Thu Jul 22 15:12:50 2010 -0400
support "#'" syntax for function expressions
* module/language/elisp/lexer.scm (lex):
* module/language/elisp/parser.scm (get-expression): Support sharpsign
single-quote syntax as an abbreviation for `function' expressions.
commit 718acc97e6b01760d1adc5362a22909d1441a874
Author: Brian Templeton <address@hidden>
Date: Wed Jul 14 17:47:37 2010 -0400
autoload compile-file in (guile-user)
* module/ice-9/boot-9.scm (guile-user): Autoload `compile-file'.
commit 5dc746b79e8a9bd0a915c4886b8c4867ea6687c3
Author: Brian Templeton <address@hidden>
Date: Tue Jul 13 20:55:45 2010 -0400
make guile-test work without configuration
* test-suite/guile-test: Use "../meta/guile" as the interpreter instead
of "../libguile/guile".
(default-test-suite): New function, replacing the variable of the same
name. Look for tests in the same directory as the guile-test script.
Throw an error if not invoked as `guile-test'.
(test-suite): The old default value of `default-test-suite' could now
throw an error, and this already gets initialized in `main', so don't
provide an initial value.
commit 3cb34c5c04185a4986340e6b1ece6e9a45d887f9
Author: Brian Templeton <address@hidden>
Date: Tue Jul 13 17:15:24 2010 -0400
add .dir-locals for elisp
* module/language/elisp/.dir-locals.el: New file. Set fill-column to 72.
commit 46ab7225d52d0977d100f195869da874e969aca5
Author: Brian Templeton <address@hidden>
Date: Sat Jul 10 02:47:16 2010 -0400
setq can take any number of arguments
* module/language/elisp/compile-tree-il.scm (compile-setq): Return nil
if called with no arguments, and set the last variable to nil if its
value is omitted.
commit 3b93c9b88119217bc5bc3fd44f7091249478ec6f
Author: Brian Templeton <address@hidden>
Date: Fri Jul 9 20:33:32 2010 -0400
use correct names for quasiquotation operators
Use #{`}#, #{,}# and #{,@}# as the quasiquote, unquote and
unquote-splicing operators, respectively. Previously they were named
escaping.
* module/language/elisp/compile-tree-il.scm (unquote?): Change "\," to
"#{,}#".
(unquote-splicing): Change "\,@" to "#{,@}#".
(#{compile-`}#): Rename from #{compile-\`}#.
* module/language/elisp/runtime/function-slot.scm: Import #{compile-`}#
instead of #{compile-\`}#, and re-export as #{`}# instead of as
#{\`}#.
* module/language/elisp/parser.scm (quotation-symbols):
* test-suite/tests/elisp-compiler.test ("Eval", "Quotation"):
* test-suite/tests/elisp-reader.test ("Parser"): Change "\`", "\,", and
"\,@" to "#{`}#", "#{,}#" and "#{,@}#", respectively.
commit 7d6816f0c7195ccc2ce4318b7f55cf3feda1e871
Author: Brian Templeton <address@hidden>
Date: Fri Jul 9 19:52:48 2010 -0400
store special operators in the function slot
If the function slot of a symbol contains a pair with `special-operator'
in the car and a procedure in the cdr, the procedure is called to
compile the form to Tree-IL. This is similar to other Emacs Lisp
implementations, in which special operators are subrs.
* module/language/elisp/compile-tree-il.scm: Restructured to store
special operator definitions in the function slot. Import `(language
elisp runtime)' for `defspecial'. Export special operators so that
`(language elisp runtime function-slot)' can re-export them.
(backquote?): Removed; the backquote symbol is defined as a special
operator, so it's no longer used in `compile-pair'.
(is-macro?, get-macro): Replaced by `find-operator'.
(find-operator): New procedure.
(compile-progn, compile-if, compile-defconst, compile-defvar,
compile-setq, compile-let, compile-lexical-let, compile-flet,
compile-let*, compile-lexical-let*, compile-flet*,
compile-without-void-checks, compile-with-always-lexical,
compile-guile-ref, compile-guile-primitive, compile-while,
compile-function, compile-defmacro, compile-defun, #{compile-`}#,
compile-quote): New special operators with definitions taken from the
pmatch form in `compile-pair'. There is no special operator `lambda';
it is now a macro, as in other Elisp implementations.
(compile-pair): Instead of directly compiling special forms, check for
a special operator object in the function slot.
* module/language/elisp/runtime.scm: Export `defspecial'.
(make-id): New function.
(built-in-macro): Prefix macros with `macro-'.
(defspecial): New syntax.
* module/language/elisp/runtime/function-slot.scm: Import and re-export
special operators. Rename imported special operators and macros to
remove prefixes. Re-export new macro `lambda'.
* module/language/elisp/runtime/macros.scm (macro-lambda): New Elisp
macro.
commit 1d7a1b8e0fb5e7493e98390e83034dadd1293990
Author: Brian Templeton <address@hidden>
Date: Thu Jul 1 22:38:23 2010 -0400
update elisp reader tests to handle EOF tokens
* test-suite/tests/elisp-reader.test (lex-all, "end-of-input",
"lexer/1"): Check for an EOF token instead of the symbol `*eoi*'.
commit ff16217c10adf633bbe8fcc775c621ca3e331911
Author: Brian Templeton <address@hidden>
Date: Wed Jun 30 16:54:45 2010 -0400
make user-defined macros available at runtime
* module/language/elisp/compile-tree-il.scm (ensuring-globals): New
procedure.
(define-macro!): Remove.
(compile-pair) <defmacro>: Make macro available at runtime, not only
during compilation.
(compile-tree-il): Use `ensuring-globals'.
commit faf160ff1a6fdccce8aa6d9007dc4d7903e3ee74
Author: Brian Templeton <address@hidden>
Date: Wed Jun 30 16:48:19 2010 -0400
allow fluid macro bindings
* module/language/elisp/compile-tree-il.scm (define-macro!, get-macro):
Allow fluid macro bindings.
commit e322a02bc1c829ba29be8f3029c2d031f97da6d3
Author: Brian Templeton <address@hidden>
Date: Tue Jun 29 21:18:05 2010 -0400
new `load' subr
* module/language/elisp/runtime/subrs.scm: Define new subr `load'.
* module/language/elisp/runtime/function-slot.scm: Re-export `load'.
commit f12492fa98744a468ca8f2619d9dce4d4a86b837
Author: Brian Templeton <address@hidden>
Date: Tue Jun 29 21:13:18 2010 -0400
Ignore #:warnings compiler option
* module/language/elisp/compile-tree-il.scm (process-options!): Ignore
#:warnings compiler option.
commit c8ed3e7cef6b825c63c9f1b963241b8b1d668c8c
Author: Brian Templeton <address@hidden>
Date: Thu Jun 24 23:03:08 2010 -0400
handle EOF correctly in parser and lexer
* module/language/elisp/lexer.scm (lex, get-lexer/1): Return a valid
token at EOF.
* module/language/elisp/parser.scm (get-expression): Raise an error if
EOF is reached.
(read-elisp): If at EOF, return the EOF object instead of attempting
to read an expression.
commit 258914f320f8adaeef68a853951c72087ab67d3e
Author: Brian Templeton <address@hidden>
Date: Thu Jun 24 18:14:41 2010 -0400
add new elisp files to module/Makefile.am
commit 3e74b2cc637ffdc12a9b407a2eb4f0366db049cc
Author: Brian Templeton <address@hidden>
Date: Wed Jun 23 19:40:03 2010 -0400
make `pass-if-equal' literal in `compile-test'
* test-suite/tests/elisp-compiler.test (compile-test): Add
`pass-if-equal' to the list of literal identifiers
commit c55a2ddc1be02f7948b8c96b30439a411ec0bc4f
Author: Brian Templeton <address@hidden>
Date: Wed Jun 23 19:31:33 2010 -0400
store macro definitions in the function slot
Guile Emacs Lisp previously kept macros in a separate macro slot; now
macros are stored as macro objects in the function slot for
compatibility with other implementations.
* module/language/elisp/compile-tree-il.scm (macro-slot): Remove.
(is-macro?): Check that the argument is a symbol. Now-unnecessary
check removed in `compile-tree-il'.
(macro?, define-macro!, get-macro): Store macro definitions in the
function slot, not in a separate macro slot.
* module/language/elisp/runtime.scm (built-in-macro): Wrap the macro
function in a macro object (i.e., cons the symbol `macro' onto it).
* module/language/elisp/runtime/function-slot.scm: Move contents to
"subrs.scm". Re-export function and macro definitions instead of
defining functions directly in this module.
* module/language/elisp/runtime/macro-slot.scm: Move contents to
"macros.scm" and remove.
* module/language/elisp/runtime/macros.scm: New file containing macro
definitions from "macro-slot.scm".
* module/language/elisp/runtime/subrs.scm: New file containing function
definitions from "function-slot.scm".
commit 88698140c06038e37b5b2cb9a9d64ca6a5ab93d7
Author: Brian Templeton <address@hidden>
Date: Thu Jun 17 20:25:42 2010 -0400
use existing bindings record for defmacro
* module/language/elisp/compile-tree-il.scm (compile-pair): Use existing
bindings record during macro definition.
commit e609a7339906e3f88421e36d18e20332d0323fa0
Author: Brian Templeton <address@hidden>
Date: Wed Jun 16 17:18:30 2010 -0400
use tree-il's support for optional arguments
* module/language/elisp/compile-tree-il.scm (compile-lambda): Use
Tree-IL's support for optional arguments.
(process-optionals, process-rest): Remove.
commit ae20bb4eee85c31e59d3cce291bc611431c80c38
Author: Brian Templeton <address@hidden>
Date: Mon Jun 7 16:38:23 2010 -0400
reindent
* module/language/elisp/bindings.scm:
* module/language/elisp/compile-tree-il.scm:
* module/language/elisp/lexer.scm:
* module/language/elisp/parser.scm:
* module/language/elisp/runtime.scm:
* module/language/elisp/runtime/function-slot.scm:
* module/language/elisp/runtime/macro-slot.scm:
* module/language/elisp/spec.scm: Reindent.
commit 27b9476a8da7c1ef04c1ef5df1bc7b51b15717df
Author: Brian Templeton <address@hidden>
Date: Mon Jun 7 16:38:00 2010 -0400
reformat comments
* module/language/elisp/bindings.scm:
* module/language/elisp/compile-tree-il.scm:
* module/language/elisp/lexer.scm:
* module/language/elisp/parser.scm:
* module/language/elisp/runtime.scm:
* module/language/elisp/runtime/function-slot.scm:
* module/language/elisp/runtime/macro-slot.scm:
* module/language/elisp/runtime/value-slot.scm: Reformat comments.
commit 372b11fc7328903e21b672791d2887808765e7d1
Author: Brian Templeton <address@hidden>
Date: Mon Jun 7 16:37:24 2010 -0400
whitespace changes
* module/language/elisp/bindings.scm:
* module/language/elisp/compile-tree-il.scm:
* module/language/elisp/lexer.scm:
* module/language/elisp/parser.scm:
* module/language/elisp/runtime.scm:
* module/language/elisp/runtime/function-slot.scm:
* module/language/elisp/runtime/macro-slot.scm: Ensure that all
top-level forms and comments are separated by exactly one newline.
Remove blank lines in most procedure bodies. Delete trailing
whitespace.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-bpt-elisp, created. release_1-9-11-282-gc2eb588,
Brian Templeton <=