grace
Jinx
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
grace
-
August 2022 monthly "What are you working on?" thread
I've made a lot of great progress on Grace, my bytecode interpreted language. Its syntax is inspired by Python, but it's very opinionated with some more "rigid" semantics. While there are probably some bugs I need to find and weird syntax errors I haven't tried yet that will break the compiler, it's got functions, control flow, file importing, built in primitive types and lists and dictionaries, and exceptions fully implemented.
-
C++ Show and Tell - April 2022
I've been working on my own interpreted language Grace (https://github.com/ryanjeffares/grace) using C++17. It's similar to Python and Ruby, but I intend on using reference counting as opposed to a garbage collector. Top priority now are classes, functions as first class objects, importing other files, native functions, and squeezing out some more performance - most operations are really fast but my function calls are a serious bottleneck, will need a refactor. It's my first lang after following Robert Nystrom's Crafting Interpreters and some other resources, been a tonne of fun!
Jinx
-
DreamBerd is a perfect programming language
Check out jinx https://jamesboer.github.io/Jinx/
-
what is your CI/CD pipeline setup and how are you handling larger binaries? are smaller game dev studios just brute forcing through LFS and building for each test?
Don't get me wrong, I'm a big fan of automated tests where it makes sense. I wrote a scripting language that I use for my personal game projects, and I never would have been able to do it if it weren't for the battery of tests for every feature, error, and corner case I could think of. But games are rarely like other software, with hard rules about what is "correct" or "incorrect". And it would be a nightmare to try to keep up with designers, constantly tweaking and tuning, so what's "correct" is literally a day to day, constantly moving target.
-
any modern procedural programming languages?
A second trial for you might be Jinx. Depending on your definition of procedural, Jinx is 100% only procedural. https://jamesboer.github.io/Jinx/
-
Which phases/stages does your programming language use?
Jinx (embeddable scripting language) works as following:
- How do I create a file that will automatically compile and run my c++ program when I double click it?
-
Is I already know C and OOP, do I basically already know C++?
Feel free to look at my own interpreter, written in modern C++. You're welcome to ask me if you have any questions.
-
I'm curious what a gameplay programmer would use a scripting language for
I use my own scripting language more like content, especially for things like one-off events and behaviors. Example: scripting special behaviors for a boss fight, or a room with a unique trap in it, or any other sort of one-off behavior that would be overkill for C++, but too complex for most other types of data-driven content. These days, visual scripting also helps to fill in these gaps between content and procedure.
-
What are the best free books for learning to write interpreters in C++?
You're welcome to look at my scripting language Jinx, written in modern C++. Just let me know if you have specific questions. Data flow is JxLexer.cpp -> JxParser.cpp -> JxScript.cpp. Most everything else is implementation details. Also, note the parer is pretty complex, mostly because Jinx has a crazily flexible syntax for functions.
-
Design examples for runtime scripting
Feel free to look at Jinx if you want an example of what I consider a fairly easy-to-use and integrate scripting system. Obviously, I'm a bit biased since I wrote it.
-
Is just UTF-8 support good enough?
If you're working in UTF-8 internally, you could just write your own UTF-16 to UTF-8 conversion functions to convert strings at API boundaries. I did this in my scripting language because I didn't want to bring in dependencies.
What are some alternatives?
RESTCpp - Cross Platform Multi threaded REST API / HTTP Server framework using thread-pooling implementation with modern C++
vigil - Vigil, the eternal morally vigilant programming language
rodin - Modern C++17 finite element method and shape optimization framework.
funl - FunL programming language
boba - A general purpose statically-typed concatenative programming language.
RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API
kuroko-wasm-repl - In-browser REPL for Kuroko
utf8.h - 📚 single header utf8 string functions for C and C++
minithesis - A very minimal implementation of the core idea of Hypothesis
langs
chrgfx - Converts to and from tile based graphics from retro video game hardware
zhetapi - A C++ ML and numerical analysis API, with an accompanying scripting language.