|23 days ago||2 months ago|
|MIT License||GNU General Public License v3.0 or later|
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.
Optimizations Enabled by -ffast-Math
1 project | news.ycombinator.com | 20 Oct 2021
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:
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".
Can C++ and JS be used together?
1 project | reddit.com/r/learnprogramming | 27 Apr 2021
- Duktape (4.8k stars)
Show HN: A Full-Stack Web Framework Written in Go
18 projects | news.ycombinator.com | 13 May 2022
My two favorite Linux JS runtimes: QuickJS, low.js
What's everyone working on this week (15/2022)?
9 projects | reddit.com/r/rust | 11 Apr 2022
Chrome 0day is being exploited now for CVE-2022-1096; update immediately
8 projects | news.ycombinator.com | 26 Mar 2022
https://bellard.org/quickjs/ would be the easiest effort then
Ask HN: Why aren't there any real alternatives to Electron?
11 projects | news.ycombinator.com | 26 Mar 2022
8 projects | news.ycombinator.com | 8 Mar 2022
Errors using Zig build to cross-compile C library to Linux from Mac
1 project | reddit.com/r/Zig | 10 Feb 2022
I'm dipping my toes into Zig by trying to leverage zig build for cross-compilation of the QuickJS sources (https://github.com/bellard/quickjs). My build.zig is pretty basic:
Elsa – Minimal, fast, secure runtime for TypeScript written in Go
2 projects | news.ycombinator.com | 7 Feb 2022
> runtime for TypeScript written in Go
[AskJS] Why does our community hate Operator Overloading?
I'm not sure who hates it, but I have seen it abused (which people don't like). But, quickjs has it now, and there's a proposal to have it added to the JS spec. The proposal is only stage 1, so who knows what will happen with it or when, but its not counted out.
What are some alternatives?
V8 - The official mirror of the V8 Git repository
Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
ChaiScript - Embedded Scripting Language Designed for C++
SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
squirrel - Official repository for the programming language Squirrel
Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
edex-ui - A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.