Skip to content
This repository has been archived by the owner on Jun 6, 2021. It is now read-only.

Releases: lycus/exmake

ExMake 0.5.0

27 Nov 00:39
Compare
Choose a tag to compare
ExMake 0.5.0 Pre-release
Pre-release

This is another alpha-quality release. This release contains no user-visible enhancements; its main purpose is to update ExMake to work with Elixir 1.0.2. New bugs may pop up due to the many changes that have happened to Elixir since 0.15.0.

Built with Elixir 1.0.2.

ExMake 0.4.0

08 Aug 00:45
Compare
Choose a tag to compare
ExMake 0.4.0 Pre-release
Pre-release

This is another alpha-quality release. This release only contains one user-visible enhancement; its main purpose is to update ExMake to work with Elixir 0.15.0. New bugs may pop up due to the many changes that have happened to Elixir since 0.12.4.

Enhancements:

  • Allow omitting argument patterns in on_load definitions in some cases.

Built with Elixir 0.15.0.

ExMake 0.3.2

28 Feb 14:37
Compare
Choose a tag to compare
ExMake 0.3.2 Pre-release
Pre-release

This is another alpha-quality release, adding various bug fixes and enhancements.

Fixes:

  • Fix the job waiting logic when an error occurs in a recipe.
  • F#: Fix the way the sources list is passed to the shell invocation.
  • Fix the order of arguments passed to tasks.

Enhancements:

  • Rename phony rules to tasks as this term is less obscure.
  • Add support for fallback tasks (similar to .DEFAULT in Make).
  • Import File, IO, Path, and System automatically in scripts.
  • Allow omitting argument patterns in rule/task definitions in some cases.

Built with Elixir 0.12.4.

ExMake 0.3.1

27 Feb 11:38
Compare
Choose a tag to compare
ExMake 0.3.1 Pre-release
Pre-release

This is another alpha-quality release, adding various bug fixes and enhancements.

Fixes:

  • Don't run on_load functions repeatedly if a library is loaded multiple times.
  • C#/F#: Don't pass the key file as a source file.
  • C#: Don't pass .netmodule files as source files.
  • Mark the -c flag as a Boolean option.

Enhancements:

  • ExMake.Logger is now automatically imported in libraries.
  • Add an ExMake.Logger.log_warn/1 function.
  • Add a Host library which can detect various details about the host machine.
  • Add an ExMake.Lib.require_lib/1 macro for libraries that depend on other libraries.
  • Add an ExMake.Utils.format/2 function.
  • ExMake.Cache.save_manifest/2 is now append_manifest/2 and supports appending.

Built with Elixir 0.12.4.

ExMake 0.3.0

27 Feb 11:30
Compare
Choose a tag to compare
ExMake 0.3.0 Pre-release
Pre-release

This is another alpha-quality release, adding various bug fixes, enhancements, and optimizations.

Fixes:

  • Remove a bunch of stuff from the public API that shouldn't have been there.
  • Raise ExMake.ScriptError if an executable (e.g. erlc) cannot be found.
  • Sanitize the ExMake.Logger interface so it's more sensible for library writers.
  • Correct various type specs in the public API.

Enhancements:

  • Print result messages when locating executables.
  • Support :silent and :ignore options in ExMake.Utils.shell/2 and ExMake.Utils.find_exe/3.
  • Add a library for building C# source code.
  • Add a library for building F# source code.

Optimizations:

  • Pass -spp true to the Erlang VM on startup.
  • Implement a more concurrent job scheduling algorithm that schedules jobs whenever possible.

Built with Elixir 0.10.1.

ExMake 0.2.1

19 Aug 06:50
Compare
Choose a tag to compare
ExMake 0.2.1 Pre-release
Pre-release

This is another alpha-quality release, adding various bug fixes and enhancements.

Fixes:

  • Fix an attribute typo in the Elixir library that could break output directory determination.

Enhancements:

  • Add support for non-Elixir module names, output directory selection, and explicit dependencies to the ExMake library.

Built with Elixir 0.10.1.

ExMake 0.2.0

19 Aug 06:38
Compare
Choose a tag to compare
ExMake 0.2.0 Pre-release
Pre-release

This is another alpha-quality release, adding various bug fixes and enhancements.

Fixes:

  • Error out if a recipe does not produce the expected target file(s).
  • Wait for remaining jobs to exit when a recipe fails, instead of ignoring them.
  • Fix output directory determination in the Erlang/Elixir libraries.

Enhancements:

  • Document attributes that are, by convention, reserved for libraries.
  • Make ExMake.Utils.find_exe/2 support a list of names to try instead of just a single name.
  • Add support for caching of --args and 'precious' environment variables.
  • Use previous --args and precious environment variables when configuring due to a stale cache.

Built with Elixir 0.10.1.

ExMake 0.1.0

17 Aug 13:15
Compare
Choose a tag to compare
ExMake 0.1.0 Pre-release
Pre-release

This is another alpha-quality release, adding various bug fixes, enhancements, and optimizations.

Fixes:

  • Error out if a phony rule depends on a file that doesn't exist and cannot be built.
  • Provide better stack traces in debug mode when an exception is caught in a job runner.
  • Fix a pattern match failure that could happen in the Erlang library if a rule had header dependencies.
  • Fix the "recipe changed directory" error to actually say what it means.
  • Ensure library paths are expanded into absolute paths before adding them.
  • Correctly invalidate the environment table cache if a script file changes.

Enhancements:

  • Wrap the DAG creation process in a timing pass.
  • Add a module for compiling Elixir source code.
  • Allow specifying output directory in Erlang rules.
  • Add a manifest macro to specify files to be considered sources of the build cache.
  • Lift the arbitrary restriction that recurse paths could not contain path separators.
  • Change into the directory the file given to --file is located in, and lift a similar separator restriction.

Optimizations:

  • Add module caching by using a manifest file in the cache directory.
  • If --clear is passed, immediately assume that the cache is stale.

Built with Elixir 0.10.1.

ExMake 0.0.0

16 Aug 13:10
Compare
Choose a tag to compare
ExMake 0.0.0 Pre-release
Pre-release

This is the initial, alpha-quality release of ExMake. While it should work for many things in practice, expect bugs.

Overview:

  • Support for Make-style dependency chains.
  • Support for Make-style phony rules (commands).
  • Support for arbitrary Elixir code as recipes.
  • Support for caching of the environment table and dependency graph.
  • Support for parallel job execution with a specific amount of runners.
  • Support for timing of various build steps.
  • Support for loadable libraries that provide macros/functions to assist in writing build scripts.
  • Included library for Erlang source code compilation.
  • Included library for building ExMake libraries.

Built with Elixir 0.10.1.