summaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
...
* | Implemented the regular expression ~ and & operators.Kaz Kylheku2010-01-051-0/+50
|/ | | | | | | | | | | | | | | This turns out to be easy to do in NFA land. The complement of an NFA has exactly the same number and configuration of states and transitions, except that the states have an inverted meaning; and furthermore, failed character transitions are routed to an extra state (which in this impelmentation is permanently allocated and shared by all regexes). The regex & is implemented trivially using DeMorgan's. Also, bugfix: regular expressions like A|B|C are allowed now by the syntax, rather than constituting syntax error. Previously, this would have been entered as (A|B)|C.
* * parser.l (YYINPUT): Fix signed/unsigned comparison.Kaz Kylheku2009-12-091-0/+4
|
* * hash.c (sethash): New function.Kaz Kylheku2009-12-091-0/+10
| | | | | | | | * hash.h (sethash): Declared. * lib.c (cobj_handle): New function. * lib.h (cobj_handle): Declared.
* All COBJ operations have default implementations now;Kaz Kylheku2009-12-081-0/+34
| | | | | | no null pointer check over struct cobj_ops operations. New typechecking function for COBJ objects.
* More void * to mem_t * conversion.Kaz Kylheku2009-12-051-0/+12
|
* Eliminate the void * disease. Generic pointers are of mem_t *Kaz Kylheku2009-12-041-0/+24
| | | | | from now on, which is compatible with unsigned char *. No implicit conversion to or from this type, in C or C++.
* * gc.c (heap_min_bound, heap_max_bound): New static globals.Kaz Kylheku2009-12-031-0/+8
| | | | | | | (more): Update heap_min_bound and heap_max_bound. (in_heap): Do early rejection tests on the pointer. If it's not aligned, or it's completely outside of the bounding box of the heap area, short circuit to false.
* Version 027.txr-027Kaz Kylheku2009-12-031-0/+17
|
* Merge.Kaz Kylheku2009-12-031-0/+8
|\
| * * parser.l (YY_NO_UNPUT): Removed superfluous #define. This is notKaz Kylheku2009-12-031-0/+8
| | | | | | | | | | | | | | needed because suppressing generation of unput is requested via the %option. In scanners generated by the legacy version of flex, 2.5.4, still widely in use. this redundancy leads to a multiple #define YY_NO_UNPUT and a compiler warning.
* | * Makefile (CFLAGS): Better test for g++, when removingKaz Kylheku2009-12-031-0/+7
|/ | | | | | warning options not appropriate for g++. Sometimes g++ may be called something that dosn't end in g++, like g++4.
* Fix for failing test suite on MIPS machine, due toKaz Kylheku2009-12-031-0/+12
| | | | gc failing to mark a local variable in txr_main.
* * Makefile (tests): Don't depend on the executable. Otherwise,Kaz Kylheku2009-12-021-0/+10
| | | | | | | | | during make install-tests, if it doesn't exist in the install directory, a gcc compile command gets deposited into the run.sh generated script. (install-tests): Fixes to make this work when using a separate build directory. Split the cpio -p job into a cpio -i piping into cpio -o.
* * Makefile (install-tests): New target. Provides a way to make theKaz Kylheku2009-12-021-0/+6
| | | | | test cases part of the installation, and a generated script to run the commands on the installation host.
* Fix annoyances with dependency generation, such as picking up localKaz Kylheku2009-12-021-0/+14
| | | | files that are not in the project.
* * Makefile (CFLAGS): If the compiler matches the pattern %g++,Kaz Kylheku2009-11-281-0/+6
| | | | | then remove some C-front-end-specific warnings from CFLAGS, which the g++ front end will complain about.
* * Makefile (CFLAGS): add -Dlint to CFLAGS when compiling y.tab.o.Kaz Kylheku2009-11-281-0/+7
| | | | | | This suppresses some warnings from a byacc-generated parser, and gets rid of a useless static sccsid array. May help with Bison-generated parser also.
* * parser.l: Use flex options to suppress generation of theKaz Kylheku2009-11-281-0/+6
| | | | | unused functons yyunput and yyinput, thus getting rid of some compiler diagnostics.
* Code cleanup. All private functions static. Private stuffKaz Kylheku2009-11-281-0/+68
| | | | in regex module not exposed in header. Etc.
* * configure: Workaround in banner code for coreutils printf %.*s bug.Kaz Kylheku2009-11-281-0/+4
|
* Switching to DESTDIR convention for install.Kaz Kylheku2009-11-271-0/+15
| | | | | Make install step does some things more correctly now, without relying on the install program.
* Version 026.txr-026Kaz Kylheku2009-11-261-0/+24
|
* Not all systems have a yacc alias for the yacc program.Kaz Kylheku2009-11-261-0/+16
| | | | | txr is known to work with two yacc implementations: GNU Bison and Berkeley yacc. Let's add some auto-detection for yacc.
* * gc.c (mark_mem_region): Bugfix: do not mess with the valgrindKaz Kylheku2009-11-261-0/+5
| | | | accessibility of the heap object if valgrind debugging is not enabled.
* * parser.y (grammar): Fixes for bison 2.4.1. Remove superfluous actionKaz Kylheku2009-11-261-0/+5
| | | | in chrlit. Include <stdlib.h> for abort.
* Refinements to Valgrind support.Kaz Kylheku2009-11-251-0/+19
|
* More Valgrind support. New option --vg-debug which turns onKaz Kylheku2009-11-251-0/+25
| | | | | Valgrind protection of free blocks. This works independently of --gc-debug.
* Fix a build breakage that may happen on some platforms.Kaz Kylheku2009-11-251-0/+12
| | | | | | | | | The parser.y file includes "utf8.h", which uses the the type wint_t. It also includes "lib.h" which uses "wchar_t". But it fails to include any headers which define these types. The generated y.tab.c picks up wchar_t by the Bison-inserted inclusion of <stdlib.h>, so that's how we got that. But wint_t does not come from any of the headers---if they are standard-conforming.
* More valgrind integration. Vector objects keep displaced pointersKaz Kylheku2009-11-251-0/+13
| | | | | | | | to vector data; they point to element 0 which is actually the third element of the vector. If an object is only referenced by interior pointers, Valgrind reports it as possibly leaked. This change conditionally adds a pointer to the true start of the vector, if Valgrind support is enabled.
* First stab at Valgrind integration. First goal: eliminate falseKaz Kylheku2009-11-251-0/+18
| | | | positives when gc is accessing uninitialized parts of the stack.
* Fix uninitialized memory locations.Kaz Kylheku2009-11-241-0/+12
|
* Switching to keyword symbols for :args and :nothrow.Kaz Kylheku2009-11-241-0/+16
|
* utf8.c (utf8_from_uc): Fix bug introduced several commits ago (portingtxr-025Kaz Kylheku2009-11-241-0/+7
| | | | to C++). Caught by regression test suite. Found using git bisect.
* Version 025Kaz Kylheku2009-11-241-0/+54
|
* Auto-detect what specifiers to use for inline functions.Kaz Kylheku2009-11-241-0/+20
| | | | | Allow compiler command to be set independently of full path for easier compiler switching.
* Changes to make the code portable to C++ compilers, whichKaz Kylheku2009-11-241-0/+35
| | | | can be taken advantage of for better diagnostics.
* Fixed broken yyerrorf. It was still taking char *, and passingKaz Kylheku2009-11-241-0/+16
| | | | | that as an object to vformat, resulting in #<garbage: ...> output.
* Renaming global variables that denote symbols, such that theyKaz Kylheku2009-11-241-0/+63
| | | | have a _s suffix.
* * configure (platform_flags, remove_flags): New config variables.Kaz Kylheku2009-11-231-0/+6
| | | | * Makefile (CFLAGS): Take into account new flags.
* Follow up on 64 bit compilation warnings.Kaz Kylheku2009-11-231-0/+11
|
* * Makefile (conftest.o): revert change that took CFLAGS fromKaz Kylheku2009-11-231-0/+5
| | | | this target.
* * configure: Don't rely on higher precision arithmetic from the buildKaz Kylheku2009-11-231-0/+7
| | | | | | machine's shell. POSIX requires shell arithmetic to be only signed long. We can't compute the INT_PTR_MAX constant in the shell, but rather generate a constant C expression to compute it.
* Reporting of compile errors during configuration for easierKaz Kylheku2009-11-231-0/+14
| | | | configure debugging.
* * configure: Bugfix in parsing configuration variablesKaz Kylheku2009-11-231-0/+9
| | | | | | | | which contain the = character. * Makefile (conftest.o): Pass full CFLAGS to configuration test builds. If some flags don't work with the compiler, this should be caught.
* * Makefile (CFLAGS): Added -I. so current directory is firstKaz Kylheku2009-11-231-0/+6
| | | | | in the include search path. This is needed for finding generated header files, when building in a separate directory.
* * lib.c (chk_malloc, chk_realloc): Fix diagnosable conversion,Kaz Kylheku2009-11-231-0/+5
| | | | caught by gcc 4.1.1.
* * configure (cross): Print out value of $cross in --help.Kaz Kylheku2009-11-231-0/+9
| | | | | | | * depend.txr: Add "config.h" to list of headers that are not prefixed with $(top_srcdir). * dep.mk: Regenerated.
* Improving portability. It is no longer assumed that pointersKaz Kylheku2009-11-231-0/+70
| | | | | | | | can be converted to a type long and vice versa. The configure script tries to detect the appropriate type to use. Also, some run-time checking is performed in the streams module to detect which conversions specifier strings to use for printing numbers.
* Introducing symbol packages. Internal symbols are now inKaz Kylheku2009-11-211-0/+80
| | | | | | | | | | a system package instead of being hacked with the $ prefix. Keyword symbols are provided. In the matcher, evaluation is tightened up. Keywords, nil and t are not bindeable, and errors are thrown if attempts are made to bind them. Destructuring in dest_bind is strict in the number of items. String streams are exploited to print bindings to objects that are not strings or characters. Numerous bugfixes.
* * unwind.c (uw_throw): If streams are not initialized,Kaz Kylheku2009-11-201-0/+20
| | | | | | we have an unhandled exception too early in initialization. Use C stream to print an error message and abort. Using the nil stream variable will just cause a recursion bomb.