bryanjos

bryanjos

Hi, I just published version 0.23.0 of Elixirscript.

https://github.com/bryanjos/elixirscript/blob/master/CHANGELOG.md

Most of the changes are around JavaScript interop now that Elixirscript uses the Elixir compiler to compile and load files during compilation. This also means you can define macros in the same file now. Another bonus is that this release makes it a bit easier to share code between Elixir and Elixirscript.

That’s about it. Try it out and any feedback is always helpful.

Showing Posts 1 to 10

OvermindDL1

OvermindDL1

I’ve been tempted to write a little webcomponent or polymer or so integration with it to see how it works, be a nice little bite-size thing to test with. :slight_smile:

bryanjos

bryanjos OP

Nice! Let me know how it goes. I had written a small React example before for a local meetup, but never posted it online. I’m going to try to do that this week.

bryanjos

bryanjos OP

Hello I just published the latest version of Elixirscript. For a full list of the changes, take a look at the changelog The major changes in this version are:

  • Can select between ES, CommonJS, or UMD module formats for output
  • Can use and compile dependencies in mix projects (if dependency has the elixirscript compiler in its mix compilers)
  • Default input and output paths in mix projects

There is now an elixirscript organization with the projects that it uses. Also there is a newly created blog with the first post giving more details about the majors changes.

Finally, a gitter room was created for the project. The elixirscript channel on the elixir-lang slack still exists and I’ll still be there. The gitter room allows for integrations and keeps the history.

OvermindDL1

OvermindDL1

Ooo, awesome an update! :slight_smile:

bryanjos

bryanjos OP

Elixirscript 0.26.0 has been released. The biggest change is that output is reduced to a single file.

For a summary of the major changes, check out the post here

For a list of all changes, check out the changelog

Hex: elixir_script | Hex
Release on GitHub: Release 0.26.0 · elixirscript/elixirscript · GitHub

bryanjos

bryanjos OP

@OvermindDL1 I’ve been looking at BuckleScript a lot lately. I know you are a fan of it. I’m wondering how do you like its JavaScript interoperability? Redirecting to bucklescript.github.io/bucklescript

Wondering if maybe there are some things there that are worth borrowing for Elixirscript

OvermindDL1

OvermindDL1

It’s Javascript typed bindings are just done via OCaml’s normal FFI system, it just all fit very well. :slight_smile:

But yeah, I’d probably do something similar in Elixirscript. Last I saw Elixirscript you still did the JS.import bit (though now removed according to your just-now changelog ^.^), I’d probably do something like:

defjsmodule Underscore, import_name: "_" do
  deffun blah/2
end

Or whatever, although you could add typing information like I’m doing in TypedElixir so you can cause compile-errors when interfaces are mis-used. :slight_smile:

But yeah, OCaml’s FFI is just typing the interface, which the compiler then resolves to JS modules, it is very succinct and powerful and safe, as well as hard to borrow without having types in Elixir. ^.^

bryanjos

bryanjos OP

Ah that makes sense. Eventually I would like to get it to the point of requiring no JavaScript at all. It’s partially what the JS module is for right now, but could be built up to allow for more. The 2 systems that have impressed my so far are BuckleScript and Scala.js. But I guess both of those are type heavy examples. Anyways, I think there are somethings that can be done to get closer to that goal

Eiji

Eiji

@bryanjos: I saw docs at github and have some questions:

  1. Do you support converting whole Elixir project into JavaScript app?
    I mean not only specified directory, but also config, tests and others?
  2. Is it possible to prefix JavaScript calls in Elixir code? :console.log("hello") => :js.console.log("hello"). This could conflict with libraries (I mainly think about :document).
  3. I have a problem with last (4144) line: export default Elixir;, I got error message: SyntaxError: export declarations may only appear at top level of a module in Firefox Nightly and Uncaught SyntaxError: Unexpected token export in Chrome.
bryanjos

bryanjos OP

@Eiji

  1. Right now only a specific directory. I haven’t tested converting config or tests.

  2. Not possible right now, but something that could be up for discussion. I know clojurescript does something similar and it may be a good idea here. There is the “JS” modules which can be the jumping off point for that.

  3. Try using the “umd” format instead. The default is “es” which isn’t supported by browsers just yet

Edit: I probably need to do a good sweep of the docs to make sure they are up to date

Where Next? Top

Trending in Announcing Top

wojtekmach
Hey everyone! Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
handnot2
Samly can be used to enable SAML 2.0 Single Sign On in a Plug/Phoenix application. This library uses Erlang esaml to provide plug enabl...
New
woylie
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries. offset-based pagination with...
New
MRdotB
I needed to reuse React components from my Chrome extension in my Phoenix/LiveView backend. I noticed that for Svelte/Vue, there are live...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
fuelen
Hi all! I want to present a small library which provides a mix task for generating an Entity-Relationship Diagram for Ecto schemas. You...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
AstonJ
This showed up on my feed.. anyone heard of it? Just hype? Ox Alpha is a reasoning model designed for coding, sustained ag...
New
sergio
It’s not that it’s vocabulary is too advanced. It’s something worse. I get lost trying to follow even a paragraph written by Claude. It’...
New
sorenone
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
akoutmos
@hugobarauna, Dr. Dimitrios Koutmos (my brother) and I (Alex Koutmos) have been hard at work on writing a book on how you can use Elixir ...
New
pferriby
Introductory paragraph I’ll be looking for a keen junior or someone that has a couple of years experience in the real world (so you’ve be...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews