| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
* share/txr/stdlib/struct.tl (defstruct): The nonexistent
uw-throwf function was called instead of throw.
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Likewise.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
| |
* lisplib.c (with_resources_set_entries): "with-objects" added
to name table.
* share/txr/stdlib/with-resources.tl (with-objects): New macro.
* txr.1: Documented with-objects. Added note to :fini
specifier of defstruct pointing to call-finalizers and
with-objects.
|
|
|
|
|
| |
* eval.c (do_expand): Reduce (progn) to nil,
and (progn single) to single.
|
|
|
|
|
|
|
| |
* eval.c (me_when): Expand to if if there aren't multiple body forms.
(me_unless): Simplify progn.
* tests/012/struct.tl: Update string representation in struct test case.
|
|
|
|
| |
* txr.1: Unlike methods, these don't have an implicit block.
|
|
|
|
|
|
|
|
|
|
| |
* lisplib.c (with_stream_set_entries,
with_stream_instantiate): New static functions.
(lisplib_init): Register new functions in dl_table.
* share/txr/stdlib/with-stream.tl: New file.
* txr.1: Documented new macros.
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (me_defex, register_exception_subtypes): New static
functions.
(eval_init): Registered new defex macro, and
register-exception-subtype and exception-subtype-p
intrinsic functions.
* txr.1: Documented new macro and functions.
|
|
|
|
|
| |
* unwind.c (uw_register_subtype): Error messages should print
symbols with ~s, not the information-losing ~a.
|
|
|
|
| |
* txr.1: listener doesn't handle Unicode properly.
|
|
|
|
|
| |
* txr.1: spelling and grammar errors in various places
in Interactive Listener section.
|
|
|
|
|
|
|
| |
* eval.c (promisep): New static function.
(eval_init): Registered promisep intrinsic.
* txr.1: Documented promisep.
|
|
|
|
|
|
| |
* parser.l: Different text needed for ).1 and a.1 cases,
because the insertion of a zero cannot fix the latter.
Might as well make the messages more detailed.
|
|
|
|
|
| |
* genvim.txr: Some operators should indent like functions.
We don't want these in lispwords.
|
|
|
|
|
|
|
|
|
| |
* struct.c (reset_struct): New function.
(struct_init): Register reset_struct intrinsic.
* struct.h (reset_struct): Declared.
* txr.1: documented reset-struct.
|
|
|
|
|
|
|
|
|
| |
* struct.c (replace_struct): New function.
(struct_init): Register replace_struct intrinsic.
* struct.h (replace_struct): Declared.
* txr.1: documented replace-struct.
|
|
|
|
|
|
|
|
|
| |
* struct.c (clear_struct): New function.
(struct_init): Register clear-struct intrinsic.
* struct.h (struct_init): Declared.
* txr.1: documented clear-struct.
|
|
|
|
|
|
|
|
|
| |
* gc.c (gc_call_finalizers): New function.
(gc_late_init): Register call-finalizers intrinsic.
* gc.h (gc_call_finalizers): Declared.
* txr.1: documented call-finalizers.
|
|
|
|
|
|
|
|
|
|
|
| |
* txr.1: Examples under iff and iffi had two issues:
the false predicate function was used in a role which calls
for a function that unconditionally returns nil.
The correct function is nilf. Square brackets must
be used, otherwise nilf and identity are unbound
variables. Also the equivalence for [iff a] now
indicates that it's equiavlent to a, showing that
it's not useful to default both arguments.
|
|
|
|
|
|
|
|
| |
* eval.c (expand_right_fun, expand_right): New static
functions.
(eval_init): Register expand-right intrinsic.
* txr.1: Documented expand-right.
|
|
|
|
|
| |
* lib.c (conses): Use consp termination test
only if input is a list.
|
|
|
|
|
|
|
|
| |
* eval.c (ginterate_func): New static function.
(ginterate): New function.
(eval_init): Registered ginterate as intrinsic.
* txr.1: Documented.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lib.c (take_list_fun, take_while_list_fun,
take_until_list_fun): New static functions.
(take, take_while, take_until, drop, drop_while,
drop_until): New functions.
* eval.c (eval_init): Register intrinsics take,
take-while, take-until, drop, drop-while, drop-until.
* txr.1: Documented.
|
|
|
|
|
|
|
| |
* lib.c (copy_lazy_str): New static function.
(copy_str): Use copy_lazy_str to copy lazy strings.
* txr.1: Documentation added under copy-str.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* share/txr/stdlib/struct.tl (defstruct): Split boa
arguments on colon and generate the lambda
accordingly. The generated function detects which
optional arguments are actually present and only
performs the slot updates for those.
* tests/012/struct.tl: Corrected boa test case.
* txr.1: Documented.
|
|
|
|
|
| |
* struct.c (make_struct): Process property list first,
then call boa constructor, not vice versa.
|
|
|
|
|
| |
* struct.c (make_struct): Don't wastefully evaluate the symbolp
test twice via recursion; assign and fall through.
|
|
|
|
|
|
|
| |
* parser.c (find_matching_syms): Take advantage of the
linenoise Ctrl-X Tab feature by providing substring matches.
* txr.1: Documented Ctrl-X Tab.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A feature is hereby introduced into linenoise whereby
completion mode can be entered via Ctrl-X Tab also, not only
Tab. This is distinguished with a flag in the completion
structure. The intent is that the callback can use this to
provide substring matches not only prefix matches.
* linenoise/linenoise.c (complete_line): Takes a new argument,
and stores it in the new substring member of
lino_completions_t.
(edit): If Tab is typed while in Ctrl-X extended mode,
then fall through to the regular switch, where the TAB
case now recognizes that it is in extended mode and passes
the mode flag to complete_line.
* linenoise/linenoise.h (lino_completions_t): New member,
substring.
|
|
|
|
|
| |
* txr.1: Missing denotation of meta-syntactic identifiers
in meth macro syntax.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* share/txr/stdlib/struct.tl (sys:prune-nil-inits):
Use of slot-p renamed.
* struct.c (struct_init): Register slotp, and make
registration of slot-p conditional on compatibility option.
(slot_p): Function renamed to slotp.
* struct.h (slot_p): Declaration renamed.
* txr.1: References to slot-p fixed to slotp. Compat notes
added.
|
|
|
|
|
| |
* txr.1: Added missing compatibility notes for 117 that
should have been released with 118.
|
|
|
|
|
|
|
|
|
|
| |
* share/txr/stdlib/struct.tl (umeth): New macro.
* struct.c (struct_init): Registered umethod intrinsic.
(umethod_fun): New static function.
(umethod): New function.
* txr.1: Documented.
|
|
|
|
|
|
|
|
|
|
|
| |
If a defstruct slot specifier calls for a slot to
be initialized to nil, that doesn't have to be done
explicitly if the slot isn't inherited.
* share/txr/stdlib/struct.tl (sys:prune-nil-inits): New
function.
(defstruct): Use prune-nil-inits to try to reduce the
lists of static and instance slot specifiers.
|
|
|
|
|
|
|
| |
* struct.c (struct_handle): The situation is that
the object isn't a structure instance, not that
the argument isn't a struct type. Use appropriate
error message.
|
|
|
|
|
| |
* eval.c (eval_progn): If there are no forms to evaluate, then
check for signals.
|
|
|
|
|
|
|
|
|
|
| |
* linenoise/linenoise.c (edit): The recall previous word,
atom and line features now offset relative to the current
navigation position in the history. Previous line means
the line before the currently showing history line, not the
line most recently entered into the history.
* txr.1: Documented.
|
|
|
|
|
|
|
|
| |
* share/txr/stdlib/struct.tl (defstruct): Generate a named
block around the body forms of the :method and
:function lambdas, whose name matches the slot name.
* txr.1: Documented.
|
|
|
|
|
|
|
| |
* linenoise/linenoise.c (edit): Extended Ctrl-X Ctrl-R/r
command added.
* txr.1: Documented.
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Bind macro-time to op_error.
* genvim.txr: No longer manually add macro-time to
txl-orig-sym.
|
|
|
|
|
| |
* genvim.txr (txl-orig-sym, lispwords): New variable.
(generate): Generate Vim set lispwords command.
|
|
|
|
|
| |
* eval.c (symbol_value): lookup_mac doesn't return
a cons cell binding; don't do cdr on it.
|
|
|
|
|
| |
* txr.1: Formatting blunders in defstruct (description of :fini),
new macro, make-struct-type.
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Likewise.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* linenoise/linenoise.c (edit_move_sol): If the cursor
is already at the beginning of a line, then move it
to the start of the buffer.
(edit_move_eol): If the cursor is at the end of the
line, then move it to the end of the buffer.
This also fixes a bug: previously, if the cursor was
at the end of the line already, it moved to the end
of the following line.
* txr.1: Documented.
|
|
|
|
|
|
|
|
| |
* struct.c (super): Detect structure instance
and resolve it to its type. Recursion eliminated in favor of
imperative approach that eliminates redundant checks.
* txr.1: Description of super updated.
|
|
|
|
|
|
|
|
|
| |
* struct.c (struct_init): Register super-method.
(super_method): New function.
* struct.h (super_method): Declared.
* txr.1: Documented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A new optional argument on finalize allows it to
be expressed that multiple finalizers on the same
object are to be called in reverse order, which is
potentially for objects with inheritance.
* gc.c (gc_finalize): New optional argument, rev_order_p.
Insert at the head of the list if this argument is
specified and true.
(gc_late_init): Register finalize as three-argument
function with optional argument.
* gc.h (gc_finalize): Declaration updated.
* share/txr/stdlib/struct.tl (defstruct): Register :fini
functions in reverse, so that derived finalizers
are called before supertype finalizers.
* txr.1: Documented new finalize argument, and
behavior of :fini.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Aborting a multi-line search result with Ctrl-C
messes up display because the row-related values
are being done on a linenoise copy, and their latest
values aren't backpropagated to the master lino_t.
* linenoise/linenoise.c (copy_display_params): New
static function.
(history_search): Use the lino_t copy when clearing the
screen, because lino_clear_screen manipulates a display
parameter. When leaving the function, copy the latest
display-related parameters from lc to l, so that l has
the latest number of columns and all the right row stuff
for multi-line mode.
|
|
|
|
|
|
|
|
| |
* eval.c (eval_intrinsic): Treat last_form_expanded just like
last_form_evaled: save it, set to nil, and restore it.
If it is not set to nil, then an evaluation error will
be falsely reported as being during the expansion of
that form.
|