Commit Graph

12 Commits

Author SHA1 Message Date
yenatch 94052ab5b9 prequeue: dont initialize a new preprocessor for each file 2013-12-09 01:40:04 -05:00
Bryan Bishop fc90df9895 bump pokemontools to v1.4.1
Note that gbz8disasm doesn't work at the moment.
2013-09-24 10:46:53 -05:00
Bryan Bishop 5c46972ebe update preprocessor to use a class 2013-09-02 10:41:50 -05:00
Bryan Bishop 12c1d874b9 Merge branch 'master' into refactor-preprocessor
Conflicts:
	preprocessor.py

Also bump the extras submodule to a version of pokemontools with a
suitable version of the preprocessor. The changes from 'master' for
preprocessor.py have been inserted into pokemontools prior to the
submodule bump.
2013-08-31 12:47:23 -05:00
Bryan Bishop 7eaf5bf726 reset stdout in prequeue.py near end
Other output shouldn't be dumped into items/item_attributes.tx by
default.
2013-08-31 11:07:49 -05:00
Bryan Bishop 70be18427b don't call load_pokecrystal_macros 2000 times
Also, don't call make_macro_table 2000 times by only calling it once and
passing the result.
2013-08-31 11:04:27 -05:00
Bryan Bishop 5815edf382 refactor preprocessor macros into a function
Remove the "macros" global and instead use a function to construct a
list of macros.
2013-08-31 10:13:17 -05:00
Bryan Bishop 63c2dc2f1f docstring for prequeue.py 2013-08-31 10:03:37 -05:00
Bryan Bishop e4d3ea7256 don't use globals in the preprocessor
Macros are now passed around as lists and dicts.
2013-08-28 17:53:26 -05:00
Bryan Bishop b710b8721e don't mix tabs/whitespace 2013-06-25 22:25:50 -05:00
yenatch 44571dc236 give prequeue a reason to exist 2013-06-25 21:51:57 -04:00
yenatch e733c4234c preprocess asm files individually
this fixes a lot of previous hacks

first off, rgbds requires that labels from includes be marked as globals.
instead, 3626ddeb stuffed includes into the parent file in the preprocessor.
this meant one huge file got preprocessed every time, adding an additional
ten seconds to compile time.

running the preprocessor once for each file would create too much overhead,
so a list is fed into prequeue.py, which then makes calls to preprocessor.py.

this paves the way for compiling source files separately some day.

next, compiling previously required `make clean` to be executed first.
f3340de6 touched main.asm to force a fresh compile instead. this behavior
has been reverted. now, `make all` will only attempt to recompile if a
source file has changed.

preprocessor.py has some marginal changes. prequeue.py is created to keep
the original functionality of preprocessor.py intact. so many files are
preprocessed on first compile (1951 as of this commit) that the prequeue
call has been hidden.

compile time is reduced to 15-30 seconds on first compile, and 5-10 seconds
subsequently. the majority of this time is spent in rgbasm.
2013-06-21 16:12:40 -04:00