feat: added support for box instantiation

This commit is contained in:
Sven Vogel 2024-10-21 22:57:56 +02:00
parent 6bd632e031
commit a8bceff951
17 changed files with 1907 additions and 16 deletions

4
.gitignore vendored
View File

@ -19,3 +19,7 @@ CTestTestfile.cmake
DartConfiguration.tcl DartConfiguration.tcl
*.cmake *.cmake
*.ll *.ll
*.ninja_deps
*.ninja_log
*.ninja
*.svg

937
lib/src/archive/gsc-libc.gv Normal file
View File

@ -0,0 +1,937 @@
graph {
node0x62bbfe1f79a0 [label="@\nmodule"]
node0x62bbfe1f7fd0 [label="@std\nos.gsc"]
node0x62bbfe1f7c90 [label="@std::os\ntypes"]
node0x62bbfe1fd8e0 [label="@std::types\ntypedef"]
node0x62bbfe1fd7e0 [label="@std::types\ntype"]
node0x62bbfe1fd450 [label="@std::types\nsigned"]
node0x62bbfe1fd500 [label="@std::types\nlist"]
node0x62bbfe1fd5b0 [label="@std::types\nhalf"]
node0x62bbfe1fd680 [label="@std::types\nhalf"]
node0x62bbfe1fd730 [label="@std::types\nint"]
node0x62bbfe1fd9b0 [label="@std::types\ni8"]
node0x62bbfe1fde60 [label="@std::types\ntypedef"]
node0x62bbfe1fdd60 [label="@std::types\ntype"]
node0x62bbfe1fda80 [label="@std::types\nsigned"]
node0x62bbfe1fdb30 [label="@std::types\nlist"]
node0x62bbfe1fdbe0 [label="@std::types\nhalf"]
node0x62bbfe1fdcb0 [label="@std::types\nint"]
node0x62bbfe1fdf30 [label="@std::types\ni16"]
node0x62bbfe1fe230 [label="@std::types\ntypedef"]
node0x62bbfe1fe140 [label="@std::types\ntype"]
node0x62bbfe1fdfe0 [label="@std::types\nsigned"]
node0x62bbfe1fe090 [label="@std::types\nint"]
node0x62bbfe1fe300 [label="@std::types\ni32"]
node0x62bbfe1f5df0 [label="@std::types\ntypedef"]
node0x62bbfe1fe6a0 [label="@std::types\ntype"]
node0x62bbfe1fe3e0 [label="@std::types\nsigned"]
node0x62bbfe1fe490 [label="@std::types\nlist"]
node0x62bbfe1fe540 [label="@std::types\nlong"]
node0x62bbfe1fe5f0 [label="@std::types\nint"]
node0x62bbfe1f5ec0 [label="@std::types\ni64"]
node0x62bbfe1f6400 [label="@std::types\ntypedef"]
node0x62bbfe1f6300 [label="@std::types\ntype"]
node0x62bbfe1f5f70 [label="@std::types\nsigned"]
node0x62bbfe1f6020 [label="@std::types\nlist"]
node0x62bbfe1f60d0 [label="@std::types\nlong"]
node0x62bbfe1f61a0 [label="@std::types\nlong"]
node0x62bbfe1f6250 [label="@std::types\nint"]
node0x62bbfe1f64d0 [label="@std::types\ni128"]
node0x62bbfe200750 [label="@std::types\ntypedef"]
node0x62bbfe1f6930 [label="@std::types\ntype"]
node0x62bbfe1f65d0 [label="@std::types\nunsigned"]
node0x62bbfe1f6650 [label="@std::types\nlist"]
node0x62bbfe1f6700 [label="@std::types\nhalf"]
node0x62bbfe1f67d0 [label="@std::types\nhalf"]
node0x62bbfe1f6880 [label="@std::types\nint"]
node0x62bbfe200820 [label="@std::types\nu8"]
node0x62bbfe200cb0 [label="@std::types\ntypedef"]
node0x62bbfe200bb0 [label="@std::types\ntype"]
node0x62bbfe2008d0 [label="@std::types\nunsigned"]
node0x62bbfe200980 [label="@std::types\nlist"]
node0x62bbfe200a30 [label="@std::types\nhalf"]
node0x62bbfe200b00 [label="@std::types\nint"]
node0x62bbfe200d80 [label="@std::types\nu16"]
node0x62bbfe201080 [label="@std::types\ntypedef"]
node0x62bbfe200f90 [label="@std::types\ntype"]
node0x62bbfe200e30 [label="@std::types\nunsigned"]
node0x62bbfe200ee0 [label="@std::types\nint"]
node0x62bbfe201150 [label="@std::types\nu32"]
node0x62bbfe2015e0 [label="@std::types\ntypedef"]
node0x62bbfe2014e0 [label="@std::types\ntype"]
node0x62bbfe201200 [label="@std::types\nunsigned"]
node0x62bbfe2012b0 [label="@std::types\nlist"]
node0x62bbfe201360 [label="@std::types\nlong"]
node0x62bbfe201430 [label="@std::types\nint"]
node0x62bbfe2016b0 [label="@std::types\nu64"]
node0x62bbfe201c80 [label="@std::types\ntypedef"]
node0x62bbfe201b80 [label="@std::types\ntype"]
node0x62bbfe2017f0 [label="@std::types\nunsigned"]
node0x62bbfe2018a0 [label="@std::types\nlist"]
node0x62bbfe201950 [label="@std::types\nlong"]
node0x62bbfe201a20 [label="@std::types\nlong"]
node0x62bbfe201ad0 [label="@std::types\nint"]
node0x62bbfe201d50 [label="@std::types\nu128"]
node0x62bbfe202120 [label="@std::types\ntypedef"]
node0x62bbfe202030 [label="@std::types\ntype"]
node0x62bbfe201e00 [label="@std::types\nlist"]
node0x62bbfe201eb0 [label="@std::types\nhalf"]
node0x62bbfe201f80 [label="@std::types\nfloat"]
node0x62bbfe2021f0 [label="@std::types\nf16"]
node0x62bbfe202440 [label="@std::types\ntypedef"]
node0x62bbfe202350 [label="@std::types\ntype"]
node0x62bbfe2022a0 [label="@std::types\nfloat"]
node0x62bbfe202510 [label="@std::types\nf32"]
node0x62bbfe2028e0 [label="@std::types\ntypedef"]
node0x62bbfe2027f0 [label="@std::types\ntype"]
node0x62bbfe2025c0 [label="@std::types\nlist"]
node0x62bbfe202670 [label="@std::types\ndouble"]
node0x62bbfe202740 [label="@std::types\nfloat"]
node0x62bbfe2029b0 [label="@std::types\nf64"]
node0x62bbfe1fb0a0 [label="@std::os\nprocdef"]
node0x62bbfe1fb150 [label="@std::os\n_exit"]
node0x62bbfe1fafd0 [label="@std::os\nlist"]
node0x62bbfe1fae30 [label="@std::os\nparam list"]
node0x62bbfe1faee0 [label="@std::os\nparameter"]
node0x62bbfe1faa70 [label="@std::os\nlist"]
node0x62bbfe1fa9f0 [label="@std::os\nin"]
node0x62bbfe1facb0 [label="@std::os\nparameter-declaration"]
node0x62bbfe1fabc0 [label="@std::os\ntype"]
node0x62bbfe1fab10 [label="@std::os\ni32"]
node0x62bbfe1fad80 [label="@std::os\ncode"]
node0x62bbfe1fbef0 [label="@std::os\nprocdef"]
node0x62bbfe1fbfa0 [label="@std::os\nexit"]
node0x62bbfe1fb940 [label="@std::os\nlist"]
node0x62bbfe1fb7a0 [label="@std::os\nparam list"]
node0x62bbfe1fb850 [label="@std::os\nparameter"]
node0x62bbfe1fb3b0 [label="@std::os\nlist"]
node0x62bbfe1fb300 [label="@std::os\nin"]
node0x62bbfe1fb620 [label="@std::os\nparameter-declaration"]
node0x62bbfe1fb530 [label="@std::os\ntype"]
node0x62bbfe1fb480 [label="@std::os\ni32"]
node0x62bbfe1fb6f0 [label="@std::os\ncode"]
node0x62bbfe1fbe20 [label="@std::os\nstmt list"]
node0x62bbfe1fbd50 [label="@std::os\nfuncall"]
node0x62bbfe1fba30 [label="@std::os\n_exit"]
node0x62bbfe1fbc80 [label="@std::os\narg list"]
node0x62bbfe1fbbb0 [label="@std::os\nexpr list"]
node0x62bbfe1fbb00 [label="@std::os\ncode"]
node0x62bbfe1f8230 [label="@std\nmem"]
node0x62bbfe204750 [label="@std::mem\ntypes"]
node0x62bbfe205a90 [label="@std::mem\nfundef"]
node0x62bbfe205b40 [label="@std::mem\nmalloc"]
node0x62bbfe204a60 [label="@std::mem\nref"]
node0x62bbfe204990 [label="@std::mem\ntype"]
node0x62bbfe2048e0 [label="@std::mem\nu8"]
node0x62bbfe2059c0 [label="@std::mem\nlist"]
node0x62bbfe205820 [label="@std::mem\nparam list"]
node0x62bbfe2058d0 [label="@std::mem\nparameter"]
node0x62bbfe205430 [label="@std::mem\nlist"]
node0x62bbfe205380 [label="@std::mem\nin"]
node0x62bbfe2056a0 [label="@std::mem\nparameter-declaration"]
node0x62bbfe2055b0 [label="@std::mem\ntype"]
node0x62bbfe205500 [label="@std::mem\nu32"]
node0x62bbfe205770 [label="@std::mem\nsize"]
node0x62bbfe206d90 [label="@std::mem\nfundef"]
node0x62bbfe206e40 [label="@std::mem\nrealloc"]
node0x62bbfe205f10 [label="@std::mem\nref"]
node0x62bbfe205e40 [label="@std::mem\ntype"]
node0x62bbfe205d90 [label="@std::mem\nu8"]
node0x62bbfe206cc0 [label="@std::mem\nlist"]
node0x62bbfe206a50 [label="@std::mem\nparam list"]
node0x62bbfe206b00 [label="@std::mem\nparameter"]
node0x62bbfe206660 [label="@std::mem\nlist"]
node0x62bbfe2065b0 [label="@std::mem\nin"]
node0x62bbfe2068d0 [label="@std::mem\nparameter-declaration"]
node0x62bbfe2067e0 [label="@std::mem\ntype"]
node0x62bbfe206730 [label="@std::mem\nu32"]
node0x62bbfe2069a0 [label="@std::mem\nsize"]
node0x62bbfe206bf0 [label="@std::mem\nparameter"]
node0x62bbfe2060b0 [label="@std::mem\nlist"]
node0x62bbfe206000 [label="@std::mem\nin"]
node0x62bbfe206410 [label="@std::mem\nparameter-declaration"]
node0x62bbfe206320 [label="@std::mem\nref"]
node0x62bbfe206250 [label="@std::mem\ntype"]
node0x62bbfe2061a0 [label="@std::mem\nu8"]
node0x62bbfe2064e0 [label="@std::mem\nbuf"]
node0x62bbfe207810 [label="@std::mem\nprocdef"]
node0x62bbfe2078c0 [label="@std::mem\nfree"]
node0x62bbfe207740 [label="@std::mem\nlist"]
node0x62bbfe2075a0 [label="@std::mem\nparam list"]
node0x62bbfe207650 [label="@std::mem\nparameter"]
node0x62bbfe2070c0 [label="@std::mem\nlist"]
node0x62bbfe207010 [label="@std::mem\nin"]
node0x62bbfe207420 [label="@std::mem\nparameter-declaration"]
node0x62bbfe207330 [label="@std::mem\nref"]
node0x62bbfe207260 [label="@std::mem\ntype"]
node0x62bbfe2071b0 [label="@std::mem\nu8"]
node0x62bbfe2074f0 [label="@std::mem\nbuf"]
node0x62bbfe2003d0 [label="@std::mem\nprocdef"]
node0x62bbfe200480 [label="@std::mem\nfill"]
node0x62bbfe1feb90 [label="@std::mem\nlist"]
node0x62bbfe1fe820 [label="@std::mem\nparam list"]
node0x62bbfe1fe8d0 [label="@std::mem\nparameter"]
node0x62bbfe2084d0 [label="@std::mem\nlist"]
node0x62bbfe208420 [label="@std::mem\nin"]
node0x62bbfe208740 [label="@std::mem\nparameter-declaration"]
node0x62bbfe208650 [label="@std::mem\ntype"]
node0x62bbfe2085a0 [label="@std::mem\nu32"]
node0x62bbfe1fe770 [label="@std::mem\nlen"]
node0x62bbfe1fe9c0 [label="@std::mem\nparameter"]
node0x62bbfe208010 [label="@std::mem\nlist"]
node0x62bbfe207f60 [label="@std::mem\nin"]
node0x62bbfe208280 [label="@std::mem\nparameter-declaration"]
node0x62bbfe208190 [label="@std::mem\ntype"]
node0x62bbfe2080e0 [label="@std::mem\nu8"]
node0x62bbfe208350 [label="@std::mem\nelem"]
node0x62bbfe1fea90 [label="@std::mem\nparameter"]
node0x62bbfe207a60 [label="@std::mem\nlist"]
node0x62bbfe2079b0 [label="@std::mem\nin"]
node0x62bbfe207dc0 [label="@std::mem\nparameter-declaration"]
node0x62bbfe207cd0 [label="@std::mem\nref"]
node0x62bbfe207c00 [label="@std::mem\ntype"]
node0x62bbfe207b50 [label="@std::mem\nu8"]
node0x62bbfe207e90 [label="@std::mem\nbuf"]
node0x62bbfe1ff460 [label="@std::mem\nstmt list"]
node0x62bbfe1ff390 [label="@std::mem\ndef"]
node0x62bbfe1fef80 [label="@std::mem\ndecl"]
node0x62bbfe1fed10 [label="@std::mem\ntype"]
node0x62bbfe1fec60 [label="@std::mem\nu32"]
node0x62bbfe1fee00 [label="@std::mem\nident list"]
node0x62bbfe1feeb0 [label="@std::mem\nidx"]
node0x62bbfe1ff2c0 [label="@std::mem\ntypecast"]
node0x62bbfe1ff070 [label="@std::mem\n0"]
node0x62bbfe1ff1f0 [label="@std::mem\ntype"]
node0x62bbfe1ff140 [label="@std::mem\nu32"]
node0x62bbfe200300 [label="@std::mem\nwhile"]
node0x62bbfe1ff6d0 [label="@std::mem\n<"]
node0x62bbfe1ff550 [label="@std::mem\nidx"]
node0x62bbfe1ff620 [label="@std::mem\nlen"]
node0x62bbfe1ffbd0 [label="@std::mem\nstmt list"]
node0x62bbfe1ffb00 [label="@std::mem\nassign"]
node0x62bbfe1ff940 [label="@std::mem\nderef"]
node0x62bbfe1ff7c0 [label="@std::mem\nbuf"]
node0x62bbfe1ff890 [label="@std::mem\nidx"]
node0x62bbfe1ffa50 [label="@std::mem\nelem"]
node0x62bbfe200230 [label="@std::mem\nassign"]
node0x62bbfe1ffca0 [label="@std::mem\nidx"]
node0x62bbfe200160 [label="@std::mem\n+"]
node0x62bbfe1ffd70 [label="@std::mem\nidx"]
node0x62bbfe200090 [label="@std::mem\ntypecast"]
node0x62bbfe1ffe40 [label="@std::mem\n1"]
node0x62bbfe1fffc0 [label="@std::mem\ntype"]
node0x62bbfe1fff10 [label="@std::mem\nu32"]
node0x62bbfe20e980 [label="@std::mem\nfundecl"]
node0x62bbfe20ea30 [label="@std::mem\nalloc"]
node0x62bbfe20c990 [label="@std::mem\nref"]
node0x62bbfe20c8c0 [label="@std::mem\ntype"]
node0x62bbfe20c840 [label="@std::mem\nu8"]
node0x62bbfe20d0e0 [label="@std::mem\nlist"]
node0x62bbfe20cf40 [label="@std::mem\nparam list"]
node0x62bbfe20cff0 [label="@std::mem\nparameter"]
node0x62bbfe20cb50 [label="@std::mem\nlist"]
node0x62bbfe20caa0 [label="@std::mem\nin"]
node0x62bbfe20cdc0 [label="@std::mem\nparameter-declaration"]
node0x62bbfe20ccd0 [label="@std::mem\ntype"]
node0x62bbfe20cc20 [label="@std::mem\nu32"]
node0x62bbfe20ce90 [label="@std::mem\nlen"]
node0x62bbfe20db90 [label="@std::mem\nstmt list"]
node0x62bbfe20dac0 [label="@std::mem\ndef"]
node0x62bbfe20d5c0 [label="@std::mem\ndecl"]
node0x62bbfe20d350 [label="@std::mem\nref"]
node0x62bbfe20d280 [label="@std::mem\ntype"]
node0x62bbfe20d1d0 [label="@std::mem\nu8"]
node0x62bbfe20d440 [label="@std::mem\nident list"]
node0x62bbfe20d4f0 [label="@std::mem\nbuf"]
node0x62bbfe20d9f0 [label="@std::mem\nfuncall"]
node0x62bbfe20d6b0 [label="@std::mem\nmalloc"]
node0x62bbfe20d900 [label="@std::mem\narg list"]
node0x62bbfe20d830 [label="@std::mem\nexpr list"]
node0x62bbfe20d780 [label="@std::mem\nlen"]
node0x62bbfe20e6e0 [label="@std::mem\nfuncall"]
node0x62bbfe20ded0 [label="@std::mem\nmodref"]
node0x62bbfe20df80 [label="@std::mem\nstd"]
node0x62bbfe20dd50 [label="@std::mem\nmodref"]
node0x62bbfe20de00 [label="@std::mem\nmem"]
node0x62bbfe20dca0 [label="@std::mem\nfill"]
node0x62bbfe20e610 [label="@std::mem\narg list"]
node0x62bbfe20e530 [label="@std::mem\nexpr list"]
node0x62bbfe20e480 [label="@std::mem\nlen"]
node0x62bbfe20e390 [label="@std::mem\ntypecast"]
node0x62bbfe20e140 [label="@std::mem\n0"]
node0x62bbfe20e2c0 [label="@std::mem\ntype"]
node0x62bbfe20e210 [label="@std::mem\nu8"]
node0x62bbfe20e070 [label="@std::mem\nbuf"]
node0x62bbfe20e880 [label="@std::mem\nret"]
node0x62bbfe20e7d0 [label="@std::mem\nbuf"]
node0x62bbfe211ac0 [label="@std::mem\nfundecl"]
node0x62bbfe211b70 [label="@std::mem\nrealloc"]
node0x62bbfe20ec90 [label="@std::mem\nref"]
node0x62bbfe20ebc0 [label="@std::mem\ntype"]
node0x62bbfe20eb10 [label="@std::mem\nu8"]
node0x62bbfe20faf0 [label="@std::mem\nlist"]
node0x62bbfe20f880 [label="@std::mem\nparam list"]
node0x62bbfe20f930 [label="@std::mem\nparameter"]
node0x62bbfe20f490 [label="@std::mem\nlist"]
node0x62bbfe20f3e0 [label="@std::mem\nin"]
node0x62bbfe20f700 [label="@std::mem\nparameter-declaration"]
node0x62bbfe20f610 [label="@std::mem\ntype"]
node0x62bbfe20f560 [label="@std::mem\nu32"]
node0x62bbfe20f7d0 [label="@std::mem\nlen"]
node0x62bbfe20fa20 [label="@std::mem\nparameter"]
node0x62bbfe20eee0 [label="@std::mem\nlist"]
node0x62bbfe20ed80 [label="@std::mem\nin"]
node0x62bbfe20ee30 [label="@std::mem\nout"]
node0x62bbfe20f240 [label="@std::mem\nparameter-declaration"]
node0x62bbfe20f150 [label="@std::mem\nref"]
node0x62bbfe20f080 [label="@std::mem\ntype"]
node0x62bbfe20efd0 [label="@std::mem\nu8"]
node0x62bbfe20f310 [label="@std::mem\nbuf"]
node0x62bbfe210260 [label="@std::mem\nstmt list"]
node0x62bbfe210190 [label="@std::mem\nassign"]
node0x62bbfe20fbe0 [label="@std::mem\nbuf"]
node0x62bbfe2100c0 [label="@std::mem\nfuncall"]
node0x62bbfe20fcb0 [label="@std::mem\nrealloc"]
node0x62bbfe20ffd0 [label="@std::mem\narg list"]
node0x62bbfe20ff00 [label="@std::mem\nexpr list"]
node0x62bbfe20fe50 [label="@std::mem\nlen"]
node0x62bbfe20fd80 [label="@std::mem\nbuf"]
node0x62bbfe211820 [label="@std::mem\nfuncall"]
node0x62bbfe2105a0 [label="@std::mem\nmodref"]
node0x62bbfe210650 [label="@std::mem\nstd"]
node0x62bbfe210420 [label="@std::mem\nmodref"]
node0x62bbfe2104d0 [label="@std::mem\nmem"]
node0x62bbfe210370 [label="@std::mem\nfill"]
node0x62bbfe211750 [label="@std::mem\narg list"]
node0x62bbfe205030 [label="@std::mem\nexpr list"]
node0x62bbfe204f80 [label="@std::mem\nlen"]
node0x62bbfe204e90 [label="@std::mem\ntypecast"]
node0x62bbfe204c40 [label="@std::mem\n0"]
node0x62bbfe204dc0 [label="@std::mem\ntype"]
node0x62bbfe204d10 [label="@std::mem\nu8"]
node0x62bbfe204b70 [label="@std::mem\nbuf"]
node0x62bbfe2119c0 [label="@std::mem\nret"]
node0x62bbfe211910 [label="@std::mem\nbuf"]
node0x62bbfe212f90 [label="@std::mem\nprocdef"]
node0x62bbfe213040 [label="@std::mem\nfree"]
node0x62bbfe212430 [label="@std::mem\nlist"]
node0x62bbfe212290 [label="@std::mem\nparam list"]
node0x62bbfe212340 [label="@std::mem\nparameter"]
node0x62bbfe211db0 [label="@std::mem\nlist"]
node0x62bbfe211c50 [label="@std::mem\nin"]
node0x62bbfe211d00 [label="@std::mem\nout"]
node0x62bbfe212110 [label="@std::mem\nparameter-declaration"]
node0x62bbfe212020 [label="@std::mem\nref"]
node0x62bbfe211f50 [label="@std::mem\ntype"]
node0x62bbfe211ea0 [label="@std::mem\nu8"]
node0x62bbfe2121e0 [label="@std::mem\nbuf"]
node0x62bbfe212930 [label="@std::mem\nstmt list"]
node0x62bbfe212860 [label="@std::mem\nfuncall"]
node0x62bbfe212520 [label="@std::mem\nfree"]
node0x62bbfe212770 [label="@std::mem\narg list"]
node0x62bbfe2126a0 [label="@std::mem\nexpr list"]
node0x62bbfe2125f0 [label="@std::mem\nbuf"]
node0x62bbfe212ec0 [label="@std::mem\nassign"]
node0x62bbfe212a00 [label="@std::mem\nbuf"]
node0x62bbfe212df0 [label="@std::mem\ntransmute"]
node0x62bbfe212ad0 [label="@std::mem\n0"]
node0x62bbfe212d20 [label="@std::mem\nref"]
node0x62bbfe212c50 [label="@std::mem\ntype"]
node0x62bbfe212ba0 [label="@std::mem\nu8"]
node0x62bbfe1f3ef0 [label="@std\nbootstrap.gsc"]
node0x62bbfe2147c0 [label="@std::bootstrap\nos"]
node0x62bbfe2149c0 [label="@std::bootstrap\nprocdef"]
node0x62bbfe214a70 [label="@std::bootstrap\nmain"]
node0x62bbfe214910 [label="@std::bootstrap\nlist"]
node0x62bbfe215a10 [label="@std::bootstrap\nprocdef"]
node0x62bbfe215ac0 [label="@std::bootstrap\n_start"]
node0x62bbfe214c80 [label="@std::bootstrap\nlist"]
node0x62bbfe214fa0 [label="@std::bootstrap\nstmt list"]
node0x62bbfe214ed0 [label="@std::bootstrap\nfuncall"]
node0x62bbfe214d50 [label="@std::bootstrap\nmain"]
node0x62bbfe214e00 [label="@std::bootstrap\narg list"]
node0x62bbfe215940 [label="@std::bootstrap\nfuncall"]
node0x62bbfe2152e0 [label="@std::bootstrap\nmodref"]
node0x62bbfe215390 [label="@std::bootstrap\nstd"]
node0x62bbfe215160 [label="@std::bootstrap\nmodref"]
node0x62bbfe215210 [label="@std::bootstrap\nos"]
node0x62bbfe2150b0 [label="@std::bootstrap\nexit"]
node0x62bbfe215870 [label="@std::bootstrap\narg list"]
node0x62bbfe2157a0 [label="@std::bootstrap\nexpr list"]
node0x62bbfe2156d0 [label="@std::bootstrap\ntypecast"]
node0x62bbfe215480 [label="@std::bootstrap\n0"]
node0x62bbfe215600 [label="@std::bootstrap\ntype"]
node0x62bbfe215550 [label="@std::bootstrap\ni32"]
node0x62bbfe1f3fa0 [label="@std\nio"]
node0x62bbfe217090 [label="@std::io\ntypes"]
node0x62bbfe217640 [label="@std::io\nbox"]
node0x62bbfe2176f0 [label="@std::io\nHandle"]
node0x62bbfe217570 [label="@std::io\nlist"]
node0x62bbfe2174a0 [label="@std::io\ndecl"]
node0x62bbfe217230 [label="@std::io\ntype"]
node0x62bbfe217180 [label="@std::io\ni32"]
node0x62bbfe217320 [label="@std::io\nident list"]
node0x62bbfe2173d0 [label="@std::io\nfd"]
node0x62bbfe218760 [label="@std::io\nfundecl"]
node0x62bbfe218810 [label="@std::io\ngetStdoutHandle"]
node0x62bbfe217890 [label="@std::io\ntype"]
node0x62bbfe2177e0 [label="@std::io\nHandle"]
node0x62bbfe217980 [label="@std::io\nlist"]
node0x62bbfe217e60 [label="@std::io\nstmt list"]
node0x62bbfe217d90 [label="@std::io\ndecl"]
node0x62bbfe217b00 [label="@std::io\ntype"]
node0x62bbfe217a50 [label="@std::io\nHandle"]
node0x62bbfe217c10 [label="@std::io\nident list"]
node0x62bbfe217cc0 [label="@std::io\nstdout"]
node0x62bbfe2184c0 [label="@std::io\nassign"]
node0x62bbfe217f50 [label="@std::io\nident list"]
node0x62bbfe218000 [label="@std::io\nstdout"]
node0x62bbfe2180b0 [label="@std::io\nfd"]
node0x62bbfe2183f0 [label="@std::io\ntypecast"]
node0x62bbfe2181a0 [label="@std::io\n1"]
node0x62bbfe218320 [label="@std::io\ntype"]
node0x62bbfe218270 [label="@std::io\ni32"]
node0x62bbfe218660 [label="@std::io\nret"]
node0x62bbfe2185b0 [label="@std::io\nstdout"]
node0x62bbfe219ed0 [label="@std::io\nfundef"]
node0x62bbfe219f80 [label="@std::io\nwrite"]
node0x62bbfe218ae0 [label="@std::io\ntype"]
node0x62bbfe218a60 [label="@std::io\nu64"]
node0x62bbfe219e20 [label="@std::io\nlist"]
node0x62bbfe219ab0 [label="@std::io\nparam list"]
node0x62bbfe219b60 [label="@std::io\nparameter"]
node0x62bbfe2196c0 [label="@std::io\nlist"]
node0x62bbfe219610 [label="@std::io\nin"]
node0x62bbfe219930 [label="@std::io\nparameter-declaration"]
node0x62bbfe219840 [label="@std::io\ntype"]
node0x62bbfe219790 [label="@std::io\nu64"]
node0x62bbfe219a00 [label="@std::io\ncount"]
node0x62bbfe219c50 [label="@std::io\nparameter"]
node0x62bbfe219110 [label="@std::io\nlist"]
node0x62bbfe219060 [label="@std::io\nin"]
node0x62bbfe219470 [label="@std::io\nparameter-declaration"]
node0x62bbfe219380 [label="@std::io\nref"]
node0x62bbfe2192b0 [label="@std::io\ntype"]
node0x62bbfe219200 [label="@std::io\nu8"]
node0x62bbfe219540 [label="@std::io\nbuf"]
node0x62bbfe219d20 [label="@std::io\nparameter"]
node0x62bbfe218c70 [label="@std::io\nlist"]
node0x62bbfe218bc0 [label="@std::io\nin"]
node0x62bbfe218ee0 [label="@std::io\nparameter-declaration"]
node0x62bbfe218df0 [label="@std::io\ntype"]
node0x62bbfe218d40 [label="@std::io\ni32"]
node0x62bbfe218fb0 [label="@std::io\nfd"]
node0x62bbfe209ab0 [label="@std::io\nprocdef"]
node0x62bbfe209b60 [label="@std::io\nprint"]
node0x62bbfe21ad40 [label="@std::io\nlist"]
node0x62bbfe21aad0 [label="@std::io\nparam list"]
node0x62bbfe21ab80 [label="@std::io\nparameter"]
node0x62bbfe21a6e0 [label="@std::io\nlist"]
node0x62bbfe21a630 [label="@std::io\nin"]
node0x62bbfe21a950 [label="@std::io\nparameter-declaration"]
node0x62bbfe21a860 [label="@std::io\ntype"]
node0x62bbfe21a7b0 [label="@std::io\nu32"]
node0x62bbfe21aa20 [label="@std::io\nn"]
node0x62bbfe21ac70 [label="@std::io\nparameter"]
node0x62bbfe21a130 [label="@std::io\nlist"]
node0x62bbfe21a080 [label="@std::io\nin"]
node0x62bbfe21a490 [label="@std::io\nparameter-declaration"]
node0x62bbfe21a3a0 [label="@std::io\nref"]
node0x62bbfe21a2d0 [label="@std::io\ntype"]
node0x62bbfe21a220 [label="@std::io\nu8"]
node0x62bbfe21a560 [label="@std::io\nbuf"]
node0x62bbfe208f60 [label="@std::io\nstmt list"]
node0x62bbfe208e90 [label="@std::io\ndef"]
node0x62bbfe208810 [label="@std::io\ndecl"]
node0x62bbfe21aee0 [label="@std::io\ntype"]
node0x62bbfe21ae30 [label="@std::io\nHandle"]
node0x62bbfe21afd0 [label="@std::io\nident list"]
node0x62bbfe21b080 [label="@std::io\nstdout"]
node0x62bbfe208dc0 [label="@std::io\nfuncall"]
node0x62bbfe208b70 [label="@std::io\nmodref"]
node0x62bbfe208c20 [label="@std::io\nstd"]
node0x62bbfe2089f0 [label="@std::io\nmodref"]
node0x62bbfe208aa0 [label="@std::io\nio"]
node0x62bbfe208940 [label="@std::io\ngetStdoutHandle"]
node0x62bbfe208cf0 [label="@std::io\narg list"]
node0x62bbfe2099e0 [label="@std::io\nfuncall"]
node0x62bbfe209030 [label="@std::io\nwrite"]
node0x62bbfe209910 [label="@std::io\narg list"]
node0x62bbfe209830 [label="@std::io\nexpr list"]
node0x62bbfe209760 [label="@std::io\ntypecast"]
node0x62bbfe209510 [label="@std::io\nn"]
node0x62bbfe209690 [label="@std::io\ntype"]
node0x62bbfe2095e0 [label="@std::io\nu64"]
node0x62bbfe209440 [label="@std::io\nbuf"]
node0x62bbfe209350 [label="@std::io\ntypecast"]
node0x62bbfe209100 [label="@std::io\n1"]
node0x62bbfe209280 [label="@std::io\ntype"]
node0x62bbfe2091d0 [label="@std::io\ni32"]
node0x62bbfe1f79a0 -- node0x62bbfe1f7fd0
node0x62bbfe1f79a0 -- node0x62bbfe1f7c90
node0x62bbfe1f79a0 -- node0x62bbfe1fd8e0
node0x62bbfe1fd8e0 -- node0x62bbfe1fd7e0
node0x62bbfe1fd7e0 -- node0x62bbfe1fd450
node0x62bbfe1fd7e0 -- node0x62bbfe1fd500
node0x62bbfe1fd500 -- node0x62bbfe1fd5b0
node0x62bbfe1fd500 -- node0x62bbfe1fd680
node0x62bbfe1fd7e0 -- node0x62bbfe1fd730
node0x62bbfe1fd8e0 -- node0x62bbfe1fd9b0
node0x62bbfe1f79a0 -- node0x62bbfe1fde60
node0x62bbfe1fde60 -- node0x62bbfe1fdd60
node0x62bbfe1fdd60 -- node0x62bbfe1fda80
node0x62bbfe1fdd60 -- node0x62bbfe1fdb30
node0x62bbfe1fdb30 -- node0x62bbfe1fdbe0
node0x62bbfe1fdd60 -- node0x62bbfe1fdcb0
node0x62bbfe1fde60 -- node0x62bbfe1fdf30
node0x62bbfe1f79a0 -- node0x62bbfe1fe230
node0x62bbfe1fe230 -- node0x62bbfe1fe140
node0x62bbfe1fe140 -- node0x62bbfe1fdfe0
node0x62bbfe1fe140 -- node0x62bbfe1fe090
node0x62bbfe1fe230 -- node0x62bbfe1fe300
node0x62bbfe1f79a0 -- node0x62bbfe1f5df0
node0x62bbfe1f5df0 -- node0x62bbfe1fe6a0
node0x62bbfe1fe6a0 -- node0x62bbfe1fe3e0
node0x62bbfe1fe6a0 -- node0x62bbfe1fe490
node0x62bbfe1fe490 -- node0x62bbfe1fe540
node0x62bbfe1fe6a0 -- node0x62bbfe1fe5f0
node0x62bbfe1f5df0 -- node0x62bbfe1f5ec0
node0x62bbfe1f79a0 -- node0x62bbfe1f6400
node0x62bbfe1f6400 -- node0x62bbfe1f6300
node0x62bbfe1f6300 -- node0x62bbfe1f5f70
node0x62bbfe1f6300 -- node0x62bbfe1f6020
node0x62bbfe1f6020 -- node0x62bbfe1f60d0
node0x62bbfe1f6020 -- node0x62bbfe1f61a0
node0x62bbfe1f6300 -- node0x62bbfe1f6250
node0x62bbfe1f6400 -- node0x62bbfe1f64d0
node0x62bbfe1f79a0 -- node0x62bbfe200750
node0x62bbfe200750 -- node0x62bbfe1f6930
node0x62bbfe1f6930 -- node0x62bbfe1f65d0
node0x62bbfe1f6930 -- node0x62bbfe1f6650
node0x62bbfe1f6650 -- node0x62bbfe1f6700
node0x62bbfe1f6650 -- node0x62bbfe1f67d0
node0x62bbfe1f6930 -- node0x62bbfe1f6880
node0x62bbfe200750 -- node0x62bbfe200820
node0x62bbfe1f79a0 -- node0x62bbfe200cb0
node0x62bbfe200cb0 -- node0x62bbfe200bb0
node0x62bbfe200bb0 -- node0x62bbfe2008d0
node0x62bbfe200bb0 -- node0x62bbfe200980
node0x62bbfe200980 -- node0x62bbfe200a30
node0x62bbfe200bb0 -- node0x62bbfe200b00
node0x62bbfe200cb0 -- node0x62bbfe200d80
node0x62bbfe1f79a0 -- node0x62bbfe201080
node0x62bbfe201080 -- node0x62bbfe200f90
node0x62bbfe200f90 -- node0x62bbfe200e30
node0x62bbfe200f90 -- node0x62bbfe200ee0
node0x62bbfe201080 -- node0x62bbfe201150
node0x62bbfe1f79a0 -- node0x62bbfe2015e0
node0x62bbfe2015e0 -- node0x62bbfe2014e0
node0x62bbfe2014e0 -- node0x62bbfe201200
node0x62bbfe2014e0 -- node0x62bbfe2012b0
node0x62bbfe2012b0 -- node0x62bbfe201360
node0x62bbfe2014e0 -- node0x62bbfe201430
node0x62bbfe2015e0 -- node0x62bbfe2016b0
node0x62bbfe1f79a0 -- node0x62bbfe201c80
node0x62bbfe201c80 -- node0x62bbfe201b80
node0x62bbfe201b80 -- node0x62bbfe2017f0
node0x62bbfe201b80 -- node0x62bbfe2018a0
node0x62bbfe2018a0 -- node0x62bbfe201950
node0x62bbfe2018a0 -- node0x62bbfe201a20
node0x62bbfe201b80 -- node0x62bbfe201ad0
node0x62bbfe201c80 -- node0x62bbfe201d50
node0x62bbfe1f79a0 -- node0x62bbfe202120
node0x62bbfe202120 -- node0x62bbfe202030
node0x62bbfe202030 -- node0x62bbfe201e00
node0x62bbfe201e00 -- node0x62bbfe201eb0
node0x62bbfe202030 -- node0x62bbfe201f80
node0x62bbfe202120 -- node0x62bbfe2021f0
node0x62bbfe1f79a0 -- node0x62bbfe202440
node0x62bbfe202440 -- node0x62bbfe202350
node0x62bbfe202350 -- node0x62bbfe2022a0
node0x62bbfe202440 -- node0x62bbfe202510
node0x62bbfe1f79a0 -- node0x62bbfe2028e0
node0x62bbfe2028e0 -- node0x62bbfe2027f0
node0x62bbfe2027f0 -- node0x62bbfe2025c0
node0x62bbfe2025c0 -- node0x62bbfe202670
node0x62bbfe2027f0 -- node0x62bbfe202740
node0x62bbfe2028e0 -- node0x62bbfe2029b0
node0x62bbfe1f79a0 -- node0x62bbfe1fb0a0
node0x62bbfe1fb0a0 -- node0x62bbfe1fb150
node0x62bbfe1fb0a0 -- node0x62bbfe1fafd0
node0x62bbfe1fafd0 -- node0x62bbfe1fae30
node0x62bbfe1fae30 -- node0x62bbfe1faee0
node0x62bbfe1faee0 -- node0x62bbfe1faa70
node0x62bbfe1faa70 -- node0x62bbfe1fa9f0
node0x62bbfe1faee0 -- node0x62bbfe1facb0
node0x62bbfe1facb0 -- node0x62bbfe1fabc0
node0x62bbfe1fabc0 -- node0x62bbfe1fab10
node0x62bbfe1facb0 -- node0x62bbfe1fad80
node0x62bbfe1f79a0 -- node0x62bbfe1fbef0
node0x62bbfe1fbef0 -- node0x62bbfe1fbfa0
node0x62bbfe1fbef0 -- node0x62bbfe1fb940
node0x62bbfe1fb940 -- node0x62bbfe1fb7a0
node0x62bbfe1fb7a0 -- node0x62bbfe1fb850
node0x62bbfe1fb850 -- node0x62bbfe1fb3b0
node0x62bbfe1fb3b0 -- node0x62bbfe1fb300
node0x62bbfe1fb850 -- node0x62bbfe1fb620
node0x62bbfe1fb620 -- node0x62bbfe1fb530
node0x62bbfe1fb530 -- node0x62bbfe1fb480
node0x62bbfe1fb620 -- node0x62bbfe1fb6f0
node0x62bbfe1fbef0 -- node0x62bbfe1fbe20
node0x62bbfe1fbe20 -- node0x62bbfe1fbd50
node0x62bbfe1fbd50 -- node0x62bbfe1fba30
node0x62bbfe1fbd50 -- node0x62bbfe1fbc80
node0x62bbfe1fbc80 -- node0x62bbfe1fbbb0
node0x62bbfe1fbbb0 -- node0x62bbfe1fbb00
node0x62bbfe1f79a0 -- node0x62bbfe1f8230
node0x62bbfe1f79a0 -- node0x62bbfe204750
node0x62bbfe1f79a0 -- node0x62bbfe205a90
node0x62bbfe205a90 -- node0x62bbfe205b40
node0x62bbfe205a90 -- node0x62bbfe204a60
node0x62bbfe204a60 -- node0x62bbfe204990
node0x62bbfe204990 -- node0x62bbfe2048e0
node0x62bbfe205a90 -- node0x62bbfe2059c0
node0x62bbfe2059c0 -- node0x62bbfe205820
node0x62bbfe205820 -- node0x62bbfe2058d0
node0x62bbfe2058d0 -- node0x62bbfe205430
node0x62bbfe205430 -- node0x62bbfe205380
node0x62bbfe2058d0 -- node0x62bbfe2056a0
node0x62bbfe2056a0 -- node0x62bbfe2055b0
node0x62bbfe2055b0 -- node0x62bbfe205500
node0x62bbfe2056a0 -- node0x62bbfe205770
node0x62bbfe1f79a0 -- node0x62bbfe206d90
node0x62bbfe206d90 -- node0x62bbfe206e40
node0x62bbfe206d90 -- node0x62bbfe205f10
node0x62bbfe205f10 -- node0x62bbfe205e40
node0x62bbfe205e40 -- node0x62bbfe205d90
node0x62bbfe206d90 -- node0x62bbfe206cc0
node0x62bbfe206cc0 -- node0x62bbfe206a50
node0x62bbfe206a50 -- node0x62bbfe206b00
node0x62bbfe206b00 -- node0x62bbfe206660
node0x62bbfe206660 -- node0x62bbfe2065b0
node0x62bbfe206b00 -- node0x62bbfe2068d0
node0x62bbfe2068d0 -- node0x62bbfe2067e0
node0x62bbfe2067e0 -- node0x62bbfe206730
node0x62bbfe2068d0 -- node0x62bbfe2069a0
node0x62bbfe206a50 -- node0x62bbfe206bf0
node0x62bbfe206bf0 -- node0x62bbfe2060b0
node0x62bbfe2060b0 -- node0x62bbfe206000
node0x62bbfe206bf0 -- node0x62bbfe206410
node0x62bbfe206410 -- node0x62bbfe206320
node0x62bbfe206320 -- node0x62bbfe206250
node0x62bbfe206250 -- node0x62bbfe2061a0
node0x62bbfe206410 -- node0x62bbfe2064e0
node0x62bbfe1f79a0 -- node0x62bbfe207810
node0x62bbfe207810 -- node0x62bbfe2078c0
node0x62bbfe207810 -- node0x62bbfe207740
node0x62bbfe207740 -- node0x62bbfe2075a0
node0x62bbfe2075a0 -- node0x62bbfe207650
node0x62bbfe207650 -- node0x62bbfe2070c0
node0x62bbfe2070c0 -- node0x62bbfe207010
node0x62bbfe207650 -- node0x62bbfe207420
node0x62bbfe207420 -- node0x62bbfe207330
node0x62bbfe207330 -- node0x62bbfe207260
node0x62bbfe207260 -- node0x62bbfe2071b0
node0x62bbfe207420 -- node0x62bbfe2074f0
node0x62bbfe1f79a0 -- node0x62bbfe2003d0
node0x62bbfe2003d0 -- node0x62bbfe200480
node0x62bbfe2003d0 -- node0x62bbfe1feb90
node0x62bbfe1feb90 -- node0x62bbfe1fe820
node0x62bbfe1fe820 -- node0x62bbfe1fe8d0
node0x62bbfe1fe8d0 -- node0x62bbfe2084d0
node0x62bbfe2084d0 -- node0x62bbfe208420
node0x62bbfe1fe8d0 -- node0x62bbfe208740
node0x62bbfe208740 -- node0x62bbfe208650
node0x62bbfe208650 -- node0x62bbfe2085a0
node0x62bbfe208740 -- node0x62bbfe1fe770
node0x62bbfe1fe820 -- node0x62bbfe1fe9c0
node0x62bbfe1fe9c0 -- node0x62bbfe208010
node0x62bbfe208010 -- node0x62bbfe207f60
node0x62bbfe1fe9c0 -- node0x62bbfe208280
node0x62bbfe208280 -- node0x62bbfe208190
node0x62bbfe208190 -- node0x62bbfe2080e0
node0x62bbfe208280 -- node0x62bbfe208350
node0x62bbfe1fe820 -- node0x62bbfe1fea90
node0x62bbfe1fea90 -- node0x62bbfe207a60
node0x62bbfe207a60 -- node0x62bbfe2079b0
node0x62bbfe1fea90 -- node0x62bbfe207dc0
node0x62bbfe207dc0 -- node0x62bbfe207cd0
node0x62bbfe207cd0 -- node0x62bbfe207c00
node0x62bbfe207c00 -- node0x62bbfe207b50
node0x62bbfe207dc0 -- node0x62bbfe207e90
node0x62bbfe2003d0 -- node0x62bbfe1ff460
node0x62bbfe1ff460 -- node0x62bbfe1ff390
node0x62bbfe1ff390 -- node0x62bbfe1fef80
node0x62bbfe1fef80 -- node0x62bbfe1fed10
node0x62bbfe1fed10 -- node0x62bbfe1fec60
node0x62bbfe1fef80 -- node0x62bbfe1fee00
node0x62bbfe1fee00 -- node0x62bbfe1feeb0
node0x62bbfe1ff390 -- node0x62bbfe1ff2c0
node0x62bbfe1ff2c0 -- node0x62bbfe1ff070
node0x62bbfe1ff2c0 -- node0x62bbfe1ff1f0
node0x62bbfe1ff1f0 -- node0x62bbfe1ff140
node0x62bbfe1ff460 -- node0x62bbfe200300
node0x62bbfe200300 -- node0x62bbfe1ff6d0
node0x62bbfe1ff6d0 -- node0x62bbfe1ff550
node0x62bbfe1ff6d0 -- node0x62bbfe1ff620
node0x62bbfe200300 -- node0x62bbfe1ffbd0
node0x62bbfe1ffbd0 -- node0x62bbfe1ffb00
node0x62bbfe1ffb00 -- node0x62bbfe1ff940
node0x62bbfe1ff940 -- node0x62bbfe1ff7c0
node0x62bbfe1ff940 -- node0x62bbfe1ff890
node0x62bbfe1ffb00 -- node0x62bbfe1ffa50
node0x62bbfe1ffbd0 -- node0x62bbfe200230
node0x62bbfe200230 -- node0x62bbfe1ffca0
node0x62bbfe200230 -- node0x62bbfe200160
node0x62bbfe200160 -- node0x62bbfe1ffd70
node0x62bbfe200160 -- node0x62bbfe200090
node0x62bbfe200090 -- node0x62bbfe1ffe40
node0x62bbfe200090 -- node0x62bbfe1fffc0
node0x62bbfe1fffc0 -- node0x62bbfe1fff10
node0x62bbfe1f79a0 -- node0x62bbfe20e980
node0x62bbfe20e980 -- node0x62bbfe20ea30
node0x62bbfe20e980 -- node0x62bbfe20c990
node0x62bbfe20c990 -- node0x62bbfe20c8c0
node0x62bbfe20c8c0 -- node0x62bbfe20c840
node0x62bbfe20e980 -- node0x62bbfe20d0e0
node0x62bbfe20d0e0 -- node0x62bbfe20cf40
node0x62bbfe20cf40 -- node0x62bbfe20cff0
node0x62bbfe20cff0 -- node0x62bbfe20cb50
node0x62bbfe20cb50 -- node0x62bbfe20caa0
node0x62bbfe20cff0 -- node0x62bbfe20cdc0
node0x62bbfe20cdc0 -- node0x62bbfe20ccd0
node0x62bbfe20ccd0 -- node0x62bbfe20cc20
node0x62bbfe20cdc0 -- node0x62bbfe20ce90
node0x62bbfe20e980 -- node0x62bbfe20db90
node0x62bbfe20db90 -- node0x62bbfe20dac0
node0x62bbfe20dac0 -- node0x62bbfe20d5c0
node0x62bbfe20d5c0 -- node0x62bbfe20d350
node0x62bbfe20d350 -- node0x62bbfe20d280
node0x62bbfe20d280 -- node0x62bbfe20d1d0
node0x62bbfe20d5c0 -- node0x62bbfe20d440
node0x62bbfe20d440 -- node0x62bbfe20d4f0
node0x62bbfe20dac0 -- node0x62bbfe20d9f0
node0x62bbfe20d9f0 -- node0x62bbfe20d6b0
node0x62bbfe20d9f0 -- node0x62bbfe20d900
node0x62bbfe20d900 -- node0x62bbfe20d830
node0x62bbfe20d830 -- node0x62bbfe20d780
node0x62bbfe20db90 -- node0x62bbfe20e6e0
node0x62bbfe20e6e0 -- node0x62bbfe20ded0
node0x62bbfe20ded0 -- node0x62bbfe20df80
node0x62bbfe20ded0 -- node0x62bbfe20dd50
node0x62bbfe20dd50 -- node0x62bbfe20de00
node0x62bbfe20dd50 -- node0x62bbfe20dca0
node0x62bbfe20e6e0 -- node0x62bbfe20e610
node0x62bbfe20e610 -- node0x62bbfe20e530
node0x62bbfe20e530 -- node0x62bbfe20e480
node0x62bbfe20e530 -- node0x62bbfe20e390
node0x62bbfe20e390 -- node0x62bbfe20e140
node0x62bbfe20e390 -- node0x62bbfe20e2c0
node0x62bbfe20e2c0 -- node0x62bbfe20e210
node0x62bbfe20e530 -- node0x62bbfe20e070
node0x62bbfe20db90 -- node0x62bbfe20e880
node0x62bbfe20e880 -- node0x62bbfe20e7d0
node0x62bbfe1f79a0 -- node0x62bbfe211ac0
node0x62bbfe211ac0 -- node0x62bbfe211b70
node0x62bbfe211ac0 -- node0x62bbfe20ec90
node0x62bbfe20ec90 -- node0x62bbfe20ebc0
node0x62bbfe20ebc0 -- node0x62bbfe20eb10
node0x62bbfe211ac0 -- node0x62bbfe20faf0
node0x62bbfe20faf0 -- node0x62bbfe20f880
node0x62bbfe20f880 -- node0x62bbfe20f930
node0x62bbfe20f930 -- node0x62bbfe20f490
node0x62bbfe20f490 -- node0x62bbfe20f3e0
node0x62bbfe20f930 -- node0x62bbfe20f700
node0x62bbfe20f700 -- node0x62bbfe20f610
node0x62bbfe20f610 -- node0x62bbfe20f560
node0x62bbfe20f700 -- node0x62bbfe20f7d0
node0x62bbfe20f880 -- node0x62bbfe20fa20
node0x62bbfe20fa20 -- node0x62bbfe20eee0
node0x62bbfe20eee0 -- node0x62bbfe20ed80
node0x62bbfe20eee0 -- node0x62bbfe20ee30
node0x62bbfe20fa20 -- node0x62bbfe20f240
node0x62bbfe20f240 -- node0x62bbfe20f150
node0x62bbfe20f150 -- node0x62bbfe20f080
node0x62bbfe20f080 -- node0x62bbfe20efd0
node0x62bbfe20f240 -- node0x62bbfe20f310
node0x62bbfe211ac0 -- node0x62bbfe210260
node0x62bbfe210260 -- node0x62bbfe210190
node0x62bbfe210190 -- node0x62bbfe20fbe0
node0x62bbfe210190 -- node0x62bbfe2100c0
node0x62bbfe2100c0 -- node0x62bbfe20fcb0
node0x62bbfe2100c0 -- node0x62bbfe20ffd0
node0x62bbfe20ffd0 -- node0x62bbfe20ff00
node0x62bbfe20ff00 -- node0x62bbfe20fe50
node0x62bbfe20ff00 -- node0x62bbfe20fd80
node0x62bbfe210260 -- node0x62bbfe211820
node0x62bbfe211820 -- node0x62bbfe2105a0
node0x62bbfe2105a0 -- node0x62bbfe210650
node0x62bbfe2105a0 -- node0x62bbfe210420
node0x62bbfe210420 -- node0x62bbfe2104d0
node0x62bbfe210420 -- node0x62bbfe210370
node0x62bbfe211820 -- node0x62bbfe211750
node0x62bbfe211750 -- node0x62bbfe205030
node0x62bbfe205030 -- node0x62bbfe204f80
node0x62bbfe205030 -- node0x62bbfe204e90
node0x62bbfe204e90 -- node0x62bbfe204c40
node0x62bbfe204e90 -- node0x62bbfe204dc0
node0x62bbfe204dc0 -- node0x62bbfe204d10
node0x62bbfe205030 -- node0x62bbfe204b70
node0x62bbfe210260 -- node0x62bbfe2119c0
node0x62bbfe2119c0 -- node0x62bbfe211910
node0x62bbfe1f79a0 -- node0x62bbfe212f90
node0x62bbfe212f90 -- node0x62bbfe213040
node0x62bbfe212f90 -- node0x62bbfe212430
node0x62bbfe212430 -- node0x62bbfe212290
node0x62bbfe212290 -- node0x62bbfe212340
node0x62bbfe212340 -- node0x62bbfe211db0
node0x62bbfe211db0 -- node0x62bbfe211c50
node0x62bbfe211db0 -- node0x62bbfe211d00
node0x62bbfe212340 -- node0x62bbfe212110
node0x62bbfe212110 -- node0x62bbfe212020
node0x62bbfe212020 -- node0x62bbfe211f50
node0x62bbfe211f50 -- node0x62bbfe211ea0
node0x62bbfe212110 -- node0x62bbfe2121e0
node0x62bbfe212f90 -- node0x62bbfe212930
node0x62bbfe212930 -- node0x62bbfe212860
node0x62bbfe212860 -- node0x62bbfe212520
node0x62bbfe212860 -- node0x62bbfe212770
node0x62bbfe212770 -- node0x62bbfe2126a0
node0x62bbfe2126a0 -- node0x62bbfe2125f0
node0x62bbfe212930 -- node0x62bbfe212ec0
node0x62bbfe212ec0 -- node0x62bbfe212a00
node0x62bbfe212ec0 -- node0x62bbfe212df0
node0x62bbfe212df0 -- node0x62bbfe212ad0
node0x62bbfe212df0 -- node0x62bbfe212d20
node0x62bbfe212d20 -- node0x62bbfe212c50
node0x62bbfe212c50 -- node0x62bbfe212ba0
node0x62bbfe1f79a0 -- node0x62bbfe1f3ef0
node0x62bbfe1f79a0 -- node0x62bbfe2147c0
node0x62bbfe1f79a0 -- node0x62bbfe2149c0
node0x62bbfe2149c0 -- node0x62bbfe214a70
node0x62bbfe2149c0 -- node0x62bbfe214910
node0x62bbfe1f79a0 -- node0x62bbfe215a10
node0x62bbfe215a10 -- node0x62bbfe215ac0
node0x62bbfe215a10 -- node0x62bbfe214c80
node0x62bbfe215a10 -- node0x62bbfe214fa0
node0x62bbfe214fa0 -- node0x62bbfe214ed0
node0x62bbfe214ed0 -- node0x62bbfe214d50
node0x62bbfe214ed0 -- node0x62bbfe214e00
node0x62bbfe214fa0 -- node0x62bbfe215940
node0x62bbfe215940 -- node0x62bbfe2152e0
node0x62bbfe2152e0 -- node0x62bbfe215390
node0x62bbfe2152e0 -- node0x62bbfe215160
node0x62bbfe215160 -- node0x62bbfe215210
node0x62bbfe215160 -- node0x62bbfe2150b0
node0x62bbfe215940 -- node0x62bbfe215870
node0x62bbfe215870 -- node0x62bbfe2157a0
node0x62bbfe2157a0 -- node0x62bbfe2156d0
node0x62bbfe2156d0 -- node0x62bbfe215480
node0x62bbfe2156d0 -- node0x62bbfe215600
node0x62bbfe215600 -- node0x62bbfe215550
node0x62bbfe1f79a0 -- node0x62bbfe1f3fa0
node0x62bbfe1f79a0 -- node0x62bbfe217090
node0x62bbfe1f79a0 -- node0x62bbfe217640
node0x62bbfe217640 -- node0x62bbfe2176f0
node0x62bbfe217640 -- node0x62bbfe217570
node0x62bbfe217570 -- node0x62bbfe2174a0
node0x62bbfe2174a0 -- node0x62bbfe217230
node0x62bbfe217230 -- node0x62bbfe217180
node0x62bbfe2174a0 -- node0x62bbfe217320
node0x62bbfe217320 -- node0x62bbfe2173d0
node0x62bbfe1f79a0 -- node0x62bbfe218760
node0x62bbfe218760 -- node0x62bbfe218810
node0x62bbfe218760 -- node0x62bbfe217890
node0x62bbfe217890 -- node0x62bbfe2177e0
node0x62bbfe218760 -- node0x62bbfe217980
node0x62bbfe218760 -- node0x62bbfe217e60
node0x62bbfe217e60 -- node0x62bbfe217d90
node0x62bbfe217d90 -- node0x62bbfe217b00
node0x62bbfe217b00 -- node0x62bbfe217a50
node0x62bbfe217d90 -- node0x62bbfe217c10
node0x62bbfe217c10 -- node0x62bbfe217cc0
node0x62bbfe217e60 -- node0x62bbfe2184c0
node0x62bbfe2184c0 -- node0x62bbfe217f50
node0x62bbfe217f50 -- node0x62bbfe218000
node0x62bbfe217f50 -- node0x62bbfe2180b0
node0x62bbfe2184c0 -- node0x62bbfe2183f0
node0x62bbfe2183f0 -- node0x62bbfe2181a0
node0x62bbfe2183f0 -- node0x62bbfe218320
node0x62bbfe218320 -- node0x62bbfe218270
node0x62bbfe217e60 -- node0x62bbfe218660
node0x62bbfe218660 -- node0x62bbfe2185b0
node0x62bbfe1f79a0 -- node0x62bbfe219ed0
node0x62bbfe219ed0 -- node0x62bbfe219f80
node0x62bbfe219ed0 -- node0x62bbfe218ae0
node0x62bbfe218ae0 -- node0x62bbfe218a60
node0x62bbfe219ed0 -- node0x62bbfe219e20
node0x62bbfe219e20 -- node0x62bbfe219ab0
node0x62bbfe219ab0 -- node0x62bbfe219b60
node0x62bbfe219b60 -- node0x62bbfe2196c0
node0x62bbfe2196c0 -- node0x62bbfe219610
node0x62bbfe219b60 -- node0x62bbfe219930
node0x62bbfe219930 -- node0x62bbfe219840
node0x62bbfe219840 -- node0x62bbfe219790
node0x62bbfe219930 -- node0x62bbfe219a00
node0x62bbfe219ab0 -- node0x62bbfe219c50
node0x62bbfe219c50 -- node0x62bbfe219110
node0x62bbfe219110 -- node0x62bbfe219060
node0x62bbfe219c50 -- node0x62bbfe219470
node0x62bbfe219470 -- node0x62bbfe219380
node0x62bbfe219380 -- node0x62bbfe2192b0
node0x62bbfe2192b0 -- node0x62bbfe219200
node0x62bbfe219470 -- node0x62bbfe219540
node0x62bbfe219ab0 -- node0x62bbfe219d20
node0x62bbfe219d20 -- node0x62bbfe218c70
node0x62bbfe218c70 -- node0x62bbfe218bc0
node0x62bbfe219d20 -- node0x62bbfe218ee0
node0x62bbfe218ee0 -- node0x62bbfe218df0
node0x62bbfe218df0 -- node0x62bbfe218d40
node0x62bbfe218ee0 -- node0x62bbfe218fb0
node0x62bbfe1f79a0 -- node0x62bbfe209ab0
node0x62bbfe209ab0 -- node0x62bbfe209b60
node0x62bbfe209ab0 -- node0x62bbfe21ad40
node0x62bbfe21ad40 -- node0x62bbfe21aad0
node0x62bbfe21aad0 -- node0x62bbfe21ab80
node0x62bbfe21ab80 -- node0x62bbfe21a6e0
node0x62bbfe21a6e0 -- node0x62bbfe21a630
node0x62bbfe21ab80 -- node0x62bbfe21a950
node0x62bbfe21a950 -- node0x62bbfe21a860
node0x62bbfe21a860 -- node0x62bbfe21a7b0
node0x62bbfe21a950 -- node0x62bbfe21aa20
node0x62bbfe21aad0 -- node0x62bbfe21ac70
node0x62bbfe21ac70 -- node0x62bbfe21a130
node0x62bbfe21a130 -- node0x62bbfe21a080
node0x62bbfe21ac70 -- node0x62bbfe21a490
node0x62bbfe21a490 -- node0x62bbfe21a3a0
node0x62bbfe21a3a0 -- node0x62bbfe21a2d0
node0x62bbfe21a2d0 -- node0x62bbfe21a220
node0x62bbfe21a490 -- node0x62bbfe21a560
node0x62bbfe209ab0 -- node0x62bbfe208f60
node0x62bbfe208f60 -- node0x62bbfe208e90
node0x62bbfe208e90 -- node0x62bbfe208810
node0x62bbfe208810 -- node0x62bbfe21aee0
node0x62bbfe21aee0 -- node0x62bbfe21ae30
node0x62bbfe208810 -- node0x62bbfe21afd0
node0x62bbfe21afd0 -- node0x62bbfe21b080
node0x62bbfe208e90 -- node0x62bbfe208dc0
node0x62bbfe208dc0 -- node0x62bbfe208b70
node0x62bbfe208b70 -- node0x62bbfe208c20
node0x62bbfe208b70 -- node0x62bbfe2089f0
node0x62bbfe2089f0 -- node0x62bbfe208aa0
node0x62bbfe2089f0 -- node0x62bbfe208940
node0x62bbfe208dc0 -- node0x62bbfe208cf0
node0x62bbfe208f60 -- node0x62bbfe2099e0
node0x62bbfe2099e0 -- node0x62bbfe209030
node0x62bbfe2099e0 -- node0x62bbfe209910
node0x62bbfe209910 -- node0x62bbfe209830
node0x62bbfe209830 -- node0x62bbfe209760
node0x62bbfe209760 -- node0x62bbfe209510
node0x62bbfe209760 -- node0x62bbfe209690
node0x62bbfe209690 -- node0x62bbfe2095e0
node0x62bbfe209830 -- node0x62bbfe209440
node0x62bbfe209830 -- node0x62bbfe209350
node0x62bbfe209350 -- node0x62bbfe209100
node0x62bbfe209350 -- node0x62bbfe209280
node0x62bbfe209280 -- node0x62bbfe2091d0
}

