| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
that as an object to vformat, resulting in #<garbage: ...>
output.
|
|
|
|
| |
have a _s suffix.
|
|
|
|
| |
* Makefile (CFLAGS): Take into account new flags.
|
| |
|
|
|
|
| |
this target.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
configure debugging.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
in the include search path. This is needed for finding
generated header files, when building in a separate directory.
|
|
|
|
| |
caught by gcc 4.1.1.
|
|
|
|
|
|
|
| |
* depend.txr: Add "config.h" to list of headers that are not
prefixed with $(top_srcdir).
* dep.mk: Regenerated.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
a value to $$.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
should not map nil -> (nil), but nil -> nil.
|
|
|
|
|
| |
we wouldn't have to declare object variables at all, so why
use an obtuse syntax to do so?)
|
| |
|
|
|
|
|
| |
The recent auto_str("byte str") error could have been caught
at compile time.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
that doesn't match anything.
|
| |
|
| |
|
| |
|
|
|
|
| |
of standard conformance.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
should be unsigned.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
pointer to a C static string, intended for literals. We can now
treat literal strings as light-weight objects.
|
|
|
|
|
|
| |
(c_chr): Return wchar_t not int.
* lib.h (chr, c_chr): Declarations updated.
|
|
|
|
| |
Bumped version numbers, and cleaned up trailing whitespace from some files.
|
|
|
|
| |
Fix unsigned and plan char * mixing.
|
| |
|
|
|
|
| |
(clean, distclean, tests, install): Phony targets marked phony.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
and @(freeform).
|
|
|
|
|
|
|
|
|
|
|
| |
(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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
use wide character functions so that there is no illicit
mixing. (But the goal is to replace this usage with txr streams).
|