Skip to content

Releases: MCJack123/craftos2

CraftOS-PC v2.4

15 Aug 18:19
40bdbb4
Compare
Choose a tag to compare

After a month and a half of development, CraftOS-PC v2.4 is ready for release. This version includes a new renderer that uses the GPU to accelerate the terminal. It also contains a whole bunch of bug fixes and some small features. Last but not least, CraftOS-PC v2.4 introduces a brand-new icon. Inspired by macOS Big Sur's new design language, this new icon is high-resolution, high-color, and highly-textured. I hope you enjoy all of the new features and fixes CraftOS-PC v2.4 brings.

  • Added new GUI terminal that uses hardware rendering (experimental)
    • It uses the GPU to accelerate drawing graphics
    • Uses the same base code that was used prior to v2.1, with updates that have been added since
    • Support can be enabled with the useHardwareRenderer config option or the --hardware or -r hardware-sdl CLI flag
    • A test script is available to see which is better for your system
      • You can run it with gist run 802f64508a1f51b3244f5bcc0414ca22
    • Vsync can be enabled with the useVsync option
    • The driver to use can be selected with the preferredHardwareDriver config option or the -r CLI flag
      • These are all of the possible drivers:
        • direct3d
        • direct3d11
        • directfb
        • metal
        • opengl
        • opengles
        • opengles2
        • software
      • Some drivers may not be available on your system
      • Use craftos -r to list all available drivers
  • Updated CC:T version to 1.90.2
    • Add cc.image.nft module, for working with nft files. (JakobDev)
    • Add configuration to control the sizes of monitors and terminals. (defaultWidth/defaultHeight)
    • Fix string serialization error in textutils.serializeJSON.
  • Brand-new app icon
    • Designed especially for CraftOS-PC
    • Inspired by the aesthetic of macOS Big Sur
    • High-resolution, textured, modern
  • Added proper double-buffering to the terminal
    • This allows you to use the term API while CraftOS-PC is rendering
    • This speeds up programs that end up running lower than the render FPS
  • Added introduction & update MOTD messages
    • When run for the first time (or in a new directory), an introduction message is displayed
    • When run after an update, a notification message is displayed, and suggests running help whatsnew
  • Added support for monitor_touch event as expected (#119)
    • This removes the mouse_* events for monitors
    • The previous behavior can be restored by setting the monitorsUseMouseEvents config setting
      • This will also add the monitor's side as a fourth parameter
  • Added standardsMode config option for strict compatibility with CC:T/CCEmuX
    • Forces time readings & timer resolution to be rounded to 50 ms (1 tick)
    • Adds back colored margins as shown in CC
    • More compatibility tweaks may be added under this option
  • Added startFullscreen per-computer config option
  • Disabled access to romReadOnly from CraftOS
  • Fixed ABI compatibility with standard Lua libraries
    • This means you can now properly use Lua libraries (e.g. from LuaRocks) as plugins
    • Prefix the library name with lua_ to tell CraftOS-PC to skip loading plugin metadata
  • Updated plugin API version to 4
  • Added ID to per-computer config error messages
  • Modems now act as wired modems and can be used to access non-local peripherals (#122)
    • Non-local peripherals can now be listed with peripheral.getNames() when a modem is attached
  • Fixed a crash when opening a debugger twice (#120)
  • Fixed a rare race condition while getting an event (#123)
  • Fixed an issue with saving screenshots to disk
  • Fixed a bug where function key hotkeys don't work when Caps or Num lock is enabled
  • Fixed a bug causing the locals table in the debugger to be missing
  • Fixed bit32.lrotate returning incorrect results
  • Fixed crash when closing CraftOS-PC while a WebSocket is shutting down
  • Fixed crash when using too many nested coroutines (#124)
    • This was due to a bug that didn't update the C call count properly
    • Calling too many nested coroutines will result in a "C stack overflow" error
  • Fixed a race condition in periphemu.detach
  • Fixed incorrect prettification of non-contiguous tables (#125)
  • Fixed raw terminals getting the same ID
  • Added some more locks on timers to prevent crashes
  • Fixed abort timeout not working before first yield
  • Fixed missing UK spelling of term.nativePaletteColour
  • Fixed modem hang due to locks not waiting
  • Fixed missing modem distance field in modem_message event
  • Fixed utf8.char returning %U for each character
  • Fixed a random crash when calling a NULL C function (this shouldn't happen)
  • Fixed styling of message dialogs on Windows
  • Fixed events going to the wrong window in raw mode
  • Fixed Ctrl-R/S/T shortcuts not working in non-GUI modes
  • Disabled fullscreen support in WASM to avoid crashes (#100)
  • Mac: macOS 10.13 or later is now required for official builds
    • Users on older versions are still able to build and run CraftOS-PC themselves
  • Windows: The solution now uses vcpkg for dependencies, so NuGet and separate builds are no longer required
  • Windows: PDF printing is now supported in all builds
  • Windows: Changed Visual C++ Runtime and other libraries to dynamic linking
    • This reduces executable size, but the VCRT redistributable is now strictly required
    • More DLLs will be required as well

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

CraftOS-PC v2.3.4

29 Jun 08:59
Compare
Choose a tag to compare

CraftOS-PC v2.3.4 includes a huge number of bugfixes relating to CC: Tweaked compatibility. The CC:T tests are now checked with every build of CraftOS-PC, so there should be a higher degree of accuracy and compatibility with the canonical version of CC:T. There are also some fixes that were made independently of the CC:T tests. Finally, a bunch of changes have been made to make CraftOS-PC more compatible with CCEmuX. These factors combine to make this version the most accurate version of CraftOS-PC 2 ever.

  • Updated CC:T version to 1.89.1
    • This includes full testing on the CC:T test set
    • CraftOS-PC now fully passes all CC:T tests
  • Added an error dialog when an error occurs reading the configuration files
    • The dialog includes a message describing where the JSON parsing error occurred
    • If an error occurs, the defaults will be used, and no changes will be saved
  • Added proper ingame locale for os.day/time/epoch
    • This is based on a 20-minute clock that starts when the computer boots
    • This change is to improve compatibility with CCEmuX/CC:T
  • Added CCEmuX command-line flags
    • --assets-dir, --computers-dir, --start-dir, --data-dir (alias of --directory), --plugin, --renderer
    • The --start-dir flag only affects the initial computer (specified by --id)
  • Headless mode now reports a color terminal (for advanced testing)
  • os.time now properly parses tables returned by os.date("*t")
  • CraftOS-PC now reports its real version and CC version in HTTP User-Agent strings
  • fs.delete no longer errors when deleting a non-existent file
  • Fixed io.open creating a directory instead of opening a file in write mode (#116)
  • Fixed fs.getDrive returning the wrong results
  • Fixed a whole bunch of warnings
  • fs.getSize now returns 0 when used on a directory instead of erroring
  • Fixed a bug causing audio glitches when playing low notes through the speaker
  • Fixed an error when writing nil or a number to a file (#118)
  • Fixed a crash when an invalid format string is passed to os.date
  • Fixed missing cc.completion and cc.shell.completion modules
  • Fixed programs getting the path to the program in arg[0] instead of the command as it was run
  • Raised maximum Lua call depth to 32768 (from 256)
  • loadstring now automatically adds an = sign to the chunk name
  • Fixed debug.getlocal not returning function parameter names
    • This fixes the cc.pretty module's parameter detection function
  • Fixed vulnerability in io library
  • Fixed io.lines() with no arguments
  • Fixed missing *L option for io.read/file:read
  • Fixed io.write/file:write not returning file handle
  • Fixed string.format erroring when using nil as a string parameter
  • fs.copy can now copy folders as expected
  • Fixed fs.find("/") returning an empty table
  • Fixed fs.attributes having the wrong name
  • Fixed fs.makeDir not erroring when it tries to create a directory where a file is already present
  • Fixed a boatload of string differences to comply with CC: Tweaked
  • Fixed a bunch more small inconsistencies
  • Fixed io.open not creating all parent directories if they're missing
  • Added support for custom options to io.lines
  • Fixed support for '+' modes in io.open
  • Fixed errors in Lua prompt showing [string "lua"]: instead of lua:
  • Windows: Changed ROM directory to the path where the executable is located
    • This means you can now change the installation directory

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

The non-CC:T Mac build has been updated to fix an issue with the auto-updater. Please install this version manually, since previous versions are still affected.

The Mac builds have been updated to reduce file size.

The Windows installer has been updated to support running as a standard user. If not run as admin, the default install location is %LOCALAPPDATA%\CraftOS-PC. The Visual Studio 2019 redistributable will still need administrator privileges if it's not installed.

CraftOS-PC v2.3.3

06 Jun 17:11
Compare
Choose a tag to compare

CraftOS-PC v2.3.3 is a bugfix update, fixing some problems with the debugger as well as other miscellaneous issues.

  • Added a record domain to drives
    • Inserting a disk in the format record:<name> will insert a music disc from minecraft:music_disc.* in the speaker sound data
    • disk.insertDisk("left", "record:cat") will insert the "cat" music disc from the sound files as a playable music disc
  • Updated gist (again)
  • Fixed an error preventing the debugger from starting up
  • Fixed fs.readLine returning weird strings on empty lines (#113)
  • Fixed an error when writing numbers to the screen
  • Fixed a bug that overrode User-Agent and Content-Type HTTP headers
  • Fixed audio clipping when playing pitched sound through the speaker
  • Fixed a crash when playing some notes on Windows
  • Fixed stack corruption in the debugger
  • Fixed origin point of paintutils calls in graphics mode
  • Fixed a bug that may lead to events being sent with the wrong parameters
  • Computers now shut down automatically if the BIOS exits

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

CraftOS-PC v2.3.2

25 May 05:37
Compare
Choose a tag to compare

CraftOS-PC v2.3.2 brings a bunch of new features, especially around the plugin API, as well as some bug fixes that didn't make it into v2.3.1. It also officially supports running the stock CC: Tweaked ROM, with a new set of builds using the ROM.

  • Feature parity with CC: Tweaked 1.88.1
    • Add peripheral.getName - returns the name of a wrapped peripheral.
    • The Lua REPL warns when declaring locals (lupus590, exerro)
    • Add fs.isDriveRoot - checks if a path is the root of a drive.
    • cc.pretty can now display a function's arguments and where it was defined. The Lua REPL will show arguments by default.
    • Move the shell's require/package implementation to a separate cc.require module.
  • CraftOS-PC builds with the CC: Tweaked ROM are now available
    • These builds use the stock ROM, with CraftOS-PC-specific programs included
    • Some ROM features (notably, autocomplete for CCPC programs) may not be available
    • CC:T Edition will replace the standard CraftOS-PC ROM, so they can't be used alongside each other
      • This does not apply to Mac builds, which are distributed as single apps
    • Ubuntu: Install the craftos-pc-cct-data package to use the CC:T ROM
  • bit32 is now the default bit API
    • The BIOS will set up a wrapper to allow programs to continue using bit
  • Added file.readLine to file handles opened in binary mode
  • Added getLabel method to computer peripherals
  • Rewrote Gist program again
    • This will be changing once again in the next version
  • Added new plugin capabilities
    • register_queueTask: Returns a function of the form void* queueTask(std::function<void*(void*)> func, void* userdata, bool async)
    • register_getComputerById: Returns a function of the form Computer * getComputerById(int id)
    • get_selectedRenderer: Returns a number representing the currently selected renderer
  • Capability callbacks now receive the name of the function it's called for
  • plugin_info can now safely throw errors
    • If a plugin throws an error here, its API will not be loaded and the error will be reported to the user on boot
  • Added SDLTerminal::resizeWholeWindow, which resizes a terminal and its window
  • Fixed file.readLine only returning up to 255 characters
  • Fixed a possible race condition
  • Fixed a bug in fs.open, fs.makeDir, etc. where parent directories aren't created if they don't exist

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

The Windows installer for CC:T Edition has been pulled due to inadequate testing. Please download the v2.3.3 installer for CC:T Edition instead.

CraftOS-PC v2.3.1

10 May 03:15
Compare
Choose a tag to compare

CraftOS-PC v2.3.1 contains a huge number of bugfixes and general improvements, as well a few new features to round out the update.

With this version comes the official release of CraftOS-PC Online. CraftOS-PC Online is a completely web-based version of CraftOS-PC with its own IDE interface. Most of the features in desktop CraftOS-PC are also available in CraftOS-PC online, while running faster than native ComputerCraft - much faster than copy-cat. It uses an interface similar to Visual Studio Code, but with new tabs allowing opening terminal windows, downloading & uploading files, and more. CraftOS-PC Online is available at https://www.craftos-pc.cc/online/.

  • CraftOS-PC is now available as a notarized build on Mac
    • This means it is no longer necessary to right-click the app to open it for the first time
  • Added new crash handler that outputs a stack trace for debugging
    • Mac & Linux builds will output the stack trace to the console
    • Windows builds will only show a dialog showing a crash occurred; the actual stack trace will be saved in a minidump
    • Mac app builds will show a crash report dialog as usual
  • Added mouse_move event (disabled by default)
    • The mouse_move_throttle config option sets the amount of time between events sent
    • It is disabled by default because cc-tweaked/CC-Tweaked#434 is still in progress
      • Set mouse_move_throttle to a whole number (50 is recommended) to enable
  • Added file.readAll for binary file handles
  • Added maxOpenPorts config option to cap maximum number of open ports
  • Added a couple of upcoming CraftOS features from CC: Tweaked upstream
  • Added term.showMouse to toggle whether the real mouse cursor should appear
  • Added startComputer capability to plugins
  • Added return value from config.set specifying when the change will take effect
  • Improved error message reporting across the board
  • Using non-vanilla programs in vanilla mode now shows a descriptive error
  • Fixed crash when creating directories
  • Fixed term.drawPixels not working properly for table arguments when in mode 1
  • Fixed writing text files with binary by writing in UTF-8
  • Fixed crash when an HTTP request times out
  • Fixed a security vulnerability involving the drive peripheral
  • Fixed multiple mouse_drag events being sent for the same position (#107)
  • Fixed computer not unpausing when closing debugger
  • Fixed mount dialog showing incorrect text relating to read-write mount
  • Fixed some bugs with the modem
  • Fixed a bunch of small memory leaks & issues
  • Fixed a race condition when taking a screenshot
  • Fixed a bug where the size operator of a table may not represent its actual size
  • Fixed a crash when using a modem or debugger after rebooting
    • This was done by adding a reinitialize method to peripherals
      • This method is called after restarting a computer while having the peripheral attached
      • Use this if your peripheral holds any references to the computer's Lua state or a sub-thread
  • Fixed a bug where coroutines created before attaching a debugger won't be able to be paused from the debugger when resumed
  • Fixed http.get and http.request not allowing using a table as a parameter
  • Fixed a bug where the computer wouldn't boot when disable_lua51_features is enabled (#110)

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

The Mac app has been updated to fix an auto-update issue related to notarization.

CraftOS-PC v2.3

26 Apr 08:45
Compare
Choose a tag to compare

CraftOS-PC v2.3 is finally ready for release. This version comes chock-full of new features to try out, as well as some much-needed improvements to CraftOS-PC.

  • Massively improved performance of emulation
    • Speed issues are caused by the debugger's hooks (specifically line hooks)
    • This version only enables the required hooks depending on what features are required
    • In general, more debugging features -> lower performance
    • Depending on the machine, expect between 4-20x faster emulation
  • Added official support for WASM, including an online client (CraftOS-PC Online)
    • CraftOS-PC Online is available at https://www.craftos-pc.cc/online/
    • Supports Chrome/Chrome-based browsers, and new versions of Firefox with the following options enabled in about:config:
      • javascript.options.shared_memory
      • dom.postMessage.sharedArrayBuffer.withCOOP_COEP
      • browser.tabs.remote.useCrossOriginEmbedderPolicy
      • browser.tabs.remote.useCrossOriginOpenerPolicy
  • Added speaker peripheral
  • Updated CC:T compatibility to 1.87.1
    • Added fs.getAttributes and fs.getCapacity functions
    • Added optional timeout argument to websocket.receive
    • Ported pretty printer to lua.lua
    • Added __len metamethod for tables
    • Strings now accept \xNN, \u{NNN}, and \z escape codes
    • Added utf8 library
    • Added base argument to math.log
    • Moved table.pack and table.unpack out of the ROM and into C
    • Added textutils.unserializeJSON
    • Rewrote settings API
    • Enabled MOTD by default
    • http.post now accepts a table as an argument as expected
  • Added raw terminal renderer
  • Added TRoR (Terminal Redirect over Rednet) terminal renderer
  • Added the ability to place modems on multiple separate networks
    • This can be done by adding a third argument when attaching the peripheral, specifying the network ID
    • Modems with different network IDs won't be able to communicate with each other
  • Added prompt when mounting a real directory, for security
    • This is to mitigate the possibility that a malicious script deletes arbitrary files
    • A prompt also appears when changing the mount_mode option
    • To disable this (not recommended), set showMountPrompt to false in global.json
      • This option cannot be changed inside CraftOS-PC
  • Added filesystem merge mount support
  • Added standalone executable option for Windows & Linux
  • Added scrollback to debugger console
  • Added pop-up when a computer is hung and ignores terminate events
  • Revamped gist program with new commands
    • Added edit, delete, and info commands
    • Gist logins now use Personal Access Tokens instead of a private server with OAuth2
  • Improved command-line usage
  • Cursor color can now be changed as expected
  • Fixed 256-color graphics mode on monitors
  • Fixed crash when receiving tables over a modem connection
  • Fixed a crash relating to timers
  • Fixed memory leak when taking a screenshot on Mac
  • Fixed missing Content-Type and Content-Length headers in HTTP requests
  • Fixed mouse event location in graphics mode when using an HD font
  • Fixed a crash when an error occurs while creating a peripheral
  • Fixed missing error messages when an HTTP connection fails
  • Accessing the string metatable is no longer blocked
  • Removed path argument to term.screenshot()
  • Added a rate limit to term.screenshot()
  • Windows: Standalone builds are now available to download next to the installer
  • Windows: A console build of CraftOS-PC is included with the installer to support raw/TRoR/headless output
  • Mac: CraftOS-PC is now fully notarized and will no longer require right-clicking to open
  • Linux: Dropped support for Ubuntu 19.04

The builds have been re-released to fix an issue in the ROM.

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

CraftOS-PC v2.3 Beta 1

26 Mar 05:18
7256da8
Compare
Choose a tag to compare
Pre-release

CraftOS-PC v2.3 is now ready for testing! Many weeks of work have gone into making this update packed with features, and now it's in a state where it is ready for use.

  • Massively improved performance of emulation
    • Speed issues are caused by the debugger's hooks (specifically line hooks)
    • This version only enables the required hooks depending on what features are required
    • In general, more debugging features -> lower performance
    • Depending on the machine, expect between 4-20x faster emulation
  • Added official support for WASM, including an online client (CraftOS-PC Online)
    • CraftOS-PC Online is available at https://www.craftos-pc.cc/online/
    • Supports Chrome/Chrome-based browsers, and new versions of Firefox with the following options enabled in about:config:
      • javascript.options.shared_memory
      • dom.postMessage.sharedArrayBuffer.withCOOP_COEP
      • browser.tabs.remote.useCrossOriginEmbedderPolicy
      • browser.tabs.remote.useCrossOriginOpenerPolicy
  • Added speaker peripheral
  • Updated CC:T compatibility to 1.87.0 (preview)
    • Added fs.attributes and fs.getCapacity functions
    • Added optional timeout argument to websocket.receive
    • Ported pretty printer to lua.lua
    • Added __len metamethod for tables
    • Strings now accept \xNN, \u{NNN}, and \z escape codes
    • Added utf8 library
    • Added base argument to math.log
  • Added raw terminal renderer
  • Added TRoR (Terminal Redirect over Rednet) terminal renderer
  • Added filesystem merge mount support
  • Added standalone executable option for Windows & Linux
  • Added scrollback to debugger console
  • Added pop-up when a computer is hung and ignores terminate events
  • Improved command-line usage

Notes

Please note that this is pre-production software: beware that some bugs may pop up while using this version. Also, be aware that beta builds have updates turned off, so you will need to manually download the release version once it's available.

Documentation for this version is available on the development branch of the docs, though do note that this is not fully complete, and changes may occur before the full release.

The speaker peripheral is currently not working properly for the WASM port. Please do not attempt to use it there. I'm warning you, it's very broken.

Linux users: I will not be providing packaged versions of this version or any future beta to avoid forcing users to upgrade. Please build CraftOS-PC from source if you wish to try this beta.

Windows users: This version does not include support for SoundFont due to some dependency issues that I have yet to resolve. If I get the dependencies working properly before the next release (beta or not), I will reupload the binary to include it. Also, standalone support is coming soon, but I have to figure out how to incorporate the DLLs into the executable.

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

CraftOS-PC v2.2.6

16 Mar 00:55
Compare
Choose a tag to compare

Development of CraftOS-PC v2.3 is in full swing, especially since all of my classes have been moved online or cancelled due to the novel coronavirus. (Thanks...?) Meanwhile, the v2.2 branch gets a new update to backport some of the fixes that were added to v2.3, as well as officially releasing changes that were already pushed but not yet released.

  • Added gist.lua to the default ROM
  • Reboot now resets graphics mode
  • Added --rom flag to allow changing ROM directory (#84)
  • Fixed extended ASCII character input conversion (#85)
  • Fixed key events not being sent when Ctrl+[TSR] are pressed (#86)
  • Fixed bug in fs.getFreeSpace
  • Fixed term.drawPixels cutting off bottom
  • Fixed crash when rebooting with events in queue
  • Fixed disk mount paths
  • Fixed deadlock when a peripheral method causes an error
  • Fixed getPixel boundaries being too small
  • Fixed paste events sending \r characters on Windows (#95)

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

The Mac app has been re-released to update some dependencies.

CraftOS-PC v2.2.5

24 Feb 08:02
Compare
Choose a tag to compare

This is a relatively small release, but it fixes a few crashes and adds some new command-line functionality. This version is mainly released to support daelvn's COSRun tool for running projects in CraftOS-PC directly from the terminal; go check it out!

  • Added --directory argument to specify custom data directory
  • Added --id argument to specify launch computer, overriding initialComputer config option
  • Rewrote --script argument to no longer shadow real startup.lua (#83)
  • Added header option to http.websocket to match CC: Tweaked behavior (#82)
  • Fixed crash when writing below screen
  • Fixed crash when closing WebSocket
  • Fixed terminal background not being affected by palette changes

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

CraftOS-PC v2.2.4

15 Feb 03:11
Compare
Choose a tag to compare

CraftOS-PC v2.2.4 delivers a huge list of bug fixes (including many crash fixes!) that were written with love... or something like that. Enjoy some improvements regarding CLI mode, WebSockets, and file reading.

  • Computer label now displays in title bar (including the terminal emulator's title in CLI mode)
  • Added cliControlKeyMode config option (#78, #79)
  • Added --args argument to command line to pass arguments to --script (#78)
  • Added UTF-8 support over HTTP
  • Unicode characters are now replaced with '?' (rather than being dropped)
  • file.read() now accepts a length in text mode
  • Insecure WebSockets ('ws://') no longer attempt to use secure WebSockets
  • Fixed WebSocket connection failure when no path is provided
  • Fixed crash when closing computer with open WebSockets
  • Fixed crash in fs.list() when a non-string argument is passed (#77)
  • Fixed crash when closing computer with running timers
  • Fixed crash when reading a string with an invalid UTF-8 codepoint
  • Fixed crash when too many events are queued
    • This also fixes a crash when pasting long text in CLI mode
  • Fixed glitch/crash when resizing CLI window (#78, #80)
  • Fixed issue with clicking the mouse in CLI mode (#78)
  • Fixed 100% CPU usage when using CLI mode
  • Fixed term.setCursorPos clamping the cursor to [0, width)
  • Fixed term.clear filling with black/white instead of selected BG/FG combo
  • Fixed file.readAll() on Windows when the file has no end newline
  • Fixed issue when reading single character at a time from text files
  • Fixed POST data stopping at NUL characters
  • Made some HTTP error messages more descriptive
  • Fixed HTTP implementation in WASM port
  • Added --enable-wasm flag to ./configure to allow building for WASM
  • Added window switcher for WASM builds
  • Fixed debugger locals once again
  • table.concat() now works with non-contiguous tables
  • Fixed crash when a computer's config file was corrupt or empty

If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.

The Mac version has been re-released to reduce file size.