Crates.io | merge-lang |
lib.rs | merge-lang |
version | 0.1.2 |
source | src |
created_at | 2023-11-09 03:40:33.01097 |
updated_at | 2023-11-09 03:44:38.251192 |
description | Merge Programming Language |
homepage | https://github.com/utfeight/merge |
repository | https://github.com/utfeight/merge |
max_upload_size | |
id | 1029711 |
size | 43,739 |
NOTE: Any of the features are not implemented yet. It’s planned to do so.
New approach to programming languages with generic multilang communication system, allowing you code with multiple programming languages in a project with a modern automated interface.
Developing a project using multiple programming languages can easily become a complex task. although there are some Simpler solutions to this problem. They generally lack relaibility, performance, stability etc.
This is a common situation that happens to all of us. For example:
X programming language has a library/framework that I cannot use with Y programming language.
There are some solutions to this problem like:
One of the few solution’s that I mentioned above are hard to implement in general. Others are:
Because of these strenuous ways of implementing multi-lang interfaces We introdoce you merge-lang
A generic meta programming language that automates the process of combining programming languages in a project
Merge takes another approach than the other solutions I mentioned.
Initial Algorithm
This is probably the most complex part of merge-lang. (Also the most innovative way) Look at the following example:
#[python]
use *;
fn main() {
python::print("hello, world");
#[python]
{
a = "world"
print(f"hello {a}")
}
python!{
a = "hello"
print(f"{a} world!")
import a from b
a.hello()
def python_fn():
return 5
};
let val_py = python!(python_fn());
let val_py = python::python_fn();
println!("from rust: {val_py}");
}
Writing our own compiler for all languages that we support would be imposible. Because of this merge compiler will split your code into pieces that external languages can understand.
With this tecnique you can integrate any programming language to merge-lang using It’s API
Merge language compiles to rust code, then LLVM IR and ASM.
The dependencies need to evaluate in a way that every language can get the value they need at the runtime in a linear way. (Just like single vs multi-thread apps)
Think this as a major surgery with you (the doctor) and Mr. Clumsy (the nurse)
And don’t forget that we made a preconception by saying that Mr. Clumsy will give us a thing.
It’s wanted to see a nice execution sequience between languages that you use.
merge package manager is pending right now.
Merge-lang introduces an API to be able to use more and more languages with it.
1 data transmissions done between programming languages.