| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
except for signals for which we use alt stack.
* signal.h (sig_save_enable): Do sig_check before
enabling async signals. This caused the !async_sig_enabled assertion
to trip inside make_obj.
|
|
|
|
|
|
|
|
|
|
| |
sig_bus, sig_fpe, sig_kill, sig_usr1, sig_segv, sig_usr2, sig_pipe,
sig_alrm, sig_term, sig_chld, sig_cont, sig_stop, sig_tstp, sig_ttin,
sig_ttou, sig_urg, sig_xcpu, sig_xfsz, sigtalrm, sig_prof, sig_poll,
sig_sys, sig_winch, sig_iot, sig_stkflt, sig_io, sig_lost, sig_pwr):
Remove unused global variables variables.
* signal.h: Remove declarations thereof.
|
|
|
|
|
|
|
|
|
| |
(eval_init): Registered getpid and getppid intrinsics.
* signal.c (kill_wrap): New static function.
(sig-init): Registered kill intrinsic function.
* txr.1: Documented getpid, gettpid and kill.
|
|
|
|
|
|
|
|
|
| |
* parser.y (quasi_item): Support splices as items.
* genvim.txr: Syntax highlighting support for unquotes in
quasiliterals.
* txr.vim: Updated.
|
| |
|
|
|
|
|
|
|
|
| |
* lib.c (uniq): New function.
* lib.h (uniq): Declared.
* txr.1: Documented uniq.
|
|
|
|
|
|
|
|
|
| |
with one optional argument, reflecting existing behavior.
(eval_init): Registration of repeat updated.
* txr.1: Fixed incorrect documentation which falsely suggests
that repeat takes multiple lists, and doesn't mention
the optional count.
|
|
|
|
|
| |
to switch statements, leading to strange error
messages when wrong types are passed in.
|
|
|
|
|
|
|
|
| |
* lib.c (nconcv): New function.
* lib.h (nconcv): Declared.
* txr.1: Documented nconc.
|
|
|
|
| |
argument so empty vectors and strings can be processed.
|
|
|
|
|
|
|
|
| |
include seed item in the sequence. The while test is applied to
each item before it is passed through the function. Also,
eliminated useless rplacd operation.
* txr.1: Updated documentation of giterate.
|
|
|
|
|
|
|
|
|
| |
* lib.c (partition_by_func): New static function.
(partition_by): New function.
* lib.h (partition_by): Declared.
* txr.1: Documented partition-by.
|
|
|
|
|
|
| |
which breaks the n_perm_k function for k == 1.
* txr.1: Fix typo: n-choose-k written in place of n-perm-k.
|
| |
|
|
|
|
| |
incorrect octal example.
|
|
|
|
|
|
|
|
| |
in some contexts that require functions.
* lib.c (funcall, funcall1, funcall2, funcall3, funcall4):
check type(fun) before dereferencing to see whether there
are optional args.
|
|
|
|
|
|
| |
(eval_init): Registered giterate as intrinsic.
* txr.1: Documented giterate.
|
|
|
|
|
|
|
| |
replace with do { } while (0), since we don't have any instances of a
uw_block_begin followed by declarations.
(uw_catch_begin): Move SYMVAR and EXCVAR inside the do/while block,
so that the expansion doesn't begin with a declaration.
|
|
|
|
| |
section and notes on regular expressions.
|
|
|
|
|
|
|
|
| |
debug.h, eval.c, eval.h, filter.c, filter.h, gc.c, gc.h, hash.c,
hash.h, lib.c, lib.h, match.c, match.h, parser.h, parser.l, parser.y,
rand.c, rand.h, regex.c, regex.h, signal.c, signal.h, stream.c,
stream.h, syslog.c, syslog.h, txr.c, txr.h, unwind.c, unwind.h,
utf8.c, utf8.h: Synchronize license header with LICENSE.
|
|
|
|
|
| |
filter which is in effect to the result of interpolating a TXR Lisp
expression, oops!
|
|
|
|
| |
token has been resulting in a shift-reduce conflict.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
executable, whether this is due to being required to use C99.
For instance, the Solaris environment requires compilation
using the C99 dialect if _XOPEN_SOURCE is set to 600 or higher.
* debug.c: When compiling as C99, we have to obey the special
C99 conventions for instantiating inline functions.
* hash.c: Likewise.
* lib.c: Likewise.
* parser.y: Likewise.
* unwind.c: Likewise.
|
|
|
|
|
|
|
|
| |
* configure, txr.1: Bumped version.
* share/txr/stdlib/ver.txr: Likewise
* arith.c (log2): Change to static.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|