unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ashvith Shetty <ashvithshetty10@gmail.com>
To: Jelle Licht <jlicht@fsfe.org>
Cc: guix-devel@gnu.org
Subject: Re: State of JS runtime environment in Guix
Date: Sun, 3 Nov 2024 14:42:08 +0000	[thread overview]
Message-ID: <CA+n6Bx8bf-9vie8VQ7ouAT3Sfx--JwD5NytAHkCKXaqpJOaiGA@mail.gmail.com> (raw)
In-Reply-To: <875xp47b97.fsf@fsfe.org>

[-- Attachment #1: Type: text/plain, Size: 2800 bytes --]

Hello Jelle,

I've just sent a patch series (https://issues.guix.gnu.org/74187) bumping
our node-lts package to 20.18.0. This would be a first step to bumping it
to 22.X.Y, after which I think it should be fairly easy to create and
maintain an up-to-date node-current package.


Thank you for your patches. This will also be a good exercise for me to
read package definitions for `node-lts`.

AFAICT node@10 is the last version that can still be used to properly
bootstrap the llhttp packages without itself depending on llhttp; We use
esbuild to compile all the TypeScript to JS, and subsequently use node@10
to run this JS which in turn generates the C code that is used to build
llhttp (and subsequently, Node versions after 10). If this all sounds like
an example of the XY problem, that's because it is :). What we really need
is _some_ way to (re)generate the C code that is a part of llhttp. If there
is some other (minimalist) JS runtime that could do this, that would be a
major improvement over what we currently do.


I had this in my head for quite a while, and maybe I could be wrong here,
but could we use anything like QuickJS, tinyJS, etc? Since they do not
support NPM, I highly doubt if they can be used as a substitute.

WDYM exactly?


Perhaps I have misread your comments at https://issues.guix.gnu.org/71581#13
.
I was under the impression that llhttp may have some
TypeScript/JavaScript/C
code meddling with building `node-lts`.

Are there any things you've already started working on? I'd love to see
what we can do to make this happen.


Unfortunately, no. Working with compilers and interpreters is beyond my
expertise. I have just recently started to delve into system programming
seriously.

I don't use any of the non-npm options, but could you check if they can be
installed using (e.g.) `npm install -g --prefix="$HOME/.local` after
applying the patch series that bumps node to v20? Not really relevant for
guix proper, but earlier this year I pushed the npm-binary importer that
could perhaps be used to package some of {yarn,pnpm,lerna} in a channel or
local guix.scm.


Personally, I liked using `pnpm`, but I guess that this is not that serious
of
an issue. I think I'll try the command you've shared.

I was also of the opinion that we may remove `http_parser`, but it looks
like
there are several dependencies - some have moved over to `llhttp`, but some
packages, like `psi` and `psi-plus` are still dependent on `qhttp`, which
in turn
depends on `http_parser`.

With respect to removing internal source dependencies, do you think it
would be
possible to remove dependency for `simdutf` and `uvwasi`? I think I've
written
package definitions for both of them earlier - maybe I could rewrite them
again, and
try adding them as inputs this time.

Regards,
Ashvith

[-- Attachment #2: Type: text/html, Size: 4567 bytes --]

      reply	other threads:[~2024-11-03 14:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-03  9:06 State of JS runtime environment in Guix Ashvith Shetty
2024-11-03 12:27 ` Jelle Licht
2024-11-03 14:42   ` Ashvith Shetty [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+n6Bx8bf-9vie8VQ7ouAT3Sfx--JwD5NytAHkCKXaqpJOaiGA@mail.gmail.com \
    --to=ashvithshetty10@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=jlicht@fsfe.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).