summaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix total breakage of yyerror and yyerrorf.Kaz Kylheku2009-11-181-0/+7
|
* txr.1: Clarified handling of UTF-8, now that it's precise and portable.Kaz Kylheku2009-11-181-0/+4
|
* Version 023.Kaz Kylheku2009-11-181-0/+20
|
* More removal of C99 wide character I/O, and tightening upKaz Kylheku2009-11-171-0/+25
| | | | of standard conformance.
* Whitespace.Kaz Kylheku2009-11-171-1/+1
|
* Removing use of C99 wide character I/O.Kaz Kylheku2009-11-171-0/+21
|
* Warning fixes.Kaz Kylheku2009-11-171-0/+13
|
* * lib.c (chrp): Fix broken is_chr(num) call.Kaz Kylheku2009-11-171-0/+4
|
* * regex.c (nfa_all_states, nfa_closure): visited parameterKaz Kylheku2009-11-171-0/+5
| | | | should be unsigned.
* Fixes for compliance to C89.Kaz Kylheku2009-11-171-0/+26
|
* Version 022.txr-022Kaz Kylheku2009-11-171-0/+18
|
* * Makefile (rebuild): New target. Tired of doing make clean; make.Kaz Kylheku2009-11-161-0/+4
|
* Big round of changes to switch the code base to use the streamKaz Kylheku2009-11-161-0/+96
| | | | | | | | | | | | | | | | | abstraction instead of directly using C standard I/O, to eliminate most uses of C formatted I/O, and fix numerous bugs, such variadic argument lists which lack a terminating ``nao'' sentinel. Bug 28033 is addressed by this patch, since streams no longer provide printf-compatible formatting. The native formatter is extended with some additional capabilities to take over. The work on literal objects is expanded and they are now used throughout the code base. Fixed bad realloc in string output stream: reallocating by number of wide chars rather than bytes.
* Use the 11 tag bit pattern to denote a new type: LIT. This is aKaz Kylheku2009-11-161-0/+20
| | | | | pointer to a C static string, intended for literals. We can now treat literal strings as light-weight objects.
* * lib.c (chr): Take wchar_t argument, not int. Dropped range check.Kaz Kylheku2009-11-151-0/+7
| | | | | | (c_chr): Return wchar_t not int. * lib.h (chr, c_chr): Declarations updated.
* Version 021 preparation.txr-021Kaz Kylheku2009-11-151-0/+45
| | | | Bumped version numbers, and cleaned up trailing whitespace from some files.
* Provide both char * and unsigned char * interfaces in UTF-8 module.Kaz Kylheku2009-11-141-0/+16
| | | | Fix unsigned and plan char * mixing.
* dep.mk: Regenerated.Kaz Kylheku2009-11-141-0/+2
|
* * Makefile (depend): Marked phony and $(PROG) prerequisite dropped.Kaz Kylheku2009-11-141-1/+6
| | | | (clean, distclean, tests, install): Phony targets marked phony.
* configure (cc): Compute variable properly.Kaz Kylheku2009-11-141-0/+4
|
* Fixes for bug 28086. When constructing a cobj, whose associatedKaz Kylheku2009-11-141-0/+25
| | | | | | | | | | | | | | | | | C structure contains obj_t * references, we should initialize that C structure after allocating the cobj. If we initialize the structure first, it may end up having the /only/ references to the objects. In that case, the objects are invisible to the garbage collector. The subsquent allocation of the cobj itself then may invoke gc which will turn these objects into dust. The result is a cobj which contains a handle structure that contains references to free objects. The fix is to allocate the handle structure, then the cobj which is associated with that handle, and then initialize the handle, at which point it is okay if the handle has the only references to some objects. Care must be taken not to let a cobj escape with a partially initialized handle structure, and not to trigger gc between allocating the cobj, and initializing the fields.
* New testcase which does some UTF-8 scanning, Unicode regexes,Kaz Kylheku2009-11-131-0/+14
| | | | and @(freeform).
* * lib.c (symbolp): Bugfix: function crashed on NUM argument.Kaz Kylheku2009-11-131-0/+12
| | | | | | | | | | | (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.
* Allow -c scripts to not have a trailing newline.Kaz Kylheku2009-11-131-0/+22
| | | | | | | | | | | | | Test suite exercises -c now. txr.c (txr_main): If the script specified with -c is not terminated by a newline, just add a newline. On the shell command line, it's a nuisance to have to add the extra line before closing the quote. It's also awkward in scripting, because the shell (or at least Bash 3.0) does not produce a final terminating newline in command substitution syntax like -c "$(cat file)". The last newline in the file is trimmed, and has to be explicitly added in the script itself, which is wrong in the case when the file is empty.
* Previous commit broke UTF-8 lexing, by changing the get_charKaz Kylheku2009-11-131-0/+25
| | | | | | | | semantics on the input stream to wide character input. Also, reading a query the command line (-c) must read bytes from a UTF-8 encoding of the string. We introduce a new get_byte function which can extract bytes from streams which provide it.
* Continuing wchar_t conversion. Making sure all stdio callsKaz Kylheku2009-11-121-0/+34
| | | | | use wide character functions so that there is no illicit mixing. (But the goal is to replace this usage with txr streams).
* Fixed broken utf8_from.Kaz Kylheku2009-11-121-0/+14
| | | | Added utf8_encode, utf8_decoder_init, utf8_decode.
* Documenting extended characters in man page.Kaz Kylheku2009-11-121-0/+22
| | | | Cleaned up some more issues related to extended characters.
* Regular expression module updated to do unicode character sets.Kaz Kylheku2009-11-121-0/+54
| | | | | | | | | | | Most of the changes are in the area of representing sets. Also, a bug was found in the compilation of regex character sets: ranges straddling two adjacent blocks of 32 characters were not being added to the character set. However, ranges falling within a single 32 block, or spanning three or more such blocks, worked properly. This bug is not tickled by common ranges such as A-Z, or 0-9, which land within a 32 block.
* * txr.c (main): call setlocale to set the LC_CTYPE to en_US.UTF-8,Kaz Kylheku2009-11-111-0/+6
| | | | | so that the C library streams do the encoding. Once the program is weaned from C library wide character stream I/O, this can go away.
* Big conversion to wide characters and UTF-8 support.Kaz Kylheku2009-11-111-0/+68
| | | | | | | | | 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.
* hash.c (hash_grow): Rewritten to avoid resizing the vectorKaz Kylheku2009-11-101-0/+8
| | | | | | | in place, and thus having to pulling all conses into a big list. TODO: avoid recomputing the hash function over the keys. We could enhance cons cells with two more fields without using additional storage.
* Changing representation of objects to allow for unboxed characters.Kaz Kylheku2009-11-091-0/+17
| | | | | Now numbers and characters fit into a cell. We lose one more bit from the range of numbers.
* Add hash removal.Kaz Kylheku2009-11-091-0/+8
|
* Add hash table growth.Kaz Kylheku2009-11-091-0/+10
|
* Changing representation of objects to allow the NUM type to beKaz Kylheku2009-11-091-0/+27
| | | | | | | | 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-0/+25
| | | | due to use of boxed numbers for vector access.
* Formatting.Kaz Kylheku2009-11-091-26/+26
|
* Throw exception on stream error during close, or I/O operations. ThisKaz Kylheku2009-11-061-0/+48
| | | | | | 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.
* Version 020.txr-020Kaz Kylheku2009-11-011-0/+16
|
* Bug ID 27898: Directory order dependencies in test case.Kaz Kylheku2009-11-011-0/+13
| | | | Converted some directories to text files.
* Bug ID 27895: Calls to protect have an argument list terminatedKaz Kylheku2009-11-011-0/+13
| | | | 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-0/+21
| | | | | bottom is unreliable due to the unpredictable allocation order of local variables.
* Fix broken LSTR and FUN cases in equal.Kaz Kylheku2009-11-041-0/+4
|
* Got "make tests" working in separate build directory,Kaz Kylheku2009-11-041-0/+14
| | | | with .out files going to local tests/ tree.
* Got "make install" working.Kaz Kylheku2009-11-041-0/+8
|
* Got build to work in separate build directory.Kaz Kylheku2009-11-041-0/+15
|
* Build configuration via configure script, with cross compiling support.Kaz Kylheku2009-11-041-0/+14
| | | | | (Tested by cross-compiling txr on an x86 GNU/Linux system to run on a MIPS-based GNU/Linux system).
* Kill tabs with spaces (how did they sneak in?).Kaz Kylheku2009-11-041-2/+7
| | | | Fix possible use of uninitialized ch.
* Fixed misleading wording (separation versus termination).Kaz Kylheku2009-11-031-1/+3
| | | | | Added Introduction headings to some major sections. Improved exception handling intro.