* Don't use ATmake / ATmatch anymore, nor the ATMatcher class.
Instead we generate data bindings (build and match functions) for the constructors specified in `constructors.def'. In particular this removes the conversions between AFuns and strings, and Nix expression evaluation now seems 3 to 4 times faster.
This commit is contained in:
parent
eb8284ddaa
commit
5fe9222b36
11 changed files with 410 additions and 304 deletions
|
|
@ -2,9 +2,10 @@ noinst_LIBRARIES = libexpr.a
|
|||
|
||||
libexpr_a_SOURCES = nixexpr.cc nixexpr.hh parser.cc parser.hh \
|
||||
eval.cc eval.hh primops.cc \
|
||||
lexer-tab.c lexer-tab.h parser-tab.c parser-tab.h
|
||||
lexer-tab.c lexer-tab.h parser-tab.c parser-tab.h \
|
||||
constructors.hh
|
||||
|
||||
EXTRA_DIST = lexer.l parser.y
|
||||
EXTRA_DIST = lexer.l parser.y constructors.cc
|
||||
|
||||
AM_CXXFLAGS = \
|
||||
-I.. ${bdb_include} ${aterm_include} -I../libutil -I../libstore
|
||||
|
|
@ -23,4 +24,12 @@ lexer-tab.c lexer-tab.h: lexer.l
|
|||
$(flex) --outfile lexer-tab.c --header-file=lexer-tab.h lexer.l
|
||||
|
||||
|
||||
# ATerm helper function generation.
|
||||
|
||||
constructors.cc constructors.hh: aterm-helper.pl constructors.def
|
||||
$(perl) aterm-helper.pl constructors.hh constructors.cc < constructors.def
|
||||
|
||||
nixexpr.hh: constructors.hh
|
||||
|
||||
|
||||
CLEANFILES =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue