Top 6 JavaScript Scripting Projects
-
Fast math optimizations can break code like this by breaking isNaN.
I was porting a C++ project to a certain platform - and that platform enabled a -ffast-math equivalent by default in Release (but not Debug) builds! This broke duktape, a JS engine said project embedded, in some nasty and subtle ways. Instead of storing a number/pointer/??? (8 bytes) + type tag (4? bytes) for each dynamically typed JS value, duktape can bit-pack values into a single 8 byte "double" value by storing object/string handles as NaN values - this isn't an uncommon trick for dynamically typed scripting stuff:
https://github.com/svaarala/duktape/blob/c3722054ea4a4e50f48...
Naturally, the -ffast-math equivalent broke isNaN checks, which caused random object/string handles to be mistakenly reinterpreted as "numbers" - but only in Release builds, for this one particular platform, in one rarely taken branch, so neither QA nor CI caught it, leading to hours of manufacturing a repro case, stepping through an absurd amount of code, and then finally looking at the default build rules and facepalming.
Cursing the platform vendor under my breath, I overrode the defaults to align with the defaults of every other config x platform combination we already had: no fast math. If you want those optimizations, use SSE-friendly NaN-avoiding intrinsics - or, if you must use the compiler flags, ensure you do so consistently across build configs and platforms, perhaps limited to a few TUs or modules if possible. This allows you to have a chance at using your Debug builds to debug the resulting "optimizations".
-
Project mention: Copy a Secret with CopyQ (a great solution that can be optimized) | reddit.com/r/opensource | 2022-01-12
Link to Code 1
-
Appwrite
Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!
-
orko
Trade on and script multiple crypto exchanges from a single user interface on desktop and mobile. In development.
-
-
-
JavaScript Scripting related posts
Index
What are some of the best open-source Scripting projects in JavaScript? This list will help you:
Project | Stars | |
---|---|---|
1 | Duktape | 5,240 |
2 | copyq-commands | 200 |
3 | orko | 170 |
4 | Carilana | 27 |
5 | gushio | 16 |
6 | massive-wax | 7 |
Are you hiring? Post a new remote job listing for free.