In versions of GNU Make prior to 4.4, ".NOTPARALLEL: compile" made the whole
build run serially. In 4.4 and later, ".NOTPARALLEL: compile" makes only
the compile target run serially.
This breaks the build and can lead to e.g. EEx being built before Mix.
Erlang ships with its own embedding of the Unicode
Codebase for a couple releases and this release changes
Elixir to depend on it in order to compute grapheme
clusters.
The Erlang implementation was up to 2x faster in low
codepoints (such as latin1) while the Elixir one could
be faster up to 3x in high codepoints (such as emoji)
so at the end the performance results are roughly the
same. As a benefit, we no longer need to ship our copy
of the grapheme cluster algorithm, which would take up
to 250kB in disk and more than 15 seconds to compile.
Note we still keep our own String downcase and upcase
algorithms, as our version is considerably more efficient
on all cases since it works exclusively with binaries
(more than 5x faster).
The comments would add space to the CANONICAL variable,
redering the link like
<link rel="canonical" href="https://hexdocs.pm/elixir/v1.10/ /Kernel.html" />
One thing I've found myself wanting quite a lot when working on Elixir
is the ability to run single tests, or at least single test files,
easily with `make test_stdlib` or something. With this change this is
now possible - you can run `make test_stdlib TEST_FILES=macro_test.exs`
to just run that file, or
`make test_ex_unit TEST_FILE=ex_unit/formatter_test.exs`.
* Use long attributes in make docs target
Use Elixir as a learning tool. Use long attributes to lower the barrier so users can
see the meaning of ExDoc command line attributes
* Use double-quotes around attribute values in docs target in Makefile
- Make use of $CIRRUS_WORKING_DIR instead of spawning a new process with $(pwd).
- TEST_FORMATTED environmental variable added.
- move fast executing scripts, such as "dialyzer" to the top of the list.
- move "rm -rf .git" and "make compile" to the install script.
- Put each command their own named scripts (i.e., test_formatted_script, dialyzer_script, test_erlang_script, test_elixir_script, check_posix_compliant_script, check_reproducible_script).
- Split in the Windows task, the test_script into install_script and test_script, to mimic the scripts in the test_linux_task.
- Messages added on success or when tests are skipped, so the user is better informed in the CI results page.
- Added script that shows the output of `elixir --version`.
- Left a comment in "test" task in Makefile to update accordingly .cirrus.yml if updated.
- Use CIRRUS_CLONE_DEPTH: 1 to only clone the latest changes
- Run formatter on Windows
- Set global ELIXIRC_OPTS and ERLC_OPTS for Linux and Windows
- CPU and memory optimized
The current version is not compatible because of the path
separators. It fails with the error:
'bin' is not recognized as an internal or external command,
operable program or batch file.