Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New command line platforms that support event loops and workers (win, mac, lin) #528

Open
wants to merge 37 commits into
base: public
Choose a base branch
from

Conversation

cmidgley
Copy link
Contributor

Implementation of a command line (headless) platform for Windows, Mac and Linux. Full support for the event loop, including timers, promises, and workers. Introduces new platform types of cli-mac, cli-win, and cli-lin. Supports dynamic mod loading by specifying the path to the archive (xsa) file as the first argument to the cli program. Updated many manifest files to support these platforms (though there are others likely still needing to be added, which should be fairly easy as they are discovered and tested).

The new code is mostly under contibuted/cli, however many manifest files in the primary code base had to be adjusted to include the new platform types. I believe these changes will not break any existing builds or code as they changes should only come into play when the cli-XXX platform types are used.

See the included README file in the contibuted/cli folder for usage information. Since it is using a new platform type, usage is as simple as mcconfig -m -p cli-mac (or whatever platform you want), and then running the resulting application. Examples which do not depend on the screen, and are supported on the host platform, should work "out of the box". This does mean, however, that production code is automatically including contibuted content (only when -p cli-XXX is used). If this is not acceptable, a solution would be to revert the examples/manifest_base.json file and add that file instead to contributed/manifest_base.json (though any example or code base would then need the manifest changed to be tested with cli).

Also includes:

  • Fix to Instrumentation example manifest (did not have the required Instrumentation module)
  • Change to xs_debug.c to only attempt connections to the debugger once per session (eliminates a timeout / delay when starting a worker when the debugger is enabled but not running)
  • Altered Worker to check for debugger connection prior to making instrumentation calls, to clean up instrumentation output when not connected to the debugger on the console

Fixes #522

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Dynamically loading mods on platforms x-cli-*
1 participant