|28 days ago||about 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)
How to use C++ as the core language for a Fantasy Console?
1 project | reddit.com/r/cpp_questions | 15 Nov 2021
If you want to use C++ for scripting, take a look at Jason Turner's ChaiScript
Enabling C/C++ compilation in an application.
4 projects | reddit.com/r/cpp | 1 May 2021
3) Similiar to 2, but use more common scripting languages: chai, cs-script, sol2 (c++ framework to embed lua)
ArkScript, a language designed to be used in C++ projects, now has macros
3 projects | reddit.com/r/cpp | 26 Mar 2021
A few years back I actually went and made a ChaiScript based video game engine (https://16bpp.net/blog/post/masala-a-chaiscript-game-engine/). The end goal for it was to be able to make a Pacman like clone, but have all of the game logic implemented in ChaiScript. I actually found out as I added more realtime elements (implemented in ChaiScript) that it started to take much longer to process the game logic; the "game loop FPS" was under 60, which is not good. I actually proposition that ChaiScript move to a bytecode VM (https://github.com/ChaiScript/ChaiScript/issues/266), but I'm guessing that no movement was made on that front.
Is it advisable to embed python in c++ ? Have anyone tried it, what is the best way to do it?
2 projects | reddit.com/r/cpp_questions | 26 Mar 2021
Looking for a codegen library that uses C++ for scripting
3 projects | reddit.com/r/cpp | 10 Mar 2021
Maybe ChaiScript? It is not exactly what you are looking for, but very similar, in my opinion.
What are some alternatives?
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.
V8 - The official mirror of the V8 Git repository
squirrel - Official repository for the programming language Squirrel
luacxx - C++11 API for creating Lua bindings
Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
sol2 - Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.