The Data classes may be nice syntactic sugar but (as I've said in the past) I believe that if the compiler were little more open and allowed for extensions, then these could be user plugins and need not be part of Fantom core.

It all looks very promising, great work!

Steve.

brianFri 29 Jun

@go4: agree with Steve, its very awesome stuff. I keep stumbling across how nice a data/struct class would be with conveniences auto-generated for equals, hash, etc

I even like the little enhancement of defaulting fractional numbers to Floats (Float Literals) and have often wondered why this is not the default.

go4Sat 30 Jun

Thanks. I intend to release a dialect version of Fantom when everything is done, if allowed by the license.

brianSun 1 Jul

Thanks. I intend to release a dialect version of Fantom when everything is done, if allowed by the license.

The license would definitely allow that. We'd just want to be clear on terminology so people don't get confused

ahhatemTue 3 Jul

May I ask why will it be kept as a separate project? Why not enhance it and merge it into the main project?

go4Tue 3 Jul

Hi Steve, Thank you for praising. The build script idea seems to be from your past post.

@ahhatem I don't think it can be merged. There are many break changes and most of the code was rewritten. My original purpose is not just to enhance the grammar that is the need to write sys pod for a new backend VM.

SlimerDudeWed 12 Sep

Hi go4, this looks really good!

I was looking through the Different from Fantom document and there are some great ideas, e.g. I like using return in it-blocks. Though some things can be done in pure Fantom already, e.g. the ActorProxy is no different to my SynchronizedState class.

It's shame about the binary compatibility, but understandable.

In all, how exciting! I don't know where you find the time for all this!

go4Wed 12 Sep

Thanks.

return in it-blocks

It's return in closures not it-blocks. the return keyword will be deprecated.

the ActorProxy is no different to my SynchronizedState

The ActorProxy return Future not the result.

It's shame about the binary compatibility

The fcode has been changed to keep generics type informations.

My favorite feature is Closure Inference. To omit the closure signature as much as possible. That Fantom limit is the closure only take one param and return Void.

brianWed 12 Sep

This is very interesting! I think its great to experiment with different features.

There are a couple things in there I would like to incorporate into Fantom.

Some questions:

How difficult was it to incorporate to generics into compiler?

Are generics reified? Can you see them in reflection APIs?

What exactly are you doing for Structs for pass-by-value? Is this for future JVM support?

Couple other comments:

we used to have a readonly keyword, but got rid of it - it was less like final, and more a shortcut for { private set }

go4Thu 13 Sep

The Fantom compiler already have code about generics. But it's still difficult for me. It took me a week to fix bug in compiler code.

It's type erasure in generics. You can't see them from reflection API.

The JVM don't support pass-by-value. It's just for future other backend.