ElixirScript 0.30.0 released

New version of Elixir to JavaScript code converter released 
15 August 2017   440

What is ElixirScript? 

ElixirScript is a Elixir to JavaScript code converter. The goal of ElixirScript is to convert a subset (or full set) of Elixir code to JavaScript, providing the ability to write JavaScript in Elixir. This is done by taking the Elixir AST and converting it into JavaScript AST and then to JavaScript code. This is done using the Elixir-ESTree library.

Requirements:

  • Erlang 20 or greater
  • Elixir 1.5 or greater (must be compiled with Erlang 20 or greater)
  • Node 8.2.1 or greater (only for development)

What's new in ElixirScript 0.30.0? 

New version of ElixirScript includes a rewrite of the compiler, a change in JavaScript interoperability and much more. This is also the first version to require Erlang 20 and Elixir 1.5, compiled with Erlang 20.

Changeslist:

  • Foreign Function Interface (FFI)
    ElixirScript now interacts with JavaScript using an FFI. This means there is a stricter barrier between Elixir and JavaScript. The FFI allows the ability to make packages designed to work with ElixirScript. Another benefit is that there are far fewer warnings during compilation time. As an example let’s create an FFI module for some HTTP specific functions we want to use from JavaScript.
     
  • Dependencies
    ElixirScript can compile your project’s dependencies to JavaScript. This means you can use many of the packages available in Hex. It is also possible to create ElixirScript-specific packages. These are normal mix projects which may or may not have FFI modules with their corresponding JavaScript files.
     
  • A Call to Arms
    Calls to Erlang functions that the Elixir standard library make have to be reimplemented in JavaScript. There are many that are implemented, but there are more that need to be. This effects the availability of some Elixir standard library calls. A major contribution to ElixirScript would be to help with an implementation of an Erlang function that is blocking the use of an Elixir function you want to use.
     
  • Breaking Changes
    ElixirScript now only works as a mix compiler. This means there will no longer be an escript for download and plugins for Brunch and Webpack will no longer work with this and future versions. Also, ElixirScript now only supports output of ES modules.
     
  • Limitations
    receive is still not supported. When ElixirScript encounters a receive call during compilation, the compiler will show a warning, but will continue. During runtime these calls will throw an error. With receive not yet supported, this also means most of OTP is not supported as well.

You can get more info about this update at GitHub.

ElixirLangMoscow Meetup #7

Meetup will be held on February 15th, Thursday, in Moscow, Pyatnitsky Lane 2
22 January 2018   247

Club ElixirLangMoscow invites all lovers of Elixir, Erlang and functional programming languages to the next meeting of our club. This time the event was decided to be held in the "Dear, I will call back" bar. Because, what could be better than listening to interesting reports for a glass of beer. And even in the company of friends!

Speakers

We are waiting for two cool reports and a free microphone for those who have something to say.

Dmitry Rubinstein

Topic: “Introduction to Agala

Dmitry Rubinstein
Dmitry Rubinstein

The report will highlight the Agala framework - a platform for real-time interaction with third-party services. Currently, this platform has implemented bots for Telegram and Vk, which are used in the combat environment in our company. Let's analyze the main differences from the known solutions for creating bots on Elixir, consider the internal structure of the platform and learn how to support any necessary third-party service.
 

Dmitry Rubinstein
CTI

Alexandr Shorin 

Topic: “Apache CouchDB: more than a database with HTTP API

Alexandr Shorin
Alexandr Shorin

This will be an introductory report with Apache CouchDB and its ecosystem. Main features and capabilities. Details of the implementation of the replication protocol and why this is important. Forks: Couchbase, Cloudant - what are the differences and why should not they be confused with the original project. The history of clustering, what happened in the end in 2.0 and how it works. What is interesting about the new release and where the project is heading.
 

Alexandr Shorin 
Rambler

As a pleasant chip, the bar will prepare an "Elixir" cocktail especially for us. Admission is free, everyone pays their bill.

The event has an age limit of 18+. Register for free.