unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* Guile Steel: a proposal for a systems lisp
@ 2022-07-09 15:35 Christine Lemmer-Webber
  2022-07-10  9:46 ` Blake Shaw
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Christine Lemmer-Webber @ 2022-07-09 15:35 UTC (permalink / raw)
  To: Guile User

A little blogpost this morning, not actual software, but software
desiderata:
  https://dustycloud.org/blog/guile-steel-proposal/

I'd love to see something like the above happen.  I'd love to help make
it happen.  So this is more of a call to arms than anything else.

Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
some interesting things on that compiler tower of ours!



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-07-09 15:35 Guile Steel: a proposal for a systems lisp Christine Lemmer-Webber
@ 2022-07-10  9:46 ` Blake Shaw
  2022-07-10 12:14 ` Zelphir Kaltstahl
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: Blake Shaw @ 2022-07-10  9:46 UTC (permalink / raw)
  To: Christine Lemmer-Webber; +Cc: Guile User

The name is gold (well, actually Steel, but...)

I love the idea as I'd love to be able to do systems programming in Scheme.

I've actually been playing with Loko scheme lately which is really cool and
designed for bare metal.
There are some really cool things going on there, such as Valand, an
experimental wayland-like
compositor written purely in Scheme (see the dev branch if you're
interested). But its still garbage
collected.

Another cool example of what maybe counts as a systems lisp/scheme is the
xtlang from extempore,
designed to allow for the low-level bit fiddling and performance
requirements of per-sample DSP.

If this initiative takes off I'd like to offer my help however I could
contribute :)

---
Blake Shaw
Director, SWEATSHOPPE
sweatshoppe.org
---


On Sat, Jul 9, 2022 at 3:38 PM Christine Lemmer-Webber <
cwebber@dustycloud.org> wrote:
>
> A little blogpost this morning, not actual software, but software
> desiderata:
>   https://dustycloud.org/blog/guile-steel-proposal/
>
> I'd love to see something like the above happen.  I'd love to help make
> it happen.  So this is more of a call to arms than anything else.
>
> Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
> some interesting things on that compiler tower of ours!
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-07-09 15:35 Guile Steel: a proposal for a systems lisp Christine Lemmer-Webber
  2022-07-10  9:46 ` Blake Shaw
@ 2022-07-10 12:14 ` Zelphir Kaltstahl
  2022-07-11 11:13 ` Tim Van den Langenbergh
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: Zelphir Kaltstahl @ 2022-07-10 12:14 UTC (permalink / raw)
  To: Guile User

I am usually quite far away from the metal and how things work on the bits 
level, however, if there was a Guile dialect, or Scheme dialect, which has 
similar feel, or maybe can even use Guile libraries, I would find that 
interesting. There is probably a lot to learn for me in that area.

I began implementing a bitboard, dreaming about writing a whole chess engine 
once and the clever tricks one can use on the bits level were interesting. Maybe 
such a thing could also be done in a better way using a Scheme close to the metal.

On 7/9/22 17:35, Christine Lemmer-Webber wrote:
> A little blogpost this morning, not actual software, but software
> desiderata:
>    https://dustycloud.org/blog/guile-steel-proposal/
>
> I'd love to see something like the above happen.  I'd love to help make
> it happen.  So this is more of a call to arms than anything else.
>
> Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
> some interesting things on that compiler tower of ours!
>
-- 
repositories: https://notabug.org/ZelphirKaltstahl




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-07-09 15:35 Guile Steel: a proposal for a systems lisp Christine Lemmer-Webber
  2022-07-10  9:46 ` Blake Shaw
  2022-07-10 12:14 ` Zelphir Kaltstahl
@ 2022-07-11 11:13 ` Tim Van den Langenbergh
  2022-07-15 12:08   ` Christine Lemmer-Webber
  2022-07-11 13:10 ` Martin Becze
  2022-08-07  9:28 ` Damien Mattei
  4 siblings, 1 reply; 13+ messages in thread
From: Tim Van den Langenbergh @ 2022-07-11 11:13 UTC (permalink / raw)
  To: Christine Lemmer-Webber; +Cc: guile-user


Christine Lemmer-Webber <cwebber@dustycloud.org> writes:

> A little blogpost this morning, not actual software, but software
> desiderata:
>   https://dustycloud.org/blog/guile-steel-proposal/
>
> I'd love to see something like the above happen.  I'd love to help make
> it happen.  So this is more of a call to arms than anything else.
>
> Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
> some interesting things on that compiler tower of ours!

Dear Christine,

