GSoC compiler work, SICL

Charles Zhang <[email protected]> Wed, 21 Mar 2018 12:39:08 -0700
Newsgroups gmane.lisp.clisp.devel
Message-ID <CAB=SSSn6opyQCANq060eSrc7kx=py6GpkSBy8hytJNmRTKuQTQ@mail.gmail.com>
Hi all,

As GSoC applications have opened and the deadline for submissions is
approaching, I'd like to reach out again to the clisp developers.

It seems that the overall evaluation of the feasibility of adding
native file compilation or ahead of time compilation to machine code
is that it is way too ambitious. On the other hand, various
self-contained bugs such as improving local inlining would not be
enough to form a project on its own. However, my main interest is
still compiler work, having had experience writing flow graph
visualizers for sbcl ir1 and other compiler projects.

A good compromise seems to be adding pieces of SICL to clisp, with
Cleavir being the most useful. I'm thinking of tiering the work into
deliverables, each with their own benefits to the CLISP project.

* Probably the easiest piece to add are the various ANSI CL modules,
such as sequence functions, reader, and loop, among others. Of course,
this isn't extremely useful given that CLISP already conforms to ANSI
CL, but there are some novel techniques that Robert Strandh has
introduced that make it worthwhile to look into replacing some of
clisp's implementations.

* The most useful addition would be to add some form of compiler IR
from SICL. Robert Strandh has told me that a simple Cleavir-based
compiler should not be 'too much work'. My understanding is that clisp
does not do a lot of lisp level optimization, especially type informed
ones, so that adding the Cleavir compiler would be a huge win as it is
being used to do all the heavy lisp side optimizations in Clasp. The
benefits are:
1. Having a compiler written in lisp for easier debugging, along with
the general advantages of lisp.
2. Type inferencing
3. Loop optimizations
4. First-class environments
5. Other optimizations
SICL is written in such a way where pieces can be selected in a
modular fashion, so that, for example, once the basic structures are
in place, pieces can be incrementally added to CLISP. For the purposes
of GSoC, this means that there would be a guaranteed deliverable, with
the possibility of some of the above extra pieces if time permits.

I have been able to get in touch with the SICL people, with more
discussoin forthcoming. If there are also willing clisp developers
available to mentor the clisp side of this project, I think this will
be an interesting project that I will draft a proposal along the lines
above. Any feedback much appreciated.

Thanks,
Charles

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel