| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
* txr.1: Because invalid UTF-8 bytes are allowed in string
literals, that documentation needs to be updated. I'm
rewriting it substantially to clarify the difference between
text streams and parsing source. In the discussion of escape
sequences in string literals, the wording is improved. Because
the source code is UTF-8, we could plausibly support escapes
which specify bytes (that are then decoded), so that's not
the correct rationale for not supporting it.
|
|
|
|
|
| |
* txr.1: Do not hyphenate two's complement and C language,
except in phrases like "C-language-style whatever".
|
|
|
|
|
|
| |
* txr.1: Under the lambda operator, point to the op notational
family, functional combinators and the OOP-related method
and slot indirection.
|
|
|
|
|
| |
* txr.1: advise user that numeric escapes in string literals
are not byte-wise, but specify code points.
|
|
|
|
|
| |
* txr.1: Numerous issues of hyphenation, formatting,
and errors in typography and formatting are addressed.
|
|
|
|
| |
* txr.1: Fix formatting.
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Bumped.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
| |
* txr.1: The notation obj.?(fun ...) exists, but is not
documented. Let's fix that.
|
|
|
|
|
| |
* txr.1: under "File-Wide Insertion of Gensyms", remove
superfluous verb phrase from sentence.
|
|
|
|
|
| |
* txr.1: Under "Treatment of Literals", fix lack of
close double quote in italicization of vice versa.
|
|
|
|
|
|
|
| |
* txr.1: In the definition of what is a top-level form to the
compiler, replace poor wording about macro-expansion in rule
6, and add a rule which makes it clear that the rules are
recursive.
|
|
|
|
|
|
| |
* txr.1: Add notes about environment handling when an
interpreted function is compiled, and how hlet/hlet* can be
used to obtain sharing.
|
|
|
|
| |
* txr.1: All missing item number periods added.
|
|
|
|
| |
* txr.1: Fix "implement implement".
|
|
|
|
|
|
|
|
| |
* share/txr/stdlib/awk.tl (sys:awk-expander): Do not impose
stricter restrictions on :name than the block mechanism
itself.
* txr.1: Documentation updated.
|
|
|
|
|
| |
* txr.1: The block implementation doesn't care whether blocks
are symbols; anything comparable with eq may be used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* genman.txr: dump contents of symhash into a doc-syms.tl
library file, as a defvarl form.
* lisplib.c (doc_instantiate, doc_set_entries): New static
functions.
(lisplib_init): Register autoload for doc-lookup module
to symbols doc and *doc-url*.
* share/txr/stdlib/doc-lookup.tl: New file.
* share/txr/stdlib/doc-syms.tl: Likewise.
* txr.1: Documented.
|
|
|
|
| |
* txr.1: Consistently capitalize Dialect Note
|
|
|
|
|
| |
* txr.1: Remove two unnecessary .PP directives and a blank
line before one.
|
|
|
|
|
|
| |
* txr.1: Don't use TP* for notes and dialect notes because it
doesn't fit these paragraphs that don't have an indented
margin.
|
|
|
|
| |
* txr.1: Add .PP to deindent after example.
|
|
|
|
|
| |
* txr.1: Fix grammar problem and wording for
--lisp and --compiled.
|
|
|
|
|
| |
* txr.1: Give the two -l and --lisp-bindings synonyms in the
same way was other synonyms, as two separate .IP items.
|
|
|
|
|
|
|
|
| |
* checkman.txr (check-ip): New pattern function for checking
for IP, coIP and meIP macros followed by blank line. This
causes a formatting issue in HTML.
* txr.1: Fix numerous instances of problem caught by check-ip.
|
|
|
|
| |
* txr.1: add .RS/.RE pair in Quote and Quasiquote.
|
|
|
|
|
|
| |
* txr.1: Under the summary of place-mutating operations,
rewrite the description of push which falsely claims that the
pushed item is returned.
|
|
|
|
| |
* txr.1: Fix about :reflect wrongly referring to :wrap.
|
|
|
|
| |
* txr.1: indent-foff misspelled as intent-foff.
|
|
|
|
|
| |
* txr.1: Fix grammar, punctuation, formatting, and
cases of misspellings landing on dictionary words.
|
|
|
|
|
| |
* txr.1: Fix two occurrences of \*(TL being separated from a
period by a space in the ARGUMENTS AND OPTIONS section.
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Bumped.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
| |
* txr.1: Relationship between make-similiar-hash and copy-hash
is expressed more accurately.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The float type promotes to double when passed as
a variadic argument.
This patch adds internal FFI types which models that
promotion. It uses double for its C type, while still
performing the range checks for float.
Also, the types be-float and le-float are rejected from
being variadic arguments.
* share/txr/stdlib/ffi.tl (analyze-argtypes): Rewrite
function, adding validation and substitution for the
variadic part of the argument type list. Map float type to
double, and reject be-float and le-float.
* txr.1: Documented.
|
|
|
|
|
|
|
| |
* sysif.c (poll_wrap): Use seq_iter for efficience when
poll_list is a vector or other generalized sequence.
* txr.1: Change wording to say that poll-list is a sequence.
|
|
|
|
|
| |
* txr.1: Fix wrong word; clarify what is first form and second
form.
|
|
|
|
|
|
|
|
| |
* txr.1: structural pattern matching intro is divided into
sections, rearranged and reworded, with additional detail,
especially in regard to variables. Also, "a the" typo fixed in
list pattern notation section. Pattern matching is now taken
out of beta; the paragraph about the beta status is removed.
|
|
|
|
|
|
|
|
|
| |
* txr.1: Add a missing section defining meta-symbols,
meta-numbers and meta-expressions, which explains the sys:var
and sys:expr shorthand. Also documented are corner cases
involving deceptive floating-point syntax.
Everywhere in the document, we normalize "meta-variable"
as "meta-symbol".
|
|
|
|
|
|
|
| |
* lib.c (cat_str): Traverse sequences of strings efficiently
using seq_iter framework.
* txr.1: Document.
|
|
|
|
| |
* txr.1: Rewrote Macros section intro paragraphs.
|
|
|
|
|
| |
* txr.1: The description of command-get-buf mistakenly refers
to command-get.
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Bumped.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That old cat-str function is often a pain, requiring the
pieces as a list. We have a sys:fmt-join that is undocumented.
That functions is now exposed as usr:join, and documented.
Also introducing join-with that takes a separator as the
leftmost argument. Thus (op join-with "::") gives us
a function that joins pieces with :: in between.
* eval.c (eval_init): Regiser fmt_join function under join
symbol also. Register join-with.
* lib.c (join_with): New function.
(fmt_join): Now a wrapper for join_with that passes a nil
separator.
* lib.h (join_with): Declared.
* share/txr/stdlib/optimize.tl (basic-blocks join-blocks):
Rename the local function join, which now triggers a warning
about a standard function being redefined.
* txr.1: Redocumented cat-str, and documented join-with
and join.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisplib.c (compiler_set_entries): Register *opt-level*
symbol for auto-loading.
* share/txr/stdlib/compiler.tl (*opt-level*): New special
variable.
(compiler comp-let): Eliminate frames only at level 3.
(compiler comp-lambda-impl): Lift load time at level 3.
(compiler comp-arith-form): Constant-folding only at lvl 1.
(compiler comp-fun-form): Algebraic substitutions and
reductions and constant-folding only at level 1.
(compiler comp-apply-call): Constant folding at level 1.
(compiler optimize): Optimizations off if level zero.
Thread jumps and eliminate dead code at level 2.
Flow-analysis based optimizations at level 3.
Additional optimizations at level 4.
(compile comp-block): Block elimination at level 3.
(compile-toplevel): Rebind *opt-level*, giving it value zero
if it is previously nil.
* share/txr/stdlib/optimize.tl (basic-blocks get-insns): Just
retrieve the instructions, letting caller decide whether to
call late-peephole or not.
* txr.1: Documented *opt-level*.
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Bumped.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Bumped.
* txr.vim, tl.vim: Regenerated.
* protsym.c: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The list-builder methods, other than del, del* and get,
now return the object instead of nil.
* share/txr/stdlib/build.tl (list-builder (add, add*, pend,
pend*, ncon, ncon*): Return the object, self.
(list-builder-flets): Do not return the object out of the
local functions which invoke the above methods.
* txr.1: Documented.
|
|
|
|
|
|
| |
* txr.1: The documentation wrongly refers to @(call @'foo)
which hasn't worked that way since version 144. The first
argument is a Lisp expression.
|
|
|
|
| |
* txr.1: Improved description of quote operator.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closures do not share t-registers with surrounding code; they
do not store a value into such a register that code outside
the closure would read and vice versa.
When compiling closures, we can can temporarily reset the
compiler's t-register allocator machinery to get low
t-register values. Then, when executing the closure, we
reserve space just for the registers it needs, not based off
the containing vm description.
Here we make a backwards-incompatible change. The VM close
instruction needs an extra parameter indicating the number of
t-regisers. This is stored into the closure and used for
allocating the frame when it is dispatched.
* parser.c (read_file_common): We read nothing but version 6
tlo files now.
* share/txr/stdlib/asm.tl (op-close asm): Parse new ntreg
argument from close syntax, and put it out as an extra word.
Here is where we pay for this improvement in extra code size.
(op-close dis): Extract the new argument from the machine code
and add it to the disassembled format.
* share/txr/stdlib/compiler.tl (compile-in-toplevel): Save and
restore the t-reg discards list also. Don't bother with a
gensym for the compiler; the argument is always a symbol,
which we can use unhygienically like in with-var-spy.
(compile-with-fresh-tregs): New macro based on
compile-in-toplevel: almost the same but doesn't reset the
level.
(comp-lambda-impl): Use compile-with-fresh-tregs to compile
the entire closure with a minimized register set.
Place the treg-cntr into the closure instruction to indicate
the number of registers the closure requires.
* vm.c (struct vm): New member, nreg.
(vm_make_closure): New parameter, nreg, stored into the
closure.
(vm_close): Extract a third opcode word, and pull the nreg
value from the bottom half. Pass this to vm_make_closure.
(vm_execute_closure, vm_funcall_common): Calculate frame size
based on the closur's nreg rather than the VM description's.
* txr.1: Document that the upcoming version 252 produces
version 6.0 object files and only loads version 6.
|