@Radnen If you feel like it, you could join the Discord chat while experimenting with the new API. Really helps to leave feedback on it especially when you find a bug, or you'll get a quick response on how something works.

Bad news I'm afraid regarding the miniSphere build for macOs. It appears that a new security feature of some kind in macOs High Sierra breaks it. (The error message you'll get is "can't find system font")

The build should still run fine on macOs Sierra though.

For anyone who's at the bleeding edge with macOs I'll try and find a way around this but not really sure what the answer is yet - it may have t have an installer or the answer may be that I just to put the system folder inside the app bundle - and change the path handling to expect this.

For now sphereRun is still usable, so if you're ok with having to launch everything from the command line it's all good... (I assume apple doesn't apply security to unix style applications in the same way they do to app bundles)

miniSphere 5.1.1 is up and fixes a bug where the engine could crash on startup if a game had any circular import dependencies. The macOS build has been updated to the latest version as well. Special thanks to @Rhuan for this release.

miniSphere 5.1.3 - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enourmous man eating pigs ~Rhuan

@Rhuan and I have been working on a great new debugging aid which is coming in miniSphere 5.2. Historically, rejecting a promise in miniSphere would crash the specific promise chain it occurs in, but otherwise go unnoticed. This can cause some very strange and difficult-to-understand behavior in heavily asynch code, especially in codebases where async functions are used heavily (like my own Spectacles project). To illustrate the problem, take this code:

This will hit all the SSj.log() calls except for the second one in pig(), and terminate normally. That happens because pig(), being an unawaited async call, crashes at the throw without affecting the primary (i.e. synch) code path; the promise representing its return value is simply rejected sight unseen.

Broken promises are annoying and difficult to debug, but thanks to @Rhuan's hard work getting promise rejection tracking into ChakraCore, in miniSphere 5.2, the code above will be detected as a runtime error (by the event loop) and generate an error screen with a stack trace the same way an exception in synch code does. This will make debugging async code much more pleasant.

miniSphere 5.1.3 - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enourmous man eating pigs ~Rhuan

Heads up: The next Windows release will be 64-bit only. I've considered doing this a few times before, but kept backpedaling since I still wanted to support XP/Vista. There are few factors that make going full 64-bit make more sense now:

ChakraCore minimum requirement is Windows 7 SP1. Except for circa 2009 Atom-based netbooks with crappy integrated graphics (on which the OpenGL experience was awful), the vast majority of consumer PCs made around this time came with a 64-bit version of Windows 7 preinstalled. At least this was my experience.

32-bit Linux and macOS are already unsupported, as the ChakraCore build script only supports x64 builds. This fact alone makes continuing to support 32-bit Windows feel like an anachronism.

So yes, long story short: miniSphere 5.2 5.1.2 and later will require a 64-bit operating system on all platforms.

edit: This change came earlier than expected and has been implemented starting with miniSphere 5.1.2.

Last Edit: February 07, 2018, 12:59:34 pm by Fat Cerberus

miniSphere 5.1.3 - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enourmous man eating pigs ~Rhuan

miniSphere 5.1.2 improves exception handling for asynchronous code. Unhandled rejected promises--and by extension, uncaught exceptions in async functions--will now trigger the error screen the same as a normal exception. It also adds system-directory packaging: When packaging a game into an SPK, Cell will now include the system files to future-proof the package (do note that the packaged system files will be ignored unless the package is run with v5.1.2 or later).

These are somewhat large additions for a point release (and technically violate semantic versioning rules), but they are low-risk changes and I wanted to get these out sooner rather than later, particularly the async exception handling.

Note: In line with the post above, the Windows release of miniSphere 5.1.2 is 64-bit only.

miniSphere 5.1.3 - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enourmous man eating pigs ~Rhuan

miniSphere 5.1.3 - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enourmous man eating pigs ~Rhuan

I've updated the link for the macOS build in the OP to 5.1.3. All supported platforms are now up to date.

miniSphere 5.1.3 - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enourmous man eating pigs ~Rhuan