Blog Post

#1094 Build 1.0.53

brian Thu 13 May 2010

The new build has been posted and the online docs updated.

With this build, all planned breaking changes are behind us.

Storage Operator

The biggest language feature which will impact existing code is the change of the field storage operator from * to &. Your existing code will continue to work but will report warnings. Using & will avoid some of those spurious semicolons the * required.

Actor Moved to Concurrent

The Actor API was moved from sys to the concurrent pod. All you should need to do to fix your code is to add dependency on concurrent and add a using concurrent to each source file which uses the Actor APIs.

Gradient API

The Gradient API has been redesigned to support percentage and pixel based gradients with multiple stops. JavaScript in the browser has good support for this API now (assuming your browser supports gradients). SWT has extremely limited gradient support, so only a basic two stop gradient will work.

FWT Table Sorting

The TableModel has been enhanced to support an overlay model which allows sorting and turning columns on/off. The UI for SWT/JS doesn't yet support column selection, but column sorting will work in both environments. You can override sortCompare in your TableModel to implement sorting (default will perform lexical sorting). As part of this change, we decided to make TableModel and TreeModel classes instead of mixins for future proofing.

OSGi/Eclipse

There has been a good chunk of work making the runtime and compiler infrastructure more pluggable for upcoming OSGi and Eclipse support. We probably still have some tweaks to the Java runtime to fully support the OSGi classloader model.

ChangeLog

Build 1.0.53 (13 May 10)

  • Fix boxed boolean JVM checks
  • Make Int.shiftr unsigned (Java >>> operator)
  • Add etc/sys/config.props support to fanlaunch bash script
  • Rewrite gfx::Gradient to support CSS3 model
  • Add Map.ordered support to .NET runtime
  • FWT patch to allow mounting under arbitrary SWT widgets
  • Make java primitive wrappers and java.lang.Class immutable
  • Fix LogRec.print to return Void (to match Java/C# signatures)
  • Fix FileLogger to include stack trace and use new non-null fields checks
  • Rework JavaTypes to delegate to Env for caching and loading
  • Func.arity
  • Implement Int/Float toLocale for javascript
  • Remove deprecated dom::Elem.x/y/w/h methods
  • TableModel and TreeModel changed from mixin to abstract class
  • Table sorting and column visibility
  • Improve Map support under JavaScript
  • Fix FileLogger/LogMod to write headers on open of new files per day/month
  • Compiler support for native classes
  • Allow CompilerInput to specify a custom CNamespace
  • #569: docCompiler gives |Obj| for |This| it-block
  • #965: Compiler TypeParser doesn't handle Java FFI
  • #977: New concurrent pod (move Actor)
  • #1031: StrBufOutStream does not delegate correctly
  • #1039: It not typed as Obj? correctly
  • #1045: Compiler check error for LoadMixinInstance
  • #1051: Gradient API
  • #1053: HTTP 1.0 request using chunked transfer encoding
  • #1055: Misc BNF grammar problems
  • #1056: It-block parameters have incorrect reflection signature
  • #1057: compiler bug in exprOrLocalDefStmt
  • #1060: Ensure Map types don't have nullable keys
  • #1066: Double ?? are allowed when defining type which should not
  • #1067: compilerJava - findMethods() patch
  • #1073: Storage operator
  • #1077: VerifyError when Safe Invoke is used to call java method returning int
  • #1079: ResolveImports: catch CompilerErr around resolveImportedTypes() call
  • #1080: BuildJava should allow specifiybg custom classpath/jars

Login or Signup to reply.