Skip to content
This repository was archived by the owner on Jun 27, 2022. It is now read-only.

Development Release v0.1.dev7

Pre-release
Pre-release

Choose a tag to compare

@Luna-Klatzer Luna-Klatzer released this 27 Jan 01:06
· 18 commits to main since this release
152b4ce

v0.1.dev7 - 2022-01-27

Added

  • Linker and LinkerMetaData classes for the linking step and dependency
    analysis that is between the logical analysis and code
    generation/optimisation.
  • CLI for parac-build.py to simplify the building process by allowing for
    more configuration. This also includes web-download and automatic global
    installation.
  • requirements folder with requirements for each use-case like dev, prod
    or common (base requirements for both dev and prod).
  • New function ProgramCompilationContext.parse_all_files(), which will parse
    all files.
  • Parameter project_root for BasicProcess, ProgramCompilationContext and
    ProgramCompilationContext, which defines the root of the project structure.
    This will also be used for relative naming and paths!
  • New Wrapper class ParacProjectConfig for handling json-config files. This
    is still in work and not going to be properly finished until the compiler
    core has been done.
  • Ability to use logging without having to stick to CLI formatted logging.

Updated

  • Renamed build.py to parac-build.py to not interfere with the build
    module.
  • Removed the optimiser module and replaced it with optimiser.py.
  • Renamed class ParacParseStream to ParacQualifiedParseStream.
  • Renamed function CompileProcess._compile() to ci_compile.
  • Renamed function CompileProcess._gen_preprocessor_temp_files()
    to gen_preprocessor_temp_files().
  • Renamed function CompileProcess._run_preprocessor() to
    preprocess_files().
  • Renamed parameter log_errors_and_warnings to prefer_logging.
  • Updated handling of ParacCompiler.validate_syntax() to be an entry-point
    function, which will take as arguments the wanted file path and encoding.
    This means no longer a BasicProcess or CompileProcess is
    needed!
  • Handling of files to use an overall files list defined in
    parac-config.json, instead of dynamically fetching using entry files.
    This means it will be similar to GCC compiler using a pre-defined list of
    files, and then link all of them together in the end making them ready for
    execution.
  • Renamed Para-C to Para to suit better to its intended feature-set.
  • Renamed parac-build.py to para-build.py.
  • Renamed all Python classes prefixes Parac to Para.
  • Moved logging.py CLI functions to para_ext_cli.
  • Made ParaCompiler.validate_syntax() an instance method instead of class .
    method as it needs the ParaCompiler runtime property logger.
  • Renamed the class process.FinishedProcess to process.CompileResult.
  • Renamed the class process.ProgramCompilationProcess to
    process.CompileProcess.
  • Renamed all items named LogicToken and LogicStream to ParseToken and
    ParseStream.
  • Restructured listeners, context classes and parse stream functions to have
    a more straightforward module structure, while generating a parse stream.

Removed

  • Property mode in bin-config.json.
  • Deprecated SEPARATOR and WIN from const.py.
  • Constant Compiler instance RUNTIME_COMPILER.
  • Functions related to c-init, as the C Compiler configuration will from now
    on be done using para-config.json.
  • dist_path and build_path folders, as the code-file generation is now
    handled using process.CompileResult and CompileResult.write_results().
  • Unneeded paralang_base.logging module, which has now been completely replaced
    by the default logging handling, and paralang_base_cli.logging.