this is done as of 2f7850682f461a16515a796c23ee869123fb6318
relax is sort of an ad-hoc thing right now, but i'll spend time standardizing and documenting my ideas as they evolve.
relaxis a scheme distribution geared towards building native peer-to-peer applications. this distribution is largely a collection of language extensions that make scheme feel more familiar and encourage happy patterns. by leveraging chicken scheme compiler and syntax macros, we can generate very efficient assembly from high-level source code. planned improvements, such as hindley-milner type checking, will allow for further optimizations. relax language extensions are defined strictly in terms of R5RS, but parts of the foundation libraries may depend on chicken scheme-specific apis. at the moment, this appears to be a good balance between portability and agility.
efficiently utilizing multiple cores is one of the most critical aspects of mobile performance. nvidia and others have observed this effect in practice: (pardon the ipfs link, this pdf is too large to attach as a blob)
The dynamic power consumption of each core is proportional to the operating frequency and to the square of the operating voltage. Due to the exponential relationship between power and voltage, the dual core CPU consumes lower power than a single core CPU for the same workload. The figure below shows how a dual core Cortex-A9 CPU will consume only 60% of the power consumed by a single core Cortex-A8 for the same task.
the other side of that coin is writing software that can efficiently utilize all available cores. relax encourages patterns based on erlang/otp and clojure that enable automatic concurrency, easy debugging, and strong fault tolerance. as many of us have noticed with the release of #manyverse #p2p applications can be big drain on your battery. cryptography and networking an be quite energy intensive. for that reason, among others, i feel the need to take a holistic approach to future networking by integrating the core protocols into the application runtime and operating system. all of the individual components are portable, but the eventual goal is full integration with a handful of open hardware platforms.
one of the goals of the genode project is to provide a set of common interfaces for building micro-kernel based operating systems. combined with R5RS and other hardware and software standards, we have something that looks a lot like the web stack in terms of standardization, with a much keener focus on the unique challenges of mobile computing. most of these ideas are not mine, but they seem to fit well together with a very minimal amount of code. the goal is something like a browser, that a motivated community can maintain successfully. in contrast with web browsers, outside of Chrome, Firefox, Edge, and Safari and their forks you aren't going to find anything that can keep up on web standards and performance.
i wrote a mini appimage clone in ~35 lines of bash that you might like. %PqoIvVl...
it is a proof of concept of course, but the idea was to prove to myself that the basic functionality that you get from
AppImageis easy to achieve with a little shell script glue.
the next bit i'm thinking about is app verification, which i think can be accomplished by using ssb feeds to publish blob hashes. currently, blobs are limited in size, but i'm working on getting past that limitation.
griddoesn't care what you put inside of the application image. so, it would be trivial to package a nixos derivation inside a grid image. there's lots of flexibility here because i can't really say what the best solution is. i really like what nixos is doing, but i also value the relative simplicity of something like
respec pls or WTFPL
proper link ref %0wLfmTg...
going nuklear with x0
Built with git-ssb-web