<|start_filename|>test.scm.json<|end_filename|>
{"config":{"exec-file":"/home/bapt/Bureau/testPycket/pycket/racket","init-file":"/home/bapt/.racketrc","collects-dir":"/home/bapt/Bureau/testPycket/collects","version":"7.0.0.20","run-file":"/home/bapt/Bureau/testPycket/pycket/racket","orig-dir":"/home/bapt/Bureau/testPycket/pycket","sys-dir":"/","pref-file":"/home/bapt/.racket/racket-prefs.rktd","bytecode-expand":"false","temp-dir":"/var/tmp","config-dir":"/home/bapt/Bureau/testPycket/etc","home-dir":"/home/bapt","doc-dir":"/home/bapt","pref-dir":"/home/bapt/.racket","init-dir":"/home/bapt","addon-dir":"/home/bapt/.racket"},"module-name":"test","body-forms":[{"module-name":"configure-runtime","body-forms":[{"module-name":"configure-runtime","body-forms":[{"require":[["/home/bapt/Bureau/testPycket/racket/racket/collects/racket/runtime-config.rkt"]]},{"operands":[{"quote":false}],"operator":{"source-name":"configure","source-module":["/home/bapt/Bureau/testPycket/racket/racket/collects/racket/runtime-config.rkt"]}}],"language":["#%kernel"]},{"require":[["/home/bapt/Bureau/testPycket/racket/racket/share/pkgs/r5rs-lib/r5rs/init.rkt"]]}],"language":["/home/bapt/Bureau/testPycket/racket/racket/collects/racket/base.rkt"]},{"require":[["/home/bapt/Bureau/testPycket/racket/racket/share/pkgs/compatibility-lib/compatibility/defmacro.rkt"]]},{"require":[["/home/bapt/Bureau/testPycket/racket/racket/collects/racket/base.rkt"]]},{"define-values-body":{"quote":{"number":{"integer":"0"}}},"define-values-names":["sum"],"define-values":["sum"]},{"define-values-body":{"body":[{"letrec-body":[{"let-body":[[{"source-name":"set!"},{"source-name":"sum","source-module":["/home/bapt/Bureau/these/lc/test.scm"]},{"quote":{"number":{"integer":"-199"}}}],{"operands":[{"quote":{"number":{"integer":"0"}}}],"operator":{"letrec-body":[{"lexical":"doloop"}],"letrec-bindings":[[["doloop"],{"body":[{"else":[{"source-name":"begin"},[{"source-name":"set!"},{"source-name":"sum","source-module":["/home/bapt/Bureau/these/lc/test.scm"]},{"operands":[{"source-name":"sum","source-module":["/home/bapt/Bureau/these/lc/test.scm"]},{"quote":{"number":{"integer":"4"}}}],"operator":{"source-name":"+"}}],{"operands":[{"operands":[{"lexical":"i"},{"quote":{"number":{"integer":"1"}}}],"operator":{"source-name":"+"}}],"operator":{"lexical":"doloop"}}],"then":[{"source-name":"begin"},{"operands":[],"operator":{"source-name":"void"}},{"source-name":"sum","source-module":["/home/bapt/Bureau/these/lc/test.scm"]}],"test":{"operands":[{"lexical":"i"},{"lexical":"n"}],"operator":{"source-name":">="}}}],"lambda":[{"lexical":"i"}]}]]}}],"let-bindings":[]}],"letrec-bindings":[[[],{"operands":[],"operator":{"source-name":"values"}}]]}],"lambda":[{"lexical":"n"}]},"define-values-names":["do-loop"],"define-values":["do-loop"]},{"define-values-body":{"quote":{"number":{"integer":"1000000000"}}},"define-values-names":["aaa"],"define-values":["aaa"]},{"let-body":[{"operands":[{"quote":{"string":"cpu time: ~s real time: ~s gc time: ~s\n"}},{"lexical":"cpu"},{"lexical":"user"},{"lexical":"gc"}],"operator":{"source-name":"printf"}},{"operands":[{"source-name":"values"},{"lexical":"v"}],"operator":{"source-name":"apply"}}],"let-bindings":[[["v","cpu","user","gc"],{"operands":[{"body":[{"operands":[{"source-name":"aaa","source-module":["/home/bapt/Bureau/these/lc/test.scm"]}],"operator":{"source-name":"do-loop","source-module":["/home/bapt/Bureau/these/lc/test.scm"]}}],"lambda":[]},{"source-name":"null"}],"operator":{"source-name":"time-apply"}}]]},{"operands":[],"operator":{"source-name":"newline"}}],"language":["/home/bapt/Bureau/testPycket/racket/racket/share/pkgs/r5rs-lib/r5rs/main.rkt"]}


