Discussion on: Who's looking for open source contributors? (September 17 edition)

thomasthespacefox profile image
Thomas Leathers

SBTCVM, a balanced ternary virtual machine project, which is written in python, is looking for developers with lower-level experience, interested in writing applications, games, ect. that are capable of running within the VM itself.

2 external programming languages are available:

  • SBTCVM Assembly: list-style assembler with automatic addressing, and a standard library of sorts.
  • SSTNPL: slightly higher level language with named integer variables, and goto-based subroutines.

Both of these support decimal in their syntax, so knowledge of balanced ternary isn't strictly necessary starting off.

Also, devs wanting to help with the VM, utilities, and compilers will need knowledge of python, and retro/embedded computing, the latter due to the VM's rather constricted specifications.

Devs should try and familiarize themselves with SBTCVM's basic features and principals, before trying to jump into the python codebase head-on.

python 2.7 and 3 compatible.

repo: github.com/SBTCVM/SBTCVM-Gen2-9
list of existing utilities and applications: sbtcvm.blogspot.com/p/utilities.html

btaskaya profile image
Batuhan Osman Taşkaya

Great Project 👏👏 I love CPU/Memory abstraction applications like VM's (i worked on YerliMilliVM for Kebablang. It process bytecode formed instrucationa that generated by KebabLang. Abstracts Memory, CPU and registers. github.com/BTaskaya/YerliMilliVM)

2 things may be improved:

  • Coding Style & Repository Structre
  • Docstrings instead of one line descriptions.

And forget Python 2 support. No one cares py2, it sucks.

thomasthespacefox profile image
Thomas Leathers

firstly: its doing more than abstracting CPU and memory. its abstracting the very binary logic of the computer its running on. So naturally the code is going to get a bit on the complicated end of things. It has a full development toolchain, including 2 compilers, all custom built.

secondly: that codebase IS in alpha, and the repository structure is due to SBTCVM being designed as a self-contained, multiplatform package. The codebase is actually far better technically than its predecessor. using a modular design, with frontend code compartmentalized for easier development of additional frontends.

Thats not even mentioning the fact that the CPU is clocked at 6.5Khz. that might not seem like much, but that means the CPU parser is running 6500 times a second.

thirdly: python 2 support is staying until at least its EOL in 2020. That's my decision, and I'm sticking with it.

as for the coding style. I'm honestly more concerned with the modularity, maintainability, and speed of it, rather than how it looks.

still Gen2 is a massive improvement. Gen 1, as it was based on the first prototype, was much worse:

Thread Thread
btaskaya profile image