BIN
lib/src/archive/gsc-libc.o Normal file

Binary file not shown.

203
lib/src/archive/gsc-libc.s Normal file
View File

@ -0,0 +1,203 @@
.text
.file "std.gsc"
.globl "std::mem::fill"
.p2align 4, 0x90
.type "std::mem::fill",@function
"std::mem::fill":
.cfi_startproc
movl $0, -4(%rsp)
cmpl %edx, -4(%rsp)
jge .LBB0_3
.p2align 4, 0x90
.LBB0_2:
movslq -4(%rsp), %rax
movb %sil, (%rdi,%rax)
incl -4(%rsp)
cmpl %edx, -4(%rsp)
jl .LBB0_2
.LBB0_3:
retq
.Lfunc_end0:
.size "std::mem::fill", .Lfunc_end0-"std::mem::fill"
.cfi_endproc
.globl _start
.p2align 4, 0x90
.type _start,@function
_start:
.cfi_startproc
pushq %rax
.cfi_def_cfa_offset 16
callq main@PLT
xorl %edi, %edi
callq "std::os::exit"@PLT
addq $8, %rsp
.cfi_def_cfa_offset 8
retq
.Lfunc_end1:
.size _start, .Lfunc_end1-_start
.cfi_endproc
.globl "std::io::print"
.p2align 4, 0x90
.type "std::io::print",@function
"std::io::print":
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
pushq %r14
pushq %rbx
.cfi_offset %rbx, -32
.cfi_offset %r14, -24
movl %esi, %r14d
movq %rdi, %rbx
callq "std::io::getStdoutHandle"@PLT
movq %rsp, %rcx
leaq -16(%rcx), %rsp
movl %eax, -16(%rcx)
movl %r14d, %edx
movl $1, %edi
movq %rbx, %rsi
callq write@PLT
leaq -16(%rbp), %rsp
popq %rbx
popq %r14
popq %rbp
.cfi_def_cfa %rsp, 8
.cfi_restore %rbx
.cfi_restore %r14
.cfi_restore %rbp
retq
.Lfunc_end2:
.size "std::io::print", .Lfunc_end2-"std::io::print"
.cfi_endproc
.globl "std::mem::realloc"
.p2align 4, 0x90
.type "std::mem::realloc",@function
"std::mem::realloc":
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
pushq %rbx
.cfi_def_cfa_offset 24
pushq %rax
.cfi_def_cfa_offset 32
.cfi_offset %rbx, -24
.cfi_offset %rbp, -16
movl %esi, %ebp
movq %rdi, %rbx
movq (%rdi), %rdi
callq realloc@PLT
movq %rax, (%rbx)
movq %rax, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq "std::mem::fill"@PLT
movq (%rbx), %rax
addq $8, %rsp
.cfi_def_cfa_offset 24
popq %rbx
.cfi_def_cfa_offset 16
popq %rbp
.cfi_def_cfa_offset 8
retq
.Lfunc_end3:
.size "std::mem::realloc", .Lfunc_end3-"std::mem::realloc"
.cfi_endproc
.globl "std::io::getStdoutHandle"
.p2align 4, 0x90
.type "std::io::getStdoutHandle",@function
"std::io::getStdoutHandle":
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
movq %rsp, %rax
leaq -16(%rax), %rsp
movl $0, -16(%rax)
xorl %eax, %eax
movq %rbp, %rsp
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end4:
.size "std::io::getStdoutHandle", .Lfunc_end4-"std::io::getStdoutHandle"
.cfi_endproc
.globl "std::os::exit"
.p2align 4, 0x90
.type "std::os::exit",@function
"std::os::exit":
.cfi_startproc
pushq %rax
.cfi_def_cfa_offset 16
callq _exit@PLT
addq $8, %rsp
.cfi_def_cfa_offset 8
retq
.Lfunc_end5:
.size "std::os::exit", .Lfunc_end5-"std::os::exit"
.cfi_endproc
.globl "std::mem::alloc"
.p2align 4, 0x90
.type "std::mem::alloc",@function
"std::mem::alloc":
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
pushq %r14
pushq %rbx
.cfi_offset %rbx, -32
.cfi_offset %r14, -24
movl %edi, %ebx
callq malloc@PLT
movq %rsp, %r14
leaq -16(%r14), %rsp
movq %rax, -16(%r14)
movq %rax, %rdi
xorl %esi, %esi
movl %ebx, %edx
callq "std::mem::fill"@PLT
movq -16(%r14), %rax
leaq -16(%rbp), %rsp
popq %rbx
popq %r14
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end6:
.size "std::mem::alloc", .Lfunc_end6-"std::mem::alloc"
.cfi_endproc
.globl "std::mem::free"
.p2align 4, 0x90
.type "std::mem::free",@function
"std::mem::free":
.cfi_startproc
pushq %rbx
.cfi_def_cfa_offset 16
.cfi_offset %rbx, -16
movq %rdi, %rbx
movq (%rdi), %rdi
callq free@PLT
movq $0, (%rbx)
popq %rbx
.cfi_def_cfa_offset 8
.cfi_restore %rbx
retq
.Lfunc_end7:
.size "std::mem::free", .Lfunc_end7-"std::mem::free"
.cfi_endproc
.section ".note.GNU-stack","",@progbits

