75 lines
3 KiB
Markdown
75 lines
3 KiB
Markdown
|
|
# GDXApp⁴ᴰ
|
|||
|
|
|
|||
|
|
In Duytschen "Geloof Doom eXtensie APPlicatie 4D" which tranlates to: faith doom extension application 4D.
|
|||
|
|
|
|||
|
|
Is a demo or POC of TempleOS Next Generation coded in java with libGDX and ImGui.
|
|||
|
|
|
|||
|
|
Final version will be written in HolyC++ on TempleOS and runs on dedicated 144 bit hardware.
|
|||
|
|
|
|||
|
|
All code is junk, q&d play code, ideas, etc.
|
|||
|
|
|
|||
|
|
For masters and slaves only.
|
|||
|
|
|
|||
|
|
TODO:
|
|||
|
|
- Move and merge unitXC+basic+step2 code to NX-01
|
|||
|
|
- Move and rewrite unicode4D to NX-01
|
|||
|
|
- Move fonts+apps to real hyper+nostr redsea filesystem of NX-01
|
|||
|
|
|
|||
|
|
## Project Features
|
|||
|
|
|
|||
|
|
* Single Endpoint Application model (user)
|
|||
|
|
* Single Window Application model (touch)
|
|||
|
|
* Single MenuBar Application model (tricorder)
|
|||
|
|
* Applications are distributed as OSGI bundles
|
|||
|
|
* Blockchain distribution and storage to boot apps and OS from
|
|||
|
|
* Unicode4D 72 bit glyph sequence blocks and rendering
|
|||
|
|
|
|||
|
|
## Project Setup
|
|||
|
|
|
|||
|
|
Requirements;
|
|||
|
|
|
|||
|
|
* 8GB of free memory
|
|||
|
|
* Setup a DAT Hyperdrive tool [drives](https://github.com/holepunchto/drives)
|
|||
|
|
* Use an AdoptOpenJDK(11++) to run the demo
|
|||
|
|
* install local copy of nx01 maven artifacts
|
|||
|
|
|
|||
|
|
### Project Launch IDE
|
|||
|
|
|
|||
|
|
Run "mvn package" after every git pull.
|
|||
|
|
|
|||
|
|
Run the main class from gdxapp4d-boot-desktop; love.distributedrebirth.gdxapp4d.boot.desktop.GDXAppDesktopLauncher
|
|||
|
|
|
|||
|
|
Append "use-local" to the main launcher to use the local chains. (as the real are fake)
|
|||
|
|
|
|||
|
|
## Duytschen Code
|
|||
|
|
|
|||
|
|
Is moved to the NX-01 code runtime for none-english enterprice ships;
|
|||
|
|
|
|||
|
|
buiten ℭheɱMolecǔūl ringZaad(ℭheɱMolecǔūl 大胸部, GroßGetậl 養花) {
|
|||
|
|
GroßGetậl 征服天空 = חדמצילעול/םומלואו; //S4a: מי שמציל אדם א ©Δ∞ 仙上主天
|
|||
|
|
tê̄ruʛγ ℭheɱ@Ω.orbitalSkeleŦŧgPÅd-₇ɛͣ₉(大胸部, 征服天空, M̋atƕ.π√θ33°, 養花);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
### The BASIC Prayer
|
|||
|
|
|
|||
|
|
Lets review the answer given by the or-acle; [Thread.yield()](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html#yield())
|
|||
|
|
|
|||
|
|
Firstly its an method which requires no input and has no output.
|
|||
|
|
Secondly its an hint without predefined usage pattern or functional outcome.
|
|||
|
|
The other paragraphs try to explain its usage, but fail to add an example like;
|
|||
|
|
|
|||
|
|
Running multi-processor code on single cpu OR on an over-utilise cpus requires yielding to avoid async deadlocks in parallel work distributions trees.
|
|||
|
|
|
|||
|
|
Also in high performance parallel code, yielding control out of consent, may result in better performance than forced interruption or time slicing.
|
|||
|
|
Especially when working with an live non-homogeneous workload.
|
|||
|
|
|
|||
|
|
Writing and simulating parallel code paths is not easy. So most developers use a library which comes with default configured options.
|
|||
|
|
Then feed it small batches of work and hope for the best.
|
|||
|
|
|
|||
|
|
Now simulate with ~7833661741 threads using X different libraries and try to avoid deadlocks.
|
|||
|
|
By replacing a few words, this changes the description to the faith-by-math yielding version;
|
|||
|
|
|
|||
|
|
A hint to the π-creator that the current human is willing to yield its current use of a itself.
|
|||
|
|
The π-creator is free to ignore this hint.
|
|||
|
|
|