Skip to content

Releases: rts-lang/rts

231206.0

01 Dec 19:03
f0867d2
Compare
Choose a tag to compare

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.