summaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* * parser.y (grammar): Fix error actions that do not assignKaz Kylheku2009-11-201-0/+5
| | | | a value to $$.
* * match.c (dest_bind): Extended to handle more general formsKaz Kylheku2009-11-201-0/+8
| | | | | | | by using eval_form rather than direct symbol binding lookups. False positive return fixed. (match_line): Fixed merge to use eval_from rather than direct symbol binding.
* * lib.c (flatten): Semantics change. The flatten functionKaz Kylheku2009-11-201-0/+5
| | | | should not map nil -> (nil), but nil -> nil.
* Changing ``obj_t *'' occurences to a ``val'' typedef. (Ideally,Kaz Kylheku2009-11-201-0/+16
| | | | | we wouldn't have to declare object variables at all, so why use an obtuse syntax to do so?)
* * txr.1: Fixed mangled formatting of exception handling example.Kaz Kylheku2009-11-191-0/+4
|
* Get rid of macros in favor of safer inline functions.Kaz Kylheku2009-11-191-0/+16
| | | | | The recent auto_str("byte str") error could have been caught at compile time.
* Version 024.txr-024Kaz Kylheku2009-11-191-0/+13
|
* Use unsigned char * as allocator return value.Kaz Kylheku2009-11-191-0/+10
|
* Following-up on diagnostics obtained by running code through C++Kaz Kylheku2009-11-181-0/+28
| | | | | | compiler. Idea: allocator functions return char * instead of void *, like malloc did in classic pre-ANSI C. That way we are forced to use a cast except when the target pointer is char * already.
* * match.c (match_line, match_files): Fix broken behavior of collectKaz Kylheku2009-11-181-1/+11
| | | | that doesn't match anything.
* 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.