logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git
commit: d11751d37654d7cb93010af574d6c821785c996a
parent c9ce5b70b8787ecdac5178a0f41a5538e67243e9
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sun, 19 Feb 2023 20:15:40 +0100

notes/bootstrapping: Alternatives to deal with TypeScript?

Diffstat:

Mnotes/bootstrapping.shtml10+++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/notes/bootstrapping.shtml b/notes/bootstrapping.shtml @@ -38,7 +38,7 @@ <h3>Erlang</h3> <p>Documented as originally implemented in prolog, now version <i class="math">n</i> requires binaries version <i class="math">n-1</i> or <i class="math">n</i> to build. No alternative compiler known so far.</p> - <h3>Rust</h3> + <h3 id="rust">Rust</h3> <p> There is <a href="https://github.com/thepowersgang/mrustc">mrustc</a> but it's quite unstable and so far GuixSD seems to be the only distro using it. Getting to stable also involves compiling the intermediary versions. @@ -51,7 +51,7 @@ <h3>Free-Pascal Compiler / Object Pascal</h3> <p><a href="https://bootstrapping.miraheze.org/wiki/Aesop">Aesop</a> seems to still be at the vaporware stage, no code is available.</p> - <h3>Nim</h2> + <h3>Nim</h3> <p> The transpiled C non-source code used for bootstrapping contained in <code>./c_code/</code> is pretty much what you would get with C++ mangled symbols auto-decompiled to C.<br /> <a href="https://bootstrapping.miraheze.org/wiki/Bootstrapping_Nim">Real Bootstrapping</a> would need a bootstrap path for Object Pascal, which doesn't exists. @@ -91,11 +91,15 @@ <h3>TypeScript</h3> <p>Compiler itself is written in TypeScript, no bootstrap path possible as the <a href="https://github.com/microsoft/TypeScript/commit/214df64e287804577afa1fea0184c18c40f7d1ca">commit introducing the compiler</a> is TypeScript code. Want TypeScript compiler? Get a blob from <code>npmjs.org</code>, like the <a href="https://github.com/microsoft/TypeScript/commit/99ec3a96880649eeaa08c3df30e3ae802048f4fe">Initial commit</a> tells you.</p> + <p> + Alternative might be <a href="https://github.com/swc-project/swc">swc</a> (<a href="#rust">Rust</a>). Note that <a href="https://deno.land/">Deno</a> (also <a href="#rust">Rust</a>) just <a href="https://github.com/denoland/deno/blob/main/tools/update_typescript.md">grabs pre-transpiled JS from Microsoft</a> and <a href="https://babeljs.io/">Babel</a> simply seems to depend on the <code>typescript</code> package.<br /> + And it should be noted that TypeScript seems to have no specification anymore. (Commit: <a href="https://github.com/microsoft/TypeScript/commit/91822db8e01e38e1f9d80142df67d3849851571d">Remove doc folder (old archived spec and assets), word2md script</a>) + </p> <h2>Historically problematic</h2> <h3>Firefox &gt;=68 &lt;=78</h3> - <p>Firefox would bundle python2 and refuse to build if removed. See <a href="https://salsa.debian.org/mozilla-team/firefox/-/commits/esr78/master/obj-x86_64-pc-linux-gnu/_virtualenvs/init/bin">Debian firefox-esr source history</a> + <p>Firefox would bundle python2 and refuse to build if removed. See <a href="https://salsa.debian.org/mozilla-team/firefox/-/commits/esr78/master/obj-x86_64-pc-linux-gnu/_virtualenvs/init/bin">Debian firefox-esr source history</a></p> <h2>Non-Problematic / Praise</h2> <h3>Go</h3>