Releases: lycus/exmake
ExMake 0.5.0
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
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
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
, andSystem
automatically in scripts. - Allow omitting argument patterns in rule/task definitions in some cases.
Built with Elixir 0.12.4.
ExMake 0.3.1
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 nowappend_manifest/2
and supports appending.
Built with Elixir 0.12.4.
ExMake 0.3.0
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 inExMake.Utils.shell/2
andExMake.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
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
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
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
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.