Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replaces NTSL in favour of João, a new programming language #12517

Closed
wants to merge 13 commits into from

Conversation

Altoids1
Copy link
Contributor

@Altoids1 Altoids1 commented Oct 23, 2021

image

IMPORTANT:

  1. This modifies the extools binary, and has extools as a dependency (for now).
  2. This PR could function on its lonesome, but it makes the most sense to merge the associated sister PR located over here: Encorporates João, a new programming language, into extools extools#15.

Summary

Hi guys, it's NTSL man again, finally here to pull the trigger and put it out of its misery.

NTSL has always been a slow and questionably-designed language, and when working on it I've always wanted to write a language of my own design, that could run faster and be more accessible to new programmers.

The Language

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.

image
The new programming language is my reply to the design motifs of DM, with a design philosophy more akin to Lua. It has the goal of being minimalistic and relatively easy to pick-up and learn, as Lua is, while still having an object orientation that's analogous to DM's setup.

The Traffic Computer

image

This PR updates a lot of how the Traffic Computer looks and feels. It is now easier to navigate and far cleaner-looking. In addition, primitive syntax highlighting has been added to the programming window to improve the coding experience.

Wiki Documentation

The documentation is still a work in progress, as of writing. A partial doc has been written up as a Github Page thing, located here.

To-do Checklist

  • Get João compiling and working as an extools module
  • Connect João to the telecomms system
  • Update the Telecomms scripting UI to include syntax highlighting for João, as well as other graphics improvements
  • Implement a garbage collector for João
  • Do a run of bugfixes for João to make it production-ready (currently doesn't pass all checks on the main repo ): )
  • Do whatever IPC nonsense is necessary for this to be sufficiently secure and safe for the Linux build
  • Finish the documentation for João (you can follow my progress here)
  • Complete an addendum documentation for using João as a telecommunications language

Changelog

🆑 Altoids
rscadd: The Traffic Computer (read: the NTSL computer) has gotten a glorious UI cleanup, with delightful TGUI polish!
rscadd: The Traffic Computer now attempts to do syntax highlighting on code written into it.
rscadd: Added Joao as the new telecomms scripting language. Check the PR, Discord, and elsewhere for documentation!
rscdel: Removed NTSL
bugfix: Fixed NTSL slowing the server down
tweak: Increased the maximum size and complexity of telecomms scripts to account for the faster programming language
spellcheck: The Traffic Computer finally has a description that (attempts) to explain what the hell it is.
/:cl:

The debug verb for running João now at least works, and this extools binary has a working copy of João to call.

Commit for this extools binary: yogstation13/extools@97510dc
Doing this has been a huge pain, but, hey, it kinda displays syntax highlighting incorrectly. Woo!

I don't really know what commit this dll binary is from and I don't really care.
...except for the code editor 😉

Honestly mildly embarrassed at how long it took me to write this but that's neither here nor there
The syntax highlighting isn't very comprehensive nor well-programmed but it is now working. Huzzah!
It works! 🎊

Accidentally removed the Poly achievements with this commit but I pinky promise to put them back later. <3
This is... probably an improvement.
@Yogbot-13 Yogbot-13 added DME Edit This PR affects the yogstation.DME file Feature This adds new content to the game Fix This fixes an issue. Please link issues in fix PRs Javascript This PR contains javascript code. Revert / Deletion Altoids is probably mad about this Tweak This PR contains changes to the game. labels Oct 23, 2021
@github-actions github-actions bot added Admin This PR affects administrators tgui This PR affects TGUI labels Oct 23, 2021
@Cartlord
Copy link
Contributor

How are we supposed to pronounce the name of this language?

@Moja10
Copy link
Contributor

Moja10 commented Oct 29, 2021

JO-AIE-UH

@optimumtact
Copy link
Contributor

so your genius plan here is to give people access to a full programming language virtual machine, written in C++ RUNNING ON YOUR SERVER?

@SweptWasTaken
Copy link

so your genius plan here is to give people access to a full programming language virtual machine, written in C++ RUNNING ON YOUR SERVER?

Idk why anyone bothers with these programming PRs because the only people who use them are exploiters and coders (coders don't play the game anyway).

@optimumtact
Copy link
Contributor

honestly the more I thought about this the more I realised this is just what byond already is so jokes on me I guess.

@Moja10
Copy link
Contributor

Moja10 commented Feb 16, 2022

WHERE JO-A-AEY

@Altoids1
Copy link
Contributor Author

WHERE JO-A-AEY

soon ;-;

@TheGamerdk TheGamerdk added the Stale I'm closing this in like a week if you don't push a new commit label Apr 11, 2022
@Altoids1
Copy link
Contributor Author

Altoids1 commented Apr 11, 2022

Can't really be worked on until #13479 is merged or otherwise resolved.

The language itself however is in active development; you can see my progress over the last year at this repository.

@TheGamerdk TheGamerdk removed the Stale I'm closing this in like a week if you don't push a new commit label Apr 24, 2022
@Boxlta
Copy link
Contributor

Boxlta commented Jun 2, 2022

Will this have inbuilt support for Regex? Would be really nice for comms stuff

@Altoids1
Copy link
Contributor Author

Altoids1 commented Jun 3, 2022

Will this have inbuilt support for Regex? Would be really nice for comms stuff

Probably not at launch, but I do want to set up a basic regex engine eventually.

@TheGamerdk
Copy link
Contributor

Cleaning up the old PRs. I'll notify you when auxmos is merged. Feel free to reopen now or anytime later, very cool project.

@TheGamerdk TheGamerdk closed this Oct 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Admin This PR affects administrators DME Edit This PR affects the yogstation.DME file Feature This adds new content to the game Fix This fixes an issue. Please link issues in fix PRs Javascript This PR contains javascript code. Revert / Deletion Altoids is probably mad about this tgui This PR affects TGUI Tweak This PR contains changes to the game.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants