Blog Post

#2913 Build 1.0.80

brian Tue 23 Apr

New build has been posted.

New JavaScript/TypeScript Compiler

Matthew posted an overview of a strategy to modernize Fanton's JavaScript infrastructure in post 2894.   This work is fully completed and included in this build.  This work allows JavaScript and TypeScript developers to consume Fantom APIs using  modern conventions.

There are now two JavaScript compilers:

  • compilerJs: original compiler
  • compilerEs: new compiler

For backward compatibility, all the pods are still compiled using the original JS compiler and put the JS files in "/podName.js".  The new compiler generates its artifacts under the "js/" directory in the pod zip:

  • podName.js (common JS module)
  • podName.mjs (ECMAScript module)
  • podName.d.ts (TypeScript declaration file)

If you are using the web::FilePack APIs to build your JS bundles, then you can toggle between the old and new JS designs via the nodoc WebJsMode class.

We will continue to support the old JS compiler for at least another year, but please make a plan to transition to the new JS design.

FWT

We have moved the original fwt and flux pods into a separate repo as proposed in post 2893.  So the following pods are no longer included in the distribution:

  • gfx
  • fwt
  • webfwt
  • icons
  • flux
  • fluxText

Jwt

We have added a new crypto::Jwt class for both encoding and decoding JSON Web Tokens.   This work also includes support for JSON Web Keys (JWK).

Change Log

Build 1.0.80 (23 Apr 2024)

  • New ECMA class-based JavaScript design
  • Move fwt pods into separate repo
  • Crypto JWT and JWK APIs
  • Actor queue overflow limits
  • Add Doc.elemFromPos, elemsFromPos
  • Add Event.keyChar
  • Add new dom HttpSocket API
  • New concurrent Lock API
  • Add Graphics.drawEllipse,fillEllipse
  • Add Image.render and Image.write
  • Fixes for Crypto EC keypair support
  • Fix Time.minus 24hr boundary checks
  • Allow mixins to have non-abstract fields if no storage required
  • Fix Color HSL implementation to match browser behavior
  • Add MimeType.isText
  • Add util::LockFile
  • Redesign ES compiler to not generate code for every pod
  • Include TypeScript decl file in pods with JS code
  • Prompt support for jline 3
  • #2909 RGB to HSL conversion
  • #2912 remove Future.state

Gary Tue 23 Apr

Congrats on the new build! :D

Gary Wed 24 Apr

Build 1.0.80 wasn't available on Homebrew earlier today, but it is now! :)

Gary Fri 26 Apr

The hyperlink on Download page under Windows "fantom-1.0.80.exe" is broken .. getting a 404. Just FYI. :)

SlimerDude Sun 28 Apr

Hi Gary, the Windows Installer for Fantom 1.0.80 should now be available.

The Windows installer is not released by the Fantom guys, but by myself. So whenever a new Fantom release is dropped it takes me a small while to play catchup and create the new installer. Should be there now though.

Thanks for the nudge! :)

Gary Sun 5 May

It's all good Steve! :-)

SlimerDude Sat 1 Jun

Hi, I just noticed that Fantom 1.0.80 still ships with etc/flux/ and etc/fluxText/ even though those (associated) pods are no longer shipped with Fantom.

Is that by design, or should those etc/ dirs be removed?

Login or Signup to reply.