<|start_filename|>Makefile<|end_filename|>
GSC_FLAGS= -prelude "(declare (not safe))"
CONFIG_FILE= config-release.scm
LC_STRAT=strat1

all: config values.o1 types.o1 analyses.o1 float.o1 utils.o1 main.o1 native.o1 mem.o1 codegen.o1 ast.o1 core.o1 expand.o1 ctx.o1 lib
	cp lazy-comp.template lc
	chmod u+x lc



debug: GSC_FLAGS= -debug
debug: CONFIG_FILE= config-debug.scm
debug: all

dummy:
	@:

.PHONY: lib config dummy
lib:
	gsi ./build-lib

config:
	cp $(CONFIG_FILE) config.scm

values.o1: values.scm
	gsc $(GSC_FLAGS) -o $@ $<

types.o1: $(and $(LC_STRAT),dummy)
	gsc $(GSC_FLAGS) -o $@ $(LC_STRAT).scm

ctx.o1: ctx.scm
	gsc $(GSC_FLAGS) -o $@ $<

codegen.o1: codegen.scm
	gsc $(GSC_FLAGS) -o $@ $<

float.o1: float.scm
	gsc $(GSC_FLAGS) -o $@ $<

utils.o1: utils.scm
	gsc $(GSC_FLAGS) -o $@ $<

main.o1: main.scm
	gsc $(GSC_FLAGS) -o $@ $<

native.o1: native.scm
	gsc $(GSC_FLAGS) -o $@ $<

mem.o1: mem.scm
	gsc $(GSC_FLAGS) -o $@ $<

ast.o1: ast.scm
	gsc $(GSC_FLAGS) -o $@ $<

core.o1: core.scm
	gsc $(GSC_FLAGS) -o $@ $<

expand.o1: expand.scm
	gsc $(GSC_FLAGS) -o $@ $<

analyses.o1: analyses.scm
	gsc $(GSC_FLAGS) -o $@ $<

# Run unit tests
test:
	rm ./unit-tests/mutable-out -rf
	./run-ut.scm

all-tests:
	rm ./unit-tests/mutable-out -rf
	./run-ut.scm
	./run-ut.scm --disable-inlined-call
	./run-ut.scm --disable-entry-points --disable-return-points
	./run-ut.scm --max-versions 5
	./run-ut.scm --max-versions 5 --disable-regalloc-vers
	./run-ut.scm --max-versions 0 --disable-float-unboxing

# Run full unit tests with and without entry and return points
ext-tests:
	rm ./unit-tests/mutable-out -rf

	./run-ut.scm
	./run-ut.scm --disable-inlined-call
	./run-ut.scm --disable-entry-points --disable-inlined-call
	./run-ut.scm --disable-entry-points
	./run-ut.scm --disable-return-points
	./run-ut.scm --disable-entry-points --disable-return-points
	./run-ut.scm --max-versions 5
	./run-ut.scm --max-versions 5 --enable-const-vers --enable-cxoverflow-fallback
	./run-ut.scm --max-versions 1

	./run-ut.scm --disable-regalloc-vers
	./run-ut.scm --disable-inlined-call --disable-regalloc-vers
	./run-ut.scm --disable-entry-points --disable-inlined-call --disable-regalloc-vers
	./run-ut.scm --disable-entry-points --disable-regalloc-vers
	./run-ut.scm --disable-return-points --disable-regalloc-vers
	./run-ut.scm --disable-entry-points --disable-return-points --disable-regalloc-vers
	./run-ut.scm --max-versions 5 --disable-regalloc-vers
	./run-ut.scm --max-versions 5 --enable-const-vers --enable-cxoverflow-fallback --disable-regalloc-vers
	./run-ut.scm --max-versions 1 --disable-regalloc-vers


# Clean
clean:
	rm -rf *~ *.o1* lc
