Re: Simple Instructions/packages for Installing, SBCL/Emacs/Slime ???

"Scott E. Fahlman" <[email protected]> Wed, 23 Apr 2025 20:58:20 -0400
Newsgroups gmane.lisp.steel-bank.general
Message-ID <CAMUh8f7cGE1EDhDHs1WYP=KCeJ4EXsOq+=Zo9Tamh9DLCz29mg@mail.gmail.com>
Hi Robert,

I've never heard of Roswell.  I'll poke around a bit and see what it can do.

For the short term, what I personally am looking for is just a replacement
for Portacle, which was an easy-to-install package that fired up a Gnu
Emacs, compatible versions of slime and the latest SBCL for MacOS, plus a
few libraries loaded via Quicklisp.  I was able to just hand this Portacle
package to my students and collaborators, they could be on the air in a few
minutes.  And then they could easily load and play with Scone.

You could carry the whole Portacle package on a memory stick and just use
it from there, or install it.  And then you just load the Scone fasl files
and knowledge-base files, and you're running.  But, sadly, the guy who was
maintaining Portacle has apparently lost interest.  :-(

Prior to the appearance of Portacle, for every new version of SBCL and
other components, I had to cobble together the Emacs/SBCL environment from
assorted libraries. it always took me at least a few days to get a new
installation in place and tested.  There were always version
mismatches/incompatibilities with slime, and so on.  So it was just painful
and time-consuming to upgrade to new versions of SBCL (often prodded by new
hardware or MacOS releases).

In building up these environments, I would try to keep careful records of
exactly what I did in the build, but that was hard since there was a fair
amount of trial-and-error and backtracking.  Sometimes the students could
just follow the resulting script and it would work for them; sometimes not.

Scone doesn't really need any exotic system calls.  The current
implementation doesn't use multi-threading, though that is a goal for the
future.  The Scone reasoning algorithm has a LOT of opportunities for
multi-threading and memory optimization, but that's a task for some future
student or programmer who really enjoys that sort of tweaking -- I'm trying
to focus on the AI parts.

In some of our past projects at CMU, we had a Scone/SBCL module running as
a server proecess in a larger multi-process system, written in C++ or Java
or whatever was popular that year.  There wasn't very intense traffic
between the two parts, so we could just put the Scone/SBCL stuff in its own
process and talk to the other parts via text pipes.  Ugly, but it worked
well.

So if I can just get back to that Portacle level of capability and
convenience with the latest SBCL, and only on MacOS, that would solve my
immediate problems.  I do think there would be demand for Windows and
probably Linux versions later.

Cheers,
Scott


On Wed, Apr 23, 2025 at 5:57 PM Robert Goldman <[email protected]> wrote:

> Oh, yes, if you want to have your system, for example, invoke other
> programs, instead of just running a self-contained lisp program, then it
> gets much more complicated, very quickly.
>
> Is there any chance that roswell will do what you want? Before I used
> Docker, I used it to do some of my CI. But then at least for a while it was
> unmaintained, and I gave up. https://github.com/roswell/roswell
>
> Looking just now, I see that it has commits only 3 months ago, so it's not
> abandoned. On the other hand, it failed one of its last tests. Wonder if
> anyone's noticed and is looking to fix that. Also, the test incorporates a
> pretty old version of SBCL. Are they updating?
>
> On 23 Apr 2025, at 16:46, Scott E. Fahlman wrote:
>
> Sounds like an interesting research project to make this encapsulated
> system work smoothly with the facilities outside the VM.  Especially if you
> want to someday look at multithreading and things like that.  Sadly, not
> something I am likely to have time for.
>
> Thanks again,
> Scott
>
>
>
> On Wed, Apr 23, 2025 at 5:25 PM Robert Goldman <[email protected]> wrote:
>
>> It actually would not need updates for host operating system changes,
>> since it would be running a virtual machine. It would only need updates for
>> substantial changes to SLIME, Emacs, or SBCL. And, of course, that's
>> "substantial changes that we care about," not just any substantial changes.
>> Updates to Emacs, for example, could be ignored for years (basically until
>> you hit incompatible byte codes), and SBCL changes ignored until there's
>> some critical bug fix.
>>
>> The biggest issue, I believe, would be integrating the host machine
>> (where the source code lives) and the virtual machine. As I said, mounting
>> the lisp code into the VM would be straightforward and could be managed by
>> simply starting lisp with a script.
>>
>> The editor is more of a nuisance: either you have to have the editor run
>> in the container and display onto the host, or you have to have the editor
>> run on the host. The latter is easy to do, but requires the user to install
>> the editor, which is what you are trying to avoid.
>>
>>
>> On 23 Apr 2025, at 15:53, Scott E. Fahlman wrote:
>>
>> Hi Robert,
>>
>> Thanks.  This all-inclusive image might be the lowest-hassle delivery
>> vehicle for end users.  But it sounds like it would require a lot of work
>> to set up, and the result would be a brittle core image that has to be
>> rebuilt by someone every time there's an update in any component or in the
>> environment (a new MacOS version, for example) changes.  And it would be
>> inflexible, requiring a complete new build if someone needs a different set
>> of components or settings.  So that could be great if someone wants to do
>> that work and commit to maintaining that.  But finding that volunteer might
>> not be easy.
>>
>> Cheers,
>> Scott
>>
>>
>> On Wed, Apr 23, 2025 at 4:37 PM Robert Goldman <[email protected]>
>> wrote:
>>
>>> This might be the sort of thing that is best handled by making a docker
>>> image.
>>>
>>> One could make a docker image for SBCL that works on either AMD64 or
>>> ARM64, covering Windows and Mac. I have done this myself based on the
>>> images that used to be provided by the CL Foundation. See the images
>>> rpgoldman/sbcl:latest (I use these for testing CL systems).
>>>
>>> One could further build from this initial docker image a new one that
>>> contains also Emacs with SLIME (or SLY) pre-installed.
>>>
>>> That would be easier in some ways. It would still have a couple of
>>> problems:
>>>
>>>    1.
>>>
>>>    It would probably be a nuisance to run Emacs inside the container.
>>>    From outside the container, one could run Emacs with SLIME using the SBCL
>>>    inside the kernel. It might take some work to get this to work properly,
>>>    and then the user would still have to install emacs + slime.
>>>    2.
>>>
>>>    One would have to run the container with the user's directory of
>>>    Lisp code mounted into the docker. That could be automated by a shell
>>>    script (bat) file that would start up the container (and start a swank or
>>>    slynk server).
>>>    3.
>>>
>>>    Another subtlety: one would probably want to also mount the
>>>    quicklisp directory into the container, too, so that it wouldn't have to be
>>>    regenerated every time one started up the image.
>>>
>>> There would still be a fair amount of work getting this to work.
>>>
>>
>>

_______________________________________________
Sbcl-help mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sbcl-help