All Versions
42
Latest Version
Avg Release Cycle
33 days
Latest Release
1652 days ago

Changelog History
Page 2

  • v0.24.0 Changes

    January 15, 2017

    โž• Added

    • ๐Ÿ‘Œ Support for sigil_r
    • Regex module
    • ๐Ÿ‘ Better JavaScript formatting

    ๐Ÿ›  Fixed

    • CLI now allows a comma-separated or space-separated list of paths
    • Struct not properly referenced
    • Tail call optimization
  • v0.23.3 Changes

    November 18, 2016

    [0.23.3] - 2016-11-18

    โž• Added

    • @load_only: lets the compiler know to load in the module, but not to compile it
  • v0.23.2 Changes

    November 17, 2016

    ๐Ÿ›  Fixed

    • Agent not functioning properly. Now uses internal store instead of making a process and using that to put data in store
    • Protocol incorrectly handling strings
    • defgen and defgenp functions not being recognized by Elixir compiler.
  • v0.23.1 Changes

    November 16, 2016

    ๐Ÿ›  Fixed

    • 0๏ธโƒฃ Incorrectly sending standard lib when using compile or compile_path by default
  • v0.23.0 Changes

    November 15, 2016

    โž• Added

    • ๐Ÿ‘ with now supports else
    • Implement context option on quote
    • ๐Ÿ†• New compiler pipeline
    • @on_js_load. Expects a 0 arity function. This function will be called when the compiled module is loaded in JavaScript
    • 0๏ธโƒฃ JS.import\3. Just like JS.import\2 but expects options to decide if the import should be a default one or a namespace on. Only option allowed is default. Set to true by default
      # translates to "import A from 'a'"
      JS.import A, "a"
    
      #translates to "import * as A from 'a'"
      JS.import A, "a", default: false
    

    โœ‚ Removed

    • 0๏ธโƒฃ The form of JS.import that accepted a list of atoms as the first arg. Used JS.import\3 with default: false instead to create a namespace import
    • env and root are no longer options for ElixirScript's compile functions and cli
    • ๐Ÿ‘ Syntax once supported by Elixirscript JQuery.("#element"), is no longer supported

    ๐Ÿ”„ Changed

    • Changed CHANGELOG.md to adhere the format from Keep a Changelog
    • ๐Ÿ‘ defmacro now supported. No longer have to separate macros from functions in separate files. defmacrop still unsupported
    • To use anything in the JS module, you must require the JS module first
    • Elixirscript files must now contain valid Elixir syntax.
    • ๐Ÿ‘ Now compiles exjs and ex files within the path can be compiled all the same. Dependencies from hex are still unsupported so these files must not rely on any code outside of the path. What this does mean is that it is now possible to share code between Elixir and Elixirscript as long as the Elixir files functionality fall within what Elixirscript currently supports.
    • defgen, defgenp, yield, yield_to, and object are now in the JS module
    • To access functions in the global JavaScript scope, either use JS.global\0 or use the erlang module call syntax
      #calling alert
      JS.global().alert("hi")
    
      #calling alert
      :window.alert("hi")
    

    Calling JavaScript modules in the global scope works without using the above methods

      #calls window.Date.now()
      Date.now()
    
  • v0.22.0 Changes

    October 16, 2016

    โž• Added

    • defgen and defgenp for defining public and private generators
    • yield/0, yield/1, and yield_to\1 to Kernel

    ๐Ÿ”„ Changed

    • โšก๏ธ Updated output folder structure. stdlib code will now go in an elxiir folder under the output paths while generated app code will go into an app folder under the output path
    • All process macros and functions now expect to receive and/or work using generators as entry points. Using functions defined with def or defp will not work correctly with them

    ๐Ÿ›  Fixed

    • Correctly returning list if list is only item in body
  • v0.21.0 Changes

    June 28, 2016

    โž• Added

    • ๐Ÿ”— This is the first release with early support for processes in elixirscript. Creating a process only works currently using spawn/1, spawn_link/1, and spawn_monitor/1. Inside of a process, you can use functions such as send and receive, along with some defined in the Process module. From outside of a process, you can send messages to a process, but you cannot receive a message from a process. Eventually all code will run inside processes and this restriction will naturally lift.
    • The Process module has been implemented with the following functions:
      • alive?/1
      • delete/1
      • demonitor/1
      • exit/2
      • flag/2
      • flag/3
      • get/0
      • get_keys/0
      • get_keys/1
      • link/1
      • list/0
      • monitor/1
      • put/2
      • register/2
      • registered/0
      • send/3
      • sleep/1
      • unlink/1
      • unregister/1
      • whereis/1
    • The receive special form has been implemented with the above caveat
    • The following have been implemented on Kernel:
      • spawn/1
      • spawn_link/1
      • spawn_monitor/1
      • send/2
      • make_ref/0
  • v0.20.0 Changes

    May 14, 2016

    โž• Added

    • ElixirScript.Watcher module and elixirscript.watch mix task
    • ๐ŸŒฒ logging MatchError exceptions to better show terms that don't match
  • v0.19.0 Changes

    April 30, 2016

    โž• Added

    • elixir_script mix compiler

    โœ‚ Removed

    • ๐Ÿšš Html, View, and VDom modules have been removed
  • v0.18.0 Changes

    April 08, 2016

    ๐Ÿ”„ Changed

    • ๐Ÿ‘ Better support for macros. Macros should be defined in .ex or .exs files. ElixirScript code should be in .exjs files

    NOTE: The above functionality will cause either compiler errors or no output. Please change extensions of ElixirScript code to .exjs

    ๐Ÿ—„ Deprecated

    • ๐Ÿšš Html, View, and VDom modules will be removed in the next version as they can now be replicated using macros