-
Notifications
You must be signed in to change notification settings - Fork 1
KoreLogicSecurity/libklel
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Table of Contents Section 1 .................... Overview Section 2 .................... Licensing Section 3 .................... Versions Section 4 .................... Branches 1 Overview The KoreLogic Expression Language Library is a C library that provides a simple expression language that can be embedded in other programs. This library does not implement a full programming language, but rather a simpler expression language called KLEL (pronounced 'kal ell') that is designed to provide arithmetic and logic operations useful in situations where embedding a full programming language would be overkill. KLEL expressions have access to a full set of arithmetic and logic operations, and they can access functions and variables exported from the embedding program. Unlike most other languages of its kind, KLEL is statically and strongly typed, which helps ensure that expressions are valid before they are executed. The embedding API is designed to be easy to use, and the library itself is designed to be very small. KLEL is available from these locations: https://git.korelogic.com/libklel.git https://github.com/KoreLogicSecurity/libklel https://sourceforge.net/projects/libklel 2 Licensing This project is governed by multiple open-source licences. The exact terms and conditions under which software in this project are released are set forth in README.LICENSE. 3 Versions This project utilizes a version numbering scheme that allocates 4 bits to the major number, 8 bits to the minor number, 8 bits to the patch number, 2 bits to the state number, and 10 bits to the build number. The following diagram depicts the scheme. +----+--------+--------+--+----------+ |3322|22222222|11111111|11| | |1098|76543210|98765432|10|9876543210| |----+--------+--------|--|----------+ |MMMM|mmmmmmmm|pppppppp|ss|bbbbbbbbbb| +----+--------+--------|--+----------+ ^^^^ ^^^^^^^^ ^^^^^^^^ ^^ ^^^^^^^^^^ | | | | | | | | | +-----> b - build (0...1023) | | | +----------------> s - state (0......3) | | +--------------------> p - patch (0....255) | +----------------------------> m - minor (0....255) +-------------------------------------> M - major (0.....15) State Numbers: 00 = ds --> Development Snapshot 01 = rc --> Release Candidate 10 = sr --> Standard Release 11 = xs --> eXtended Snapshot Below is an example mapping of a version number to a version string. It takes the version number 0x40100003, and converts it to: 0100 00000001 00000000 00 0000000011 ^^^^ ^^^^^^^^ ^^^^^^^^ ^^ ^^^^^^^^^^ | | | | | | | | | +-----> b - build = 3 | | | +----------------> s - state = ds | | +--------------------> p - patch = 0 | +----------------------------> m - minor = 1 +-------------------------------------> M - major = 4 When the individual components are combined together, the resulting version string becomes 4.1.0.ds3. 4 Branches This project is mastered in four branches: master, 0.X, 1.X, and 2.X. Currently, there are no plans for development on the master, 0.X, and 1.X branches. The master branch exists due to the way that git works; the 0.X and 1.X branches exist to hold snapshots of legacy releases; and the 2.X branch exists to track future development activities. Below is a diagram that illustrates how the code repository may take shape over time. Note that snapshot tags are tightly coupled to the project's version numbering scheme (documented above). These tags are used to designate official branch points and stable locations in the codebase. The standard snapshot designator is 'S', but 'R' is used to indicate a release snapshot. master 0.X 1.X 2.X +-----------------+----------------+-----------------------------------+ | | | | +------+-------+ +------+------+ +------+------+ +------+------+ | No Code Here | | Legacy Code | | Legacy Code | | Future Code | +------+-------+ +------+------+ +------+------+ +------+------+ | | | | * R 0.6.0 R 1.0.0 +----S 2.0.0.ds1 | | | / | | * R 1.1.0 feature branch -->| +--S 2.0.0.ds2 | | \ / | \|/ R 1.2.0 +----S ... Y | / | * | S 2.0.0.{dsN,rc0} T | | I | S 2.0.0.rc1 M feature branch -->| | E | S 2.0.0.rc2 | | | | S ... | | | | 2.0.X branch --> +-------------+------R 2.0.0.{rcN,sr0,xs0} / 2.1.0.ds0 \|/ / | | Y alt 2.0.X branch --> /.- - - - - - - + - - -S 2.0.0.{sr1,xs0} / 2.1.0.ds0 / | \ | / \ +----S 2.0.0.xs1 + `- alternate | | | S 2.0.1.ds1 | | | S 2.0.1.ds2 | | | S ... | | | S 2.0.1.{dsN,rc0} | | | S 2.0.1.rc1 | | | S ... | | | R 2.0.1.{rcN,sr0} / ds0 | |\ | | \ alt merge --> | | \`+- - - - - - - - - ->S 2.0.0.xs2 | \ | | \ S ... | \ | | \ S 2.0.0.xsN | \ merge --> | | `+-------------->S 2.1.0.ds1 | | S 2.0.2.ds1 | | | S 2.0.2.ds2 | | | S ... | | | S 2.0.2.{dsN,rc0} | | | S 2.0.2.rc1 | | | S ... | | | R 2.0.2.{rcN,sr0} / ds0 | |\ | * \ | \ | \ | \ | \ | \ | \ merge --> | `+-------------->S 2.1.0.ds2 | *
About
The KoreLogic Expression Language Library
Resources
Stars
Watchers
Forks
Packages 0
No packages published