25
lib/src/libc/io.gsc Normal file
View File

@ -0,0 +1,25 @@
include "types"
type box: Handle {
// UNIX file descriptor
i32: fd
}
fun Handle: getStdoutHandle() {
Handle: stdout
stdout.fd = 1 as i32
ret stdout
}
#[nomangle]
fun u64:write(in i32: fd, in ref u8: buf, in u64: count)
fun print(in ref u8: buf, in u32: n) {
Handle: stdout = std::io::getStdoutHandle()
write(1 as i32, buf, n as u64)
}

44
lib/src/libc/mem.gsc Normal file
View File

@ -0,0 +1,44 @@
include "types"
// ----------------------------------------------------------------
// external libc functions
// ................................................................
#[nomangle,preserve]
fun ref u8:malloc(in u32: size)
#[nomangle,preserve]
fun ref u8:realloc(in ref u8: buf, in u32: size)
#[nomangle,preserve]
fun free(in ref u8: buf)
// ----------------------------------------------------------------
// official specification implementation
// ................................................................
fun fill(in ref u8: buf, in u8: elem, in u32: len) {
u32: idx = 0 as u32
while idx < len {
buf[idx] = elem
idx = idx + 1 as u32
}
}
fun ref u8:alloc(in u32: len) {
ref u8: buf = malloc(len)
std::mem::fill(buf, 0 as u8, len)
ret buf
}
fun ref u8:realloc(in out ref u8: buf, in u32: len) {
buf = realloc(buf, len)
std::mem::fill(buf, 0 as u8, len)
ret buf
}
fun free(in out ref u8: buf) {
free(buf)
buf = 0 to ref u8
}

