freenode/#sicl - IRC Chatlog
Search
15:28:09
beach
Oh, well. I don't have time to fix that today. I guess I had few enough changes that I can just clone a fresh repository from GitHub.
15:30:14
alandipert
hi all, i'm working on my own compiler and AST, and looking for inspiration around AST structure and transformation techniques. is there a good place to start looking for things like that in sicl? or perhaps a paper/post on the subject you'd recommend?
15:36:10
beach
There is basically an AST class for every special operator, plus a few for some primitive operations.
15:40:17
alandipert
beyond that i think there is an opportunity for an implementation focused on compact/efficient deliverables, for the JS/browser platform
15:42:09
alandipert
so, mostly my goal as a compiler writer is to produce JS that google closure compiler and other JS minification tools will know what to do with
15:42:47
alandipert
in my wildest dreams, i'd be able to use the system professionally for my workaday JS stuff
15:43:28
beach
I need to vanish in order to fix food for my (admittedly small) family, but I'll be happy to answer more questions later on. I might be back briefly later today, otherwise, I'll be back tomorrow morning (UTC+2). Or, Bike might be able to help you out in my absence.
17:03:49
beach
alandipert: The Cleavir compiler framework is not tied to a particular Common Lisp implementation. So if you want to take a shortcut, you can use the first few passes of Cleavir, rather than writing your own. Of course, if you are doing all this for kicks, then you probably don't want to use anything existing.
17:05:06
beach
alandipert: We also have several extracted libraries that we use these days, like Concrete Syntax Tree for source tracking, Eclector for reading code and Common Lisp data, Trucler for lexical environments.
17:06:51
alandipert
beach thanks, i'll definitely refer to cleavir, but i'm starting with JS and not CL
17:10:31
beach
Lately, I was thinking that for a system that is written in something other than Common Lisp, one way to do the reader would be to write one that can only read the subset required to read normal-looking code, and then to use Eclector for the rest.
17:12:54
alandipert
in JS you instantiate an instance of it and provide a callback to invoke with read objects
17:13:54
alandipert
i decided to do that so my client tools for sending code in could be as simple as possible. the tentative plan is to send it source from disk via chrome's remote debugger protocol