Tuesday, November 20, 2012

What's cooking in the EDT kitchen? - November 20

We made great progress towards EDT 0.8.2 M4 last week.  In many cases, we've done more planning than coding in the first week after a milestone, but not this time.  Unfortunately I expect things to slow down this week, since most of the team is taking two or three days off for Thanksgiving.

Extensibility
  • We're making content assist work again. It's the only major feature that was broken by the extensibility features introduced in M3.
Language
  • Any expression can now be used to specify the size of a new array. Previously you had to use a literal number.
  • We finished the ternary if-then-else operator.  Its syntax is (condition) ?? true_value : false_value.  (Yes there are two question marks, not one.  They keep our parser from being confused.)
  • We started work on new functions that make it easier to work with dates and strings.
  • We have a type called AnyStruct whose value can be any "structured" type: record, handler, class, external type, or any.
Matt

Tuesday, November 13, 2012

What's cooking in the EDT kitchen? - November 13

The big news from EDT-land is that 0.8.2 Milestone 3 is finished. There's one more milestone in this release, and we'll be done with it early next year.

Our New and Noteworthy page will tell you what's in M3. It doesn't mention classes or the bytes type, which I've written about in my weekly posts, because those features weren't finished in time.  They'll be included in Milestone 4, and I doubt they'll be the only language enhancements we add.  (The official list of M4 contents hasn't been made yet.)


Matt

Version 0.8.2 Milestone 3 is available

The new milestone build is waiting for you:
Matt

Wednesday, November 7, 2012

What's cooking in the EDT kitchen? - November 7

It's testing time!  We're testing EDT 0.8.2 Milestone 3, and we'll make it available as soon as we can.

Tuesday, October 30, 2012

What's cooking in the EDT kitchen? - October 30

EDT 0.8.2 Milestone 3 is nearly finished!  We're in the final week of development now.

In the past week we've been merging our extensibility changes into the main development branch.  We've updated our tests and samples.  Work continues on language enhancements like classes.

Matt

Tuesday, October 23, 2012

What's cooking in the EDT kitchen? - October 23

As I wrote in last week's post, we continue making good progress towards 0.8.2 Milestone 3.  The milestone will be finished in two weeks.

Extensibility
  • Our system types can now be compiled under the extensible framework.  No more "magic" or patching things up by hand!  Once this is done we'll start merging the extensibility changes into the main code stream (and our nightly builds).
Language
  • Continued working to implementing classes.
  • We're working on a new rule to decide when two arrays are compatible.  The current rule is complicated and maybe inconsistent.  The simplest rule (both arrays must be exactly the same type, unless one is an array of Anys) is more strict than we've been in the past.
  • We decided that only eglx.lang.* will be implicitly imported in an egl file.  Importing eglx.lang.* gives you basic things like int, string, etc.
Other
 Matt

Monday, October 15, 2012

What's cooking in the EDT kitchen? - October 15

We continue making good progress towards our next milestone.

Extensibility
  • We're close to getting our system types compiled under the new extensible framework.  Once this is done we'll start merging the extensibility changes into the main code stream (and our nightly builds).
Language
  • Started implementing classes.
  • We decided that "abstract" functions will be allowed in a class. An abstract function contains no statements and is terminated by a semicolon instead of the end keyword. In order for our parser to understand this new syntax, we will remove support for the do-nothing statement that consists of only a semicolon.
  • We revised the rules for comparisons involving the bytes type. Our old rule was that both bytes value must have a length, and the lengths must be the same. So you couldn't compare a bytes(3) to a bytes(4), or a bytes(3) to a bytes with no length. These comparisons are now valid. Comparing bytes(n) and bytes will be like comparing string(n) and string.
Other
Matt