drwhut / decision Goto Github PK
View Code? Open in Web Editor NEWA general-purpose, visual programming language.
License: GNU General Public License v3.0
A general-purpose, visual programming language.
License: GNU General Public License v3.0
Instead of storing the socket's connections in an ordered list, where it would take O(log n)
time to find, why not implement a hash table? That way, it would be O(1)
time to find the socket and it's connections.
Since the future GUI Editor will most likely involve the Godot Engine in some capacity, it doesn't make sense to install CMake for one and SCons for another.
For example, if someone is dragging a wire from an output execution socket, the function would return all node definitions with an input execution socket.
Should probably implement a getter and a setter function instead.
e.g.
PUSHB 0x1
POP
This guarantees type safety - especially with the C API.
Having multi-line comments will be difficult to work with when it comes to GUI editors storing their metadata.
Maybe have anything after a >
be a comment on that line?
With the -pedantic
flag, gcc throws a hissy fit that doing this "isn't part of the ISO C Standard".
Instead of directly putting the function pointer in the text section, maybe put a pointer to the CFunction
struct instead?
With the VM now storing the types alongside the data in the stack, we should now be able to make custom functions with vague data types.
Values would still have distinct types in the VM, it would just mean that the VM would decide how to use them depending on their types.
We could always optimise by having more specific opcodes if we know for a fact a given value will be a distinct type.
This way we can later check to see if an object file is incompatible.
Instead of the order of insertion, order lexicographically, and use binary insertion/search.
This is here as a reminder for me to make sure the compiler doesn't try and load object files from v0.3.0.
Right now, all strings are stored as byte-character arrays. They should be stored as wide-character arrays instead so that unicode characters can be used in Decision.
It should give a VM runtime error.
e.g. scanf_s
, sprintf_s
.
We will always need to put down a value in Decision code anyway...
This way, we don't have to remember to update the core reference every update.
Not actually sure what happens - we want defined behaviour here.
What if someone changes the contents of the file after it is compiled?
Give the user the option to either generate a static or a shared library, and have the executable just use the functions from the library.
We would need to separate the main
function into a separate file, though.
This happens a lot in the code.
It doesn't make intuitive sense for one to be "more" than the other.
Also make sure they can't be mixed with other data types.
This will allow GUI editors to directly get the input and output names from the Decision library.
This would also allow us to automatically update the user manual reference if we had a way to export the data.
It's annoying to have to type 1.0 instead of 1.
The best way to do this is to have the biggest elements of structs first, and the smallest elements last.
Right now, it is very error-prone.
e.g. And(5, 17)
would output 1
.
With the new sheet structures in the function-metadata
branch, data like the names of functions is duplicated across multiple sections of object files.
This way in the source code we have three defines for the major, minor, and patch number. This would help us later on when we want to compare version numbers.
This would allow for an infinite amount of "local variables", and we could reduce the number of registers in the VM.
We should also make the stack dynamically allocated so it can grow and shrink.
Learnt some stuff at university that would seriously help with Syntax Analysis.
This would allow Decision to be easily embedded into other programs.
This way, we can test Decision continuously on all 3 platforms: Windows, macOS, and Linux.
For example, Equal(true, true)
would return true
.
This way, when we get around to having Decision shared library files (i.e. dll, so), it can just return a Sheet with the C functions defined in it.
For example, if a node has been misspelt.
This is just here as a reminder, as a lot has changed.
For example, Concatenate
.
As of now, the optimisation stage will change every other instruction if needed every time bytecode is removed!
Instead, maybe "mark" bytecode to be removed over time, then remove the bytecode all at once at the end, changing instructions if necessary?
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.