View File

@ -1,3 +1,5 @@
include "os.gsc" include "os.gsc"
include "mem"
include "bootstrap.gsc" include "bootstrap.gsc"
include "io"

View File

@ -394,6 +394,7 @@ void AST_import_module(AST_NODE_PTR dst, size_t k, AST_NODE_PTR src) {
} }
case AST_Typedef: case AST_Typedef:
case AST_Def: case AST_Def:
case AST_Box:
break; break;
default: default:
node = NULL; node = NULL;

View File

@ -373,6 +373,8 @@ BackendError impl_variable_load(LLVMBackendCompileUnit* unit,
Type* type; Type* type;
// TODO: get member of boxes
if (variable->kind == VariableKindDefinition) { if (variable->kind == VariableKindDefinition) {
type = variable->impl.definiton.declaration.type; type = variable->impl.definiton.declaration.type;
} else { } else {
@ -442,12 +444,8 @@ BackendError impl_parameter_load(LLVMBackendCompileUnit* unit,
get_type_impl(unit, scope->func_scope->global_scope, type, &llvm_type); get_type_impl(unit, scope->func_scope->global_scope, type, &llvm_type);
if (LLVMGetTypeKind(LLVMTypeOf(llvm_variable)) == LLVMPointerTypeKind) {
*llvm_result = *llvm_result =
LLVMBuildLoad2(builder, llvm_type, llvm_variable, ""); LLVMBuildLoad2(builder, llvm_type, llvm_variable, "");
} else {
*llvm_result = llvm_variable;
}
} }
return SUCCESS; return SUCCESS;

View File

@ -75,7 +75,8 @@ BackendError impl_storage_expr(LLVMBackendCompileUnit* unit,
} }
} }
if (true) { // not sure why this was enabled?
if (false) {
LLVMTypeRef deref_type = NULL; LLVMTypeRef deref_type = NULL;
err = get_type_impl(unit, scope->func_scope->global_scope, err = get_type_impl(unit, scope->func_scope->global_scope,
expr->impl.dereference.array->target_type, expr->impl.dereference.array->target_type,
@ -100,7 +101,23 @@ BackendError impl_storage_expr(LLVMBackendCompileUnit* unit,
break; break;
case StorageExprKindBoxAccess: case StorageExprKindBoxAccess:
// TODO: resolve LLVMValueRef from BoxAccess LLVMValueRef variable = get_variable(scope, expr->impl.boxAccess.variable->name);
for (guint i = 0; i < expr->impl.boxAccess.member->len; i++) {
BoxMember* member = g_array_index(expr->impl.boxAccess.member, BoxMember*, i);
LLVMTypeRef member_type = NULL;
err = get_type_impl(unit, scope->func_scope->global_scope,
expr->target_type, &member_type);
if (err.kind != Success) {
return err;
}
variable = LLVMBuildStructGEP2(builder, member_type, variable, member->index, "");
}
*storage_target = variable;
break; break;
} }

View File

@ -270,13 +270,13 @@ BackendError impl_box_type(LLVMBackendCompileUnit* unit, LLVMGlobalScope* scope,
break; break;
} }
g_array_append_val(members, llvm_type); g_array_append_val(members, llvm_local_type);
} }
DEBUG("implemented %ld members", members->len); DEBUG("implemented %ld members", members->len);
if (err.kind == Success) { if (err.kind == Success) {
*llvm_type = *llvm_type =
LLVMStructType((LLVMTypeRef*) members->data, members->len, 0); LLVMStructTypeInContext(unit->context, (LLVMTypeRef*) members->data, members->len, false);
} }
g_array_free(members, FALSE); g_array_free(members, FALSE);

