Leonardus
CHANGELOG

[0.9.0] - 2024-12-03

Added

  • Initial release
  • Made project public

[0.9.1] - 2024-12-08

Added

  • Gitlab pipelines

[0.9.2] - 2024-12-09

Added

  • Doxygen integration into CI/CD with manual creation only from web-interface
  • commandline parsing

[0.9.3] - 2024-12-24

Added

  • GitLab Pages for Doxygen output
  • bitshift, bind, eq and sub operators
  • translation of tests
  • new SOo class and exit operator
  • Examples Directory
  • index, matrix, copy, length, idiv, get and currentdict operators
  • Manifesto

Fixed

  • incident "quit operator within procedures leaks objects"
  • string parsing and escaping for \ and new line

[0.9.4] - 2025-01-01

Added

  • Visual Studio Code
  • loop operators rearranged in sources
  • cppcheck in makefile
  • class Counter
  • class Interpreter
  • updated ks command line
  • GDB debuggin works
  • lambdas to reduce redundncy in operator implemenations
  • operators div, mod, cleartomark and count
  • clang-tidy in makefile
  • misc. "auto" type deductions
  • __snap operator
  • new: interpreter.cpp
  • tool bear

[0.9.5] - 2025-01-14

Added

  • Cleanup of settings.json for user and workspace
  • Operator documentation moved from OPERATOR.md to source code close to the implementation
  • Rearrangement of sox-functions within op*.cpp files
  • added class LineSource
  • usage of [[noreturn]] attribute for error functions
  • error.h and .cpp split off
  • operators loop and roll
  • operators countexecstack and execstack
  • operators ceiling, floor, round and truncate
  • Context hold its output handle
  • watermark statistics
  • operators cos, sin and atan
  • angular unit DEG and RAD operators
  • __rprecision for floats
  • operators sqrt, exp, ln, log
  • operators rand, rrand, srand
  • operators getinterval, putinterval
  • operators known, store, undef, where
  • errordict, statusdict existing
  • operators systemdict, figurative operator section
  • operators cleardictstack, string

Fixed

  • command line parsing error in ks.cpp

[0.9.6] - 2025-01-25

Added

  • Integration of boot.ks in e2e test runs with suite.sh configuration
  • operator ne as procedure
  • operator anchorsearch, search and type
  • LaTeX comments to pimp up operator documentation
  • switch to a dockershelf image for the doxygen pipeline deployment stage
  • operators cvlit, cvx, xcheck
  • Names with all characters but the ones with syntactic usage.
  • manual index file for Gitlab Pages
  • task tags generated to Gitlab Pages
  • operators print, cvn, cvs
  • operators product, null, languagelevel
  • operators realtime and usertime

Project Management

  • Gitlab issue board

Fixed

  • operator "get" now operates on procedures
  • reals with a leading dot e.g. 0.3 are now recognized

[0.9.7] - 2025-01-28

Fixed

  • operator abs behaviour for MIN_INT

Added

  • moved to GNU C++20
  • Pimpl idiom
  • test*.out files can contain wild cards if SUITE_WILDCARD is set
  • kb script now with options
  • README updates
  • operators serialnumber and revision

[0.10.0] - 2025-01-29

Project Management

  • a documented release strategie including gitlab releases
  • first Gitlab release object

Added

  • parser and ks release numbers read from git tags automatically

[0.10.2] - 2025-02-03

Project Management

  • LICENSE as file and within all sources and shell scripts

Fixed

  • fixed missing git for doxygen run

Added

  • post-commit hook; Tools Directory;
  • Extracting EXAMPLES.md from the example scripts; gitversion.h in Doxygen
  • mdextract.sh docu
  • new LANGUAGE.md with first detail
  • Examples as second pipeline test job
  • cloc integration; updated differences to Red Book

[0.10.3] - 2025-02-12

Added

  • further operator docs #33
  • deployment only for main branch
  • running code for vocabularies
  • multiple vocabularies ; e2e calls kb
  • cancel LaTeX generation #37
  • CLI.md is generated
  • dependencies from artifacts
  • restructured makefile to harmonize developer usage and pipeline usage
  • static linkage to drop dependencies to shared libraries
  • #46 bind operator binds: accelerated Fibonacci.ks by factor 4
  • refactor class attribute names; load() rename
  • PERFORMANCE.md draft
  • g++ optimizer activated. This accelerated Fibonacci.ks by factor 8.
  • last commit v0.10.3

[0.10.4] - 2025-02-27

Project Management

  • Added GitLab CI/CD components

Fixed

  • test015 translation
  • Fix wrong break in compile

Added

  • __compile and compile iteration loop
  • SOO optimization with const char *
  • moved deque to a member class with shared_ptr<>
  • rename Stack to SOK; Inheritance SOK from SO
  • refactor SOK interface
  • constructing and printing of stack objects
  • operators __endstack, $, is$, pop$, push$, count$ clear$, dup$
  • Hanoi.ks example
  • operators exch$, move$, dictstack$, execstack$, index$
  • refactor names; refactor interpreter loop
  • reorg 3 dissenting operators
  • Unicode prototype in names and strings
  • Bash check CI component - shellcheck
  • Removed pseudo-access levels
  • CI component SAST prototype
  • CI component markdownlint prototype

[0.10.5] - 2025-03-23

Fixed

  • check for spurious }
  • clone of exec_ attribute

