Turns out I've been including some unnecessary files when building apps/mu!

Treeshaken stats before:
  LoC 26258 => 9717
  LoC including common libraries: 29736 => 12719
  binary size: 406K  => 79K

After:
  LoC 26258 => 9717
  LoC including common libraries: 28322 => 12370
  binary size: 406K  => 77K

So our treeshaking isn't perfect. No surprise there..

The treeshaken build also starts to fail without the one-liner change to
mu.subx, which looks like a bug in the treeshaker.
This commit is contained in:
Kartik Agaram 2020-10-25 22:13:31 -07:00
parent 10d5b13af8
commit 475da72c61
4 changed files with 4 additions and 5 deletions

View File

@ -1,6 +1,5 @@
Layers in the 3xx series use all the available syntax sugar for SubX programs.
They're used by the Mu translator (apps/mu.subx) and can also be called from
Mu programs if they meet certain criteria:
Functions here can be called from Mu programs if they meet certain criteria:
- There's a signature for them in 400.mu
- Inouts on the stack, outputs in registers

BIN
apps/mu

Binary file not shown.

View File

@ -22565,7 +22565,7 @@ Int-var-in-eax:
1/imm32/some-block-depth
0/imm32/no-stack-offset
0x11/imm32/alloc-id:fake
$Register-eax/imm32
$Mu-register-eax/imm32 # can't use Register-eax only to keep our buggy tools/treeshake.cc happy (TODO)
Single-int-var-in-ecx: # (payload list var)
0x11/imm32/alloc-id:fake:payload

View File

@ -287,7 +287,7 @@ test $NATIVE && {
}
echo mu
cat init.$OS [0-9]*.subx apps/mu.subx | apps/braces | apps/calls | apps/sigils > a.sigils
cat init.$OS [0-2]*.subx apps/mu.subx | apps/braces | apps/calls | apps/sigils > a.sigils
./bootstrap translate a.sigils -o apps/mu
test "$1" = 'record' || git diff --exit-code apps/mu
test $EMULATED && {
@ -338,7 +338,7 @@ done
# Mu translator
echo mu
./translate_subx init.$OS [0-9]*.subx apps/mu.subx
./translate_subx init.$OS [0-2]*.subx apps/mu.subx
diff apps/mu a.elf
# Mu programs