Skip to content

Releases: zerodaycode/Zork

v0.11.2

Choose a tag to compare

@github-actions github-actions released this 11 Sep 18:59
fix: updated Cargo.lock

v0.11.1

Choose a tag to compare

@github-actions github-actions released this 25 Aug 12:56
feat: v0.11.1

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 16:09
feat: release v0.11.0 - clang's import std and import std.compat

v0.10.4

Choose a tag to compare

@github-actions github-actions released this 18 Aug 09:07
fix: Allowing the user to declare absolute file paths in the configur…

v0.10.3

Choose a tag to compare

@github-actions github-actions released this 12 Aug 20:37
fix: The "compile_commands" file of the generated compilation databas…

v0.10.2

Choose a tag to compare

@github-actions github-actions released this 10 Aug 15:32
fix: The driver-path cfg option wasn't being picked correctly

[Upstream CI Workflows Updates - No source code changes from v0.10.0]

Choose a tag to compare

@github-actions github-actions released this 10 Aug 10:48
v0.10.1

fix: Disabling manual set of clang-16 of the clang's compiler driver …

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 20:17

[0.10.0] - 2024 - 08 - 07

Feature

  • Breaking - Targets: Executable and Tests toml entries are removed in favour of [targets.<target_identifier>] entries.
    Each targets allow the user to build N independent final products, being these binaries (executables) for now, while static
    and dynamic libs will be implemented in the upcoming releases

  • NOTE: A target identifier is the string value after the . on any [targets.<target_identifier>]

  • Added a --targets CLI flag to manually specify what targets wants the user to be processed in the current invocation.
    Ex: --targets target1,target2,tests1,tests2,tests3

Changes

  • Tests: test command now only runs those targets which they contain the string test in its target identifier

  • breaking - project_root property (under the [compiler] attribute) is renamed to code_root

Performance

  • The codebase suffered a major reorganization and re-factorization. These are all internal changes that aren't
    exposed through the public API. The most notorious points are:
    • The introduction of flyweights data-structures, that
      allows to reduce the program's memory footprint dramatically, and also the size of the generated cache files, being only
      created once and then only joined for being passed into iterable views that makes the full command line of every translation
      unit.
    • The amount of required code lines that was basic doing the same job generating arguments for every different
      kind of translation unit
    • All the generated commands are now stored in the cache as a separated entity, and they are only regenerated
      if the translation unit was modified since the last program run
    • The project model is now cached, and only rebuilt if the configuration file changes between different program iterations
    • All the translation units are now processed in only one unique procedure, since they are managed as trait objects
      in the main functions of the commands generation, and then small helpers creates, depending on the kind of translation unit
      processed the different arguments required for the source file

Misc and or Internal

  • Several internal APIs that uses helpers have received new unit tests, to ensure the robustness of their job
  • There's a lot of legacy code removed, only maintained for backwards-compatibility reasons.
  • System headers (GCC and Clang) that are importable translation units as modules are now translation units as well
  • We managed to satisfy the Rust borrow checker while we use the project model as read-only data, while the cache
    is handled exclusively via &mut (mutable references), allowing the codebase to be extremely fast and performant
  • Other minor optimizations has been applied to procedures. We remove a lot of allocation points thanks to the newly introduced
    clone-on-write idiom, to handle the data that comes borrowed since the configuration file up until the end of the process

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 25 May 09:44
a097c75

Now we fully support MSVC to be able to use the modular standard libraries std and std.compat within the user's code

v0.8.8

Choose a tag to compare

@github-actions github-actions released this 13 Apr 17:21
fix: Updating broken dependencies