Re: What the best way to support hot reloading in Chicken?

Srayan Jana via Chicken-users <[email protected]>
Newsgroups gmane.lisp.scheme.chicken
Message-ID <PH8PR14MB6996B0C97CA066400FBF2A89E0A52@PH8PR14MB6996.namprd14.prod.outlook.com>
I don’t mind this was interesting to read about lol.

This sounds dumb, but I wonder if you could do on the fly compilation turning csi code into compiled c files with some sort of runtime hook to clang so you could get near native performance hot reloading ….
But that sounds like a terrible idea lowkey and horribly complicated

Get Outlook for iOS<https://aka.ms/o0ukef>
________________________________
From: Kristian Lein-Mathisen <[email protected]>
Sent: Wednesday, 19 August 2026 11:00:21
To: Mario Domenech Goulart <[email protected]>
Cc: Kristian Lein-Mathisen via Chicken-users <[email protected]>; Srayan Jana <[email protected]>
Subject: Re: What the best way to support hot reloading in Chicken?


All the amazing tooling you've built, Mario! I can see these are the dependencies:

- lsp-server
- schematra: https://github.com/schematra/schematra/issues/11

I'm surprised to see it being used as a hard dependency. Schematra doesn't seem to be using it, and I hope there is a way to take it out of lsp-server too perhaps.

I really think the nrepl->tcprepl is a good idea as I suspect a lot confusion comes from Clojures nrepl feature/protocol and people think it's the same.

I will see if I can add a note in nrepl's documentation regarding its intended use.

Sorry for hijacking your thread, Srayan,
and thanks for your remarks Marios
K.


and the rest are transitive dependencies.

On Wed, Aug 12, 2026, 22:25 Mario Domenech Goulart <[email protected]<mailto:[email protected]>> wrote:
Hi Kristian,

On Wed, 12 Aug 2026 20:11:08 +0200 Kristian Lein-Mathisen <[email protected]<mailto:[email protected]>> wrote:

> Thanks for pointing that out. So renaming eggs is non-trivial, which is fair. But I'd be surprised, honestly, if any eggs
> actually depend on nrepl - it's just a debugging/development tool, hopefully useful in the process of writing an egg, but
> not more.

Actually at least 5 eggs depend on nrepl according to
http://salmonella-linux-x86-64.call-cc.org/chicken-5/gcc/linux/x86-64/2026/08/12/salmonella-report/ranks/rev-deps.html

> I'll happily keep two separate branches, one for C5 and one for C6. I'll look into this when I get around to porting my
> eggs.

Not sure if you are talking about two separate branches for nrepl or
about your eggs that depend on nrepl.  If the former, then having two
branches for nrepl egg won't solve the problem.  The issue affects
_users_ of nrepl.

For example, consider an egg which depends on nrepl and works unmodified
on both C5 and C6 (not a very unusual case -- often C5 eggs require very
little modifications, if any, to work with C6) .  If you rename nrepl to
tcprepl, the egg which depend on it will need two .egg files: the C5 one
to specify the dependency on nprepl; and the C6 one to specify the
dependency on tcprepl.  chicken-install will only look for
<egg-name>.egg, so the user of your egg will have to branch.

All the best.
Mario
--
https://parenteses.org/mario
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.