summaryrefslogtreecommitdiffstats
path: root/lib.c
Commit message (Collapse)AuthorAgeFilesLines
* * lib.c (symbolp): Bugfix: function crashed on NUM argument.Kaz Kylheku2009-11-131-2/+3
| | | | | | | | | | | (lazy_str): Fix for gc correctness: object from make_obj must be completely intialized before any gc-triggering operation is invoked, otherwise the garbage collector will be traversing an object whose fields contain old garbage. (lazy_str_force_upto): Off-by-one error. To force the object up to index position N, means forcing up to length N+1. This bug can make it look like a lazy string is much shorter than it really is.
* Continuing wchar_t conversion. Making sure all stdio callsKaz Kylheku2009-11-121-10/+10
| | | | | use wide character functions so that there is no illicit mixing. (But the goal is to replace this usage with txr streams).
* Big conversion to wide characters and UTF-8 support.Kaz Kylheku2009-11-111-158/+170
| | | | | | | | | This is incomplete. There are too many dependencies on wide character support from the C stream I/O library, and implicit use of some encoding which may not be UTF-8. The regex code does not handle wide characters properly. Character type is still int in some places, rather than wchar_t. Test suite passes though.
* Changing representation of objects to allow for unboxed characters.Kaz Kylheku2009-11-091-28/+32
| | | | | Now numbers and characters fit into a cell. We lose one more bit from the range of numbers.
* Changing representation of objects to allow the NUM type to beKaz Kylheku2009-11-091-44/+50
| | | | | | | | unboxed. If the lowest bit of the obj_t * pointer is 1, then the remaining bits are a number. A lot of assumptions are made: - the long type can be converted to and from a pointer - two's complement. - behavior of << and >> operators when the sign bit is involved.
* First cut at hash tables. One known problem is allocation during gc,Kaz Kylheku2009-11-091-1/+15
| | | | due to use of boxed numbers for vector access.
* Throw exception on stream error during close, or I/O operations. ThisKaz Kylheku2009-11-061-3/+4
| | | | | | is needed for pipes that terminate abnormally or return failed termination. Pipe and stdio streams have an extra description field so they are printed in a readable way.
* Bug ID 27895: Calls to protect have an argument list terminatedKaz Kylheku2009-11-011-1/+2
| | | | by the integer constant 0 rather than a proper null pointer constant.
* Bug ID 27899: Garbage collection problem: method of locating stackKaz Kylheku2009-11-011-16/+3
| | | | | bottom is unreliable due to the unpredictable allocation order of local variables.
* Fix broken LSTR and FUN cases in equal.Kaz Kylheku2009-11-041-7/+9
|
* Version 019txr-019Kaz Kylheku2009-11-031-1/+1
| | | | | | Regexps can be bound to variables. New freeform directive.
* Change the freeform line catenation semantics to terminationKaz Kylheku2009-11-031-18/+15
| | | | rather than separation.
* Got regex working over lazy strings from freeform.Kaz Kylheku2009-11-021-2/+5
| | | | Bugfixes.
* Implement custom separator and limit in freeform.Kaz Kylheku2009-11-021-8/+28
|
* Lazy string fix.Kaz Kylheku2009-11-021-1/+2
|
* Start of implementation for freestyle matching.Kaz Kylheku2009-11-021-121/+328
| | | | | | | | | | | Lazy strings implemented, incompletely. Changed string function to implicitly strdup; non-strdup version changed to string_own. Fixed wrong uses of strdup rather than chk_strdup. Functions added to regex module to provide regex matching as a state machine to which characters are fed.
* txr-017 2009-10-17txr-017Kaz Kylheku2017-07-311-2/+2
| | | | Note: Version 016 ChangeLog message incorrect.
* txr-016 2009-10-16txr-016Kaz Kylheku2017-07-311-1/+3
|
* txr-015 2009-10-15txr-015Kaz Kylheku2017-07-311-324/+247
|
* txr-014 2009-10-05txr-014Kaz Kylheku2017-07-311-21/+124
|
* txr-013 2009-09-30txr-013Kaz Kylheku2017-07-311-2/+21
|
* txr-012 2009-09-28txr-012Kaz Kylheku2017-07-311-1/+119
|
* txr-011 2009-09-25txr-011Kaz Kylheku2017-07-311-0/+1609