Blog Post

#1146 Build 1.0.54

brian Wed 14 Jul 2010

I noticed its been two months since we did a fresh build. So I posted a new build and updated the online docs.

This build actually doesn't have any big new features or changes. And I'm thinking that is actually a great thing. We've had a good two months of using Fantom with no major changes and things are looking really stable and solid!

Couple things to note:

  • its been a todo forever, but I've finally written the Natives chapter for docLang
  • if you were constructing CompilerInputs directly in code, note that the API changed slightly to reflect that you can pass either directories or individual files
  • the compiler check for 1127 may catch errors which previously went un-reported.

ChangeLog

Build 1.0.54 (14 Jul 10)

  • Support for Java FFI Type->toClass
  • Fix WebClient to report port number in Host header
  • ObixMod abstract base class for server side functionality
  • Support for WebSocket Protocol Handshake HTTP 101 response
  • List.unique,union,intersection,moveTo support in js
  • Fix Float.equals to work consistent with == operator
  • Flush out Float/Range API in js
  • Add sql::Statement.limit
  • Ensure "{fan}/lib/java/ext" added to Java FFI classpath
  • Flush out docLang::Native chapter
  • Etc/Rel TimeZone
  • Change CompilerInput to accept files or dirs
  • Support for SS optional seconds in DateTime and Time formatting
  • Str: chars, fromChars
  • Change Obj.typeof to be non-virtual
  • #895: Allow () operator to be used on func fields
  • #1112: JarDist omitting .class file
  • #1127: Expand scope of illegal nullable to non-nullable errors

qualidafial Thu 15 Jul 2010

Thank you for the natives chapter, that clears up a lot of questions and confusion.

A few comments:

  • Is there a tool that can write out stubs for my natives classes and peers, similar to what the rmic tool does for RMI interfaces in Java?
  • Under the Native Methods section, shouldn't method b in the Java/C# peer be static?

brian Thu 15 Jul 2010

Is there a tool that can write out stubs for my natives classes and peers?

Nope. A simple build task to spit out one-way stubs would probably be pretty trivial. A tool that could iterate an existing Java source file would be pretty complicated though since it would require a Java parser (and likewise for C#, JavaScript).

shouldn't method b in the Java/C# peer be static?

Thanks, I pushed a fix

tactics Thu 15 Jul 2010

Nice.

Keep up the good work. As always.

qualidafial Thu 15 Jul 2010

Regarding codegen, one pattern I've seen used in e.g. BlazeDS to keep it simple is to generate an abstract base class with all the methods declared abstract, then generate a concrete class which extends the abstract base class. This way when you do codegen, you are always free to clobber the base class, but never clobber the subclass if it exists. Some variant of this might work well for Fantom.

you'd still have the original problem with all static members, which unfortunately includes all constructors.

anduno Thu 5 Aug 2010

I not found the way to create a Ticket, that's why I write here.

It's strange, but fantom's build system just not works... All examples from doc and distr failed with same error. For example, this is result of running FAN_HOME/examples/build.fan:

  • sys::IOErr: Invalid name/value pair Line 1
  • fan.sys.InStream.readProps (InStream.java:586)
  • fan.sys.InStream.readProps (InStream.java:549)
  • fanx.util.EnvProps.read (EnvProps.java:64)
  • fanx.util.EnvProps$CachedProps.<init> (EnvProps.java:96)
  • fanx.util.EnvProps.refresh (EnvProps.java:35)
  • fanx.util.EnvProps.get (EnvProps.java:26)
  • fan.sys.Env.config (Env.java:148)
  • build::BuildScript.config (BuildScript.fan:92)
  • build::BuildScript.config (BuildScript.fan)
  • build::BuildScript.configDir (BuildScript.fan:102)
  • build::BuildScript.instance$init$build$BuildScript (BuildScript.fan:45)
  • build::BuildScript.make$ (BuildScript.fan:18)
  • build_0::Build.make$ (/C:/Fantom-1.0.54/examples/build.fan:17)
  • build_0::Build.make (/C:/Fantom-1.0.54/examples/build.fan)
  • java.lang.reflect.Method.invoke (Unknown)
  • fan.sys.Method.invoke (Method.java:536)
  • fan.sys.Method$MethodFunc.callList (Method.java:182)
  • fan.sys.Type.make (Type.java:244)
  • fan.sys.ClassType.make (ClassType.java:110)
  • fan.sys.Type.make (Type.java:234)
  • 3 More...

My environment: x86 | jdk-1.6_16 | WinXP SP3 | Fantom-1.0.54

andy Thu 5 Aug 2010

I not found the way to create a Ticket, that's why I write here.

Tickets must be promoted (by us) from topics - so this is the correct place to post problems.

From the looks of that trace - you have an error in one of your props files (under fan/etc/) - did you make any modifications?

anduno Fri 6 Aug 2010

From the looks of that trace - you have an error in one of your props files (under fan/etc/) - did you make any modifications?

Yes, I set jdkHome to my jdk path and did annoying misprint in first line. s// - that's one :)

Thanks for help!

RossDelores24 Sun 15 Aug 2010

removed

Login or Signup to reply.