Powered by SourceForge   Home | About | Partners | Contact Us

XLR semantics

Contributions to XLR semantics

Updated the XLR reference document

The XLR reference document has been updated. I'm still actively working on it. This is a description of where we want to go, not where we currently are.

Main changes already done in the document (but not implemented yet):

  • Definitions and description of the execution contexts
  • Description of the type system

Parts of the documentation still under construction:

  • Description of the library
  • Implementation details and description

Parts of the design still largely in flux:

  • Error handling
  • Code generation strategies

Please review comment!

XLR Language Reference Draft

Attached is the current draft of the XLR language reference. This is work in progress.

A major update of this document has been posted here for review in January, 2012, and should be updated on a regular basis. It describes not the state of XLR as it is currently implemented, but where we are trying to go.

Here are some of the major changes in this draft:

  • The "context", which is currently a C++ class (two, actually, "Context" for -O0 and -O3, and "Symbols" for -O1) referencing a few other classes (notably "Rewrite"), is now defined entirely in terms of XLR nodes.

Refactoring the XLR compiler

I am currently working on a rather serious refactoring of the XLR compiler. The objectives are the following:

  • Fix a number of issues with scoping and closures
  • Pave the way for assignments and mutable XLR trees
  • Activate the type system and related optimizations

A number of changes happen in the compiler structure as a result:

  • The Context class is gone
  • Error management (Error and Errors classes) were deeply redefined. Ooops is now in errors.h where it belonged.

This is now well under way.

Syndicate content