V compiler... but tinier
A simplistic compiler for the V language: https://github.com/vlang/v
This is an experiment & may change drastically at any moment.
tinyv was started as a research project to discover ways to simplify & improve the main V compiler.
The fundamental principles of tinyv are simplicity & stability, and it must remain simple.
I'm very passionate about the V project & it's community. My goal is to make V the best it can be.
I love the simplicity of V, although over time the complexity of the compiler has increased significantly. It can be challenging to test new ideas (especially regarding core features). This project allows me to easily try out new ideas and simplifications without existing constraints.
x := $fn_call() (actual syntax may differ), the function will go through the normal stages AST -> IR -> Bytecode and will then be run through the interpreter, the result will be statically compiled into the program.Struct will provide metadata for fields, methods, and their types. Objects will be able to expose this data by satisfying the interface, no special implementations needed.$global.metadata.osstruct_inst.$metadata.fieldsfunction.$metadata.return_typemut &x but this doesn't make sense for fn args, because then what is a mutable non reference? mut xunsafe, and would probably rarely be used. However there are certain areas, for example game development where the lack of this feature could be a non starter. For example when dealing with huge arrays of data structures like game assets or entities.ln -s /path/to/code/tinyv/src/tinyv $HOME/.vmodules/tinyv
v run src/cmd/tinyv/tinyv.v --skip-builtin --skip-imports -d test/syntax.v
V
96.3%
Verilog
3.7%
V compiler... but tinier
A simplistic compiler for the V language: https://github.com/vlang/v
This is an experiment & may change drastically at any moment.
tinyv was started as a research project to discover ways to simplify & improve the main V compiler.
The fundamental principles of tinyv are simplicity & stability, and it must remain simple.
I'm very passionate about the V project & it's community. My goal is to make V the best it can be.
I love the simplicity of V, although over time the complexity of the compiler has increased significantly. It can be challenging to test new ideas (especially regarding core features). This project allows me to easily try out new ideas and simplifications without existing constraints.
x := $fn_call() (actual syntax may differ), the function will go through the normal stages AST -> IR -> Bytecode and will then be run through the interpreter, the result will be statically compiled into the program.Struct will provide metadata for fields, methods, and their types. Objects will be able to expose this data by satisfying the interface, no special implementations needed.$global.metadata.osstruct_inst.$metadata.fieldsfunction.$metadata.return_typemut &x but this doesn't make sense for fn args, because then what is a mutable non reference? mut xunsafe, and would probably rarely be used. However there are certain areas, for example game development where the lack of this feature could be a non starter. For example when dealing with huge arrays of data structures like game assets or entities.ln -s /path/to/code/tinyv/src/tinyv $HOME/.vmodules/tinyv
v run src/cmd/tinyv/tinyv.v --skip-builtin --skip-imports -d test/syntax.v
V
96.3%
Verilog
3.7%