summaryrefslogtreecommitdiffstats
path: root/txr.1
Commit message (Collapse)AuthorAgeFilesLines
* Version 110.txr-110Kaz Kylheku2015-07-251-2/+2
|
* * txr.1: Notes about interaction between op and quasiliterals.Kaz Kylheku2015-07-251-1/+65
|
* * txr.1: Clarifications in ifa description.Kaz Kylheku2015-07-241-5/+5
|
* * parser.l (grammar): Do not allow unescaped newline inKaz Kylheku2015-07-231-6/+21
| | | | | | | | | | | word list literals and word list quasiliterals, except in <= 109 compatibility mode. An escaped newline in these literals, together with surrounding whitespace, now produces a single space, except in <= 109 compatibility mode. * txr.1: Documented new rules for WLL's and QLL's, and added compatibility notes.
* Adding with-resources macro.Kaz Kylheku2015-07-231-0/+70
| | | | | | | | | | * share/txr/stdlib/with-resources.tl: New file. * lisplib.c (with_resource_set_entries, with_resources_instantiate): New static functions. (lisplib_init): Register new functions under dlt_register. * txr.1: Document with-resources.
* Adding nthcdr as accessor.Kaz Kylheku2015-07-221-0/+60
| | | | | | | | | | | | * eval.c (eval_init): Register nthcdr function. * lib.c (nthcdr): New function. * lib.h (nthcdr): Declared. * share/txr/stdlib/place.tl (nthcdr): New defplace. * txr.1: Documented.
* * txr.1: Delete accidentally introduced bogus text.Kaz Kylheku2015-07-221-2/+1
|
* Improve bad argument diagnosis for place macros.Kaz Kylheku2015-07-221-1/+18
| | | | | | | | | | * eval.c (op_mac_param_bind): New static function. (eval_init): Register mac-param-bind operator. * share/txr/stdlib/place.tl (define-place-macro): Use mac-param-bind inside a lambda instead of tb macro. * txr.1: Document mac-param-bind.
* Implementing second through tenth as places.Kaz Kylheku2015-07-221-12/+29
| | | | | | | | | | | | | | | | | | * eval.c (eval_init): Register second through tenth as intrinsic. * gencadr.txr: New cadr.c changes encoded. * lib.c (second, third, fourth, fifth, sixth): Functions reimplemented using ref, so they are much more efficient for vectors and strings. (seventh, eighth, ninth, tenth): New functions. * lib.h (seventh, eighth, ninth, tenth): Declared. * share/txr/stdlib/place.tl: place macros defined for second through tenth. * txr.1: Documented.
* * lisplib.c (place_set_entries): Add *place-macro* andKaz Kylheku2015-07-221-3/+44
| | | | | | | | | | | | | | define-place-macro to list of names. * share/txr/stdlib/place.tl (*place-macro*): New global hash. (sys:tigger-load, sys:pl-expand): New functions. (call-update-expander, call-clobber-expander, call-delete-expander): Recognize and expand place macros. (define-place-macro): New macro. (first, rest): Places redefined using define-place-macro, replacing the old hack of copying the expanders from one table entry to another. * txr.1: Documented place macros.
* Implementing caar, cadr, cdar and friends.Kaz Kylheku2015-07-211-0/+80
| | | | | | | | | | | | | | | | | | | | * lib.c (init): Call cadr_init. * lisplib.c (dl_table, set_dlt_entries, dlt_register): Externalize. * lisplib.h (dl_table, set_dlt_entries, dlt_register): Declared. * Makefile (OBJS): Add cadr.o. * cadr.c: New file. * cadr.h: New file. * gencadr.txr: New file. * share/txr/stdlib/cadr.tl: New file. * txr.1: Document cadr accessors.
* * share/txr/stdlib/place.tl (defplace cdr): Change deletionKaz Kylheku2015-07-211-7/+29
| | | | | | semantics so that (del (cdr x)) is symmetric with (del (car x)). * txr.1: Update documentation.
* * eval.c (eval_init): Register new split function.Kaz Kylheku2015-07-211-0/+91
| | | | | | | | | | | | * lib.c (split_func): New static function. (partition_split_common): New static function, based on on contents of partition function. (partition): Now a wrapper around partition_split_common. (split): New function. * lib.h (split): Documented. * txr.1: Documented split.
* * txr.1: Fixes in description of partition.Kaz Kylheku2015-07-211-8/+10
|
* * txr.1: Document place binding behavior of ifa.Kaz Kylheku2015-07-201-5/+13
|
* Let's have placelet and placelet*.Kaz Kylheku2015-07-111-3/+20
| | | | | | | | * share/txr/stdlib/place.tl (placelet*): New macro. * lisplib.c (place_set_entries): Add placelet* to list of names. * txr.1: Updated to document placelet* and fix mistakes.
* * eval.c (eval_init): Register bindable as intrinsic.Kaz Kylheku2015-07-101-0/+20
| | | | * txr.1: Documented.
* New placelet macro.Kaz Kylheku2015-07-101-0/+83
| | | | | | | | | | | | | | * lisplib.c (place_set_entries): Add placelet to list of names. * share/txr/stdlib/place.tl (sys:placelet1, placelet): New macros. (defplace dwim): Do not retrieve the place's value into a local variable and have the getter expand to that variable. Rather, have the getter retrieve the value. A getter that refers to a cached copy breaks the semantics of placelet, and any place operator which can evaluate the location after it is stored. * txr.1: Documented placelet.
* * txr.1: Replace callf example under mapf.Kaz Kylheku2015-07-061-3/+2
|
* * txr.1: three incorrect .metn/.meta usesKaz Kylheku2015-07-061-3/+3
|
* Clarify clear-error and flush return value.Kaz Kylheku2015-07-061-1/+5
| | | | | | | | | | | * stream.c (stdio_clear_error): Return the prior value of h->err. Do not inspect feof(h->f) or ferror(h->f); just clear the error status of the stream. (stdio_close): Set h->err from errno if fclose failed. (dir_clear_error): Return prior value of h->err. * txr.1: Document return value convetion for clear-error, and flush-stream.
* * txr.1: wrap* syntax fixKaz Kylheku2015-07-031-1/+1
|
* Support trailing semicolon after hex/octal characters.Kaz Kylheku2015-07-021-1/+16
| | | | | | | | | | | | | | | | * parser.l (%option): Remove nounput option since we need yyunput. (grammar): Rule for matching hex and octal escape in SPECIAL state recognizes optional semicolon. In 109 compatibility, this is pushed back into the stream, otherwise consumed. * txr.1: Updated documentation, including compat notes. * genvim.txr (txr_char): Include optional semicolon in match. Corrected some errors where 8 and 9 were being included as matches for octal digits. (txr_error): Default match for \x or \o not followed by digits.
* * txr.1: Replace wrong use of .coSSKaz Kylheku2015-07-021-1/+1
|
* * txr.1: avoid term "regular macro".Kaz Kylheku2015-07-011-2/+2
|
* Third round of quasiliteral-related fixes.Kaz Kylheku2015-06-261-5/+10
| | | | | | | | | * parser.l (char_esc): Recognize \@ escape. (grammar): Add a rule for a \@ escape in quasiliterals, and quasi word list literals. * txr.1: Document \@, and remove the lie that @@ encodes for a single @ in quasiliterals.
* * txr.1: Spelling, grammar.Kaz Kylheku2015-06-261-8/+8
|
* * txr.1: partition example: wrong use of where function.Kaz Kylheku2015-06-241-2/+2
|
* * txr.1: Formatting fixes.Kaz Kylheku2015-06-241-7/+16
|
* * hash.c (hash_from_pairs, hash_list): New functions.Kaz Kylheku2015-06-241-2/+34
| | | | | | | | | * hash.h (hash_from_pairs, hash_list): Declared. * eval.c (eval_init): Registered hash-from-pairs and hash-list intrinsic. * txr.1: Documented new functions.
* Hash subset testing.Kaz Kylheku2015-06-231-0/+48
| | | | | | | | | | | * eval.c (eval_init): Register hash-subset and hash-proper-subset intrinsics. * hash.c (hash_subset, hash_proper_subset): New functions. * hash.h (hash_subset, hash_proper_subset): Declared. * txr.1: New functions documented.
* Version 109.txr-109Kaz Kylheku2015-06-211-2/+2
|
* * lisplib.c (ifa_set_entries): Add conda.Kaz Kylheku2015-06-211-0/+34
| | | | | | | | * share/txr/stdlib/ifa.tl (conda): New macro. * tests/012/ifa.tl: Adding test for conda. * txr.1: Documenting conda.
* * txr.1: Fixed several instances of "<< sym)".Kaz Kylheku2015-06-201-6/+6
|
* * eval.c (eval_init): Register have function, synonym of true.Kaz Kylheku2015-06-201-2/+19
| | | | * txr.1: Document have.
* * txr.1: Documented ifa.Kaz Kylheku2015-06-191-0/+145
| | | | | | | * share/txr/stdlib/ifa.tl: Tightened up the tests for situations when the macro is ill-formed, following the improved specification. Also, eval-error is thrown instead of just error.
* * txr.1: No loads requiredKaz Kylheku2015-06-181-34/+11
| | | | | Removing references to the need for explicitly loading any library material.
* * txr.1: Document *txr-version* and *lib-version*Kaz Kylheku2015-06-181-0/+23
|
* * txr.1: Lisp can come from files.Kaz Kylheku2015-06-181-0/+7
|
* txr.1: Misspelled casequal; duplicate posq section.Kaz Kylheku2015-06-161-24/+1
|
* * txr.1: Improved wording in syntactic places.Kaz Kylheku2015-06-151-23/+8
|
* * txr.1: Corrections.Kaz Kylheku2015-06-141-4/+4
|
* Version 108.txr-108Kaz Kylheku2015-06-131-2/+2
|
* * txr.1: formatting fixes: get-error, finalize.Kaz Kylheku2015-06-131-4/+3
|
* * txr.1: Documented Lisp loading.Kaz Kylheku2015-06-131-3/+119
|
* * stream.c (catenated_stream_p, catenated_stream_push): New functions.Kaz Kylheku2015-06-071-0/+41
| | | | * stream.h (catenated_stream_p, catenated_stream_push): Declared.
* * txr.1: Document new syntactic places framework and place-mutating macros.Kaz Kylheku2015-05-251-285/+2316
|
* Introduce defparm operator.Kaz Kylheku2015-05-211-6/+46
| | | | | | | | * eval.c (me_defparm): New function. (eval_init): Register defparm. * txr.1: Documented defparm together with defvar. defvar documentation is revised.
* Variables are now deletable places, if they are global.Kaz Kylheku2015-05-151-1/+1
| | | | | | * place.tl (sys:sym-delete-expander): New function. (get-delete-expander): Retrieve delete expander for symbols.
* * eval.c (symbol_value): Retrieve the binding of a symbolKaz Kylheku2015-05-151-10/+88
| | | | | | | | | | macro also. (boundp): Return t for symbol macros. (makunbound, fmakunbound): New functions. (eval_init): Register makunbound and fmakunbound. * txr.1: Document changes to symbol-value and boundp, and add dialect notes about the different semantics of binding.