Version: 0.0.1 (PoC pre-alpha) Implementation status: Porting to Julia
NegI - (Negitiation Interface) or (Negated Identity) is not a language in the traditional sense; it is a semantic substrate. It is designed to solve the "Ship of Theseus" problem in software: allowing a system to replace its components, semantics, and even its underlying runtime without losing its identity.
The ophanim.lua (backend name) is a 1 file library for Lua 5.5. You can either load it via require or just copy/paste the code. It only depends on lua core libraries, and even those can be removed. Personally, I'm testing on lua 5.5 binary. You can get lua binaries here: https://luabinaries.sourceforge.net/download.html. To test the demo, you can launch the repl.lua.
lua55 repl.lua- Host representation. Lua have quite messy syntax and context, we need to nicely wrap this up inside some Manifest or Frame.
- Just finish manifests (Especially Error, to check if we getting stuck in halt)
- Tokens should keep track of current evaluated data by having access to the Host device (like Artifacts do)
This is a prototype, currently I'm rewriting it in Julia, because Lua have no multi-therading support and lacks proper file and hardware access (while I can add dependencies, people might find it difficult to install because of current lua ecosystem).
- Practical NegI examples I use for tests located at
repl.lualine 8. - To see how manifest are working and structured see
local manifest = {...anddispatch = function ( - To see what things do you can refer to
FLESH.NegI.Manifestsinophanim.lua, for example:NegI "context" innerwill index NegIFramewithcontextliteral and return an object with authority to show context (look intoprotocolto see what it can do).
You should read s&dr.md with a grain of salt, because I want to focus on implementation, rather than updating the docs (the code has most of the info inside comments, which I usually keep updated).
negi.lark is an old file from python implementation attempt, it shows how in lark NegI syntax is parsed.