| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
* lisplib.c (match_instantiate): Intern sme symbol.
* share/txr/stdlib/doc-syms.tl: Update with sme entry.
* share/txr/stdlib/match.tl (sme): New defmatch macro.
* tests/011/patmatch.tl: New tests for sme.
* txr.1: Documented.
|
|
|
|
|
| |
* txr.1: The function is first, then the hash. Reported by
Ray Perry.
|
|
|
|
|
|
|
|
| |
* share/txr/stdlib/match.tl (defmatch): Pass *match-form* to
mac-param-bind so that the context is available to defmatch
macros via the :form parameter.
* txr.1: Documented use of :form in defmatch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* share/txr/stdlib/match.tl (compile-scan-match): New
function.
(compile-match): Hook scan operator into compiler.
* lisplib.c (match_set_entries): Ensure scan is interned in
usr package.
* txr.1: Documented.
* share/txr/stdlib/doc-syms.tl: Updated with new entry for
scan.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisplib.c (match_set_entries): Register defmatch
and *match-symbol* to autoload match.tl.
* share/txr/stdlib/doc-syms.tl: Updated with entries for
defmatch and *match-macro*.
* share/txr/stdlib/match.tl (*match-macro*): New special
variable holding hash.
(compile-match): Handle macros via *match-macro* hash.
(defmatch): New macro.
* txr.1: Documented.
* tags.tl: Recognize defmatch forms.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The maximum number of characters printed from a string
is too small, if it is directly taken from the stream-max-len
value. We are going to multiply it by 8, and clamp the
minimum characters at 24.
* lib.c (max_str_chars): New inline function.
(lazy_str_put, out_lazy_str, out_quasi_str): Use inline
function to determine maximum number of chracters to print.
Also bugfix here: decrement and test max_chr in the loop, not
max_len. This bug was copy-pasted across all these functions.
(obj_print_impl): Similarly revise the printing of strings.
* txr.1: Documentation updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit relies on parallel improvements
in man2html, up through commit
ac186529b6b5f80906c3215a67c98505db7bb156
"Implement .M2HT request for HTML passthrough."
* genman.txr: Add CSS block targetting the kbd element,
providing 3D styling for keyboard input.
* txr.1: Define two new macros, .key and .keyn.
These are defined in three different ways: in man page
output, we put square brackets around keystrokes.
In typeset groff output, we put a square border around
them using a box macro cribbed from groff documentation.
In HTML, we use .M2HT to wrap a <kbd> tag around the
keystrokes. Documentatio is updated to use these macros
for all keystrokes. We no longer separate keystroke
sequence elements with commas.
|
|
|
|
|
|
|
|
|
|
|
| |
* 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*.
|