wasm2ps
porth
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.
wasm2ps
-
Compiling via Forth?
It's come up in discussions I've been in before, mostly with the PostScript document language, since you can run programs on your printer with PS, albeit incredibly slowly. I've written a roundabout C-to-printer compiler of sorts which compiles WASM code to PS, and it is admittedly even slower because it doesn't do much on the stack. But stack languages and linear logic have a pretty neat correspondence.
-
A challenger to the throne of vector graphics. SVG is dead, long live TinyVG
I'm not a fan of the usual uses of S-expressions in data formats, but for quite the opposite reasons. People seem to have a thing for making up new syntax, so you can't just throw a normal S-expression parser at the problem, and be done with it. For example, the wasm2ps reader [1] has to know how to read a comment in the WebAssembly text format. I decided to leave the project at handling integer instructions and control flow only, as there are other oddities like using a single atom for alignment and offsets in load and store instructions [2]. Some people I've talked to wished that people would stop inventing ad-hoc syntaxes, and just use S-expressions or something. Using S-expressions but adding more ad-hoc syntax gives you the worst of both options.
While admittedly less of a problem for implementation, it is also annoying to see lists with dangling parens on their own lines, and symbols with underscores or camelCase in the names, once you are used to the normal way of formatting Lisp code.
[1] https://github.com/no-defun-allowed/wasm2ps/blob/master/Code...
- WASM to PS Compiler
porth
-
Stack-based array-friendly static-typed proof of concept
Yes, unless there's another language I'm unfamiliar that shares the name. But the inspiration and some core ideas came from Porth: https://gitlab.com/tsoding/porth
- Porth, it's like Forth but in Python
- Porth, It's Like Forth but in Python
-
Stack machines for compilers
Here's an interesting solution: in the language Porth which was inspired by forth (but takes some drastically different choices), there's an option to create separate scored bindings, which can either consume items from the top of the stack, or duplicate them, leading to some very slick solutions to the problem of limited access to the stack.
-
How to build a language mode from scratch?
I personally haven't done that, but a very simple example, that I can think of is this one: porth-mode.el. The minor-mode doesen't do much, but maybe it helps understand the basic concepts.
-
Compiling via Forth?
You might want to look into Porth; IMO RPN doesn't have to be hard to read, Forth is just really terse and not very modern.
-
single pass compilers (basic questions)
I believe Tsodings - Porth is a single pass compiler. Currently in development - it has some great vlogs and is also self hosting. He's recently said that re-implementing Porth straight up has become an issue for him - so please just take inspiration only. I suspect a concatenative language is quite a natural fit for a single pass compiler.
-
Why hasn't anyone made a compiler for Python yet?
Tsoding did with his porth. Original conpiler written in python then reimplemented in porthq https://gitlab.com/tsoding/porth
What are some alternatives?
iconvg - IconVG is a compact, binary format for simple vector graphics: icons, logos, glyphs and emoji.
Windows11DragAndDropToTaskbarFix - "Windows 11 Drag & Drop to the Taskbar (Fix)" fixes the missing "Drag & Drop to the Taskbar" support in Windows 11. It works with the new Windows 11 taskbar and does not require nasty changes like UndockingDisabled or restoration of the classic taskbar.
svgomg - Web GUI for SVGO
Dress - 好耶 是女装
specification - The specification for TinyVG. This is the central authority for the file system
setoolkit - The Social-Engineer Toolkit (SET) repository from TrustedSec - All new versions of SET will be deployed here.
metalang99 - Full-blown preprocessor metaprogramming
DIM - Destiny Item Manager
bootstrap-vue-next - Early (but lovely) implementation of Vue 3, Bootstrap 5 and Typescript
dim - Dim, a media manager fueled by dark forces.
formik-mui - Bindings for using Formik with Material-UI
monkeytype - The most customizable typing website with a minimalistic design and a ton of features. Test yourself in various modes, track your progress and improve your speed.