Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Conversation

@Altoids1
Copy link

@Altoids1 Altoids1 commented Sep 10, 2021

image

IMPORTANT:

  1. This includes, as a submodule, this repository: https://github.com/Altoids1/Joao
  2. This PR does not function on its lonesome; full functionality requires the merging of a sister PR to the main Yogstation repo: Replaces NTSL in favour of João, a new programming language Yogstation#12517

Summary

João is a programming language created by me over the last several months, with an actively-developed interpreter written in C++17. Jamie & others have greenlit me working on hooking it up to SS13 as a replacement for NTSL. The point of doing so is twofold:

  1. João has syntax which more resembles DM code, allowing for a smoother transition for new script kiddies taking up programming through playing as a Signal Technician in-game.
  2. João, being a CPP program, runs significantly faster than NTSL, and in a more secure fashion since memory and CPU usage can be measured in a direct and constant way.

This is a big and multi-faceted project so I am leaving a draft PR here to show my progress over time. A checklist will be kept on the main PR.

The Joao/main repository is now a Git submodule within /joao_repo, especially prepared to work as this hunk of code compiled along with the rest of the extools DLL.
Seemed weird to not have this when get_by_id() is available. API improvements, woo!
There's still some iffy decisions here, especially that it currently totally crashes when a parser or scanner error takes place, but it does indeed work!

UPDATES THE JOAO SUBMODULE TO THIS COMMIT: Altoids1/Joao@4c2267c
Copy link
Member

@alexkar598 alexkar598 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just putting this here too, this running in the same process as byond is unacceptable as far as I'm concerned. This will need to use some IPC mechanism to split the runtime into a separate process that I can isolate.

Writing bad code no longer crashes the server. Woo!
@alexkar598
Copy link
Member

Closing as main repo counterpart was also closed

@alexkar598 alexkar598 closed this Mar 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants