| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
* configure (have_git): Don't set this variable if
the TXR repository is missing, even if git is installed.
I.e. have_git means have have the tool and the repo.
|
|
|
|
|
|
|
|
|
|
| |
* parser.h (parser_s): Declared.
(parse_init): Declaration removed.
(parser_l_init): Declared.
* parser.l (parse_init): Function renamed to parser_l_init.
* parser.c: New file.
|
|
|
|
|
| |
file and config.h, so windows resource file is rebuilt
when the version changes.
|
|
|
|
| |
DEP_INSTANTIATE macro.
|
|
|
|
| |
file is removed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of XMALLOC, XCALLOC, XREALLOC and XFREE for $(MPI_OBJS). MPI
does not use such macros and the allocator is already retargetted
to use the TXR one.
* mpi-patches/use-txr-allocator: In this patch, we don't need
external declaration for chk_malloc or chk_realloc because they
are not used. Only chk_calloc is used.
* mpi-patches/add-bitops: Refreshed.
* mpi-patches/add-mp-hash: Likewise.
* mpi-patches/add-mp-set-intptr: Likewise.
* mpi-patches/add-mpi-toradix-with-case: Likewise.
* mpi-patches/bit-search-optimizations: Likewise.
* mpi-patches/export-mp-eq: Likewise.
* mpi-patches/faster-square-root: Likewise.
* mpi-patches/fix-bad-shifts: Likewise.
* mpi-patches/fix-ctype-warnings: Likewise.
* mpi-patches/fix-mult-bug: Likewise.
* mpi-patches/mpi-set-double-intptr: Likewise.
* mpi-patches/mpi-set-mpi-word: Likewise.
* mpi-patches/mpi-to-double: Likewise.
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (EACH_CONF): Iterate over arguments.
(opt/txr-win.o, dbg/txr-win.o): New special object files.
(opt/%-win.o, dbg/%-win.o): New pattern rule to build special object
files.
($(PROG)-win, $(PROG)-win-dbg): New program targets.
* inst.nsi: Install txr-win.exe.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (EXTRA_OBJS-y): New variable.
(WINDRES): New recipe.
* configure: Check for presence of windres,
and generate add_win_res variable in config.make.
* win/txr.xcf: New file: GIMP project for icon.
* win/txr.ico: New file: icon with three sizes generated
from GIMP project.
* win/txr.rc: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(glob_wrap, glob_init): New functions.
(errfunc_thunk): New static function.
* glob.h: New file.
* txr.c (main): call glob_init if HAVE_GLOB is defined.
* configure (have_glob): New variable.
(gen_config_make): Add have_glob to config/config.make.
Detect glob function and set have_glob, and add
HAVE_GLOB to config/config.h.
* Makefile (OBJS): Include glob.h if have_glob is "y".
* genvim.txr: Scan glob.c for functions and variables also.
* txr.1: Documented glob and glob-related variables.
|
| |
|
|
|
|
|
|
| |
the program is not configured.
(distclean): Providing alternative implementation when the
program is not configured.
|
|
|
|
|
|
|
| |
* Makefile (COMPILE_C, COMPILE_C_WITH_DEPS, LINK_PROG): New
macro strings.
(dbg/%.o, opt/*.o, %.o, $(PROG), $(PROG)-dbg, conftest,
conftest2): These targets now use these commands.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
then that header is used when building in a separate directory,
instead of the config.h generated in that directory.
To fix this, we move config.h into a config/ subdirectory.
The $(top_srcdir)/config is not in the include search path
when buiding in a separate build directory.
While we are at it, let's move all the configure materials
generated by the configure script into config/.
* Makefile: include config/config.make at the top. Removing the
rule which asserts the existence of configuration based on
the presence of config.make.
(CFLAGS): Add $(conf_dir) to include search path with -iquote.
(notconfigured): New conditionally-defined target for producing
the error message when the build system is not configured.
(NL, DEP): New variables.
($(OBJS)): Make dependent on config/config.make and config/config.h
with help of DEP macro.
(opt/lex.yy.o, dbg/lex.yy.o): Express dependency using DEP.
(y.tab.h): Split off as a dependent on y.tab.c rather than
a co-target in the rule. The rule has a body to handle
the situation when y.tab.h is missing for some reason, but
y.tab.c already exists (and so won't be re-made, and so
y.tab.h won't be remade).
* configure: Require GNU Make 3.81 rather than 3.80.
(conf_dir): New variable.
(config_h, config_make, config_log): New variables. These are used in
place of config.h, config.make and config.log. Add conf_dir to
config.make variable.
|
|
|
|
|
| |
* Makefile (SRCS): Only set if git is available.
(enforce): Fail if we don't have git.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (DEPGEN): New macro variable.
(OPT_OBJS, DBG_OBJS): Define with := assignment.
(OBJS): New variable.
(dbg/%.o, opt/*.o): Use -MMD and -MT options of gcc to generate
dependencies. Also use DEPGEN macro to rewrite each dependency
makefile's rule into a DEP_ variable assignment.
(DEP_INSTANTIATE): New macro variable.
(include dep.mk): Removed, replaced by eval hack that
includes all the .d files and instantiates the rule from
the DEP_ variable in each one.
(opt/lex.yy.o, dbg/lex.yy.o): We need to hard code the dependency
of these on y.tab.h, to force that header to generate.
(DEP_opt/lex.yy.o, DEP_dbg/lex.yy.o): New variables, related
to above.
(depend): Target removed.
* dep.mk: File removed.
* depend.txr: File removed.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
variables to remove the dependencies from the output.
(ABBREV2): No longer needed, removed.
(dbg/%.o, opt/%.o, %.o): Just use ABBREV instead of ABBREV2; it does
the right thing. Dependency of objects on config.make removed.
* dep.mk: Regenerated. Now provides variable assignments
in addition to rules, and each object is made dependent
on config.make.
* depend.txr: Adjusted to generate dep.mk in new format.
|
|
|
|
|
|
| |
cpio (use old ASCII format). This was unintentional.
On extract, use -m option to preserve timestamps,
like we do in INSTALL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (TESTS_OUT): We don't need to refer to top_srcdir.
Add the tst/ prefix to .out paths. Find must be used with -H
because tests is a symlink for out-of-tree build directories.
(tests/*): All target-specific assignments are moved to tst/tests/*
paths, and top_srcdir is no longer used in the right hand side
values.
(%.out): Becomes (tst/%.out).
(%.ok): need to compute .expected name from .out differently to
account for tst/ prefix.
(tests.clean): Just remove the tst directory.
(install-tests): Remove the tst directory first so test commands
are forced to run (though it is a dry run).
We no longer need to switch to top_srcdir to find the .txr
files, nor do we have to filter out .out files from the tests
tree. We no longer have to switch to top_srcdir in the recursive
make. Also, show the installation of tests using ABBREV3.
* configure: When configuring in a separate directory, symlink
the tests directory back to the source tree. Since there
are now three things being symlinked, rewrote that as a loop.
The recommendation to build in a separate directory is just a note, not
a warning.
|
|
|
|
|
|
|
| |
This adds superfluous commands to run.sh under make install-tests,
and is also inappropriate if a different txr binary is being tested.
(install-tests): Do not override top_srcdir in the recursive make
call; instead use -C to change to $(top_srcdir).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (VERBOSE): New variable.
(V, ABBREV, ABBREV1, ABBREV3): New macro variables.
(dbg/%.o, opt/%.o): Use V, ABBREV1 for concensed output.
($(PROG), $(PROG)-dbg, lex.yy.c, y.tab.c, %.out,
%.ok, INSTALL): Likewise, but use ABBREV.
(tests, GREP_CHECK, config.make, conftest.yacc,
conftest.clean): Use $(V) instead of @.
(tests.clean): Remove @; do not hide remove commands.
(INSTALL): Use $(V) instead of @ and use ABBREV3 to
provide condensed output.
(install): Use $(V) on $(PREINSTALL) so we don't see :
in the output.
(install-tests): Put $(V) on all steps.
|
|
|
|
|
|
|
|
|
| |
* Makefile (PROG): Variable removed, now set in config.make.
(all): Target now depends on $(BUILD_TARGETS) variable, set
in config.make.
* configure (debug_also) New variable.
(gen_config_make): Generate PROG and BUILD_TARGETS variables.
|
|
|
|
|
|
| |
right when $(2) is a wildcard like path/to/*.txr. It touches files in
the source tree to the timestamp of the argument after -r. Putting in
a shell loop to handle this.
|
|
|
|
|
|
|
|
|
|
| |
(TESTS_OUT): Depends on $(PROG).
(TESTS_OK): Does not dependon $(PROG).
(tests): Does not depend on tests.clean.
(retest): Target removed.
(%.out : %.txr): Generate to temporary file,
then move to .out.
(tests.clean): Remove $(TESTS_TMP).
|
|
|
|
| |
from git, and "make enforce" works from out of three builds.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimized object files are under opt/ and debug
object files are under dbg/. The debug txr executable
is called txr-dbg.
* Makefile (CFLAGS): $(OPT_FLAGS) is omitted from CFLAGS,
so we can expand it where appropriate.
(ADD_CONF, EACH_CONF): New variables, used as macros.
(DBG_OBJS, OPT_OBJS): New variables.
(dbg/%.o, opt/%.o): New rules.
(all): New target.
($(PROG)-dbg): New target.
(clean): Remove the object directories with rm -rf.
Remove $(PROG)-dbg.
(depend): Pass $(OPT_OBJS) and $(DBG_OBJS) to depend.txr
Also: various target-specific assignments for object files
had to be split for rel and dbg.
* depend.txr: Updated to handle dbg/ or rel/ prefix on
object file paths.
* dep.mk: Regenerated.
|
|
|
|
|
| |
(tests): Add tests.clean as prerequiste, remove rm command.
(retest, tests.clean): New rules.
|
|
|
|
| |
intead of lazy assignment to set TXR_ARGS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rather than ./$(PROG). This way we can override the variable
from the command line if necessary.
(TESTS): Variable removed.
(TESTS_OUT, TESTS_OK): New variables, replace TESTS.
(tests): Prerequisites is now $(TESTS_OK), which are
actual timestamp files. Also depends on $(PROG).
(tests/%/%): Target specific assignments are now for .out
targets rather than .ok targets.
(%.out): New pattern target, made from half of previous %.ok rule.
(%.ok): Smaller rule, only performs diff between .out and .expected,
and touches the .ok stamp.
(%.expected): Bugfix: this rule now just copies .out to .expected,
and its prerequisite is %.out rather than %.txr.
Previously it tried to run txr, but it wouldn't use the correct
options, which depended on the target-specific assignments for
various .ok files.
(install-tests): Bugfix: in the "make -s -n" call use the new TXR
variable to specify the program's path. This fixes the issue that ./
was prepended to the txr commands, resulting in nonworking run.sh.
(txr-manpage.html): Use TXR to invoke txr rather than PROG.
|
|
|
|
|
| |
Also set MAKEFLAGS to disable all built-in rules.
The only one rule we used is .c to .o, so we provide it ourselves.
|
|
|
|
|
|
|
|
|
|
|
|
| |
only causes build issues on some systems where it is not provided
in the standard location, or is not cross-compiled properly.
* Makefile (LEXLIB): Reference to variable removed.
* configure (lexlib): Variable removed.
(LEXLIB): config.make variable not generated.
* parser.l (yywrap): Provide this trivial function as inline.
|
|
|
|
|
|
|
|
|
|
| |
(GREP_CHECK): New macro.
(enforce): Rewritten using GREP_CHECK, with new checks.
* arith.c, combi.c, debug.c, eval.c, filter.c, gc.c, hash.c, lib.c,
* lib.h, match.c, parser.l, parser.y, rand.c, regex.c, signal.c,
* signal.h, stream.c, syslog.c, txr.c, unwind.c, utf8.c: Remove
trailing spaces.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lib.c (cobj_print_op): In the format call, cast
the C pointer to val, since the ~p conversion now
takes a val rather than void *.
(cptr_equal_op, obj_print, obj_pprint): Remove cast to
void *, since obj now already has the type that ~p expects.
* lib.h (struct any): Use mem_t * instead of void *.
* parser.h (yyscan_t): Repeat the definition from inside
the Flex-generated lex.yy.c.
(yylex_init, yylex_destroy, yyget_extra, yyset_extra): Re-declare
using yyscan_t typedef in place of void *.
* parser.l (yyget_column, yyerrprepf): Re-declare using yyscan_t.
(grammar): Use yyg in place of yyscanner in calls to yyerrprepf.
* parser.y (yylex, %lex-param): Use yyscan_t instead of void *.
(parse): Use yyscan_t for local variable.
* signal.c (stack): Change type from void * to mem_t *.
* stream.c (vformat): Conversion specifier p extracts val
instead of void *.
(run): Use casts that only remove const, not all the way to void *.
* txr.1: Documented p conversion specifier of format.
* Makefile (OBJS-y): Initialize with := to make sure it is a
simple variable, and not a macro.
(SRCS): New variable, listing source files.
(enforce): New rule for enforcing coding conventions.
Currently checks for void * occurrences.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the eval and stream modules.
* Makefile (OBJS): Add sysif.o.
* dep.mk: Regenerated.
* eval.c (errno_wrap, daemon_wrap, exit_wrap, usleep_wrap, getpid_wrap,
getppid_wrap, env_hash): Functions moved to sysif.c and changed
to static functions.
(eval_init): Registrations of functions moved to sysif.c.
* lib.c (init): Call sysif_init.
* stream.c (w_stat, statf, mkdir_wrap, chdir_wrap, getcwd_wrap,
makedev_wrap, minor_wrap, major_wrap, mknod_wrap): Functions
moved to sysif.c and become static functions.
(stream_init): Registration of stat moved to sysif.c.
(open_files, open_files_star): Bugfix: no longer erroneously included
in #ifdef HAVE_UNISTD_H block.
* stream.h (mkdir_wrap, chdir_wrap, getcwd_wrap, makedev_wrap,
minor_wrap, major_wrap, mknod_wrap, symlink_wrap, link_wrap,
readlink_wrap): Declarations removed.
* sysif.c: New file.
* sysif.h: New file.
|
|
|
|
|
|
|
|
|
|
| |
* tests/006/freeform-3.expected: New file.
* tests/006/freeform-3.txr: New file.
* tests/006/passwd: New file.
* Makefile (TXR_ARGS): Set up for new test case.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version.
* share/txr/stdlib/ver.txr: Likewise
* Makefile: Improve binary packaging rules.
* regex.c: #include <stdarg.h> added.
|
|
|
|
| |
now have config.make as a prerequisite.
|
| |
|
|
|
|
|
|
|
|
| |
debug.h, eval.c, eval.h, filter.c, filter.h, gc.c, gc.h, hash.c,
hash.h, lib.c, lib.h, match.c, match.h, parser.h, parser.l, parser.y,
rand.c, rand.h, regex.c, regex.h, signal.c, signal.h, stream.c,
stream.h, syslog.c, syslog.h, txr.c, txr.h, unwind.c, unwind.h,
utf8.c, utf8.h: Synchronize license header with LICENSE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
library so we can test for math functions.
* arith.c (log2_init): New static function.
(log2, logtwo): New functions.
(l2): New static variable.
(arith_init): Call log2_init.
* configure (lang_flags): Switching _XOPEN_SOURCE
from 500 to 600 to reveal log2.
Adding test for log2.
* eval.c (eval_init): Register log2 intrinsic.
* lib.h (logtwo): Declared.
* txr.1: Documented log2.
|
|
|
|
|
|
|
|
|
|
|
|
| |
directory.
* txr.c (help): Help text updated to document --license option.
(license): New function.
(txr_main): Implement --license option.
* unwind.h (uw_catch): Add cast to suppress warning about unused symbol.
* txr.1: Document --license option.
|
|
|
|
| |
* configure: set up EXE variable in config.make, not exe.
|
|
|
|
|
|
|
|
|
|
|
| |
* match.c (do_txeval): If a variable is not in the bindings, fall
back on treating it as a TXR Lisp dynamic variable. This allows
us to refer to the stdlib variable from a quasistring in a
@(load ...) directive.
* txr.c (sysroot_init): Register new variable, *txr-version*.
* share/txr/stdlib/ver.txr: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
line.
(PREINSTALL): New variable holding a step for the install recipe.
(pax tar zip): New targets.
* configure (txr_ver): Version now added to config.make, passed
through to txr.c.
(gen_config_make): bindir, datadir and mandir are established
using gmake's regular macro assignment (=) rather than
expanding assignment (:=). This allows us to override the
prefix variable after configure time.
* lib.h (wli_noex): New macro.
(wli): Retarget to wli_noex, so that argument is subject
to macro replacement.
* txr.c (version): Use TXR_VER defined on compiler command line,
rather than hard-coded string literal.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (PROG): Removing ./ prefix from variable name; adding it
to invocations of $(PROG) in some rules.
(txr.o): Pass several strings as macros on the command line:
TXR_REL_PATH, EXE_SUFF and PROG_NAME.
* configure (bindir, datadir, mandir): These variables become
just relative paths from the prefix.
* txr.c (sysroot): Use the TXR_REL_PATH, EXE_SUFF and PROG_NAME
preprocessor symbols defined on the command line to avoid
hard-coding strings like "bin/txr" and "bin/txr.exe" which
actually should reflect the value of the bindir variable.
|
|
|
|
|
| |
bindings, and need the -B option. One test case does not
need the -l option which now implies -B.
|
|
|
|
|
|
| |
(y.tab.c, y.tab.h): Remove y.tab.c before running yacc. Write-protect
y.tab.c, not $@, which could expand to the y.tab.h target if that is
what triggered the rule.
|
|
|
|
|
|
|
|
|
| |
which breaks backquote, caught by tests/010/reghash.txr.
I thought fixed this already! But I must have made the change to y.tab.c
rather than parser.y.
* Makefile (lex.yy.c, y.tab.c): Make these files readonly to prevent
unintended edits.
|
|
|
|
|
| |
to suppress TXR_DBG_OPTS for tests under tests/011.
The --gen-gc makes mandel.txr run too slow.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dep.mk: Updated.
* eval.c: Removed combination and permutation functions; they
now reside in combi.c.
(generate): Changed from static to external linkage.
* eval.h (generate): Declared.
* combi.c: New file.
* combi.h: New file.
* txr.vim: Regenerated.
|