creating a Lisp-inspired systems programming language is indeed an interesting
idea, I have also been thinking about something similar (though I wasn't
thinking of tying it to Guile in any way).

Your talk about propagators is also quite interesting, it may take me a lot of
mental processing power to map them to "hey hardware, give me this many bytes
on the stack"-style output, I ought to play around with them over the weekend.

My own thoughts on a systems programming language primarily revolve around
stealing interesting ideas from other projects: taking some notation from
Cakelisp and Coalton, parts of the type system from Coalton and Rust, the
memory management from Rust,...

As I am a big fan of the GNU project I was thinking of targetting GCC's GENERIC
as an initial compilation target, though I am aware that a lot of projects seem
to prefer LLVM instead.  Unfortunately it seems like GCC's documentation
doesn't match up well against that of LLVM, so adding some advanced
functionality may take some code reading (or putting GCC through GDB, that
could be fun).

The part of designing a language for systems programming I dread most is
getting the predictability right.  Being able to tell in advance what gets
allocated on the stack, what on the heap, what gets freed when is very
important.  Of course manual memory management has been a major cause of bugs,
so having the language manage it properly is of prime importance, which makes
it hard to get the predictability right without hampering the ergonomics of the
language.

I am looking forward to reading your further thoughts as you start tinkering
around with the idea.  The Lisp revolution could use another stride forwards.

Vale,

- Tim



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-07-09 15:35 Guile Steel: a proposal for a systems lisp Christine Lemmer-Webber
                   ` (2 preceding siblings ...)
  2022-07-11 11:13 ` Tim Van den Langenbergh
@ 2022-07-11 13:10 ` Martin Becze
  2022-08-07  9:28 ` Damien Mattei
  4 siblings, 0 replies; 13+ messages in thread
From: Martin Becze @ 2022-07-11 13:10 UTC (permalink / raw)
  To: Christine Lemmer-Webber, Guile User

Have you seen loko scheme? https://scheme.fail/ It might be interesting 
and a source of inspiration.

I had a peek at how it implemented some drives 
<https://gitlab.com/weinholt/loko/-/tree/master/drivers>, looks straight 
forward enough.

On 7/9/22 17:35, Christine Lemmer-Webber wrote:
> A little blogpost this morning, not actual software, but software
> desiderata:
>    https://dustycloud.org/blog/guile-steel-proposal/
>
> I'd love to see something like the above happen.  I'd love to help make
> it happen.  So this is more of a call to arms than anything else.
>
> Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
> some interesting things on that compiler tower of ours!
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-07-11 11:13 ` Tim Van den Langenbergh
@ 2022-07-15 12:08   ` Christine Lemmer-Webber
  2022-08-06 22:38     ` Christine Lemmer-Webber
  0 siblings, 1 reply; 13+ messages in thread
From: Christine Lemmer-Webber @ 2022-07-15 12:08 UTC (permalink / raw)
  To: Tim Van den Langenbergh; +Cc: guile-user, Andrew Whatson, Jakob L. Kreuze

I'm glad there's been such interest.  I've gotten quite a few messages
offline about the idea of "Guile Steel" too, one person has even begun
porting pre-scheme to Guile (Andrew Whatson) and I know Jakob has also
been pondering how to pull things off.

I've made a channel on irc.libera.chat... not sure if there's enough
excitement to do anything, but you can join #guile-steel if you'd like
to talk about this and how it might be pulled off?

We might be doing a call about designing Guile Steel stuff also, and
about PreScheme's design, potentially with some of the people who worked
on PreScheme.  If you'd be interested in attending that, send me a ping.
I'm not sure how big of a group we can accomodate at once but it would
be fun to do a call about this.  We could probably record it at least.

 - Christine



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-07-15 12:08   ` Christine Lemmer-Webber
@ 2022-08-06 22:38     ` Christine Lemmer-Webber
  0 siblings, 0 replies; 13+ messages in thread
From: Christine Lemmer-Webber @ 2022-08-06 22:38 UTC (permalink / raw)
  Cc: Tim Van den Langenbergh, Andrew Whatson, Jakob L. Kreuze, guile-user

Things have happened on the prescheme part, guile-prescheme has been
making good progress thanks to Andrew Whatson's incredible work:
  https://gitlab.com/flatwhatson/guile-prescheme

Wrote about that and some other things... big ol' ramble:
  https://dustycloud.org/blog/guile-steel-smelting-pot/

Christine Lemmer-Webber <cwebber@dustycloud.org> writes:

> I'm glad there's been such interest.  I've gotten quite a few messages
> offline about the idea of "Guile Steel" too, one person has even begun
> porting pre-scheme to Guile (Andrew Whatson) and I know Jakob has also
> been pondering how to pull things off.
>
> I've made a channel on irc.libera.chat... not sure if there's enough
> excitement to do anything, but you can join #guile-steel if you'd like
> to talk about this and how it might be pulled off?
>
> We might be doing a call about designing Guile Steel stuff also, and
> about PreScheme's design, potentially with some of the people who worked
> on PreScheme.  If you'd be interested in attending that, send me a ping.
> I'm not sure how big of a group we can accomodate at once but it would
> be fun to do a call about this.  We could probably record it at least.
>
>  - Christine




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-07-09 15:35 Guile Steel: a proposal for a systems lisp Christine Lemmer-Webber
                   ` (3 preceding siblings ...)
  2022-07-11 13:10 ` Martin Becze
@ 2022-08-07  9:28 ` Damien Mattei
  2022-08-07 12:43   ` Christine Lemmer-Webber
  4 siblings, 1 reply; 13+ messages in thread
From: Damien Mattei @ 2022-08-07  9:28 UTC (permalink / raw)
  To: Christine Lemmer-Webber; +Cc: Guile User

perhaps Bigloo a Scheme that targets C and has many other features can help:
https://www-sop.inria.fr/mimosa/fp/Bigloo/
Damien

On Sat, Jul 9, 2022 at 5:38 PM Christine Lemmer-Webber <
cwebber@dustycloud.org> wrote:

> A little blogpost this morning, not actual software, but software
> desiderata:
>   https://dustycloud.org/blog/guile-steel-proposal/
>
> I'd love to see something like the above happen.  I'd love to help make
> it happen.  So this is more of a call to arms than anything else.
>
> Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
> some interesting things on that compiler tower of ours!
>
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-08-07  9:28 ` Damien Mattei
@ 2022-08-07 12:43   ` Christine Lemmer-Webber
  2022-08-07 14:47     ` Damien Mattei
  0 siblings, 1 reply; 13+ messages in thread
