Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
375 stars 19 forks source link

get MAKEINIT to run again (so we can build system from sources) #36

Closed masinter closed 3 years ago

masinter commented 4 years ago

The Interlisp tool set helped with some tools for allowing you to build systems from lisp sources, but it didn't enforce it, and we've seen instances #31 where it isn't true.

I imagine in many cases it was set up ok, but in the end we have to check it out file by file.

@rmkaplan has some cases where compiled and source files don't match.

think you have to weigh the risk between -- the .dfasl is from the wrong version of the file, and it's broken -- the dfasl is fine but recompiling from the right source will make things worse, because

I don't think those things can be resolved quickly. We have sysouts that work and are pretty stable. we have compiled files that work. let's put out a release of what we have and warn people and ask for help testing. I'd like to get to the point where a full sysout can be rebuilt from sources (compilling every file from sources automatically (except having to have a 'starter' sysout to make an init to compile the compiler) but we're not there.

masinter commented 4 years ago

idea: port MAKEINIT to Common Lisp. Then you'd just need a valid common lisp to remake the system from sources

rmkaplan commented 4 years ago

I don’t think the problem is not having an environment to make the init, the problem is that the code we have is making an init that isn’t quite right.

On Sep 30, 2020, at 1:52 PM, Larry Masinter notifications@github.com wrote:

idea: port MAKEINIT to Common Lisp. Then you'd just need a valid common lisp to remake the system from sources

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/36#issuecomment-701638754, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJLBSO2MQP4JUQM33NLSIOLA3ANCNFSM4RT5TU6Q.

masinter commented 4 years ago

what is the process for making an init? I only vaguely remember.

Kirtai commented 4 years ago

idea: port MAKEINIT to Common Lisp. Then you'd just need a valid common lisp to remake the system from sources

This would also make Medley bootstrappable which would be a nice feature in itself.

rmkaplan commented 4 years ago

I think porting MAKEINIT would be a very big deal.

As long as we have a running Medley sysout, we can use it to make makeinits for new systems (if we can figure out why what we have now or the procedure that we tried when we last looked at this doesn’t produce a runnable sysout).

In principle, Medley bootstraps itself.

On Oct 12, 2020, at 5:10 PM, Kirtai notifications@github.com wrote:

idea: port MAKEINIT to Common Lisp. Then you'd just need a valid common lisp to remake the system from sources

This would also make Medley bootstrappable http://bootstrappable.org/ which would be a nice feature in itself.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/36#issuecomment-707408183, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJIV2ITVSJ5ZNHZGN73SKOLINANCNFSM4RT5TU6Q.

Kirtai commented 4 years ago

It would also help separate the runtime tooling from the build time tooling. IIRC, I believe this was part of the motivation to make SBCL buildable from other lisp implementations.

masinter commented 4 years ago

Run time is build time in Interlisp, More or less on purpose. If you run into a program error, you can stop and fix it and keep going. Separating them isn't a project goal.

I changed the issue title to reflect the original intent

Kirtai commented 4 years ago

My apologies for being so unclear. I was referring to preventing implementation details of the build system leaking into the target system. Iirc cmucl had problems with that which SBCL fixed.

I definitely wasn't suggesting splitting run time from build time. That the are the same is one of the things that appeals to me about lisp :)

masinter commented 4 years ago

What I'm learning is that my github issues i've raised aren't good enough. It was very Interlisp-like to write enough that I could write more when I got to it. Maybe a 'needs explanation' tag for those issues here.

masinter commented 3 years ago

@rmkaplan wrote

The procedure that I put together a few years ago (which led to the init.sysout that wouldn’t run) is encapsulated in current/MAKEINITGREET. It’s suppose to do its thing if you provide this as a greet file (although it may have to be updated if we have moved things around).

masinter commented 3 years ago

The code for making an INIT sysout is some of the worst Lisp code I've ever seen, especially in its use of free variables. Never mind that I think I was responsible for the worst atrocities 30 years ago. There are an abundance of hacks. I've made an INIT.DLINIT by faking the Dandelion microcode that was inserted into the beginning of the file. working in the makeinit2 branch. I don't expect it to work, but I need a maiko INIT build to make more progress.

masinter commented 3 years ago

There is a lot of "clean up" work to do -- to simplify the code and remove unnecessary complexity, but we now have a path to making sysouts from scratch.

Anzus commented 3 years ago

Nice work, Larry!

On Mar 1, 2021, at 7:55 PM, Larry Masinter notifications@github.com wrote:

There is a lot of "clean up" work to do -- to simplify the code and remove unnecessary complexity, but we now have a path to making sysouts from scratch.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/36#issuecomment-788514409, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACBP2DDVEKPIQEAUUDXATTTTBRAP7ANCNFSM4RT5TU6Q.