#265 Build 1.0.28

brian Thu 26 Jun 2008

I've posted a new build and updated the online docs.

I'm on vacation next week, so it'll be on quiet side.

FWT

The biggest new feature is probably the FWT (Fan Widget Toolkit). This is a work in progress, but provides an elegant Fan API on top of SWT. If everything is working correctly you should be able to run the demos without any additional setup for Windows, OS X, and Linux:

  • {fan_home}/apps/fwt/hello.fan
  • {fan_home}/apps/fwt/demo.fan

I've tried this on Windows and OS X, but I don't have a Linux desktop to test with. So please let me how this code works on your machine.

SWT and Extensions

To make the FWT work out of the box, I added some smarts to the Fan runtime for extensions. There is now a "lib/java/ext" directory. Any jars in this directory are automatically added to the runtime and compiler's classpath. There are also sub-directories under "ext" for OS specific code - these directories are added to both the classpath and the "java.library.path" automatically based on your machine. This works pretty much like Java's "lib/ext" directory, just bundled with the Fan runtime.

With-Block and Serialization

Both with-blocks and serialization now support user-defined collections:

Misc

Change Log

Build 1.0.28 (25 Jun 08)

  • Fix bug in threading flow control
  • Map.def
  • Update unix scripts to use bash
  • Fix timezone on unix when GMT offset
  • Require call open paren on same line
  • With-blocks support implicit call to add
  • Support @collection facet in readObj and writeObj
  • C# fixes including filtered catch blocks
  • Launcher exe and bash support for lib/java/ext
  • Fix closures inside once methods
  • Improved support for calling main
  • New fwt pod which wraps SWT
  • Rename some of the shortcut operators methods

cbeust Thu 26 Jun 2008

Looks great, Brian.

A quick question about main() support: what is this mysterious optional boolean parameter you show in the documentation?

Void make(Str[] args, Bool flag := true)
Int make(Str[] args, Bool flag := true)

Is this just a way to say that it's okay to add any kind of parameters after Str[] as long as they are optional?

Also, would you mind changing the cookie duration of the forums to two weeks?

-- Cedric

brian Thu 26 Jun 2008

Is this just a way to say that it's okay to add any kind of parameters after Str[] as long as they are optional?

Yes - that probably is a little confusing. I'll change the docs to be clearer. Thanks.

Also, would you mind changing the cookie duration of the forums to two weeks?

Andy is going to take care of that - he is working on the next rev of changes right now.

tompalmer Thu 26 Jun 2008

Congrats on the new build, by the way. How do you guys code so fast?

Side note, I've been working on parameter type inference for closures, but my time is limited, so I can't give an ETA. I also can't promise you'll like my code when I'm done (if I get done). So if y'all were already working on that or planned to get to it soon, go ahead. Just felt like mentioning in passing.

tactics Fri 27 Jun 2008

Holy crap. That FWT demo is seeeeexy~

It's amazing how much you can cram in there in under 400 lines with that .add() sugar! And unlike common claims in Ruby ("A blog in under 400 lines, because there's already a blog library for you to use"), this is legitimate. It's the same basic tools as a Java programmer would have (and understand), but the new syntax lets you really pack it in there in a natural, readable way.

Incidentally, while typing FWT, I almost misspelled it. It gives me a good idea for marketing the library: FWT FTW (Fan Widget Toolkit for the win!)

Login or Signup to reply.