From: Christine Lemmer-Webber @ 2022-08-07 12:43 UTC (permalink / raw)
  To: Damien Mattei; +Cc: Guile User

Bigloo is cool.  I think it falls under the same category of Chicken,
which I address towards the end of:

  https://dustycloud.org/blog/guile-steel-smelting-pot/

"Chicken Scheme compiles to C but doesn't strike me as qualifying for
this post's vague definition because it still has the usual
memory/dynamic typing overheads of Scheme. But go ahead and read
literally everything on more-magic.net anyway because that stuff is
great."

Same feels like it could be said of Bigloo, but if I'm wrong, lmk :)


Damien Mattei <damien.mattei@gmail.com> writes:

> perhaps Bigloo a Scheme that targets C and has many other features can help:
> https://www-sop.inria.fr/mimosa/fp/Bigloo/
> Damien
>
> On Sat, Jul 9, 2022 at 5:38 PM Christine Lemmer-Webber <cwebber@dustycloud.org> wrote:
>
>  A little blogpost this morning, not actual software, but software
>  desiderata:
>    https://dustycloud.org/blog/guile-steel-proposal/
>
>  I'd love to see something like the above happen.  I'd love to help make
>  it happen.  So this is more of a call to arms than anything else.
>
>  Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
>  some interesting things on that compiler tower of ours!




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-08-07 12:43   ` Christine Lemmer-Webber
@ 2022-08-07 14:47     ` Damien Mattei
  2022-08-07 16:02       ` Andrew Gwozdziewycz
  2022-08-07 20:17       ` Christine Lemmer-Webber
  0 siblings, 2 replies; 13+ messages in thread
From: Damien Mattei @ 2022-08-07 14:47 UTC (permalink / raw)
  To: Christine Lemmer-Webber; +Cc: Guile User

On Sun, Aug 7, 2022 at 2:44 PM Christine Lemmer-Webber <
cwebber@dustycloud.org> wrote:

> Bigloo is cool.  I think it falls under the same category of Chicken,
> which I address towards the end of:
>
>   https://dustycloud.org/blog/guile-steel-smelting-pot/
>
> "Chicken Scheme compiles to C but doesn't strike me as qualifying for
> this post's vague definition because it still has the usual
> memory/dynamic typing overheads of Scheme. But go ahead and read
> literally everything on more-magic.net anyway because that stuff is
> great."
>
> Same feels like it could be said of Bigloo, but if I'm wrong, lmk :)
>

