| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
stack for SIGBUS also, not only for SIGSEGV. On Linux,
when stack growth collides with another memory mapping,
it triggers a SIGBUS not SIGSEGV, which occurs when the
process limit on stack size is exceeded. In either
situation, we need an alternative stack.
|
|
|
|
|
|
|
|
|
|
|
| |
eq_s, eql_s, equal_s): New symbol variables.
(me_case): New static function.
(eval_init): Initialize new variables. Register caseq, caseql and
casequal macros.
Re-register memq, memql, memqual, eq, eql and equal using
new symbol variables.
* txr.1: Document case, caseql and casequal.
|
|
|
|
|
|
|
|
|
| |
* lib.c (do_juxt): New static function.
(juxtv): New function.
* lib.h (juxtv): Declared.
* txr.1: Documented juxt.
|
|
|
|
|
|
|
|
|
| |
Use "/" name in error reporting, not "divi".
* eval.c (eval_init): Change registration of / so only
one argument is required out of two.
* txr.1: Document one-argument division.
|
|
|
|
| |
* txr.vim: Regenerated.
|
|
|
|
|
|
| |
Hoist uselessly repeated c_str operation out of loop.
* txr.1: Document negative starting index for search-str.
|
|
|
|
|
|
| |
it works correctly with an empty vector.
* txr.1: Write missing documentation for hash-construct.
|
|
|
|
|
|
|
|
|
|
|
| |
(eval_init): Register mapdo intrinsic.
* lib.c (mapdo): New function.
* lib.h (mapdo): Declared.
* txr.1: Documented mapdo. Documented zero-argument case
for mapcar, mapcar*, mappend and mappend*.
|
|
|
|
|
|
|
|
| |
(stream_init): Registered new functions as intrinsics.
* stream.h (put_strings, put_lines): Declared.
* txr.1: Documented.
|
|
|
|
|
|
|
|
|
|
|
| |
* stream.c (get_string): New function.
* stream.h (get_string): Declared.
(stream_init): get_string registered as get-string intrinsic.
* txr.1: Documented get-string, and get-lines as a synonym for
lazy-stream-cons. Documented the behavioral difference of
lazy-stream-cons lazy lists for real-time and non-real-time streams.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
library so we can test for math functions.
* arith.c (log2_init): New static function.
(log2, logtwo): New functions.
(l2): New static variable.
(arith_init): Call log2_init.
* configure (lang_flags): Switching _XOPEN_SOURCE
from 500 to 600 to reveal log2.
Adding test for log2.
* eval.c (eval_init): Register log2 intrinsic.
* lib.h (logtwo): Declared.
* txr.1: Documented log2.
|
|
|
|
|
|
|
| |
like other situations that evaluate TXR Lisp from the pattern language.
Otherwise obscure things will go wrong.
(h_do): Same as above, and additionally, add the forgotten
call to install the bindings into the match context.
|
|
|
|
|
| |
It should be returning next_spec_k, rather
than bindings, which indicate a complete match.
|
|
|
|
|
|
|
|
|
|
| |
* tests/001/query-2.txr: Likewise.
* tests/001/query-3.txr: Likewise.
* tests/001/query-4.txr: Likewise.
* tests/002/query-1.txr: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integers and floating literals.
* genvin.txr (txr_num): The general solution is to over-match
a number by one character: a non-token constituent, and then
subtract that from the highlight region using me=e-1.
This solves the prefix ambiguities between numbers and symbols.
(txr_badnum): New match: matches floating literals with trailing
junk, which are highlighted as errors.
(txr_directive, txr_list, txr_bracket, txr_mlist, txr_mbracket):
All of these contain a txr_badnum.
* txr.vim: Regenerated.
|
|
|
|
|
|
|
| |
* genvim.txr (txl_regex): Missing syntactic region added.
(txr_regex): Start pattern is just a slash; no optional # in front.
* txr.vim: Regenerated.
|
|
|
|
| |
see the bindings set up by prior -D options.
|
|
|
|
|
|
|
|
|
| |
* lib.c (lconsp, interpose): New functions.
(lazy_interpose_func, lazy_interpose): New static functions.
* lib.h (lconsp, interpose): Declared.
* txr.1: Documented lconsp and interpose.
|
| |
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version.
* share/txr/stdlib/ver.txr: Likewise
|
|
|
|
|
|
|
|
| |
and let shadowing symacro.
* tests/011/macros-2.expected: Regenerated
* txr.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (fbind_s, lbind_s, flet_s, labels_s): New symbol globals.
(env_fb_to_fb): New static function.
(lookup_mac): Implement the same shadow check for function macros
that is done for symbol macros, because we now have local functions
that can shadow local macros.
(fbindings_helper, op_fbind, make_fun_shadowing_env,
expand_fbind_vars, me_flet_labels): New static functions.
(expand): Add cases for fbind and lbind.
(eval_init): Intern the four new symbols.
Register sys:fbind and sys:lbind operators.
Register flet and labels macros.
* txr.1: Documented flet and labels.
|
| |
|
|
|
|
|
|
|
|
| |
the caller needs the return value, so the function
can avoid consing up a list that will be thrown away.
(op_let): Pass nil argument to new parameter of bindings_helper.
(op_each, op_for): Pass t to indicate that the return value
is needed.
|
|
|
|
| |
* METALICENSE: Adding notes about MPI.
|
|
|
|
|
|
|
|
|
|
|
|
| |
directory.
* txr.c (help): Help text updated to document --license option.
(license): New function.
(txr_main): Implement --license option.
* unwind.h (uw_catch): Add cast to suppress warning about unused symbol.
* txr.1: Document --license option.
|
| |
|
|
|
|
| |
* METALICENSE: New file.
|
|
|
|
|
|
|
|
|
| |
but with modifications. Adding back the no-liability
part of the disclaimer, but with abbreviated text.
Also, rewriting the initial paragraph to make it clear
that the two conditions cover redistribution, and that
use of the software is tantamount to agreeing with the
disclaimer.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(me_ap, me_ip): Generate a much simpler macro-expansion:
a call to apf or ipf, rather than lambda syntax.
(me_ado, me_ido): New static functions.
(eval_init): Initialize apf_s and ipf_s variables.
Use them in the registration calls for apf and ipf.
Register ado and ido macros.
* txr.1: Streamlined documentation for ap and ip,
and added ado and ido.
|
|
|
|
| |
should be registered as variadic functions.
|
| |
|
| |
|
|
|
|
| |
* configure: set up EXE variable in config.make, not exe.
|
| |
|
|
|
|
| |
This entry shows when usleep was added to TXR.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
such as obtained by the where function.
* lib.c (replace_list, replace_str, replace_vec): Allow the
from argument to be a list of index positions, possibly empty.
* txr.1: Condensed syntactic descriptions under dwim operator.
Range Indexing section no longer says that the value nil
can be used as either endpoint of a range. This will not
work any longer since a "from" value of nil looks like an
empty list of indexes. Documented new behavior under
replace, and shortened documentation for replace-list,
replace-str and replace-vec.
|
|
|
|
| |
which are lists.
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Register bit as intrinsic.
* lib.h (bit): Declared.
* mpi-patches/add-bitops (mp_bit): New function.
* txr.1: Documented bit
|
|
|
|
|
|
|
| |
leaks caused by wrongly initializing the temporary destination operand
for mp2_comp with a size, which mp2_comp then clobbers by doing the same
thing. Also plug memory leaks that happen in in out-of-memory return
case.
|
|
|
|
| |
* txr.1: document hash support for select and where.
|
|
|
|
|
|
|
|
|
|
|
|
| |
manipulate argument lists.
* eval.c (apply_frob_args): Rewrite to non-destructive
one-pass version.
(iapply): Likewise.
* lib.c (term): New function.
* lib.h (term): Declared.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when bit field operands are negative, affecting logand, logor, logxor,
lognot, logtrunc, logtest and ash. In addition, logtest was found to
return the logical inverse of its correct value.
* arith.c (logtest): Fix broken boolean polarity
of return value.
* mpi-patches/add-bitops (mp_2comp): Fix incorrect
treatment of negative values.
(mp_and): Fix incorrectly ordered statements, which
cause failure when operands are negative.
|
|
|
|
|
|
|
|
|
|
| |
(iapply, me_ip): new static functions.
(do_apf): Bugfix: use apply_intrinsic, not apply.
(do_ipf, ipf): New static functions.
(eval_init): initialize iapply_s. register me_ip macro
expander, and the iapply and ipf functions.
* txr.1: Documented iapply, ipf and ip.
|
| |
|