ref: 6f407c9a20b6d09d00e6ad9747f1dabfd535deb5
parent: 468ad43197168647bb0de6dac92b31ad3426ebe9
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Sun Aug 20 10:06:04 EDT 2023
Check in the compiler combinator file for bootstrapping.
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,7 @@
GCC=gcc
ALLSRC=src/*/*.hs lib/*.hs lib/*/*.hs ghc/*.hs ghc/*/*.hs
MHS=mhs
+COMB=comb/
.PHONY: all alltest everytest boottest bootboottest bootcombtest $(MHS)test test alltest time example
all: $(BIN)/eval $(BIN)/$(MHS)
@@ -77,9 +78,9 @@
cmp main-$(MHS).comb main-boot.comb
# Compare version compiled with GHC, and bootstrapped combinator version
-bootcombtest: $(BIN)/$(MHS) $(BIN)/eval $(MHS).comb
+bootcombtest: $(BIN)/$(MHS) $(BIN)/eval $(COMB)$(MHS).comb
$(BIN)/$(MHS) -ilib -isrc -omain-$(MHS).comb MicroHs.Main
- $(BIN)/eval -v -H50M -r$(MHS).comb -- -ilib -isrc -omain-comb.comb MicroHs.Main
+ $(BIN)/eval -v -H50M -r$(COMB)$(MHS).comb -- -ilib -isrc -omain-comb.comb MicroHs.Main
cmp main-$(MHS).comb main-comb.comb
# Test normal Haskell version
@@ -86,11 +87,11 @@
test: $(BIN)/eval $(BIN)/$(MHS) tests/*.hs
cd tests; make test
-$(MHS).comb: $(BIN)/$(MHS) $(ALLSRC)
- $(BIN)/$(MHS) -ilib -isrc -o$(MHS).comb MicroHs.Main
+$(COMB)$(MHS).comb: $(BIN)/$(MHS) $(ALLSRC)
+ $(BIN)/$(MHS) -ilib -isrc -o$(COMB)$(MHS).comb MicroHs.Main
-$(MHS)comp: $(BIN)/eval $(MHS).comb
- $(BIN)/eval -H1M -v -r$(MHS).comb -- $(ARG)
+$(MHS)comp: $(BIN)/eval $(COMB)$(MHS).comb
+ $(BIN)/eval -H1M -v -r$(COMB)$(MHS).comb -- $(ARG)
time: $(BIN)/eval $(BIN)/$(MHS) tests/*.hs
cd tests; make time
@@ -102,8 +103,8 @@
exampleboot: $(BIN)/boot$(MHS) Example.hs
$(BIN)/boot$(MHS) -r -ilib Example && $(BIN)/eval
-examplecomb: $(BIN)/eval $(MHS).comb Example.hs
- $(BIN)/eval -H5M -r$(MHS).comb -- -r -ilib Example
+examplecomb: $(BIN)/eval $(COMB)$(MHS).comb Example.hs
+ $(BIN)/eval -H5M -r$(COMB)$(MHS).comb -- -r -ilib Example
clean:
rm -rf src/*/*.hi src/*/*.o eval Main *.comb *.tmp *~ $(BIN)/* a.out $(BOOTDIR) $(OUTDIR)
--- /dev/null
+++ b/comb/mhs.comb
@@ -1,0 +1,3 @@
+v2.0
+647
+(($T :0 ((_475 _429) ((($S' ($C ((($C' ($S' _475)) ($C _2)) (($B ($B (_475 _503))) ((($C' ($S' $C)) ((($C' ($C' $C)) ((($C' ($C' ($C' $S'))) (($B ($B ($B $C))) ((($C' ($C' ($C' ($C' $C)))) ((($C' ($C' ($C' ($C' ($S' $B))))) ((($C' ($C' ($C' ($C' ($C' $S))))) ((($C' ($C' ($C' $B))) (($B ($B ($B ($C' $C)))) ((($C' ($C' ($C' ($C' ($C' $S'))))) (($B ($B ($B ($B ($B $C))))) ((($C' ($C' ($C' ($C' ($C' ($C' $B)))))) ((($C' ($C' ($C' ($S' ($C' $B))))) (($B ($B ($B ($B ($B $B))))) ((($C' ($C' ($C' ($C' $B)))) ((($S' $B) (($B $B) (($B $B) (($B $C') (($B ($S' _476)) ((($C' $B) (($B _560) (($B _493) ((($C' _597) _8) 0)))) (($B (_560 _496)) (($B (_507 (($O 116) (($O 111) (($O 112) (($O 32) (($O 108) (($O 101) (($O 118) (($O 101) (($O 108) (($O 32) (($O 100) (($O 101) (($O 102) (($O 110) (($O 115) (($O 58) (($O 32) $K))))))))))))))))))) _457)))))))) ((($S' $B) (($B $B) (($B ($C' $B)) (($B ($B $B)) (($B ($B _476)) ((($C' $B) (($B _560) (($B _493) ((($C' _597) _8) 1)))) (_492 (($C $I) (($B ($B (_560 _496))) ((($C' $B) _507) (($B (_507 (($O 32) (($O 61) (($O 32) $K))))) _223))))))))))) ((($C' $B) ((($S' $C') (($B $C') (($B $C') _9))) ((($S' $B) (($B ($C' ($C' _476))) ((($C' $B) (($B $B) (($B _560) (($B _498) _11)))) (($B ($B (_507 _1))) (($B (($C' _507) _457)) (_507 (($O 10) $K))))))) (($B ($B (_475 _503))) ((($C' $B) (($B $B) (($B _560) (($B _493) ((($C' _597) _8) 0))))) (($B ($B (_560 _496))) (($B ($B (_507 (($O 102) (($O 105) (($O 110) (($O 97) (($O 108) (($O 32) (($O 112) (($O 97) (($O 115) (($O 115) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) (($O 32) $K))))))))))))))))))))))))) ((($C' ($C' _507)) (($B ($B (_470 6))) (($B ($B _457)) _591))) (($O 109) (($O 115) $K)))))))))) _3)))) _454))) (($B (($C' $C) (($B ($C _512)) _223))) (($C _525) (_540 0))))) (($B ($C $B)) (($B ($B ($C $B))) (($B ($B ($B $K))) (($B ($B ($B ($B (_507 (($O 40) (($O 40) (($O 36) (($O 84) (($O 32) (($O 58) $K))))))))))) (($B ($B (($C' $B) (($B _507) _457)))) (($B ($B ($B (_507 (($O 32) $K))))) ((($C' $B) (($B ($C' _507)) ($B _223))) (($B (_507 (($O 41) (($O 32) $K)))) (($C _507) (($O 41) $K))))))))))))) (($B $Y) ((($C' ($C' $S)) ((($C' ($C' $S)) ((($C' ($C' $S)) ((($C' $B) $P) ((($S' ($C' $B)) ($B _203)) $I))) (($B $K) $K))) $K)) $K))))) ($C $I))) (($B (($S' _560) (($B _557) (($B (_560 _605)) (($B (_507 (($O 109) (($O 97) (($O 105) (($O 110) (($O 58) (($O 32) (($O 102) (($O 105) (($O 110) (($O 100) (($O 73) (($O 100) (($O 101) (($O 110) (($O 116) (($O 58) (($O 32) $K))))))))))))))))))) _291))))) ($C _447)))) (($B ($B _451)) (($B (($C' _509) (($B ($C $I)) (($B ($C $B)) (($B ($B ($B $K))) ((($C' ($C' ($C' $O))) ($B ($C $P))) $K)))))) (($C _525) (_540 0)))))) (($B (_560 _202)) (($B (_507 (($O 95) $K))) _457))))) (($C $I) $T))) (($C $I) $K))) (($B $Y) $K)))))) (($S (($S ((($S' _7) (($B _524) (_511 (_468 (($O 45) (($O 118) $K)))))) ((_539 _468) (($O 45) (($O 114) $K))))) (($B (_505 (($O 46) $K))) (($B _559) (_510 ((_529 _582) (($O 45) (($O 105) $K)))))))) (($B (_560 _534)) ((($C' _507) (($B _559) (_510 ((_529 _582) (($O 45) (($O 111) $K)))))) (($O (($O 111) (($O 117) (($O 116) (($O 46) (($O 99) (($O 111) (($O 109) (($O 98) $K))))))))) $K))))) (($B (($S (($C ((($C' _593) _524) 1)) (_605 (($O 85) (($O 115) (($O 97) (($O 103) (($O 101) (($O 58) (($O 32) (($O 117) (($O 104) (($O 115) (($O 32) (($O 91) (($O 45) (($O 118) (($O 93) (($O 32) (($O 91) (($O 45) (($O 114) (($O 93) (($O 32) (($O 91) (($O 45) (($O 105) (($O 80) (($O 65) (($O 84) (($O 72) (($O 93) (($O 32) (($O 91) (($O 45) (($O 111) (($O 70) (($O 73) (($O 76) (($O 69) (($O 93) (($O 32) (($O 77) (($O 111) (($O 100) (($O 117) (($O 108) (($O 101) (($O 78) (($O 97) (($O 109) (($O 101) $K)))))))))))))))))))))))))))))))))))))))))))))))))))) _534)) (_511 ((_561 _602) ((_561 (_468 (($O 45) $K))) (_522 1)))))))) (($T :1 (($O 118) (($O 50) (($O 46) (($O 48) (($O 10) $K)))))) (($T :2 ((($S' ($S' _475)) _16) (($B ($B ($B (_475 _503)))) ((($C' ($C' $B)) (($B ($B ($C' (($S' _476) (($B (_560 _494)) (($B (_560 (_523 1000000))) _38)))))) (($B ($B ($B ($B (_475 _503))))) ((($C
\ No newline at end of file
--
⑨