Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
lfe_comp(3)							     lfe_comp(3)

NAME
     lfe_comp - Lisp Flavoured Erlang (LFE) compiler

SYNOPSIS
     This  module  provides an interface to the standard LFE compiler.	The com-
     piler can handle files which contain multiple modules.  It can generate ei-
     ther new files which contain the object code, or return binaries which  can
     be loaded directly.

EXPORTS
     file(FileName) -> CompRet

     Is the same as file(FileName, [report]).

     file(FileName, Options) -> CompRet

     where

	    CompRet = ModRet | BinRet | ErrRet
	    ModRet = {ok,[ModOk]} | {ok,[ModOk],Warnings}
	    ModOk  = {ok,ModuleName} | {ok,ModuleName,Warnings}
	    BinRet = {ok,[ModBin]} | {ok,[ModBin],Warnings}
	    ModBin = {ok,ModuleName,Binary} | {ok,ModuleName,Binary,Warnings}
	    ErrRet = error | {error,[ModErr],Errors,Warnings}
	    ModErr = {error,Errors,Warnings}

     Compile  an  LFE file, either writing the generated modules to files or re-
     turning them as binaries.	The generated modules are  ready  to  be  loaded
     into Erlang.

     The currently recognised options are:

     * binary - Return the binary of the module and do not save it in a file.

     * no_docs,  no-docs - Do not parse docstrings and write the "LDoc" chunk in
       the binary of the module.

     * to_expand, to-expand - Print a listing of the macro expanded LFE code  in
       the  file .expand.  No object file is produced.	Mainly useful for debug-
       ging and interest.

     * to_lint, to-lint - Print a listing of the macro expanded and  linted  LFE
       code  in  the  files .lint.  No object files are produced.  Mainly useful
       for debugging and interest.

     * to_erlang, to-erlang - Print a listing of the  Erlang  AST  in  the  file
       .erl.  No object files are produced.  Mainly useful for debugging and in-
       terest.

     * to_core0, to-core0, to_core, to-core - Print a listing of the Core Erlang
       code  before/after  being  optimised in the files .core.  No object files
       are produced.  Mainly useful for debugging and interest.

     * to_kernel, to-kernel - Print a listing of the Kernel Erlang code  in  the
       files  .kernel.	 No object files are produced.	Mainly useful for debug-
       ging and interest.

     * to_asm, to-asm - Print a listing of the Beam code in the  files	.S.   No
       object files are produced.  Mainly useful for debugging and interest.

     * {outdir,Dir}, [outdir,Dir] - Save the generated files in director Dir in-
       stead of the current directory.

     * {i,Dir}, [i,Dir] - Add dir to the list of directories to be searched when
       including a file.

     * report - Print the errors and warnings as they occur.

     * return  -  Return an extra return field containing Warnings on success or
       the errors and warnings in {error,Errors,Warnings} when there are errors.

     * debug_print, debug-print - Causes the compiler to print a  lot  of  debug
       information.

     * warnings_as_errors, warnings-as-errors - Causes warnings to be treated as
       errors.

     * no_export_macros, no-export-macros - Do not export macros from modules.

     If  the binary option is given then options that produce listing files will
     cause the internal formats for that compiler pass to be returned.

     Both Warnings and Errors have the following format:

	    [{FileName,[ErrorInfo]}]

     ErrorInfo is described below.  When generating Errors and Warnings the line
     number is the line of the start of the form in which  the	error  occurred.
     The  file name has been included here to be compatible with the Erlang com-
     piler.  As yet there is no extra information about included files.

     forms(Forms) -> CompRet

     Is the same as forms(Forms, [report]).

     forms(Forms, Options) -> CompRet

     where

	    Forms = [sexpr()]
	    CompRet = BinRet | ErrRet
	    BinRet = {ok,[ModBin]} | {ok,[ModBin],Warnings}
	    ModBin = {ok,ModuleName,Binary} | {ok,ModuleName,Binary,Warnings}
	    ErrRet = error | {error,[ModErr],Errors,Warnings}
	    ModErr = {error,Errors,Warnings}

     Compile the forms as an LFE module returning a binary.  This function takes
     the same options as lfe_comp:file/1/2.  When generating Errors and Warnings
     the "line number" is the index of the form in which the error occurred.

     format_error(Error) -> Chars

     Uses an ErrorDescriptor and returns a deep list  of  characters  which  de-
     scribes  the error.  This function is usually called implicitly when an Er-
     rorInfo structure is processed.  See below.

ERROR INFORMATION
     The ErrorInfo mentioned above is the standard ErrorInfo structure which  is
     returned from all IO modules.  It has the following format:

     {ErrorLine,Module,ErrorDescriptor}

     A string describing the error is obtained with the following call:

	    Module:format_error(ErrorDescriptor)

SEE ALSO
     lfe_gen(3), lfe_macro(3)

AUTHORS
     Robert Virding.

				    2008-2016			     lfe_comp(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=lfe_comp&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help