Archive for July, 2005


Thursday, July 28th, 2005

In between coats of paint, I’ve managed to get a bit of concurrent editor-elaborator communication going, without possessing either an editor or an elaborator. The fake elaborator I wrote just likes everything and invents nothing, which should serve to let folk fiddle with editing technology. I’m just a-thinking that we should actually figure out how to elaborate module imports (of pre-elaborated objects) before we do anything cleverer. But anyhow, check it out!

Phase Distinctions In The Compilation Of Epigram

Tuesday, July 19th, 2005

James and I have submitted a paper to POPL ‘06, titled Phase Distinctions In The Compilation Of Epigram, all about how we can use an erasure semantics through the identification of compile-time only values.
I’ve also added the sources to CVS. Enjoy…

Collaborative Editing

Monday, July 18th, 2005

Been doing a bit of thinking about how to lash the editor and the elaborator together without being too specific about how it’s actually got to work. I reckon the elaborator provides something like

subscribe :: (Response → IO ()) → IO (Request → IO ())

where Response and Request are part of the interface—types of signals from and to the elaborator.

Editors thus explain how they listen and are taught in return how to ask. There is no other way to get a straight answer from the elaborator. Stuff happens, as and when. An ‘editor’ might serve merely to write Responses to stdio and read Requests from stdin.

There is also no reason why multiple editors should not simultaneously subscribe (corresponding either to having multiple users, or to visiting multiple files). The elaborator should broadcast updates to all subscribers, but should respond privately to requests for information. Update responses will carry the name of what’s being updated, so the listener which an editor sends may perfectly well filter out uninteresting responses server-side.

Carry on like this and we’ll be doing eScience!

Scoping, no really

Thursday, July 14th, 2005

Peter and I started writing the Scoper earlier. See Scoper.lhs. In particular, check out the definition of Concrete, which is about as simple as it’s likely to get. We’ve suspended any funny ideas about imperative data structures for concrete syntax, but we are using imperative refs for ‘acts of naming’, allowing change of the associated string.

Given some feverish after-dinner hacking with Wouter, we now have scoping for a good chunk of CTerm, including all of CPat, and it seems to be doing the right thing. Our mechanism for accumulating ‘shadows’ is in place, but we haven’t yet implemented anything which might discharge a shadow, so it’s hard to see the point just now.


Meeting, 12-07-05

Tuesday, July 12th, 2005

The Epigram meeting today resulted in quite a few action points:

  • Thorsten should write something for the e-pig website. Conor should then rewrite it.
  • Wouter should incorporate the feedback on the library
  • Peter has had his types paper accepted! He will work on putting some well-documented examples on the website.
  • Conor has some photographs that might be suitable for the e-pig website. He had some productive chats with Edwin about lightning and Term.lhs. Incidentally, his paper has also been accepted. He’s been hacking on the Parser and PrettyPrinter in Scotland.
  • James is working to reach the TFP deadline and has been playing around with normalization by evaluation.
  • Joel has handed in his thesis. He now has time to look at some examples. Thorsten suggests having a look at Tarmo’s compiler and implementing it in Epigram.
  • Finally, we should maybe organise a Hack Fest to get some work started towards a command-line interface and Epigram 2 development in general.

Next week we should discuss a selection of examples, which Peter can then beautify for the website.

Underlying Type Theory

Monday, July 11th, 2005

It’s not entirely sustainable to claim that Epigram’s underlying theory is exactly Luo’s UTT, what with funny η-rules popping out of the woodwork. Perhaps we need a new name. Being naturally hostile to acronyms, but enjoying suggestive combinations of sounds, I propose ‘Grut’.


Monday, July 11th, 2005

I just put the sources for the tutorial under cvs (papers/tutorial) so we can modify it, and so that we can raid it easily for spare parts. It might be a good move to take this as the master copy for the website version of the thing.

More Epilib

Friday, July 8th, 2005

I’ve been doing a bit more work on the Epigram libraries. Check out two new library snapshots:

It’s starting to look as messy as a proper library.

Folding space

Wednesday, July 6th, 2005

Sometime ago there was a thought that folding long Blog entries to keep the front page compact might be a good idea. I have just noticed that we already had this function, simply press the ‘more’ button above the pane where you create posts and BINGO.

I have broken the longer existing posts up already

You can also create multiple page entries, the later pages appear only in the post view, click the title of this post to see an example.