summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* * eval.c (giterate_func, giterate): New static functions.Kaz Kylheku2014-07-273-2/+62
| | | | | | (eval_init): Registered giterate as intrinsic. * txr.1: Documented giterate.
* * unwind.h (uw_block_begin): Get rid of the unused typedef trick,Kaz Kylheku2014-07-262-3/+11
| | | | | | | 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.
* * txr.1: Corrections in "status and error reporting"Kaz Kylheku2014-07-251-13/+20
| | | | section and notes on regular expressions.
* * Makefile, arith.c, arith.h, combi.c, combi.h, configure, debug.c,Kaz Kylheku2014-07-2340-631/+636
| | | | | | | | 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.
* * match.c (subst_vars): Bugfix: I neglected to apply theKaz Kylheku2014-07-222-1/+7
| | | | | filter which is in effect to the result of interpolating a TXR Lisp expression, oops!
* * parser.y (METANUM): Forgotten %right declaration for thisKaz Kylheku2014-07-222-1/+6
| | | | token has been resulting in a shift-reduce conflict.
* * configure: Add a check, in the case that we cannot make anKaz Kylheku2014-07-227-6/+76
| | | | | | | | | | | | | | | | | 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.
* * RELNOTES: Updated.Kaz Kylheku2014-07-227-46/+103
| | | | | | | | * configure, txr.1: Bumped version. * share/txr/stdlib/ver.txr: Likewise * arith.c (log2): Change to static.
* * eval.c (me_case): Fix quoting issue in expansion.Kaz Kylheku2014-07-222-1/+7
|
* * signal.c (set_sig_handler): Set up and tear down alternateKaz Kylheku2014-07-202-2/+11
| | | | | | | | 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.
* * eval.c (caseq_s, caseql_s, casequal_s, memq_s, memql_s, memqual_s,Kaz Kylheku2014-07-203-6/+130
| | | | | | | | | | | 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.
* * eval.c (eval_init): Register juxt as intrinsic.Kaz Kylheku2014-07-205-0/+58
| | | | | | | | | * lib.c (do_juxt): New static function. (juxtv): New function. * lib.h (juxtv): Declared. * txr.1: Documented juxt.
* * arith.c (divi): Support one-argument form.Kaz Kylheku2014-07-204-8/+26
| | | | | | | | | 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.
* * genvim.txr: Fixed highlighting issues in numbers followed by newline.Kaz Kylheku2014-07-203-94/+101
| | | | * txr.vim: Regenerated.
* * lib.c (search_str): Support negative starting index.Kaz Kylheku2014-07-193-6/+27
| | | | | | Hoist uselessly repeated c_str operation out of loop. * txr.1: Document negative starting index for search-str.
* * hash.c (hash_construct): Nullify the pairs argument so thatKaz Kylheku2014-07-193-0/+27
| | | | | | it works correctly with an empty vector. * txr.1: Write missing documentation for hash-construct.
* * eval.c (mapdov): New function.Kaz Kylheku2014-07-195-5/+81
| | | | | | | | | | | (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.c (put_strings, put_lines): New functions.Kaz Kylheku2014-07-194-5/+65
| | | | | | | | (stream_init): Registered new functions as intrinsics. * stream.h (put_strings, put_lines): Declared. * txr.1: Documented.
* * eval.c (eval_init): Register get-lines as a synonym for lazy-stream-cons.Kaz Kylheku2014-07-195-1/+72
| | | | | | | | | | | * 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.
* * txr.1: wording: arguments are omitted, not parameters.Kaz Kylheku2014-07-191-3/+3
|
* * Makefile (conftest, conftest2): Link mathKaz Kylheku2014-07-187-4/+76
| | | | | | | | | | | | | | | | | | | 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.
* * match.c (v_do, v_require): Set up and tear down environment frame,Kaz Kylheku2014-07-152-2/+19
| | | | | | | 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.
* * match.c (h_eol): Fix broken horizontal @(eol).Kaz Kylheku2014-07-152-1/+7
| | | | | It should be returning next_spec_k, rather than bindings, which indicate a complete match.
* * tests/001/query-1.txr: Remove bogus public domain header.Kaz Kylheku2014-07-156-20/+12
| | | | | | | | | | * tests/001/query-2.txr: Likewise. * tests/001/query-3.txr: Likewise. * tests/001/query-4.txr: Likewise. * tests/002/query-1.txr: Likewise.
* Fix old, known syntax highlighting problems between symbols,Kaz Kylheku2014-07-153-16/+36
| | | | | | | | | | | | | | | 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.
* Fix broken regex highlighting.Kaz Kylheku2014-07-153-97/+109
| | | | | | | * genvim.txr (txl_regex): Missing syntactic region added. (txr_regex): Start pattern is just a slash; no optional # in front. * txr.vim: Regenerated.
* * txr.c (txr_main): Allow Lisp code executed via -e and -p options toKaz Kylheku2014-07-142-2/+7
| | | | see the bindings set up by prior -D options.
* * eval.c (eval_init): Register interpose and lconsp as intrinsics.Kaz Kylheku2014-07-145-0/+127
| | | | | | | | | * 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.
* * txr.1: Fix opening ( balanced by }.Kaz Kylheku2014-07-131-1/+1
|
* Version 92.txr-92Kaz Kylheku2014-07-105-4/+36
| | | | | | | | * RELNOTES: Updated. * configure, txr.1: Bumped version. * share/txr/stdlib/ver.txr: Likewise
* * tests/011/macros-2.txr: Added test for labels shadowing macro,Kaz Kylheku2014-07-104-138/+160
| | | | | | | | and let shadowing symacro. * tests/011/macros-2.expected: Regenerated * txr.vim: Regenerated.
* Implementing local function binding constructs.Kaz Kylheku2014-07-103-3/+185
| | | | | | | | | | | | | | | | * 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.
* * eval.c: Comment spelling.Kaz Kylheku2014-07-101-1/+1
|
* * eval.c (bindings_helper): New parameter to indicate thatKaz Kylheku2014-07-082-6/+18
| | | | | | | | 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.
* * LICENSE: Adding copyright for MPI Library.Kaz Kylheku2014-07-083-1/+24
| | | | * METALICENSE: Adding notes about MPI.
* * Makefile: install the LICENSE and METALICENSE files into the dataKaz Kylheku2014-07-075-0/+60
| | | | | | | | | | | | 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.
* * lib.c (replace_list, sel): fix use of unused variable.Kaz Kylheku2014-07-072-2/+6
|
* * LICENSE: Small wording change. Add pointer to METALICENSE.Kaz Kylheku2014-07-073-2/+45
| | | | * METALICENSE: New file.
* * LICENSE: Switching to simplified two-clause BSD license,Kaz Kylheku2014-07-072-7/+18
| | | | | | | | | 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.
* * txr.1: Spell check.Kaz Kylheku2014-07-072-102/+106
|
* * txr.1: Corrections from Roman MishinKaz Kylheku2014-07-062-49/+56
|
* * eval.c (apf_s, ipf_s): New symbol variables.Kaz Kylheku2014-07-033-18/+47
| | | | | | | | | | | | (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.
* * eval.c (apf, ipf): Bugfix: do_apf and do_ipfKaz Kylheku2014-07-032-2/+7
| | | | should be registered as variadic functions.
* Typo.Kaz Kylheku2014-07-031-1/+1
|
* Version 91.txr-91Kaz Kylheku2014-07-025-122/+200
|
* * Makefile: use $(EXE) in install: recipe.Kaz Kylheku2014-07-023-2/+18
| | | | * configure: set up EXE variable in config.make, not exe.
* * txr.1: Documented usleep.Kaz Kylheku2014-07-022-0/+25
|
* Reconstruct missing ChangeLog entry from git log.Kaz Kylheku2014-07-021-0/+20
| | | | This entry shows when usleep was added to TXR.
* * eval.c (dwim_loc): Support indexing using a list of positions,Kaz Kylheku2014-07-024-90/+193
| | | | | | | | | | | | | | | 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.
* * lib.c (sel): Bugfix: not implemented correctly for sequencesKaz Kylheku2014-06-302-4/+7
| | | | which are lists.