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