| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
(v_fuzz): New static function.
(syms_init): fuzz_s initialized.
(dir_tables_init): v_fuzz entered into v_directive_table.
* txr.1: Documented @(fuzz).
|
|
|
|
|
|
|
| |
* parser.y (gather_parts, additional_gather_parts): New nonterminals.
(gather_clause): Syntax refactored for until/last clause.
* txr.1: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(do_output_line): Process new :counter argument of rep.
(do_output): Ditto, for repeat.
(syms_init): Intern new keyword symbol.
* match.h (counter_k): Declared.
* parser.l (REPEAT, REP): Lexical syntax changed to
allow arguments.
* parser.y (repeat_rep_helper): Takes extra argument, representing
the repeat/rep args. This is inserted into the second position
of the output list.
(repeat_clause, rep_elem): Extract repeat/rep arguments and
pass to repeat_rep_helper.
(yybadtoken): Do not put quotes around the word "number".
* txr.1: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Use new symbol variable mod_s instead
of calling intern.
* match.c (mod_s, modlast_s): Symbol variables defined.
(do_output_line): mod and modlast directives implemented under rep.
(do_output): likewise under repeat.
(syms_init): Initialize new symbol variables.
* match.h (mod_s, modlast_s): Declared.
* parser.l (MOD, MODLAST): Parse new token types.
* parser.y (MOD, MODLAST): New tokens.
(repeat_parts_opt, rep_parts_opt): New syntax.
(repeat_rep_helper): Handle mod and modlast syntax.
* txr.1: Updated.
* txr.vim: Updated.
|
| |
|
| |
|
| |
|
|
|
|
| |
catch clauses and in finally clauses.
|
|
|
|
|
|
|
|
|
|
| |
* txr.c (version): Bumped.
* txr.1: Bumped version and set date.
* configure (txr_ver): Bumped.
* RELNOTES: Updated.
|
|
|
|
| |
Introductory text rewritten.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lib.c:x (lazy_flatten_scan, lazy_flatten_func): New static functions.
(lazy_flatten): New function.
* lib.h (lazy_flatten): Declared.
* match.c (v_next): Use lazy_flatten instead of flatten for
processing a :list source. This means that @(next :list ...)
can be used to process infinite lazy lists.
* txr.1: Documented lazy-flatten.
|
|
|
|
|
|
|
|
|
|
| |
* txr.c (version): Bumped.
* txr.1: Bumped version and set date.
* configure (txr_ver): Bumped.
* RELNOTES: Updated.
|
|
|
|
|
|
|
|
|
|
|
| |
(some_satisfy): Return the first non-nil result, rather than t.
(all_satisfy): Return the value of the last item, if all items
are processed.
* lib.h (memql): Declared.
* txr.1: Documented memq, memql, memqual, tree-find, some,
all, none, eq, eql and equal.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* arith.h (normalize): Declared.
* rand.c (random): Bugfix: normalize the bignum before returning it.
* txr.1: Doc stubs for PRNG functionality.
|
|
|
|
|
|
|
|
| |
* lib.c (cat_vec): New function.
* lib.h (cat_vec): Declared.
* txr.1: Documentation stub.
|
|
|
|
|
|
|
|
| |
* lib.c (copy_vec, sub_vec): New functions.
* lib.h (copy_vec, sub_vec): Declared.
* txr.1: Stub sections created.
|
|
|
|
|
|
|
|
|
|
| |
* txr.c (version): Bumped.
* txr.1: Bumped version and set date.
* configure (txr_ver): Bumped.
* RELNOTES: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(eval_init): Registered new functions: symbol-function,
func-get-form, func-get-env, functionp, interp-fun-p.
* lib.c (nappend2, getplist_f, improper_plist_to_alist):
tail variable renamed to avoid clash in macro.
(func_get_form, func_get_env, interp_fun_p): New functions.
* lib.h (func_get_form, func_get_env, interp_fun_p): Declared.
(list_collect): Fix macro not to throw error, but handle the case.
* match.c (vars_to_bindings, extract_bindings): tail variable
renamed to avoid clash in macro.
* txr.1: Documentation stubs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lib.c (copy_list): Use list_collect_append rather than
list_collect_terminate.
(append2, appendv): Simplified using new list_collect_append.
(nappend2): Simplified using new list_collect_nconc.
* lib.h (list_collect): Added check for accidental usage
of list_collect after list_append, since PTAIL has different
semantics.
(list_collect_nconc, list_collect_append): Semantics fixed so that
append collecting works more like the Common Lisp append function,
allowing trailing atoms or a lone atom. The meaning of PTAIL is
changed, however. Now PTAIL actually tracks the head of the most
recently appended segment. Each append operation has to first
traverse the previously added piece to get to the end.
(list_collect_terminate): Macro removed.
* match.c (v_gather): Removed useless use of list_collect_terminate.
* parser.y: Some headers added that are needed by list_collect.
* txr.1: Documented append, list, atom, null, not, consp, make-lazy-cons,
lcons-fun, listp, proper-listp, length-list, mapcar, mappend, and apply.
|
|
|
|
|
|
|
|
|
|
|
| |
can now be used. Within nested forms,
Lisp-compatible ; comments are suported.
* parser.l: Support @# and ; comments.
* txr.1: Documentation updated.
* txr.vim: Updated.
|
|
|
|
|
|
|
|
| |
after calling it.
(rplacd): Do not set the lazy cons function to nil
in.
* txr.1: Documented a bunch of functions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Renamed vec_set_fill to vec-set-length.
* hash.c (equal_hash): vec_fill to vec_length name change.
(hash_grow, make_hash): No need to call vec_set_length.
* lib.c (equal, vecref, vec_push, length_vec, list_vector,
obj_print, obj_pprint): vec_fill to vec_length name change.
(vector): Argument now represents actual length, not just allocated
size.
(vec_get_fill): Function removed; did exactly the same thing
as length_vec.
(vec_set_fill): Function renamed to vec_set_length.
(vector_list): Allocate a 0 length vector initially.
* lib.h (enum vecindex): member changes name from vec_fill
to vec_length.
(vector): Parameter name changed.
(vec_set_fill): Redeclared.
(vec_get_fill): Declaration removed.
* txr.1: Doc stubs updated.
|
|
|
|
| |
* txr.1: Finished documenting special operators.
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): New functions interned.
* lib.c (num_chr, chr_num): New functions.
* lib.h (num_chr, chr_num): Declared.
* txr.1: Documentation stubs.
|
|
|
|
|
|
|
|
|
|
| |
* txr.c (version): Bumped.
* txr.1: Bumped version and set date.
* configure (txr_ver): Bumped.
* RELNOTES: Updated.
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): New functions registered as intrisics.
* lib.h (exptmod, gcd): Declared.
* txr.1: Documentation stubs added.
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): New functions registered as intrinsics.
* lib.h (evenp, oddp): Declared.
* txr.1: Documentation stub updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(abso, isqrt): New functions.
(isqrt_fixnum): New static function.
* eval.c (eval_init): Registered abs, sqrt and numberp instrinsics.
* lib.c (numberp): New function.
* lib.h (numberp, abso, isqrt): Declared.
* mpi-patches/series: New patch added.
* mpi-patches/faster-square-root: New patch added.
* txr.1: Documentation stubs for new functions.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Registering new intrinsic functions,
reduce-left, reduce-right and expt.
* lib.c (minusv): Return one instead of num(1).
(exptv, reduce_right): New functions.
* lib.h (expt, exptv, reduce_right): Declared.
* txr.1: Blank sections for new functions.
|
|
|
|
|
|
|
|
|
|
| |
* txr.c (version): Bumped.
* txr.1: Bumped version and set date.
* configure (txr_ver): Bumped.
* RELNOTES: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with bignum support.
* eval.c (eval_init): Added bignump and zerop as intrinsic function.
Renamed numberp to fixnump.
* lib.c (zerop, gt, lt, ge, le): Functions removed.
(numeq): Unused function removed.
* lib.h (numeq): Declaration removed.
* txr.1: Sections for zerop and bignump created. Changed reference
to numberp to fixnump.
|
|
|
|
|
|
|
|
| |
* hash.c (hash_eql, hash_equal): New external functions.
* hash.h (hash_eql, hash_equal): Declared.
* txr.1: Sections added.
|
|
|
|
|
|
|
|
| |
a named block around it, thereby imitating a Common Lisp feature.
(op_for): Establish an anonymous block around the loop body,
test form and increment forms.
* txr.1: Documented named block in defun. Documented for and for *.
|
|
|
|
| |
Blank section for list-vector function added.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(eval_init): New intrinsics.
* hash.c (struct_hash): assoc_fun parameters reversed.
(gethash, gethash_f, gethash_n): Likewise.
* lib.c (assoc, assq): Reversing parameters.
(find_package, acons_new, acons_new_l, aconsq_new): Reversing
arguments to assoc adn assq.
* lib.h (assoc, assq): Declarations updated.
* match.c (dest_set, dest_bind, h_var, h_coll, h_parallel, h_fun,
subst_vars, do_txeval, v_next, v_parallel, v_gather, v_collect,
v_flatten, v_cat, v_output, v_filter, f_fun, match_funcall):
Reversing arguments to assoc.
* unwind.c (uw_get_func, uw_exception_subtype_p, uw_register_subtype):
Reversing arguments to assoc.
* txr.1: Blank sections created for new functions.
|
| |
|
|
|
|
|
|
|
| |
(op_progn): New static function.
(eval_init): Initialize new variable, register progn operator.
* txr.1: progn documented.
|
|
|
|
|
|
|
|
|
|
| |
* txr.c (version): Bumped.
* txr.1: Bumped version and set date.
* configure (txr_ver): Bumped.
* RELNOTES: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
warning.
(eval_init): New functions registered: typeof and vector functions,
as well as length_list.
* lib.c (length): Function renamed to length_list, because it is
list specific.
(length_vec, size_vec, vector_list): New functions.
(length): New function, generic over lists, vectors and strings.
* lib.h (length_list, length_vec, size_vec, vector_list): Declared.
* match.c (h_var, h_fun, robust_length, v_deffilter, v_fun): Use
length_list instead of length.
* parser.l: Introduced # token.
* parser.y (vector): New nonterminal.
(expr): vector is a kind of expr.
(chrlist): Bugfix: single-character syntax was not working;
for instance #\x to denote the charcter x.
(lit_char_helper): Use length_list instead of length.
* stream.c (string_in_get_line): Bugfix: this was using
the wrong length function: length was being applied to a string.
The genericity of length makes that correct now, but changing
to length_str anyway.
* txr.1: Blank sections created for functions. Vector syntax
documented.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* txr.c (version): Bumped.
* txr.1: Bumped version and set date.
* configure (txr_ver): Bumped.
* RELNOTES: Updated.
|
|
|
|
|
|
|
|
|
|
| |
(eval_init): Use existing function objects car_f, cdr_f,
eq_f, eql_f and equal_f. Added identity to function table.
* lib.h (eql_f): Missing declaration added.
* txr.1: Documented cond, and, if, or, defun, inc, dec,
set, push and pop.
|
|
|
|
|
|
|
|
| |
(list): Prior commit reversed.
* txr.1: Prior commit reversed.
* RELNOTES: No semantics clarification in quasiquote; bugfixes only.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(expand_qquote): Bugfix: missing case added to handle directly quoted
quasiquote.
(eval_init): Error-catching pseudo-operators registered in
op_table.
* parser.y (force_regular_quotes): New function.
(list): Quotes within unquotes and splices are regular.
* txr.1: Clarified new rules. Removed description of ,'form and ,*'form
special syntax.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): New intrinsic functions.
* lib.c (rplaca, rplacd, lcons_fun): New functions.
(make_lazycons): Renamed to make_lazy_cons, relocated
and turned into external function.
(lazy_stream_func, lazy_stream_cons): Follow rename
of make_lazycons.
* lib.h (rplaca, rplacd, make_lazy_cons, lcons_fun):
Declared.
* txr.1: Stub sections created.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
variables.
(op_unwind_protect, op_block, op_return, op_return_from):
New static functions.
(expand): Removed case for call, if, and, and or. These operators
evaluate all their arguments, so the code walker can treat them
as a function calls.
Added case for block and return-from.
(eval_init): New symbols interned. New operator functions
registered in op_table.
* txr.1: Blank sections added.
|