Releases: rts-lang/rts
231206.0
Introduction
So, this is the first trial version of RTS. Half a year was spent on creating the entire intangible part, and another half a year was spent on creating this version. In the future, either a new release will be launched, or the revision will be increased, fixing the errors of the current version 231206. This versioning system clearly shows the development periods of the versions themselves and reflects the latest hot version. It’s important that you understand how it works.
General Performance
Based on my tests, the speed is still approximately 2-2.5 times faster than Python, and about 3 times more stable. Looking at it globally, it becomes clear that Python, with its older and huge implementation in C, lags behind the newer Rust, where RTS acts as a micro interpreter for its language. Furthermore, Rust performs better on modern processors than Python. As I have described in some sources, better results can be achieved, but the core mechanics are still being implemented, and Rust is fulfilling its necessary role in development.
Supported Systems
This version of RTS is compiled for Linux systems. Support for other systems is not on the agenda and is not currently supported.
Features
-
It has primitive data types:
UInt
Int
UFloat
Float
Char
String
RawString
FormattedChar
FormattedString
FormattedRawString
Link
None
-
Allows creating custom structures, such as the commonly known: lists, arrays, variables, functions, procedures;
-
Enables reactive referencing and updating of data;
-
Supports running multiple projects simultaneously in real-time (It’s also recommended to use bind with sh for easier integration of RTS into necessary tasks);
-
Built-in functions:
UInt(value: Any) -> UInt
Int(value: Any) -> Int
String(value: Any) -> String
Char(value: Any) -> Char
type(value: Any) -> String
randUInt(min: Any, max: Any) -> UInt
len(value: Any) -> UInt
input(beforeInput: Any) -> String
exec(script: Any) -> String
execs(script: Any) -> String
-
Built-in procedures:
println(value: Any)
print(value: Any)
clear()
go()
sleep(time: Any)
exit(code: Any)
How to Run?
You can run the RTS code with the following command: rts run <filename>
or rts run "<script>"
For help, you can use: rts help
and package help
, however, the package manager is still under active development.
What Examples Are Available?
In the release archive, there is a tests
folder with test scripts, which can also be run simultaneously via test.rt
; Additionally, there is an examples
folder where you can find several more examples.
You can also try packit – a small wrapper around pacman for easier package management on ArchLinux.
What Is Planned?
- Increase the stability of the current interpreter's performance;
- Add necessary data types:
Adress
Rational
Complex
TokenType
- Expand the size of primitive types
UInt
,Int
,UFloat
,Float
to an infinite amount of data; - Add handling of
UFloat/Float
variants in the following style;.0 = 0.0
.
=0.0
- Add division by zero;
- Add more primitive methods;
- Launch the package manager;
- Create more detailed version documentation on the official language website;
Important
- It is important to remember that RTS denies the concept of errors and will not warn you about faults, nor will it shut down because of them. Handle and write code according to your programming skill level;
- RTS performs automatic type conversion when passing arguments to methods, but this does not occur during conditional and mathematical operations;
- Additionally, do not forget that RTS forces you to create the necessary data types or import existing ones from the package manager. This means that most standard implementations are not built-in within the language.
That’s all, please report any real errors, suggest ideas, and offer assistance in the development of RTS, thus improving the future stability and free operation of programs written in the RTS programming language.