perhaps i'm wrong, but Chicken seems to have strict types as options:
http://wiki.call-cc.org/man/5/Types
about Bigloo the best answer would be to ask to author himself but i used
Bigloo a little to produce JVM class files only, not C obj files , and it
can be declared some statically typed variable i think in both C and Java
targets:
see:
https://www-sop.inria.fr/mimosa/fp/Bigloo/manual.html#G82
and mostly:
https://www-sop.inria.fr/mimosa/fp/Bigloo/manual-chapter25.html
Regards,
Damien


>
>
> Damien Mattei <damien.mattei@gmail.com> writes:
>
> > perhaps Bigloo a Scheme that targets C and has many other features can
> help:
> > https://www-sop.inria.fr/mimosa/fp/Bigloo/
> > Damien
> >
> > On Sat, Jul 9, 2022 at 5:38 PM Christine Lemmer-Webber <
> cwebber@dustycloud.org> wrote:
> >
> >  A little blogpost this morning, not actual software, but software
> >  desiderata:
> >    https://dustycloud.org/blog/guile-steel-proposal/
> >
> >  I'd love to see something like the above happen.  I'd love to help make
> >  it happen.  So this is more of a call to arms than anything else.
> >
> >  Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
> >  some interesting things on that compiler tower of ours!
>
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-08-07 14:47     ` Damien Mattei
@ 2022-08-07 16:02       ` Andrew Gwozdziewycz
  2022-08-07 20:17       ` Christine Lemmer-Webber
  1 sibling, 0 replies; 13+ messages in thread
From: Andrew Gwozdziewycz @ 2022-08-07 16:02 UTC (permalink / raw)
  To: Damien Mattei; +Cc: Christine Lemmer-Webber, Guile User



> On Aug 7, 2022, at 07:47, Damien Mattei <damien.mattei@gmail.com> wrote:
> 
> On Sun, Aug 7, 2022 at 2:44 PM Christine Lemmer-Webber <
> cwebber@dustycloud.org> wrote:
> 
>> Bigloo is cool.  I think it falls under the same category of Chicken,
>> which I address towards the end of:
>> 
>>  https://dustycloud.org/blog/guile-steel-smelting-pot/
>> 
>> "Chicken Scheme compiles to C but doesn't strike me as qualifying for
>> this post's vague definition because it still has the usual
>> memory/dynamic typing overheads of Scheme. But go ahead and read
>> literally everything on more-magic.net anyway because that stuff is
>> great."
>> 
>> Same feels like it could be said of Bigloo, but if I'm wrong, lmk :)
>> 
> 
> perhaps i'm wrong, but Chicken seems to have strict types as options:
> http://wiki.call-cc.org/man/5/Types
>> 

The actual thing you want in a pre-scheme is as close to “normal”-C as possible. Pre-scheme’s primitives leave memory management up to you, compile to portable C types, and that’s by design. There’s no call/cc, no garbage collection, minimal support for tail calls; it’s restricted.

So, even if Chicken has strict types for compiled C, it’s still “Cheney on the MTA” garbage collected, and continuation supporting, not the general, as close to the system ABI as possible thing to build on and link against.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-08-07 14:47     ` Damien Mattei
  2022-08-07 16:02       ` Andrew Gwozdziewycz
@ 2022-08-07 20:17       ` Christine Lemmer-Webber
  2022-08-07 21:12         ` Damien Mattei
  1 sibling, 1 reply; 13+ messages in thread
From: Christine Lemmer-Webber @ 2022-08-07 20:17 UTC (permalink / raw)
  To: Damien Mattei; +Cc: Guile User


Damien Mattei <damien.mattei@gmail.com> writes:

> On Sun, Aug 7, 2022 at 2:44 PM Christine Lemmer-Webber <cwebber@dustycloud.org> wrote:
>
>  Bigloo is cool.  I think it falls under the same category of Chicken,
>  which I address towards the end of:
>
>    https://dustycloud.org/blog/guile-steel-smelting-pot/
>
>  "Chicken Scheme compiles to C but doesn't strike me as qualifying for
>  this post's vague definition because it still has the usual
>  memory/dynamic typing overheads of Scheme. But go ahead and read
>  literally everything on more-magic.net anyway because that stuff is
>  great."
>
>  Same feels like it could be said of Bigloo, but if I'm wrong, lmk :)
>
> perhaps i'm wrong, but Chicken seems to have strict types as options:
> http://wiki.call-cc.org/man/5/Types

Interesting.  Any examples of it in action, personal use experience,
etc?  I wonder how it handles the famous challenges of keeping that
safety between both statically typed and dynamically typed parts, which
turned out to be extremely expensive, far more than dynamic scoping,
in Racket: https://www2.ccs.neu.edu/racket/pubs/popl16-tfgnvf.pdf
(though there is work being done to make it better, hopefully...
it may have progressed a lot since I last looked, probably has.)

> about Bigloo the best answer would be to ask to author himself but i
> used Bigloo a little to produce JVM class files only, not C obj files,
> and it can be declared some statically typed variable i think in both
> C and Java targets:
> see: 
> https://www-sop.inria.fr/mimosa/fp/Bigloo/manual.html#G82
> and mostly:
> https://www-sop.inria.fr/mimosa/fp/Bigloo/manual-chapter25.html
> Regards,
> Damien

Hm... "Warning: All type annotations are ignored by the interpreter."

>  
>  Damien Mattei <damien.mattei@gmail.com> writes:
>
>  > perhaps Bigloo a Scheme that targets C and has many other features can help:
>  > https://www-sop.inria.fr/mimosa/fp/Bigloo/
>  > Damien
>  >
>  > On Sat, Jul 9, 2022 at 5:38 PM Christine Lemmer-Webber <cwebber@dustycloud.org> wrote:
>  >
>  >  A little blogpost this morning, not actual software, but software
>  >  desiderata:
>  >    https://dustycloud.org/blog/guile-steel-proposal/
>  >
>  >  I'd love to see something like the above happen.  I'd love to help make
>  >  it happen.  So this is more of a call to arms than anything else.
>  >
>  >  Can we have a "systems lisp"?  Can we do better than Rust?  Let's put
>  >  some interesting things on that compiler tower of ours!




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Guile Steel: a proposal for a systems lisp
  2022-08-07 20:17       ` Christine Lemmer-Webber
