XEPL is a software operating environment for applications to use multi-threading on a common world view of data.
C++ is the best language, bare none. Top performance, extensible, flexible, portable, and zero active runtime. XEPL is 100% Pure C++.
Just as simple as compiling Hello, World!
Be sure that you have a C++ Compiler. XEPL uses C++17.
mkdir xepl
cd xepl
git clone https://github.com/xepl/one.git one
git clone https://github.com/xepl/solo.git solo
cd solo
g++ -std=c++17 *.cpp
./a.out
Real-time C++ has always been challenged by new/delete.
XEPL is so smart, it recycles memory, avoiding the delete.
XEPL uses a per-thread backpack to recycle previous allocations to deliver non-blocking dynamic memory.
Neurons are for processing DNA, and DNA is a Data Structure composed of cross connected Genes of DNA, offering a three dimensional, instant access no schema database.
Together, DNA powers Neurons to use DNA as source structures with the instructions to build and refine neuron networks that signal and all co-operate on a common world view of data.
Never before, has anyone, gone back this far and challenged the rationale, that a distributed system ... need, in any way ... be limited.
Multi-threading was hard when programming was young, and honestly, we were scared. Scared that any error in any piece of code ... could crash everything.
When Multi-Cores arrived, the walled in process dominated. and developers where barely able to scratch the surface of what is available.
Multi-Core, Multi-Threading isn't hard. Doing it in a general purpose OS is nearly impossible, but doing it in an app specific OE ... Hmmm.
Today, Software comes in many forms ... most of them ... huge. Since the years of the first multi-core chips ... software has lagged and lost focus, struggling to gain power.
Operating Systems grew inwards to tackle the latest hardware and cores, and upwards to handle interconnected clouds.
Software Frameworks conquered core business functionality, and micro-services encouraged a distributed network. Everything seems peachy.
All of that is good stuff ... but, what about the multi-core processor. What about in-process, in memory Parallel & Concurrent access to data structures share with other cores. Who solved that ? Dijkstra, Hoare, Wirth, Hewitt ? ... They were all right !
XEPL is laser focused on one thing ... delivering the perfect Operating Environment experience for Software Developers ... by solving the hard problems that software developers need solving, and then getting out of the way.
The XEPL Operating Environment is for Neurons to work together on a common view of the world. To process signals their interested in, and to generate signals others might be interested. DNA is used both as Control and as Data.
As XEPL Neurons process Signals of DNA, they generate fresh Signals that trigger other Neurons to generate more Signals; all working together on a common world view.
Alongside all the normal things of an environment, such as Methods, Properties, etc, XEPL provides developers additional state management that is exactly what developers need to distribute, communicate and synchronize effectively.
XEPL is a perfect balance of simplicity, capability, expressibility, changeability, and functionality.
When it comes to building dynamic neuron networks, parsing data, signaling, rendering, and teardown; XEPL does all the heavy lifting you described in XML.
With XEPL you describe massive networks that come and go ... in an instant.
C++ is a language of Inheritance. XEPL makes extreme use of Inheritance; as such, the XEPL Core is implemented in under 5,000 lines of C++ source code.
Using another 5,000 LOC, the XEPL Engine (XE) offers functional Brain.Kits. XEPL is complete and independent of the brain.Kits.
In contrast, todays 'process' environments strive to provide connections between computers, and pretty much ignore inter thread communications.
While there are many libraries that offer off-process stovepipes of functionality, and/or libraries of algorithms to accomplish specific tasks, the tools are segregated from the common world view and need our help to communicate to/fro is via their API.
We, application programmers are relegated to writing glue code to marshal the data in/out of libraries of code. We package our requests, invoke the API, and unpack the responses.
From there, our requests are handled by a software factory.
And they respond, in kind, over the same lines as the API Request.
Careful now ... going off processor exposes you to unauthorized observation and release of information to tricksters.
It's endless ... they will never stop.
XEPL is in-process, in-memory, fully secure, multi-core magic.