Added

  • indentation limit 4
  • md formatting
  • refactor to use copy ctors
  • SOcomp in-the-middle class
  • Boost is now in use
  • equal() harmonized
  • build types in makefile and pipelines
  • design by contract prototype
  • class file reorg
  • invariant() prototype
  • DbC parent class
  • more preconditions and invariant checks
  • DBC_ macros
  • #56 kb with release number
  • tools with build type info
  • code coverage tests
  • reusing e2e.sh checks for test coverage
  • shell checker
  • pipeline with profiling
  • lcov produces an HTML report
  • extended operator length
  • one statement per line for coverage tests
  • code structure fitting line coverage goal
  • core code term
  • command line tests
  • unit tests
  • last commit of release

[0.10.6] - 2025-05-18

Project Management

  • Copyright author changed

Fixed

  • Fixed #65 unbound variable OPTARG
  • Fixed #62 handle missing boot.ks

Added

  • first commit for v0.10.6
  • simple install target
  • kc command line calculator #44
  • #66 compile_ to Interpreter
  • #58 std::source_location() part I
  • #68 Moved command line checks to Tools/**ctest.sh**
  • #67 gcc option -DBUILD_TYPE=DEVELOP instead of include
  • #58 std::source_location for opErrExit()
  • #69 A new CODING.md
  • Fibonacci numbers per golden ratio
  • our custom docker image gcc with boost
  • more Docker hub images
  • Dockerfiles
  • Refactor test names
  • new directory set up to support a docker file installation
  • now 4 custom images from hagenbund2 on Docker hub
  • new predeploy stage
  • fixed missing kc
  • #13 deploy to docker
  • HTML docu and Examples in Dockerfile
  • #74 shebang support for ks-scripts
  • dynamic memory allocation checks; new panicExit()
  • #70 ctest.sh docu
  • structured ks exit codes
  • refactor err functions; refactor shutdown()
  • markdownlint config added
  • enum class OTCode usage
  • enum class AngularUnit; KSNCode type removed
  • Watermark refactoring; core_t to helper
  • infinite loop check for load of name object
  • refactor snap() for Context and Interpreter
  • #82 echo "1 \{ 1 " | kb -
  • bind nesting moved to Context
  • Monte Carlo Example
  • rand, rranc and srand operators
  • STL algorithms in use
  • OTCode short names
  • maxopeelevel moved to Interpreter
  • begin() and end() interface functions
  • #79 kb shall check exit code of ks
  • Refactoring exit codes for all programs
  • last changes for v0.10.6

[0.10.7] - 2025-06-30

Project Management

  • Rename to Leonardus and .leo and .leon and leodict and LeoScript

Fixed

  • #86 parser fails check integer ranges

Added

  • first commit of v0.10.7
  • index.html generation; further exit code refactoring
  • parser without exit()
  • cloc improved
  • first ANSI sequence preparation
  • direct SOR functions
  • new: deployment.drawio
  • to_string() with low level pointers
  • #71 extract TOOLS.md from scripts like CLI.md
  • fixed missing targets in pipeline
  • #85 ctest.sh mit output und exit code check
  • #8 parser does rang checks and plausibility checks
    and normalizes the number presentation
  • new term ODO On Demand Optimizer

[0.20.1] - 2025-08-19

Project Management

  • index page reorganisaton

Fixed

  • shellchecker claims
  • final KS symbol renames
  • fixed check for many memory tree loops
  • fixed makefile-Pipeline coordination for image build
  • GitLab did not use the latest image

Added

  • #90 More DRY
  • lc command line tests
  • #91 clang-tidy defines
  • #32 GPL 3 copyright banner and operators
  • #78 Docker image welcome message
  • created a new Misc vocabulary
  • #39 Goal: '== resembles the syntax for creating the object'
  • operator == details
  • Split off opfigur.cpp
  • #14 Equality in the SO member function equal()
  • first working loop check
  • No profile build type for branches
  • #74 Tests for the docker image
  • #96 split socomp into files for sos, soa and sod
  • first version with man pages
  • man pages for the Docker image
  • moved to man 7
  • a separate page for every operator
  • man as artifacts of doxygen
  • #41 How to store the potentially new operator documentation in vocabularies
  • dockerstart.sh to run mandb
  • ctests for man pages and new lb comamnds
  • Multiline descriptions in vocabularies
  • l2ctest to test extracted man pages
  • manpage check is also man related
  • man package for mandb for -C manpage
  • #41 How to store the potentially new operator documentation in vocabularies?
  • #100 man page postprocessing for $ and = and >
  • #99 arcsin and arccos in vocabulary GhostScript fail because of atan codomain

[0.20.2] - 2025-09-16

Project Management

  • #121 Pages name should not be "kryptostack"

Fixed

  • fixed outdated man page problem;
  • #111 New OTCodes Nx and Ax aren't used in STACK operator descriptions
  • #104 The man page file for the LeoScript operator π
    isn't displayed properly in the docker image

Added

  • Renamed SOcomp to SOcomposite - the PostScript term
  • A first minimal prototype-based OOP idea
  • An examples for PTBOs and fixes
  • Fixed makefile shell syntax
  • operator ncat
  • Complex example
  • operator nop
  • ctors with parameters
  • additional verbose output from leon
  • operator binom
  • #113 Rational Number SO - first version
  • usage of GMP
  • helper initialization
  • rational numbers feature complete
  • operators divqr and isunitfraction
  • Egyptian Fraction example
  • test coverage to 100%
  • more polymorphism for binom
  • renamed __turn
  • operator **__one** to support polymorphism
  • operator concat
  • operator __isS
  • updated all docker images
  • #120 add CONTRIBUTING
  • #63 "make -j" and split g++ run into different jobs for each .cpp
  • #88 Code coverage for inErrExit() lines fails.
  • #123 Unit Test for "__float128 SOK::getR()"
  • more unit tests for exiting functions
  • shared fixtures
  • last commit

[0.20.3] - open

Project Management

  • none

Fixed

  • none

Added

  • none