@ 2022-08-07 21:12         ` Damien Mattei
  0 siblings, 0 replies; 13+ messages in thread
From: Damien Mattei @ 2022-08-07 21:12 UTC (permalink / raw)
  To: Christine Lemmer-Webber; +Cc: Guile User

On Sun, Aug 7, 2022 at 10:21 PM Christine Lemmer-Webber <
cwebber@dustycloud.org> wrote:

>
> Damien Mattei <damien.mattei@gmail.com> writes:
>
> > On Sun, Aug 7, 2022 at 2:44 PM Christine Lemmer-Webber <
> cwebber@dustycloud.org> wrote:
> >
> >  Bigloo is cool.  I think it falls under the same category of Chicken,
>
>
> > perhaps i'm wrong, but Chicken seems to have strict types as options:
> > http://wiki.call-cc.org/man/5/Types
>
> Interesting.  Any examples of it in action, personal use experience,
> etc?  I wonder how it handles the famous challenges of keeping that
> safety between both statically typed and dynamically typed parts, which
> turned out to be extremely expensive, far more than dynamic scoping,
> in Racket: https://www2.ccs.neu.edu/racket/pubs/popl16-tfgnvf.pdf
> (though there is work being done to make it better, hopefully...
> it may have progressed a lot since I last looked, probably has.)
>

i'm sorry but i almost never used Chicken...

>
> > about Bigloo the best answer would be to ask to author himself but i
> > used Bigloo a little to produce JVM class files only, not C obj files,
> > and it can be declared some statically typed variable i think in both
> > C and Java targets:
> > see:
> > https://www-sop.inria.fr/mimosa/fp/Bigloo/manual.html#G82
> > and mostly:
> > https://www-sop.inria.fr/mimosa/fp/Bigloo/manual-chapter25.html
> > Regards,
> > Damien
>
> Hm... "Warning: All type annotations are ignored by the interpreter."
>
> i suppose in the interpreter, code being not compiled, Bigloo act as a
> normal Scheme REPL and typing is ignored, but in compiled modules it works
> well.
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2022-08-07 21:12 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-09 15:35 Guile Steel: a proposal for a systems lisp Christine Lemmer-Webber
2022-07-10  9:46 ` Blake Shaw
2022-07-10 12:14 ` Zelphir Kaltstahl
2022-07-11 11:13 ` Tim Van den Langenbergh
2022-07-15 12:08   ` Christine Lemmer-Webber
2022-08-06 22:38     ` Christine Lemmer-Webber
2022-07-11 13:10 ` Martin Becze
2022-08-07  9:28 ` Damien Mattei
2022-08-07 12:43   ` Christine Lemmer-Webber
2022-08-07 14:47     ` Damien Mattei
2022-08-07 16:02       ` Andrew Gwozdziewycz
2022-08-07 20:17       ` Christine Lemmer-Webber
2022-08-07 21:12         ` Damien Mattei

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).