Subject: Re: bug#73188: PEG parser does not support full PEG grammar

From: Bengt Richter <[email-masked]>
Date: Sat, 28 Dec 2024 12:30:32 -0800

Hi Ekaitz and anyone interested,

Sorry for misunderstandings ;-/

I thought you have made changes which make the MIT PEG standard [1] available in full,
and I would like to use that full standard PEG syntax for defining something I have in mind.

I realize that guile's underlying VM has a bytecode interpretation loop that is dynamically
jit-optimized, and that this is orthogonal to whether the host system is RISCV or whatever,
as far as using guile and guix as tools is concerned. (BTW UIAM you have contributed a lot to
making this bug-free and clean, for which thanks! )

My interest in RISCV however is as a *target* output language for a compiler I'd like to define
with PEG for transforming my peculiar DSL source to output RISCV source, then compile it
to an image for execution by RISCV hardware or the quivalent qemu virtual hardware.

I'd like to make a tool that can transform any source written in my peculiar ascii/utf8 DSL-syntax
to a minimal self-contained bootable-in-RISCV-VM-or-HW ELF file.

I can use the current PEG machinery for testing, but I'd like to avoid debugging things you have fixed :)
Hence my interest in cloning your repo, so I can start using the MIT syntax [1] and be sure bugs
I encounter will be *my* bugs and typos and design/coding mistakes ;-)

Also, if I write do-what-i-want.scm using the peg accessible with guile3,
the executable will not be a minimal ELF :)

Thus my interest in the jit code would be to look for code snippets that I might be able to use
for AHOT compilation. Probably someone is already working on something like that.
(Anything I think of seems to be WIP somewhere on the internet already :)

You write about committing your patches, so I was wondering what git repo you are committing into.
I assume you have a private one on your laptop or otherwise near at hand, but are you pushing to
some place that I could clone, and then use one of Ludo's magic pre-install incantations to access
with use-module in a package definition of mine?

BTW, re guix/guile development funding --
I am expecting ARM SOCs with RISCV cores to become important in the hacker/maker embedded world.

Could guix/guile earn extra funding by having an investment coop llc that designs actual FLOSS HW/SW/FW
and contracts to produce cool devices for profit? (Independent of FSF, and other benevolent sources,
but allowing non-controlling investment from them).

Sorry to hi-jack this thread. Please start a new one if interested in exploring anything here :)

[1] <https://bford.info/pub/lang/peg.pdf>
--
Regards,
Bengt Richter

On +2024-12-23 23:13:57 +0100, Ekaitz Zarraga wrote:
> Hi,
> 
> 
> On 2024-12-23 23:04, [email-masked] wrote:
> >      • Late kudos to Ekaitz for this great PEG contribution, especially RISCV,
> >        which will IMO play a key part in the future of human secure control over machines 🙂
> 
> I think I didn't understand your message very well, but just as a
> clarification: the PEG work and RISC-V work are completely independent, one
> doesn't have anything to do with the other, and the RISC-V work is not
> merged in Guile yet.
> 
> The RISC-V work for the Guile JIT (guile already works in riscv without it)
> is in here:
> https://gitlab.com/wingo/lightening/-/merge_requests/14
> 
> Hope this clarifies things.