From 120ba9664992cada4781e4d524304e4499e9083f Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 6 Dec 2013 22:40:46 -0500 Subject: handle preprocessing in one python procress; export asm labels instead of running a process for each file, one process handles all files rgbasm requires label EXPORT definitions for cross-object compiling. this is handled by globals.asm --- prequeue.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 prequeue.py (limited to 'prequeue.py') diff --git a/prequeue.py b/prequeue.py new file mode 100644 index 00000000..6ad16d2c --- /dev/null +++ b/prequeue.py @@ -0,0 +1,29 @@ +# coding: utf-8 +""" +Starting a new python process to preprocess each source file creates too much +overhead. Instead, a list of files to preprocess is fed into a script run from +a single process. +""" + +import os +import sys + +import preprocessor + +def main(): + processor = preprocessor.setup_processor() + + for source in sys.argv[1:]: + dest = os.path.splitext(source)[0] + '.tx' + + stdout = sys.stdout + + sys.stdin = open(source, 'r') + sys.stdout = open(dest, 'w') + + processor.preprocess() + + sys.stdout = stdout + +if __name__ == '__main__': + main() -- cgit v1.2.3 From 23268279f2e36ead00de93724e5ac5d8dba6194f Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 7 Dec 2013 19:58:30 -0500 Subject: prequeue: less wasteful stdout rerouting --- prequeue.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'prequeue.py') diff --git a/prequeue.py b/prequeue.py index 6ad16d2c..00bcee36 100644 --- a/prequeue.py +++ b/prequeue.py @@ -13,17 +13,20 @@ import preprocessor def main(): processor = preprocessor.setup_processor() + stdin = sys.stdin + stdout = sys.stdout + for source in sys.argv[1:]: dest = os.path.splitext(source)[0] + '.tx' - - stdout = sys.stdout - sys.stdin = open(source, 'r') sys.stdout = open(dest, 'w') - processor.preprocess() - sys.stdout = stdout + processor.update_globals() + + sys.stdin = stdin + sys.stdout = stdout + if __name__ == '__main__': main() -- cgit v1.2.3 From 493b483490d141459f73be3db887fc0aeb2fdf7e Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 8 Dec 2013 18:00:43 -0500 Subject: prequeue: say how many files are being preprocessed --- prequeue.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'prequeue.py') diff --git a/prequeue.py b/prequeue.py index 00bcee36..d9b37e03 100644 --- a/prequeue.py +++ b/prequeue.py @@ -10,13 +10,14 @@ import sys import preprocessor -def main(): - processor = preprocessor.setup_processor() +def preprocess_queue(filenames=sys.argv[1:]): stdin = sys.stdin stdout = sys.stdout - for source in sys.argv[1:]: + processor = preprocessor.setup_processor() + + for source in filenames: dest = os.path.splitext(source)[0] + '.tx' sys.stdin = open(source, 'r') sys.stdout = open(dest, 'w') @@ -27,6 +28,13 @@ def main(): sys.stdin = stdin sys.stdout = stdout +def main(): + filenames = list(set(sys.argv[1:])) + if filenames: + num_files = len(filenames) + s = '' if num_files == 1 else 's' + sys.stdout.write('Preprocessing {0} file{1}...\n'.format(num_files, s)) + preprocess_queue(filenames) if __name__ == '__main__': main() -- cgit v1.2.3