4 ms·
I had a lot of fun to see that the other day :-) > "Binaryen" is pronounced in the same manner as "Targaryen": bi-NAIR-ee-in. Or something like that? Anyhow, h
by vmorgulis 11y ago
I had a lot of fun to see that the other day :-)
> "Binaryen" is pronounced in the same manner as "Targaryen": bi-NAIR-ee-in. Or something like that? Anyhow, however Targaryen is correctly pronounced, they should rhyme. Aside from pronunciation, the Targaryen house words, "Fire and Blood", have also inspired Binaryen's: "Code and Bugs."
https://github.com/WebAssembly/binaryen https://github.com/WebAssembly/binaryen
Do you know XZ Embedded?
http://tukaani.org/xz/embedded.html http://tukaani.org/xz/embedded.html
I wonder if it could improve startup (with emterpreter?).
- azakai 11y agoI hadn't heard of XZ embedded. Might be worth measuring it, but it would be competing with native gzip in the browser, which is hard to beat on speed. But maybe better compression would be worth it?
- corysama 11y agoLZHAM is interesting in that area. Speed that competes with gzip and compression that competes with LZMA. https://github.com/richgel999/lzham_codec https://github.com/richgel999/lzham_codec
- vmorgulis 11y agoInteresting. It reminds me encode.ru :) Do you know the size of the compiled code?
- corysama 11y agoIn this discussion https://news.ycombinator.com/item?id=8911369 https://news.ycombinator.com/item?id=8911369 someone quoted this page http://mattmahoney.net/dc/text.html http://mattmahoney.net/dc/text.html as saying it compiles to about 150k. I can't find the current listing, but I'm on mobile :/ Btw: the author's blog talks about LZHAM quite a bit http://richg42.blogspot.com/ http://richg42.blogspot.com/ edit: Looks like it's up to 190k Compression Compressed size Decompresser Total size Time (ns/byte) Program Options enwik8 enwik9 size (zip) enwik9+prog Comp Decomp Mem Alg Note ------- ------- ---------- ----------- ----------- ----------- ----- ----- --- --- ---- lzham 1.0 -d29 -x 25,002,070 202,237,199 191,600 s 202,428,799 1096 6.6 7800 LZ77 70 xz 5.2.1--lzma2=preset=9e,dict=1GiB,lc=4,pb=0 24,703,772 197,331,816 36,752 xd 197,368,568 5876 20 6000 LZ77 73 gzip 1.3.5 -9 36,445,248 322,591,995 38,801 x 322,630,796 101 17 1.6 LZ77
- vmorgulis 11y agoVery cool! I appreciate the details :-) I ran a quick with the tool (xzminidec) that comes with XZ Embedded. gcc -O3 -s -D XZ_USE_CRC64 -o xzminidec xzminidec.c xz_crc32.c xz_crc64.c xz_dec_stream.c xz_dec_lzma2.c du -b xzminidec 19472 xzminidec ldd xzminidec linux-vdso.so.1 (0x00007ffe9905c000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f105c83b000) /lib64/ld-linux-x86-64.so.2 (0x000055d818666000) du -b enwik8.zip 36445475 enwik8.zip du -b enwik8.xz 26375764 enwik8.xz time unzip enwik8.zip real 0m1.023s user 0m0.948s sys 0m0.068s time cat enwik8.xz | ./xzminidec > out-xz.txt real 0m2.598s user 0m2.504s sys 0m0.136s cmp enwik8 out-xz.txt (empty) unzip is faster but the xz decoder is very tiny and the compressed input file is smaller.
- vmorgulis 11y agoThe most interesting feature (for me) is its small size: "Compiled code is 8–20 KiB." zlib is heavier (about 200Ko). It could be used to make self-extractible asm.js programs or to compress some embedded resources (like files from "--embedd", fonts, images...).