checle / lithium-js Goto Github PK
View Code? Open in Web Editor NEWJavaScript implementation of a universal blockchain OS
License: MIT License
JavaScript implementation of a universal blockchain OS
License: MIT License
Promote written state within context, do not branch if no write operation occurred.
Model behavioral constraints of r (record) by means of a test script.
PatriciaTrie
: negative index argument to slice
returns a super tree matching the index (tree.parent
).
Architectural improvement: promote prefix tree matching to a separate layer outside of the basic record tree acceptor.
Model the pipes JS interface required in #2 by creating a corresponding dummy.
Init and publish an NPM package, add test scripts and the global command record
.
Extend the tree class:
.compare
method is present on the value object.find
method that returns a node instead of a value.next()
and .previous()
to the node interfaceCreate test files representing ASCII text input sequences bootstrapping a valid record tree (genesis).
Any of these tests shall be executable as record << testfile
and process without error.
Note: in the JS client, the line break serves as token-separator.
Implement expose decorator as separate package.
@expose(Y) class X {
stream: Readable
}
Perform merging if a transition function bound to the context of a subsequent state is applied (executed) on a preceding state on the same level (same output state).
The condition for this event is Record.context.isPrototypeOf(this.context)
Drop rebasing of Record
interface prototype.
Reasons:
Integrate webpack into NPM toolchain.
Specify branching behavior of sequences. Link sequential branches and link target input arguments for reproducibility of transitions as to be performed in #14
this('dirname/filename < ./input');
Invokes filename
in a local context. Written records are visible on the top level - not in 'dirname`.
Collect modules with isolated APIs such as fork
, PatriciaTrie
as NPM packages in a new modules
folder. Import source code from there directly, do not npm install
separately. However, publish modules separately on NPM.
If a descendant record
.next
stream of its ancestor any moreremove its key from ancestor's map, as it has no information content. It is only selectable supplying the full record value, which would lead to creation of an equivalent record if it did not exist.
function (str) {
return str.substr(0, 5);
// Receives a long string, writes a prefix = redirection target
// The interpreter will execute the substring.
// This subsequent execution cycle will select the full str and apply the remainder on the context.
}
Execute a target in a promoted context if the calling context inherits from the transition's context, i.e. it is a newer input state of the same output state.
The condition for this event is this.context.isPrototypeOf(Record.context)
.
It is opposite to #14.
Migrate to TypeScript, which will improve interface and visibility declarations.
this('..')()
acts equivalent to this('cd ..')
.
this('..');
has no effect on the path.
x('a', 'b', function y() { return this; });
y
is called in context (thisArg
) of x
.
PatriciaTrie
nodes must contain a pointer to their full key; rename key
to path
, add key
.
Add tab completion.
https://www.npmjs.com/package/tabtab
Create a clear draft of rules related to IO, associations in the record tree and consecutivity of the record stream (tree-stream mapping).
Publish model in graphical form.
Add examples covering any formulated rules.
When dist/r.js
is required by node bin/*.js
via require
, an empty object is returned.
Create an SVG donate badge matching the dimensions of Travis' build state badge https://api.travis-ci.org/checle/r.js.svg
Use this example:
https://img.shields.io/badge/paypal-donate-yellow.svg
Change the background from green to blue and the term "paypal" to a Unicode heart symbol (e.g. U+2665).
Create JS-based NPM tests for the record tree API implemented in #2
Supply a non-node-dependent BaseContext state context in order to ship a minimal webpack.
Eliminate lib folder, replace by external dependencies or move to src.
Implement methods of Node's Readable and Writable interfaces on Record.
Migrate from standard JS to Webpack, ES6 and Babel.
Create an API that accepts a sequence of token strings and returns static responses, function handlers or undefined if input is verifiable and otherwise throws an error.
Store the record tree in memory based on the JS object model.
Stick to the Record JS API specification regarding the handler model.
Satisfy API required by #1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.