View File

@ -1889,6 +1889,49 @@ int createStorageExpr(StorageExpr* expr, AST_NODE_PTR node) {
return SEMANTIC_ERROR; return SEMANTIC_ERROR;
}; };
break; break;
case AST_IdentList: {
expr->kind = StorageExprKindBoxAccess;
const char* boxname = AST_get_node(node, 0)->value;
int status = getVariableFromScope(boxname, &expr->impl.boxAccess.variable);
Variable* boxvar = expr->impl.boxAccess.variable;
if (status == SEMANTIC_ERROR) {
print_diagnostic(&AST_get_node(node, 0)->location, Error,
"Variable of name `%s` does not exist");
return SEMANTIC_ERROR;
}
expr->impl.boxAccess.nodePtr = node;
expr->impl.boxAccess.member = mem_new_g_array(MemoryNamespaceSet, sizeof(BoxMember));
BoxType* boxtype = NULL;
if (boxvar->kind == VariableKindDeclaration) {
boxtype = boxvar->impl.declaration.type->impl.box;
} else if (boxvar->kind == VariableKindDefinition) {
boxtype = boxvar->impl.definiton.declaration.type->impl.box;
} else {
return SEMANTIC_ERROR;
}
for (guint i = 1; i < AST_get_child_count(node); i++) {
AST_NODE_PTR member = AST_get_node(node, i);
if (g_hash_table_contains(boxtype->member, member->value)) {
BoxMember* boxmember = g_hash_table_lookup(boxtype->member, member->value);
g_array_append_val(expr->impl.boxAccess.member, boxmember);
boxtype = boxmember->box;
expr->target_type = boxmember->type;
} else {
print_diagnostic(&member->location, Error, "no member `%s` exists", member->value);
return SEMANTIC_ERROR;
}
}
}
break;
default: default:
print_message(Error, "Unimplemented"); print_message(Error, "Unimplemented");
return SEMANTIC_ERROR; return SEMANTIC_ERROR;
@ -2349,7 +2392,7 @@ int createParam(GArray* Paramlist, AST_NODE_PTR currentNode) {
PANIC("IO_Qualifier is not in or out"); PANIC("IO_Qualifier is not in or out");
} }
} else { } else {
PANIC("IO_Qualifier has not the right amount of children"); decl.qualifier = In;
} }
if (set_get_type_impl(AST_get_node(paramdecl, 0), &(decl.type))) { if (set_get_type_impl(AST_get_node(paramdecl, 0), &(decl.type))) {
@ -2675,7 +2718,7 @@ int createFunction(Function* function, AST_NODE_PTR currentNode) {
return SEMANTIC_OK; return SEMANTIC_OK;
} }
int createDeclMember(BoxType* ParentBox, AST_NODE_PTR currentNode) { int createDeclMember(BoxType* ParentBox, unsigned int index, AST_NODE_PTR currentNode) {
Type* declType = mem_alloc(MemoryNamespaceSet, sizeof(Type)); Type* declType = mem_alloc(MemoryNamespaceSet, sizeof(Type));
int status = set_get_type_impl(AST_get_node(currentNode, 0), &declType); int status = set_get_type_impl(AST_get_node(currentNode, 0), &declType);
@ -2691,6 +2734,7 @@ int createDeclMember(BoxType* ParentBox, AST_NODE_PTR currentNode) {
decl->box = ParentBox; decl->box = ParentBox;
decl->initalizer = NULL; decl->initalizer = NULL;
decl->type = declType; decl->type = declType;
decl->index = index;
if (g_hash_table_contains(ParentBox->member, (gpointer) decl->name)) { if (g_hash_table_contains(ParentBox->member, (gpointer) decl->name)) {
return SEMANTIC_ERROR; return SEMANTIC_ERROR;
} }
@ -2768,15 +2812,19 @@ int createBox(GHashTable* boxes, AST_NODE_PTR currentNode) {
Type* boxType = mem_alloc(MemoryNamespaceSet, sizeof(Type)); Type* boxType = mem_alloc(MemoryNamespaceSet, sizeof(Type));
boxType->nodePtr = currentNode; boxType->nodePtr = currentNode;
boxType->kind = TypeKindBox;
boxType->impl.box = box; boxType->impl.box = box;
boxType->impl.box->member = mem_new_g_hash_table(MemoryNamespaceSet, g_str_hash, g_str_equal);
for (size_t i = 0; boxMemberList->children->len; i++) { unsigned int index = 0;
for (size_t i = 0; i < boxMemberList->children->len; i++) {
switch (AST_get_node(boxMemberList, i)->kind) { switch (AST_get_node(boxMemberList, i)->kind) {
case AST_Decl: case AST_Decl:
case AST_Def: case AST_Def:
if (createDeclMember(box, AST_get_node(boxMemberList, i))) { if (createDeclMember(box, index, AST_get_node(boxMemberList, i))) {
return SEMANTIC_ERROR; return SEMANTIC_ERROR;
} }
index ++;
break; break;
case AST_FunDef: case AST_FunDef:
{ {
@ -2793,7 +2841,14 @@ int createBox(GHashTable* boxes, AST_NODE_PTR currentNode) {
if (g_hash_table_contains(boxes, (gpointer) boxName)) { if (g_hash_table_contains(boxes, (gpointer) boxName)) {
return SEMANTIC_ERROR; return SEMANTIC_ERROR;
} }
g_hash_table_insert(boxes, (gpointer) boxName, box);
Typedefine* boxdef = mem_alloc(MemoryNamespaceSet, sizeof(Typedefine));
boxdef->name = boxName;
boxdef->type = boxType;
boxdef->nodePtr = currentNode;
g_hash_table_insert(boxes, (gpointer) boxName, boxdef);
g_hash_table_insert(declaredBoxes, (gpointer) boxName, boxType);
return SEMANTIC_OK; return SEMANTIC_OK;
} }

View File

@ -80,6 +80,7 @@ typedef struct Block_t Block;
typedef struct Expression_t Expression; typedef struct Expression_t Expression;
typedef struct BoxMember_t { typedef struct BoxMember_t {
unsigned int index;
const char* name; const char* name;
Type* type; Type* type;
BoxType* box; BoxType* box;

554
tests/box/archive/prime.gv Normal file
View File

@ -0,0 +1,554 @@
graph {
node0x5f3e066a7ed0 [label="@\nmodule"]
node0x5f3e066a8440 [label="@\nstd"]
node0x5f3e066d4090 [label="@std::types\ntypedef"]
node0x5f3e066d4980 [label="@std::types\ntype"]
node0x5f3e066c5a80 [label="@std::types\nsigned"]
node0x5f3e066c5dc0 [label="@std::types\nlist"]
node0x5f3e066c5e90 [label="@std::types\nhalf"]
node0x5f3e066c59b0 [label="@std::types\nhalf"]
node0x5f3e066d7ad0 [label="@std::types\nint"]
node0x5f3e066d2480 [label="@std::types\ni8"]
node0x5f3e066c1c40 [label="@std::types\ntypedef"]
node0x5f3e066c1b70 [label="@std::types\ntype"]
node0x5f3e066d1c80 [label="@std::types\nsigned"]
node0x5f3e066d17c0 [label="@std::types\nlist"]
node0x5f3e066cfad0 [label="@std::types\nhalf"]
node0x5f3e066cf520 [label="@std::types\nint"]
node0x5f3e066ccd80 [label="@std::types\ni16"]
node0x5f3e066cb160 [label="@std::types\ntypedef"]
node0x5f3e066cb070 [label="@std::types\ntype"]
node0x5f3e066cccb0 [label="@std::types\nsigned"]
node0x5f3e066ccbe0 [label="@std::types\nint"]
node0x5f3e066bce40 [label="@std::types\ni32"]
node0x5f3e066b8a50 [label="@std::types\ntypedef"]
node0x5f3e066c1750 [label="@std::types\ntype"]
node0x5f3e066bcd70 [label="@std::types\nsigned"]
node0x5f3e066bc7c0 [label="@std::types\nlist"]
node0x5f3e066bc550 [label="@std::types\nlong"]
node0x5f3e066bc070 [label="@std::types\nint"]
node0x5f3e0671af50 [label="@std::types\ni64"]
node0x5f3e066ec970 [label="@std::types\ntypedef"]
node0x5f3e0672e6c0 [label="@std::types\ntype"]
node0x5f3e06714000 [label="@std::types\nsigned"]
node0x5f3e06740d60 [label="@std::types\nlist"]
node0x5f3e0678a880 [label="@std::types\nlong"]
node0x5f3e066ec720 [label="@std::types\nlong"]
node0x5f3e06730b20 [label="@std::types\nint"]
node0x5f3e066ec840 [label="@std::types\ni128"]
node0x5f3e066ef830 [label="@std::types\ntypedef"]
node0x5f3e06716540 [label="@std::types\ntype"]
node0x5f3e066ec160 [label="@std::types\nunsigned"]
node0x5f3e066c64e0 [label="@std::types\nlist"]
node0x5f3e0679c090 [label="@std::types\nhalf"]
node0x5f3e06740ad0 [label="@std::types\nhalf"]
node0x5f3e066ecaa0 [label="@std::types\nint"]
node0x5f3e066eab00 [label="@std::types\nu8"]
node0x5f3e066a74c0 [label="@std::types\ntypedef"]
node0x5f3e067f48e0 [label="@std::types\ntype"]
node0x5f3e066eab80 [label="@std::types\nunsigned"]
node0x5f3e066a84c0 [label="@std::types\nlist"]
node0x5f3e066af640 [label="@std::types\nhalf"]
node0x5f3e067ab580 [label="@std::types\nint"]
node0x5f3e066a7540 [label="@std::types\nu16"]
node0x5f3e067304d0 [label="@std::types\ntypedef"]
node0x5f3e067b8cd0 [label="@std::types\ntype"]
node0x5f3e066ebe50 [label="@std::types\nunsigned"]
node0x5f3e066e3130 [label="@std::types\nint"]
node0x5f3e0671eb60 [label="@std::types\nu32"]
node0x5f3e0672ce50 [label="@std::types\ntypedef"]
node0x5f3e0671a3c0 [label="@std::types\ntype"]
node0x5f3e0671ec10 [label="@std::types\nunsigned"]
node0x5f3e067b7d70 [label="@std::types\nlist"]
node0x5f3e067b7e20 [label="@std::types\nlong"]
node0x5f3e0671a340 [label="@std::types\nint"]
node0x5f3e0672cef0 [label="@std::types\nu64"]
node0x5f3e067e3d00 [label="@std::types\ntypedef"]
node0x5f3e067e3c20 [label="@std::types\ntype"]
node0x5f3e066f0560 [label="@std::types\nunsigned"]
node0x5f3e0678d470 [label="@std::types\nlist"]
node0x5f3e0678d520 [label="@std::types\nlong"]
node0x5f3e066d53b0 [label="@std::types\nlong"]
node0x5f3e066d5430 [label="@std::types\nint"]
node0x5f3e06718160 [label="@std::types\nu128"]
node0x5f3e066d7950 [label="@std::types\ntypedef"]
node0x5f3e066d7e30 [label="@std::types\ntype"]
node0x5f3e067181e0 [label="@std::types\nlist"]
node0x5f3e0672e0d0 [label="@std::types\nhalf"]
node0x5f3e0672e170 [label="@std::types\nfloat"]
node0x5f3e066d7a20 [label="@std::types\nf16"]
node0x5f3e066d1d50 [label="@std::types\ntypedef"]
node0x5f3e066d7830 [label="@std::types\ntype"]
node0x5f3e066d77b0 [label="@std::types\nfloat"]
node0x5f3e066d1e20 [label="@std::types\nf32"]
node0x5f3e066eac60 [label="@std::types\ntypedef"]
node0x5f3e067215e0 [label="@std::types\ntype"]
node0x5f3e0671d320 [label="@std::types\nlist"]
node0x5f3e0671d3d0 [label="@std::types\ndouble"]
node0x5f3e06721530 [label="@std::types\nfloat"]
node0x5f3e066ead30 [label="@std::types\nf64"]
node0x5f3e067b7bb0 [label="@std::os\nprocdef"]
node0x5f3e0674c230 [label="@std::os\nexit"]
node0x5f3e0669dc20 [label="@std::os\nlist"]
node0x5f3e0669d9e0 [label="@std::os\nparam list"]
node0x5f3e0669db00 [label="@std::os\nparameter"]
node0x5f3e067241f0 [label="@std::os\nlist"]
node0x5f3e066b0ef0 [label="@std::os\nin"]
node0x5f3e066b4a90 [label="@std::os\nparameter-declaration"]
node0x5f3e0669c4b0 [label="@std::os\ntype"]
node0x5f3e0678ce80 [label="@std::os\ni32"]
node0x5f3e0669c6f0 [label="@std::os\ncode"]
node0x5f3e0672cce0 [label="@std::mem\nprocdef"]
node0x5f3e066ec4d0 [label="@std::mem\nfill"]
node0x5f3e066a8750 [label="@std::mem\nlist"]
node0x5f3e0674b630 [label="@std::mem\nparam list"]
node0x5f3e066d0270 [label="@std::mem\nparameter"]
node0x5f3e0672cbc0 [label="@std::mem\nlist"]
node0x5f3e0672cb10 [label="@std::mem\nin"]
node0x5f3e0674b4b0 [label="@std::mem\nparameter-declaration"]
node0x5f3e0672e930 [label="@std::mem\ntype"]
node0x5f3e0672e880 [label="@std::mem\nu32"]
node0x5f3e0674b580 [label="@std::mem\nlen"]
node0x5f3e066d0360 [label="@std::mem\nparameter"]
node0x5f3e06730280 [label="@std::mem\nlist"]
node0x5f3e067301d0 [label="@std::mem\nin"]
node0x5f3e0669faa0 [label="@std::mem\nparameter-declaration"]
node0x5f3e066ff970 [label="@std::mem\ntype"]
node0x5f3e066ff8f0 [label="@std::mem\nu8"]
node0x5f3e0669fb70 [label="@std::mem\nelem"]
node0x5f3e066a8650 [label="@std::mem\nparameter"]
node0x5f3e066d1ed0 [label="@std::mem\nlist"]
node0x5f3e0674ad90 [label="@std::mem\nin"]
node0x5f3e067e4d90 [label="@std::mem\nparameter-declaration"]
node0x5f3e066ce820 [label="@std::mem\nref"]
node0x5f3e066ce750 [label="@std::mem\ntype"]
node0x5f3e066d1fc0 [label="@std::mem\nu8"]
node0x5f3e067e4e30 [label="@std::mem\nbuf"]
node0x5f3e0678fe80 [label="@std::mem\nfundef"]
node0x5f3e066ca7b0 [label="@std::mem\nalloc"]
node0x5f3e067b5790 [label="@std::mem\nref"]
node0x5f3e067b56f0 [label="@std::mem\ntype"]
node0x5f3e066ec5b0 [label="@std::mem\nu8"]
node0x5f3e066d6c90 [label="@std::mem\nlist"]
node0x5f3e066c5cb0 [label="@std::mem\nparam list"]
node0x5f3e066d6ba0 [label="@std::mem\nparameter"]
node0x5f3e0674c530 [label="@std::mem\nlist"]
node0x5f3e067b58a0 [label="@std::mem\nin"]
node0x5f3e066c5b50 [label="@std::mem\nparameter-declaration"]
node0x5f3e0674c690 [label="@std::mem\ntype"]
node0x5f3e0674c5e0 [label="@std::mem\nu32"]
node0x5f3e066c5c00 [label="@std::mem\nlen"]
node0x5f3e066c9dc0 [label="@std::mem\nfundef"]
node0x5f3e0671e170 [label="@std::mem\nrealloc"]
node0x5f3e066ca490 [label="@std::mem\nref"]
node0x5f3e066ca940 [label="@std::mem\ntype"]
node0x5f3e066ca890 [label="@std::mem\nu8"]
node0x5f3e066c3290 [label="@std::mem\nlist"]
node0x5f3e066c4280 [label="@std::mem\nparam list"]
node0x5f3e066c4330 [label="@std::mem\nparameter"]
node0x5f3e066c4cd0 [label="@std::mem\nlist"]
node0x5f3e066c4c20 [label="@std::mem\nin"]
node0x5f3e066c58e0 [label="@std::mem\nparameter-declaration"]
node0x5f3e066c57f0 [label="@std::mem\ntype"]
node0x5f3e066c5740 [label="@std::mem\nu32"]
node0x5f3e066c41d0 [label="@std::mem\nlen"]
node0x5f3e066c31c0 [label="@std::mem\nparameter"]
node0x5f3e066ca280 [label="@std::mem\nlist"]
node0x5f3e066ca580 [label="@std::mem\nin"]
node0x5f3e066ca1d0 [label="@std::mem\nout"]
node0x5f3e066bbfc0 [label="@std::mem\nparameter-declaration"]
node0x5f3e066bbed0 [label="@std::mem\nref"]
node0x5f3e066bbe00 [label="@std::mem\ntype"]
node0x5f3e066ca370 [label="@std::mem\nu8"]
node0x5f3e066c4b50 [label="@std::mem\nbuf"]
node0x5f3e066c9ea0 [label="@std::mem\nprocdef"]
node0x5f3e066d7060 [label="@std::mem\nfree"]
node0x5f3e06789400 [label="@std::mem\nlist"]
node0x5f3e066ee6c0 [label="@std::mem\nparam list"]
node0x5f3e066ee770 [label="@std::mem\nparameter"]
node0x5f3e067db410 [label="@std::mem\nlist"]
node0x5f3e067db2b0 [label="@std::mem\nin"]
node0x5f3e067db360 [label="@std::mem\nout"]
node0x5f3e066f0af0 [label="@std::mem\nparameter-declaration"]
node0x5f3e066f0a00 [label="@std::mem\nref"]
node0x5f3e066f0950 [label="@std::mem\ntype"]
node0x5f3e067db4e0 [label="@std::mem\nu8"]
node0x5f3e066ee610 [label="@std::mem\nbuf"]
node0x5f3e066c9f70 [label="@std::bootstrap\nprocdef"]
node0x5f3e066c5420 [label="@std::bootstrap\n_start"]
node0x5f3e066d6040 [label="@std::bootstrap\nlist"]
node0x5f3e066b83f0 [label="@std::io\nbox"]
node0x5f3e066b84a0 [label="@std::io\nHandle"]
node0x5f3e066b8320 [label="@std::io\nlist"]
node0x5f3e066c25f0 [label="@std::io\ndecl"]
node0x5f3e066c2380 [label="@std::io\ntype"]
node0x5f3e066c5690 [label="@std::io\ni32"]
node0x5f3e066c2470 [label="@std::io\nident list"]
node0x5f3e066c2520 [label="@std::io\nfd"]
node0x5f3e066ca040 [label="@std::io\nfundef"]
node0x5f3e0665f660 [label="@std::io\ngetStdoutHandle"]
node0x5f3e066bf1d0 [label="@std::io\ntype"]
node0x5f3e066bf120 [label="@std::io\nHandle"]
node0x5f3e066bf2c0 [label="@std::io\nlist"]
node0x5f3e066ca120 [label="@std::io\nprocdef"]
node0x5f3e066f1c00 [label="@std::io\nprint"]
node0x5f3e066d2180 [label="@std::io\nlist"]
node0x5f3e067e09b0 [label="@std::io\nparam list"]
node0x5f3e067e0a60 [label="@std::io\nparameter"]
node0x5f3e067b2070 [label="@std::io\nlist"]
node0x5f3e067b1fc0 [label="@std::io\nin"]
node0x5f3e067e0830 [label="@std::io\nparameter-declaration"]
node0x5f3e067b21f0 [label="@std::io\ntype"]
node0x5f3e067b2140 [label="@std::io\nu32"]
node0x5f3e067e0900 [label="@std::io\nn"]
node0x5f3e066d20b0 [label="@std::io\nparameter"]
node0x5f3e067e10b0 [label="@std::io\nlist"]
node0x5f3e067e1000 [label="@std::io\nin"]
node0x5f3e067e01b0 [label="@std::io\nparameter-declaration"]
node0x5f3e067e00c0 [label="@std::io\nref"]
node0x5f3e067dfff0 [label="@std::io\ntype"]
node0x5f3e067dff40 [label="@std::io\nu8"]
node0x5f3e067b1f20 [label="@std::io\nbuf"]
node0x5f3e066b0bb0 [label="@\nprocdef"]
node0x5f3e066b0c30 [label="@\nmain"]
node0x5f3e066a9070 [label="@\nlist"]
node0x5f3e066b0140 [label="@\nstmt list"]
node0x5f3e066b0070 [label="@\ndef"]
node0x5f3e066af320 [label="@\ndecl"]
node0x5f3e066aef00 [label="@\nref"]
node0x5f3e066a92d0 [label="@\ntype"]
node0x5f3e066a8220 [label="@\nu8"]
node0x5f3e066af010 [label="@\nident list"]
node0x5f3e066af090 [label="@\nbuf"]
node0x5f3e066affa0 [label="@\nfuncall"]
node0x5f3e066af520 [label="@\nmodref"]
node0x5f3e066af5a0 [label="@\nstd"]
node0x5f3e066af420 [label="@\nmodref"]
node0x5f3e066af4a0 [label="@\nmem"]
node0x5f3e066af3a0 [label="@\nalloc"]
node0x5f3e066afed0 [label="@\narg list"]
node0x5f3e066afe00 [label="@\nexpr list"]
node0x5f3e066afd30 [label="@\ntypecast"]
node0x5f3e066aef80 [label="@\n64"]
node0x5f3e066afc60 [label="@\ntype"]
node0x5f3e066af7a0 [label="@\nu32"]
node0x5f3e066b07e0 [label="@\ndef"]
node0x5f3e066b0620 [label="@\ndecl"]
node0x5f3e066b03b0 [label="@\nref"]
node0x5f3e066b02e0 [label="@\ntype"]
node0x5f3e066b0230 [label="@\nu8"]
node0x5f3e066b04a0 [label="@\nident list"]
node0x5f3e066b0550 [label="@\nadr"]
node0x5f3e066b0730 [label="@\nbuf"]
node0x5f3e066b1c90 [label="@\nfuncall"]
node0x5f3e066b1330 [label="@\nmodref"]
node0x5f3e066b13e0 [label="@\nstd"]
node0x5f3e066b11b0 [label="@\nmodref"]
node0x5f3e066b1260 [label="@\nmem"]
node0x5f3e066b08f0 [label="@\nrealloc"]
node0x5f3e066b1ba0 [label="@\narg list"]
node0x5f3e066b1ad0 [label="@\nexpr list"]
node0x5f3e066b1a00 [label="@\ntypecast"]
node0x5f3e066b17b0 [label="@\n32"]
node0x5f3e066b1930 [label="@\ntype"]
node0x5f3e066b1880 [label="@\nu32"]
node0x5f3e066b16e0 [label="@\nbuf"]
node0x5f3e066b2730 [label="@\nfuncall"]
node0x5f3e066b1fe0 [label="@\nmodref"]
node0x5f3e066b2090 [label="@\nstd"]
node0x5f3e066b1e60 [label="@\nmodref"]
node0x5f3e066b1f10 [label="@\nio"]
node0x5f3e066b1db0 [label="@\nprint"]
node0x5f3e066b2640 [label="@\narg list"]
node0x5f3e066b2570 [label="@\nexpr list"]
node0x5f3e066b24a0 [label="@\ntypecast"]
node0x5f3e066b2250 [label="@\n13"]
node0x5f3e066b23d0 [label="@\ntype"]
node0x5f3e066b2320 [label="@\nu32"]
node0x5f3e066b21a0 [label="@\nHello, World
"]
node0x5f3e066b0a90 [label="@\nfuncall"]
node0x5f3e066b2a70 [label="@\nmodref"]
node0x5f3e066b2b20 [label="@\nstd"]
node0x5f3e066b28f0 [label="@\nmodref"]
node0x5f3e066b29a0 [label="@\nmem"]
node0x5f3e066b2840 [label="@\nfree"]
node0x5f3e066b09c0 [label="@\narg list"]
node0x5f3e066b2cc0 [label="@\nexpr list"]
node0x5f3e066b2c10 [label="@\nbuf"]
node0x5f3e066a7ed0 -- node0x5f3e066a8440
node0x5f3e066a7ed0 -- node0x5f3e066d4090
node0x5f3e066d4090 -- node0x5f3e066d4980
node0x5f3e066d4980 -- node0x5f3e066c5a80
node0x5f3e066d4980 -- node0x5f3e066c5dc0
node0x5f3e066c5dc0 -- node0x5f3e066c5e90
node0x5f3e066c5dc0 -- node0x5f3e066c59b0
node0x5f3e066d4980 -- node0x5f3e066d7ad0
node0x5f3e066d4090 -- node0x5f3e066d2480
node0x5f3e066a7ed0 -- node0x5f3e066c1c40
node0x5f3e066c1c40 -- node0x5f3e066c1b70
node0x5f3e066c1b70 -- node0x5f3e066d1c80
node0x5f3e066c1b70 -- node0x5f3e066d17c0
node0x5f3e066d17c0 -- node0x5f3e066cfad0
node0x5f3e066c1b70 -- node0x5f3e066cf520
node0x5f3e066c1c40 -- node0x5f3e066ccd80
node0x5f3e066a7ed0 -- node0x5f3e066cb160
node0x5f3e066cb160 -- node0x5f3e066cb070
node0x5f3e066cb070 -- node0x5f3e066cccb0
node0x5f3e066cb070 -- node0x5f3e066ccbe0
node0x5f3e066cb160 -- node0x5f3e066bce40
node0x5f3e066a7ed0 -- node0x5f3e066b8a50
node0x5f3e066b8a50 -- node0x5f3e066c1750
node0x5f3e066c1750 -- node0x5f3e066bcd70
node0x5f3e066c1750 -- node0x5f3e066bc7c0
node0x5f3e066bc7c0 -- node0x5f3e066bc550
node0x5f3e066c1750 -- node0x5f3e066bc070
node0x5f3e066b8a50 -- node0x5f3e0671af50
node0x5f3e066a7ed0 -- node0x5f3e066ec970
node0x5f3e066ec970 -- node0x5f3e0672e6c0
node0x5f3e0672e6c0 -- node0x5f3e06714000
node0x5f3e0672e6c0 -- node0x5f3e06740d60
node0x5f3e06740d60 -- node0x5f3e0678a880
node0x5f3e06740d60 -- node0x5f3e066ec720
node0x5f3e0672e6c0 -- node0x5f3e06730b20
node0x5f3e066ec970 -- node0x5f3e066ec840
node0x5f3e066a7ed0 -- node0x5f3e066ef830
node0x5f3e066ef830 -- node0x5f3e06716540
node0x5f3e06716540 -- node0x5f3e066ec160
node0x5f3e06716540 -- node0x5f3e066c64e0
node0x5f3e066c64e0 -- node0x5f3e0679c090
node0x5f3e066c64e0 -- node0x5f3e06740ad0
node0x5f3e06716540 -- node0x5f3e066ecaa0
node0x5f3e066ef830 -- node0x5f3e066eab00
node0x5f3e066a7ed0 -- node0x5f3e066a74c0
node0x5f3e066a74c0 -- node0x5f3e067f48e0
node0x5f3e067f48e0 -- node0x5f3e066eab80
node0x5f3e067f48e0 -- node0x5f3e066a84c0
node0x5f3e066a84c0 -- node0x5f3e066af640
node0x5f3e067f48e0 -- node0x5f3e067ab580
node0x5f3e066a74c0 -- node0x5f3e066a7540
node0x5f3e066a7ed0 -- node0x5f3e067304d0
node0x5f3e067304d0 -- node0x5f3e067b8cd0
node0x5f3e067b8cd0 -- node0x5f3e066ebe50
node0x5f3e067b8cd0 -- node0x5f3e066e3130
node0x5f3e067304d0 -- node0x5f3e0671eb60
node0x5f3e066a7ed0 -- node0x5f3e0672ce50
node0x5f3e0672ce50 -- node0x5f3e0671a3c0
node0x5f3e0671a3c0 -- node0x5f3e0671ec10
node0x5f3e0671a3c0 -- node0x5f3e067b7d70
node0x5f3e067b7d70 -- node0x5f3e067b7e20
node0x5f3e0671a3c0 -- node0x5f3e0671a340
node0x5f3e0672ce50 -- node0x5f3e0672cef0
node0x5f3e066a7ed0 -- node0x5f3e067e3d00
node0x5f3e067e3d00 -- node0x5f3e067e3c20
node0x5f3e067e3c20 -- node0x5f3e066f0560
node0x5f3e067e3c20 -- node0x5f3e0678d470
node0x5f3e0678d470 -- node0x5f3e0678d520
node0x5f3e0678d470 -- node0x5f3e066d53b0
node0x5f3e067e3c20 -- node0x5f3e066d5430
node0x5f3e067e3d00 -- node0x5f3e06718160
node0x5f3e066a7ed0 -- node0x5f3e066d7950
node0x5f3e066d7950 -- node0x5f3e066d7e30
node0x5f3e066d7e30 -- node0x5f3e067181e0
node0x5f3e067181e0 -- node0x5f3e0672e0d0
node0x5f3e066d7e30 -- node0x5f3e0672e170
node0x5f3e066d7950 -- node0x5f3e066d7a20
node0x5f3e066a7ed0 -- node0x5f3e066d1d50
node0x5f3e066d1d50 -- node0x5f3e066d7830
node0x5f3e066d7830 -- node0x5f3e066d77b0
node0x5f3e066d1d50 -- node0x5f3e066d1e20
node0x5f3e066a7ed0 -- node0x5f3e066eac60
node0x5f3e066eac60 -- node0x5f3e067215e0
node0x5f3e067215e0 -- node0x5f3e0671d320
node0x5f3e0671d320 -- node0x5f3e0671d3d0
node0x5f3e067215e0 -- node0x5f3e06721530
node0x5f3e066eac60 -- node0x5f3e066ead30
node0x5f3e066a7ed0 -- node0x5f3e067b7bb0
node0x5f3e067b7bb0 -- node0x5f3e0674c230
node0x5f3e067b7bb0 -- node0x5f3e0669dc20
node0x5f3e0669dc20 -- node0x5f3e0669d9e0
node0x5f3e0669d9e0 -- node0x5f3e0669db00
node0x5f3e0669db00 -- node0x5f3e067241f0
node0x5f3e067241f0 -- node0x5f3e066b0ef0
node0x5f3e0669db00 -- node0x5f3e066b4a90
node0x5f3e066b4a90 -- node0x5f3e0669c4b0
node0x5f3e0669c4b0 -- node0x5f3e0678ce80
node0x5f3e066b4a90 -- node0x5f3e0669c6f0
node0x5f3e066a7ed0 -- node0x5f3e0672cce0
node0x5f3e0672cce0 -- node0x5f3e066ec4d0
node0x5f3e0672cce0 -- node0x5f3e066a8750
node0x5f3e066a8750 -- node0x5f3e0674b630
node0x5f3e0674b630 -- node0x5f3e066d0270
node0x5f3e066d0270 -- node0x5f3e0672cbc0
node0x5f3e0672cbc0 -- node0x5f3e0672cb10
node0x5f3e066d0270 -- node0x5f3e0674b4b0
node0x5f3e0674b4b0 -- node0x5f3e0672e930
node0x5f3e0672e930 -- node0x5f3e0672e880
node0x5f3e0674b4b0 -- node0x5f3e0674b580
node0x5f3e0674b630 -- node0x5f3e066d0360
node0x5f3e066d0360 -- node0x5f3e06730280
node0x5f3e06730280 -- node0x5f3e067301d0
node0x5f3e066d0360 -- node0x5f3e0669faa0
node0x5f3e0669faa0 -- node0x5f3e066ff970
node0x5f3e066ff970 -- node0x5f3e066ff8f0
node0x5f3e0669faa0 -- node0x5f3e0669fb70
node0x5f3e0674b630 -- node0x5f3e066a8650
node0x5f3e066a8650 -- node0x5f3e066d1ed0
node0x5f3e066d1ed0 -- node0x5f3e0674ad90
node0x5f3e066a8650 -- node0x5f3e067e4d90
node0x5f3e067e4d90 -- node0x5f3e066ce820
node0x5f3e066ce820 -- node0x5f3e066ce750
node0x5f3e066ce750 -- node0x5f3e066d1fc0
node0x5f3e067e4d90 -- node0x5f3e067e4e30
node0x5f3e066a7ed0 -- node0x5f3e0678fe80
node0x5f3e0678fe80 -- node0x5f3e066ca7b0
node0x5f3e0678fe80 -- node0x5f3e067b5790
node0x5f3e067b5790 -- node0x5f3e067b56f0
node0x5f3e067b56f0 -- node0x5f3e066ec5b0
node0x5f3e0678fe80 -- node0x5f3e066d6c90
node0x5f3e066d6c90 -- node0x5f3e066c5cb0
node0x5f3e066c5cb0 -- node0x5f3e066d6ba0
node0x5f3e066d6ba0 -- node0x5f3e0674c530
node0x5f3e0674c530 -- node0x5f3e067b58a0
node0x5f3e066d6ba0 -- node0x5f3e066c5b50
node0x5f3e066c5b50 -- node0x5f3e0674c690
node0x5f3e0674c690 -- node0x5f3e0674c5e0
node0x5f3e066c5b50 -- node0x5f3e066c5c00
node0x5f3e066a7ed0 -- node0x5f3e066c9dc0
node0x5f3e066c9dc0 -- node0x5f3e0671e170
node0x5f3e066c9dc0 -- node0x5f3e066ca490
node0x5f3e066ca490 -- node0x5f3e066ca940
node0x5f3e066ca940 -- node0x5f3e066ca890
node0x5f3e066c9dc0 -- node0x5f3e066c3290
node0x5f3e066c3290 -- node0x5f3e066c4280
node0x5f3e066c4280 -- node0x5f3e066c4330
node0x5f3e066c4330 -- node0x5f3e066c4cd0
node0x5f3e066c4cd0 -- node0x5f3e066c4c20
node0x5f3e066c4330 -- node0x5f3e066c58e0
node0x5f3e066c58e0 -- node0x5f3e066c57f0
node0x5f3e066c57f0 -- node0x5f3e066c5740
node0x5f3e066c58e0 -- node0x5f3e066c41d0
node0x5f3e066c4280 -- node0x5f3e066c31c0
node0x5f3e066c31c0 -- node0x5f3e066ca280
node0x5f3e066ca280 -- node0x5f3e066ca580
node0x5f3e066ca280 -- node0x5f3e066ca1d0
node0x5f3e066c31c0 -- node0x5f3e066bbfc0
node0x5f3e066bbfc0 -- node0x5f3e066bbed0
node0x5f3e066bbed0 -- node0x5f3e066bbe00
node0x5f3e066bbe00 -- node0x5f3e066ca370
node0x5f3e066bbfc0 -- node0x5f3e066c4b50
node0x5f3e066a7ed0 -- node0x5f3e066c9ea0
node0x5f3e066c9ea0 -- node0x5f3e066d7060
node0x5f3e066c9ea0 -- node0x5f3e06789400
node0x5f3e06789400 -- node0x5f3e066ee6c0
node0x5f3e066ee6c0 -- node0x5f3e066ee770
node0x5f3e066ee770 -- node0x5f3e067db410
node0x5f3e067db410 -- node0x5f3e067db2b0
node0x5f3e067db410 -- node0x5f3e067db360
node0x5f3e066ee770 -- node0x5f3e066f0af0
node0x5f3e066f0af0 -- node0x5f3e066f0a00
node0x5f3e066f0a00 -- node0x5f3e066f0950
node0x5f3e066f0950 -- node0x5f3e067db4e0
node0x5f3e066f0af0 -- node0x5f3e066ee610
node0x5f3e066a7ed0 -- node0x5f3e066c9f70
node0x5f3e066c9f70 -- node0x5f3e066c5420
node0x5f3e066c9f70 -- node0x5f3e066d6040
node0x5f3e066a7ed0 -- node0x5f3e066b83f0
node0x5f3e066b83f0 -- node0x5f3e066b84a0
node0x5f3e066b83f0 -- node0x5f3e066b8320
node0x5f3e066b8320 -- node0x5f3e066c25f0
node0x5f3e066c25f0 -- node0x5f3e066c2380
node0x5f3e066c2380 -- node0x5f3e066c5690
node0x5f3e066c25f0 -- node0x5f3e066c2470
node0x5f3e066c2470 -- node0x5f3e066c2520
node0x5f3e066a7ed0 -- node0x5f3e066ca040
node0x5f3e066ca040 -- node0x5f3e0665f660
node0x5f3e066ca040 -- node0x5f3e066bf1d0
node0x5f3e066bf1d0 -- node0x5f3e066bf120
node0x5f3e066ca040 -- node0x5f3e066bf2c0
node0x5f3e066a7ed0 -- node0x5f3e066ca120
node0x5f3e066ca120 -- node0x5f3e066f1c00
node0x5f3e066ca120 -- node0x5f3e066d2180
node0x5f3e066d2180 -- node0x5f3e067e09b0
node0x5f3e067e09b0 -- node0x5f3e067e0a60
node0x5f3e067e0a60 -- node0x5f3e067b2070
node0x5f3e067b2070 -- node0x5f3e067b1fc0
node0x5f3e067e0a60 -- node0x5f3e067e0830
node0x5f3e067e0830 -- node0x5f3e067b21f0
node0x5f3e067b21f0 -- node0x5f3e067b2140
node0x5f3e067e0830 -- node0x5f3e067e0900
node0x5f3e067e09b0 -- node0x5f3e066d20b0
node0x5f3e066d20b0 -- node0x5f3e067e10b0
node0x5f3e067e10b0 -- node0x5f3e067e1000
node0x5f3e066d20b0 -- node0x5f3e067e01b0
node0x5f3e067e01b0 -- node0x5f3e067e00c0
node0x5f3e067e00c0 -- node0x5f3e067dfff0
node0x5f3e067dfff0 -- node0x5f3e067dff40
node0x5f3e067e01b0 -- node0x5f3e067b1f20
node0x5f3e066a7ed0 -- node0x5f3e066b0bb0
node0x5f3e066b0bb0 -- node0x5f3e066b0c30
node0x5f3e066b0bb0 -- node0x5f3e066a9070
node0x5f3e066b0bb0 -- node0x5f3e066b0140
node0x5f3e066b0140 -- node0x5f3e066b0070
node0x5f3e066b0070 -- node0x5f3e066af320
node0x5f3e066af320 -- node0x5f3e066aef00
node0x5f3e066aef00 -- node0x5f3e066a92d0
node0x5f3e066a92d0 -- node0x5f3e066a8220
node0x5f3e066af320 -- node0x5f3e066af010
node0x5f3e066af010 -- node0x5f3e066af090
node0x5f3e066b0070 -- node0x5f3e066affa0
node0x5f3e066affa0 -- node0x5f3e066af520
node0x5f3e066af520 -- node0x5f3e066af5a0
node0x5f3e066af520 -- node0x5f3e066af420
node0x5f3e066af420 -- node0x5f3e066af4a0
node0x5f3e066af420 -- node0x5f3e066af3a0
node0x5f3e066affa0 -- node0x5f3e066afed0
node0x5f3e066afed0 -- node0x5f3e066afe00
node0x5f3e066afe00 -- node0x5f3e066afd30
node0x5f3e066afd30 -- node0x5f3e066aef80
node0x5f3e066afd30 -- node0x5f3e066afc60
node0x5f3e066afc60 -- node0x5f3e066af7a0
node0x5f3e066b0140 -- node0x5f3e066b07e0
node0x5f3e066b07e0 -- node0x5f3e066b0620
node0x5f3e066b0620 -- node0x5f3e066b03b0
node0x5f3e066b03b0 -- node0x5f3e066b02e0
node0x5f3e066b02e0 -- node0x5f3e066b0230
node0x5f3e066b0620 -- node0x5f3e066b04a0
node0x5f3e066b04a0 -- node0x5f3e066b0550
node0x5f3e066b07e0 -- node0x5f3e066b0730
node0x5f3e066b0140 -- node0x5f3e066b1c90
node0x5f3e066b1c90 -- node0x5f3e066b1330
node0x5f3e066b1330 -- node0x5f3e066b13e0
node0x5f3e066b1330 -- node0x5f3e066b11b0
node0x5f3e066b11b0 -- node0x5f3e066b1260
node0x5f3e066b11b0 -- node0x5f3e066b08f0
node0x5f3e066b1c90 -- node0x5f3e066b1ba0
node0x5f3e066b1ba0 -- node0x5f3e066b1ad0
node0x5f3e066b1ad0 -- node0x5f3e066b1a00
node0x5f3e066b1a00 -- node0x5f3e066b17b0
node0x5f3e066b1a00 -- node0x5f3e066b1930
node0x5f3e066b1930 -- node0x5f3e066b1880
node0x5f3e066b1ad0 -- node0x5f3e066b16e0
node0x5f3e066b0140 -- node0x5f3e066b2730
node0x5f3e066b2730 -- node0x5f3e066b1fe0
node0x5f3e066b1fe0 -- node0x5f3e066b2090
node0x5f3e066b1fe0 -- node0x5f3e066b1e60
node0x5f3e066b1e60 -- node0x5f3e066b1f10
node0x5f3e066b1e60 -- node0x5f3e066b1db0
node0x5f3e066b2730 -- node0x5f3e066b2640
node0x5f3e066b2640 -- node0x5f3e066b2570
node0x5f3e066b2570 -- node0x5f3e066b24a0
node0x5f3e066b24a0 -- node0x5f3e066b2250
node0x5f3e066b24a0 -- node0x5f3e066b23d0
node0x5f3e066b23d0 -- node0x5f3e066b2320
node0x5f3e066b2570 -- node0x5f3e066b21a0
node0x5f3e066b0140 -- node0x5f3e066b0a90
node0x5f3e066b0a90 -- node0x5f3e066b2a70
node0x5f3e066b2a70 -- node0x5f3e066b2b20
node0x5f3e066b2a70 -- node0x5f3e066b28f0
node0x5f3e066b28f0 -- node0x5f3e066b29a0
node0x5f3e066b28f0 -- node0x5f3e066b2840
node0x5f3e066b0a90 -- node0x5f3e066b09c0
node0x5f3e066b09c0 -- node0x5f3e066b2cc0
node0x5f3e066b2cc0 -- node0x5f3e066b2c10
}

BIN
tests/box/archive/prime.o Normal file

Binary file not shown.

42
tests/box/archive/prime.s Normal file
View File

@ -0,0 +1,42 @@
.text
.file "main.gsc"
.globl main
.p2align 4, 0x90
.type main,@function
main:
.cfi_startproc
pushq %rbx
.cfi_def_cfa_offset 16
subq $16, %rsp
.cfi_def_cfa_offset 32
.cfi_offset %rbx, -16
movl $64, %edi
callq "std::mem::alloc"@PLT
movq %rax, (%rsp)
movq %rax, 8(%rsp)
movq %rsp, %rbx
movq %rbx, %rdi
movl $32, %esi
callq "std::mem::realloc"@PLT
movq 96e28277@GOTPCREL(%rip), %rdi
movl $13, %esi
callq "std::io::print"@PLT
movq %rbx, %rdi
callq "std::mem::free"@PLT
addq $16, %rsp
.cfi_def_cfa_offset 16
popq %rbx
.cfi_def_cfa_offset 8
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
.cfi_endproc
.type 96e28277,@object
.section .rodata.str1.1,"aMS",@progbits,1
.globl 96e28277
96e28277:
.asciz "Hello, World\n"
.size 96e28277, 14
.section ".note.GNU-stack","",@progbits

View File

@ -3,5 +3,13 @@ import "std"
#[nomangle] #[nomangle]
fun main() { fun main() {
i32: u = 0 as i32
ref u8: buf = std::mem::alloc(64 as u32)
ref u8: adr = buf
std::mem::realloc(buf, 32 as u32)
std::io::print("Hello, World\n", 13 as u32)
std::mem::free(buf)
} }