8 ms·
History of T
- 616c 13y agoSo much of this sounds interesting, so what happened to T? Is there any code for the T3 variant? I presume you need T1, T2, and T3 to bootstrap the former, but I would love to see some of this stuff!
- melling 13y agoWe should point out that Emacs Lisp now has lexical scope. It took about 30 years, but it's here. http://stackoverflow.com/questions/7654848/what-are-the-new-rules-for-variable-scoping-in-emacs-24 http://stackoverflow.com/questions/7654848/what-are-the-new-...
- Double_Cast 13y agoI assumed I might find this article in [Essays], but I couldn't find it except on the 8th page of [Index]. Does this article really only exist in the index?
- EdwardCoffin 13y agoIt's on the page Lisp Articles: http://paulgraham.com/lispart.html http://paulgraham.com/lispart.html which is linked to from the page Lisp Links: http://paulgraham.com/lisplinks.html http://paulgraham.com/lisplinks.html which is linked to from the top level page Lisp http://paulgraham.com/lisp.html http://paulgraham.com/lisp.html
- xradionut 13y ago"You could also program the -10 in a beautiful, roughly-C-level language from CMU, called Bliss. I see C and I remember Bliss, and I could weep." I see C and I wonder if that's the best we can do for a systems programming language. Maybe C is just a local optimum that we have just invested too much manpower into to switch to anything else?
- Todd 13y agoI wasn't aware of BLISS: http://en.wikipedia.org/wiki/BLISS http://en.wikipedia.org/wiki/BLISS It does seem to have some interesting features for a systems level language--for example, expressions over statements and references over pointers.
- nostrademons 13y ago"Worse is Better" has a plausible explanation why C won out: http://www.jwz.org/doc/worse-is-better.html http://www.jwz.org/doc/worse-is-better.html Curiously, both Google and Apple follow the "MIT/Stanford" school of design (though Google has lately been trending toward the "New Jersey" school). And it's generally been working out for them. Microsoft was always the New Jersey school, and it isn't exactly working for them now, although it did for many years.
- acchow 13y agoThings not working out for MS has little to do with engineering and a lot to do with direction and product.
- nostrademons 13y agoThese are also product philosophies, relating to how much you are willing to make life difficult for yourself to keep the interface to your product simple. One thing my VP (at Google) said has stuck with me: "It's okay if the code is gross as long as it's hidden behind an API. If the problem's complex, that complexity should be captured in the code rather than forcing the user to deal with it."
- fohstick 13y agoIts not related to the discussion, but where can I get the rest of those articles? The links to next/previous appear to be broken.
- nostrademons 13y ago
- papaf 13y agoDoes anyone have any references for the Clark GC? I'm writing a toy lisp compiler and would find it interesting to read about it.
- BruceM 13y agoThis isn't the Clark GC, but if you're writing a lisp compiler and want to just use a GC (and not Boehm), give http://www.ravenbrook.com/project/mps http://www.ravenbrook.com/project/mps a look. It is pretty nice.
- EdwardCoffin 13y agoI think it might be An empirical study of list structure in Lisp [1], by Douglas W. Clark and C. Cordell Green. I haven't read it because it is behind the ACM paywall. I'm pretty sure that the Clark he mentions must be Douglas W. Clark, who has at least five citations in the Jones and Lins Garbage Collection book (1st ed), and is the only Clark listed (under his own name, at least) in the bibliography (of the 1st ed). If you are looking for a simple GC algorithm that might be suitable for use in a toy lisp language, you might check out Simple Generational Garbage Collection and Fast Allocation by Andrew W. Appel [2]. I think it has many of the same characteristics and is also pretty simple. For a while I had thought that this must be the one that Shivers meant, and that he just misremembered the author. Edit: The reason I think it is this particular paper by Clark and Green is due to a discussion of it on page 140 (section 6.8) of Jones and Lins (this page is visible on Amazon in search inside): > Experiments with a recursive copying collector by Douglas Clark and Cordell Green produced a cdr-cell linearisation -- the property that a cell that points to another will be next to each other in Tospace after collection -- of over 98 percent [Clark and Green, 1977]. The incidence of off-page pointers was also low (between 2.7 and 8.4 percent). [1] http://dl.acm.org/citation.cfm?id=359427 http://dl.acm.org/citation.cfm?id=359427 [2] http://www.cs.ucsb.edu/~ckrintz/racelab/gc/papers/appel88simplegen.pdf http://www.cs.ucsb.edu/~ckrintz/racelab/gc/papers/appel88sim...
- juliangamble 13y ago>There was, for example, a snooty French paper that sort of dismissed Lamping as an "autodidact," before proceeding to build (with, let me be careful to note, proper credit given to John) on his work Is there a reference to this paper available?
- cwzwarich 13y agoI think it might be this paper: http://users.soe.ucsc.edu/~abadi/Papers/proofs.ps http://users.soe.ucsc.edu/~abadi/Papers/proofs.ps The reference to Lamping being 'autodidactical' is at the top of the second column.
- juliangamble 13y ago>"Girard is a logician and Lamping is an autodidactic engineer" Ouch! I can't believe that went to print.
- dschiptsov 13y agoThe irony is that no one wishes to port it to "modern" AArch64 and x86_64 with, due to proper modular design and GC and compiler written in high-level language (same as MIT scheme) it at least seems like a manageable effort. The goal is that it could be comparable with Haskell in code quality. Compact and clean native Scheme compiler (such as Gambit) could be a very nice tool. The problem, as usual, is funding and ignorance of the investors who know no other words but Java.)
- freefrancisco 13y agoAnd here is the manual for the T language http://web.archive.org/web/20060925104715/http://mumble.net/~campbell/t/tman.pdf http://web.archive.org/web/20060925104715/http://mumble.net/...
- reirob 13y agoFascinating read. "[..] I had never been to California before, so I was discovering San Francisco, my favorite city in the US and second-favorite city in the world. [..]" Out of curiosity does somebody know what is PG's first-favorite city in the world? "[..] It was also a massive validation of a thesis Steele had argued for his Master's, which was that CPS was a great intermediate representation for a compiler [..]" What does CPS mean? Further down in the article "[..] Richard Kelsey took his front end, which was a very aggressive CPS-based optimiser, and extended it all the way down to the ground to produce a complete, second compiler, which he called "TC" for the "Transformational Compiler." His approach was simply to keep transforming the program from one simple, CPS, lambda language to an even simpler one, until the language was so simple it only had 16 variables... r1 through r15, at which time you could just kill the lambdas and call it assembler. [..]" So I guess CPS means Continuation-Passing-Style? But then I wonder what PG means by "CPS was a great intermediate representation for a compiler"? Even further down we can see PG's own opinion: "[..] So the lineage of the CPS-as-compiler-IR thesis goes from Steele's Rabbit compiler through T's Orbit to SML/NJ. At which point Sabry & Felleisen at Rice published a series of very heavy-duty papers dumping on CPS as a representation and proposing an alternate called A-Normal Form. ANF has been the fashionable representation for about ten years now; CPS is out of favor. This thread then sort of jumps tracks over to the CMU ML community, where it picks up the important typed-intermediate-language track and heads to Cornell, and Yale, but I'm not going to follow that now. However, just to tell you where I am on this issue, I think the whole movement from CPS to ANF is a bad idea (though Sabry & Felleisen's technical observations and math are as rock solid as one would expect from people of their caliber). [..] Fascinating stuff, though I do not what IRs are used by the modern compilers like LLVM, GHC, Java, .Net? "[..] Jim Philbin, like Kelsey, also went to NEC, where he built an operating system tuned for functional programming languages, STING (or perhaps it was spelled "STNG" -- in any event it was pronounced "sting"). He built it in T, of course, and one could see that it had its roots in his work on T3. (Implementing the runtime for a functional language, in some sense, requires you to implement a little virtual OS on top of the real, underlying OS.) [..]" - Does anybody know what happened to this OS? The only link that I found is http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.11.4692 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.11.4... The summary of this article then goes to say "[..] Sting is currently a prototype implemented on an eight processor Silicon Graphics PowerSeries 480 running Unix. The next step is to integrate Sting into the micro-kernel of an operating system such as Mac [..]" - Would be interesting if this fruited in some new works for VMs for functional languages.
- emmelaich 13y agoBTW, everyone should read Olin Shivers' dissertation acknowledgements: http://www.scsh.net/docu/html/man.html
- deleted 13y ago[deleted]
- _delirium 13y agoOriginal source: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg00650.html http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m...
- spot 13y agoOlin mentions the Markup language, which I extended so that I could write my thesis and generate both HTML and Latex. Here's the resulting web version: http://draves.org/cmu-research/diss/main.html http://draves.org/cmu-research/diss/main.html All the diagrams and charts were made by calling out to external programs like dot and gplot, with the source all held in one big text file, edited with emacs of course. that was finished in 1997.
- spot 13y agoheh i found it's still available for download with samples: http://draves.org/cmu-research/markup/markup.html http://draves.org/cmu-research/markup/markup.html bonus points for getting it to run.
- graemian 13y ago@pg: Your blog would be MUCH more readable if you made this change: <font size="4" face="verdana" style="line-height: 2em"> Right now, a great sadness comes over me when I think about reading one of your articles :-)
- avdd_ 13y agowhy does this not have a date?
- rplacd 13y agoIt took me a while to figure out Shivers wasn't talking about the conventional diss - the narrative lives and dies on the technical one-ups.