QuickJS for Visual Studio

I’ve ported QuickJS engine by Fabrice Bellard and Charlie Gordon to standard C (without GCC extensions) and Windows. Yet added premake5 to generate MS VS solution. See it on GitHub.

Premake5 and Compilation of Sciter Engine.

Those famous “nightly builds”… Not a secret that compilation/build times are somehow critical for projects of Sciter’s scale. The fact: it takes from 4 to 6 hours to build Chrome/Chromium browser. And note – that is on dedicated build servers / farms, not on your work machine. So devops, as a desperate move, are forced to…

Robot Vasilii, progress report.

(that is continuation of my previous article about Vasilii the Robot ) Not too much progress actually as I am busy with Sciter. Behavior of the robot is still quite basic as you see: But at this stage I have finalized its on board framework with my async.hpp library – header only await/async primitives. async.hpp…

C# Span versus aux::slice

The Span<T> has landed in .NET Standard today. According to the article (Span<T> is) at the heart of most performance-related improvements in .NET Core 2.1. Since it allows managing buffers in a more efficient way, it can help in reducing allocations and copying. We consider Span to be a very fundamental type as it requires…

#include source “foo.c”, why not?

If we would have #include source construct that includes compilation units into final assembly (rather than just headers in-place) any library can be included to a project as plain .c file:

Sciter UI, basic principles. Calling code behind UI from worker threads.

I’ve updated the SDK with new sample: /sdk/demos/ui-framework . This sample demonstrates principles outlined in “Sciter UI, application architecture” article. In particular it demonstrates definition of native function (view.execTask() -> window::exec_task()) and call of UI methods (callbacks in this sample) from worker threads. I’ve explained idea of calling UI code from worker threads in this…

Comments in source code considered harmful

In the file ResourceFontFileLoader.h (offical Windows SDK samples) you can see variable declared as: static IDWriteFontFileLoader* instance_; As you see it is a raw pointer here. And in the file ResourceFontFileLoader.cpp it is initialized with this: // Smart pointer to singleton instance of the font file loader. IDWriteFontFileLoader* ResourceFontFileLoader::instance_( new(std::nothrow) ResourceFontFileLoader() ); Note the comment….