bug-mes
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gash on Mes


From: Jan Nieuwenhuizen
Subject: Re: Gash on Mes
Date: Mon, 02 May 2022 07:16:35 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Timothy Sample writes:

Hi Tim!

> Now that we have working modules, I took a look at getting Gash running
> on Mes.  For the most part, it’s going very well!  I can already launch
> a shell and run built-ins and simple commands.  This means that Gash’s
> parser, backend, evaluator, and built-ins are working.  They certainly
> don’t work well, but I’m happy to see them all pass a smoke test.

For a first attempt, that is great news!

> You can run Gash by setting up a launching script:
>
>     (use-modules ((gash gash) #:prefix gash:))
>
>     (set-current-input-port 0)
>     (gash:main '())
>
> and invoking the script like this (setting the path to Gash
> appropriately):
>
>     MES_ARENA=10000000                  \
>     MES_BOOT=mes/module/mes/boot-5.scm  \
>     GUILE_LOAD_PATH=../gash             \
>     ./pre-inst-env mes-gcc ./gash.scm

Oh...nice!

> (As an aside, did you notice how the ‘#:prefix’ keyword just works?
> It’s nice how many of Guile’s niceties the Mes module system has,
> including ‘@’ and ‘@@’.)

Yeah!

> So far I’m only testing with the GCC build of Mes.  The first commit on
> wip-gash disables M2-Planet completely.  The reason for this is I’m not
> sure it makes sense to add all the new POSIX interfaces needed for Gash
> to the M2 build of Mes.  Maybe it’s easier to bootstrap Mes first and
> then run Gash on the MesCC build of Mes.

Yes, this would be my first idea too.

> Newer versions of M2 support conditional compilation, so it would be
> straightforward to omit some POSIX-heavy Mes built-ins when building
> with M2 provided we can use an updated version.  Thoughts?

Making use of the new preprocessor capabilities to cleanup the
lib/linux/m2/... include hacks would be nice, but building a more
minimal (POSIX-interface wise) mes-m2 with M2-Planet first to build a
full mes later seems the right thing to do.  For the bootstrap that
would mean however that we would need to build the full mes without a
shell (i.e. with kaem only), where the mes build currently makes heavy
use of shell scripts.  We'll have to see...For now, disabling the
M2-Planet build is fine, of course.

> The other thing to note is that I’m putting a bunch of shims in Gash,
> since it already has a compatibility layer for different versions of
> Guile.  I adapted that to work with Mes, too, and it’s really easy to
> just fix things at that layer.  I think that a lot of the shims should
> end up in Mes itself, but since the compatibility layer works well
> enough, there’s no urgency there.

Makes sense.  Exciting stuff!

Greetings,
Janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]