W3cubDocs

/Elixir 1.5

Kernel.ParallelCompiler

A module responsible for compiling files in parallel.

Summary

Functions

files(files, options \\ [])

Compiles the given files

files_to_path(files, path, options \\ [])

Compiles the given files to the given path. Read files/2 for more information

Functions

files(files, options \\ [])

Compiles the given files.

Those files are compiled in parallel and can automatically detect dependencies between them. Once a dependency is found, the current file stops being compiled until the dependency is resolved.

If there is an error during compilation or if warnings_as_errors is set to true and there is a warning, this function will fail with an exception.

This function accepts the following options:

  • :each_file - for each file compiled, invokes the callback passing the file

  • :each_long_compilation - for each file that takes more than a given timeout (see the :long_compilation_threshold option) to compile, invoke this callback passing the file as its argument

  • :long_compilation_threshold - the timeout (in seconds) after the :each_long_compilation callback is invoked; defaults to 10

  • :each_module - for each module compiled, invokes the callback passing the file, module and the module bytecode

  • :each_warning - for each warning, invokes the callback passing the file, line number, and warning message

  • :dest - the destination directory for the BEAM files. When using files/2, this information is only used to properly annotate the BEAM files before they are loaded into memory. If you want a file to actually be written to dest, use files_to_path/3 instead.

Returns the modules generated by each compiled file.

files_to_path(files, path, options \\ [])

Compiles the given files to the given path. Read files/2 for more information.

© 2012–2017 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.5.0/Kernel.ParallelCompiler.html