Skip to content

Releases: MCJack123/craftos2

CraftOS-PC Accelerated v2.8.3

17 Aug 06:44
aaeec7d
Compare
Choose a tag to compare
Pre-release

CraftOS-PC v2.8.3 is primarily a security update that fixes a high severity vulnerability in the filesystem sandbox, as well as fixing a few miscellaneous bugs. Please update at your earliest convenience.

  • Updated CC:T version to 1.112.0
    • Add r+/w+ support to the io library.
    • Report a custom error when using ! instead of not.
    • Add cc.strings.split function.
    • Add missing bounds check to cc.strings.wrap (Lupus950).
  • Security: Fixed a vulnerability allowing filesystem sandbox escape (GHSA-hr3w-wc83-6923)
  • Security: Fixed potential data leakage by enhancing type checks (CVE-2024-39840)
  • Fixed error when [[ appears in a [[ long string
  • Fixed setfenv not returning the function passed to it
  • Fixed regression causing debugger to not set hook on all coroutines in stack
  • Fixed exception in fs.list when non-ASCII names are present
  • Added status parameter to HTTP server res.setStatusCode
  • Fixed HTTP server request handles converting line endings
  • file.readAll now correctly returns nil on a second call
  • Fixed an exception when sending an empty WebSocket message (#365)

If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @jackmacwindows. Feel free to leave a message there if you need anything.

CraftOS-PC v2.8.3

16 Aug 12:03
33d29b9
Compare
Choose a tag to compare

CraftOS-PC v2.8.3 is primarily a security update that fixes a high severity vulnerability in the filesystem sandbox, as well as fixing a few miscellaneous bugs. Please update at your earliest convenience.

  • Updated CC:T version to 1.112.0
    • Add r+/w+ support to the io library.
    • Report a custom error when using ! instead of not.
    • Add cc.strings.split function.
    • Add missing bounds check to cc.strings.wrap (Lupus950).
  • Security: Fixed a vulnerability allowing filesystem sandbox escape (CVE-2024-43395)
  • Security: Fixed potential data leakage by enhancing type checks (CVE-2024-39840)
  • Fixed error when [[ appears in a [[ long string
  • Fixed setfenv not returning the function passed to it
  • Fixed regression causing debugger to not set hook on all coroutines in stack
  • Fixed exception in fs.list when non-ASCII names are present
  • Added status parameter to HTTP server res.setStatusCode
  • Fixed HTTP server request handles converting line endings
  • file.readAll now correctly returns nil on a second call
  • Fixed an exception when sending an empty WebSocket message (#365)

If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @jackmacwindows. Feel free to leave a message there if you need anything.

CraftOS-PC v2.8.2

22 Apr 21:12
053ce11
Compare
Choose a tag to compare

CraftOS-PC v2.8.2 fixes a large number of issues that have popped up since the Lua 5.2 update, and bumps CC:T compatibility to the latest version.

  • Updated CC:T version to 1.110.2
    • Discard characters being typed into the editor when closing edit's Run screen.
    • Improve several Lua parser error messages.
    • colour.toBlit correctly errors on out-of-bounds values.
    • Round non-standard colours in window, like term.native() does.
    • Fix speaker program not resolving files relative to the current directory.
    • Add speaker sound command (fatboychummy).
    • Improve error when calling speaker play with no path (fatboychummy).
    • Prevent playing music discs with speaker.playSound.
    • Various documentation fixes (cyberbit).
  • Fix compilation on Linux with MUSL libc (Ocawesome101, #341)
  • Fixed Homebrew Cask release action
  • Added log message for queue overflows
  • Fixed some argument parsing issues in http.request
  • Fixed some issues with timers
  • Fix string comparison errors (migeyel, MCJack123/craftos2-lua#6)
  • Fixed an inconsistency with Cobalt with table.remove
  • lua_Unsigned uses 64-bit ints again, fixing many bugs (MCJack123/craftos2-lua#7)
  • Fixed crash when trying to halt computer
  • Fixed race condition in debug adapter
  • Fixed some missing os.date specifiers on Windows
  • Fix for "Port already in use" error when trying to reopen WebSocket server on the same port. (simadude, #343)
  • Fixed seeking not working on HTTP handles in standards mode only
  • Chest Inventory peripheral list returns entries for empty slots (NuclearMonk, #340)
  • Fixed drives not emitting disk events
  • Fixed issue in inventories when toSlot isn't provided
  • Added warning message when the configuration file can't be saved
  • Fixed speaker_audio_empty not firing on speaker.stop
  • Fixed bounds checking on computer IDs (#350)
  • Fixed issues when providing concatenated strings to some functions

If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @jackmacwindows. Feel free to leave a message there if you need anything.

CraftOS-PC Accelerated v2.8.2

22 Apr 21:14
cca7cc0
Compare
Choose a tag to compare
Pre-release

CraftOS-PC v2.8.2 fixes a large number of issues that have popped up since the Lua 5.2 update, and bumps CC:T compatibility to the latest version.

  • Updated CC:T version to 1.110.2
    • Discard characters being typed into the editor when closing edit's Run screen.
    • Improve several Lua parser error messages.
    • colour.toBlit correctly errors on out-of-bounds values.
    • Round non-standard colours in window, like term.native() does.
    • Fix speaker program not resolving files relative to the current directory.
    • Add speaker sound command (fatboychummy).
    • Improve error when calling speaker play with no path (fatboychummy).
    • Prevent playing music discs with speaker.playSound.
    • Various documentation fixes (cyberbit).
  • Fix compilation on Linux with MUSL libc (Ocawesome101, #341)
  • Fixed Homebrew Cask release action
  • Added log message for queue overflows
  • Fixed some argument parsing issues in http.request
  • Fixed some issues with timers
  • Fix string comparison errors (migeyel, MCJack123/craftos2-lua#6)
  • Fixed an inconsistency with Cobalt with table.remove
  • lua_Unsigned uses 64-bit ints again, fixing many bugs (MCJack123/craftos2-lua#7)
  • Fixed crash when trying to halt computer
  • Fixed race condition in debug adapter
  • Fixed some missing os.date specifiers on Windows
  • Fix for "Port already in use" error when trying to reopen WebSocket server on the same port. (simadude, #343)
  • Fixed seeking not working on HTTP handles in standards mode only
  • Chest Inventory peripheral list returns entries for empty slots (NuclearMonk, #340)
  • Fixed drives not emitting disk events
  • Fixed issue in inventories when toSlot isn't provided
  • Added warning message when the configuration file can't be saved
  • Fixed speaker_audio_empty not firing on speaker.stop
  • Fixed bounds checking on computer IDs (#350)
  • Fixed issues when providing concatenated strings to some functions

If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @jackmacwindows. Feel free to leave a message there if you need anything.

CraftOS-PC v2.8.1

22 Jan 00:59
f5a0ddc
Compare
Choose a tag to compare

CraftOS-PC v2.8.1 fixes some critical issues in the new Lua 5.2 layer, and resolves a few release issues. This version will not have an associated Accelerated release, as LuaJIT didn't require fixing.

  • Updated CC:T version to 1.109.3
    • Fix trailing-comma on method calls (e.g. x:f(a, )) not using our custom error message.
  • Fixed high memory usage caused by ropes & substrings
  • Fixed crash when closing WebSocket server
  • Fixed CCEmuX plugin failing to load

If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @jackmacwindows. Feel free to leave a message there if you need anything.

CraftOS-PC v2.8

02 Jan 03:33
72392cc
Compare
Choose a tag to compare

Happy new year! This release of CraftOS-PC finally brings Lua 5.2 support along with compatibility with CC: Tweaked 1.109.2. In addition, it adds a new WebSocket server API, and lots and lots of critical crash fixes.

This version is a breaking release. Notably, all files are now handled in binary mode, which may break programs that have embedded UTF-8 characters (this was always discouraged for this reason). In addition, bytecode dumping and loading is disabled in standards mode, but it remains enabled when standards mode is disabled. However, despite the introduction of the goto keyword, it remains a valid identifier, so programs with variables or functions named goto should continue to function.

Note that the plugin API's major version has been updated due to the switch to Lua 5.2. This will result in preexisting plugins failing to load. The CCEmuX plugin has been updated for the new API, but other plugins will need to be rebuilt for the new API.

  • Update CC:T version to 1.109.2
    • Update to Lua 5.2
      • getfenv/setfenv now only work on Lua functions.
      • Add support for goto.
      • Remove support for dumping and loading binary chunks.
        • Only disabled in standards mode
    • File handles, HTTP requests and websocket messages now use raw bytes rather than converting to UTF-8.
    • fs.open now supports r+/w+ modes.
    • Add allow_repetitions option to textutils.serialiseJSON.
    • math.random now uses Lua 5.4's random number generator.
    • tostring now correctly obeys __name.
  • Rewrote WebSocket server API (#337)
    • Use server = http.websocketServer(port) to create a server handle
    • server.listen() waits for a new connection, and returns a new WebSocket handle
      • Handles have an additional clientID field for identifying the client connection
    • server.close() closes the server
    • Events are now under the websocket_server_ domain
      • websocket_server_connect <port> <handle>: Sent when a client connects to the server
      • websocket_server_message <clientID> <message> <binary>: Sent when a client sends a message
      • websocket_server_closed <clientID> [closeCode] [closeMessage]: Sent when a client disconnects from the server
  • Bumped plugin major version to 12
    • Lua 5.2 breaks old plugins - please reinstall/rebuild any plugins (ccemux is updated)
  • WebSocket close events now send the close code if available
  • Fixed WebSocket ping messages causing the socket to close
  • Fixed many memory corruption issues around ropes
  • Fixed some issues with debug hooks and yielding
  • Fixed crash when erroring from a debug hook (#326)
  • Debuggers now inherit the mount list from the original computer (#327)
  • Fixed memory reporting when using string.rep (#328)
  • Fixed fs.getFreeSpace not checking parent directories if the path doesn't exist (#330)
  • Fixed crash when using HTTP in the VS Code extension (#332)
  • Fixed repeated websocket.close calls causing a crash (#336)
  • xpcall error handlers can now yield
  • Mobile: Added onboarding screen for navigation bar instructions

If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @jackmacwindows. Feel free to leave a message there if you need anything.

CraftOS-PC Accelerated v2.8

02 Jan 04:51
02f5402
Compare
Choose a tag to compare
Pre-release

Happy new year! This release of CraftOS-PC finally brings Lua 5.2 support along with compatibility with CC: Tweaked 1.109.2. In addition, it adds a new WebSocket server API, and lots and lots of critical crash fixes.

This version is a breaking release. Notably, all files are now handled in binary mode, which may break programs that have embedded UTF-8 characters (this was always discouraged for this reason). In addition, bytecode dumping and loading is disabled in standards mode, but it remains enabled when standards mode is disabled. However, despite the introduction of the goto keyword, it remains a valid identifier, so programs with variables or functions named goto should continue to function.

  • Update CC:T version to 1.109.2
    • Update to Lua 5.2
      • getfenv/setfenv now only work on Lua functions.
      • Add support for goto.
      • Remove support for dumping and loading binary chunks.
        • Only disabled in standards mode
    • File handles, HTTP requests and websocket messages now use raw bytes rather than converting to UTF-8.
    • fs.open now supports r+/w+ modes.
    • Add allow_repetitions option to textutils.serialiseJSON.
    • math.random now uses Lua 5.4's random number generator.
    • tostring now correctly obeys __name.
  • Rewrote WebSocket server API (#337)
    • Use server = http.websocketServer(port) to create a server handle
    • server.listen() waits for a new connection, and returns a new WebSocket handle
      • Handles have an additional clientID field for identifying the client connection
    • server.close() closes the server
    • Events are now under the websocket_server_ domain
      • websocket_server_connect <port> <handle>: Sent when a client connects to the server
      • websocket_server_message <clientID> <message> <binary>: Sent when a client sends a message
      • websocket_server_closed <clientID> [closeCode] [closeMessage]: Sent when a client disconnects from the server
  • WebSocket close events now send the close code if available
  • Fixed WebSocket ping messages causing the socket to close
  • Fixed many memory corruption issues around ropes
  • Fixed some issues with debug hooks and yielding
  • Fixed crash when erroring from a debug hook (#326)
  • Debuggers now inherit the mount list from the original computer (#327)
  • Fixed memory reporting when using string.rep (#328)
  • Fixed fs.getFreeSpace not checking parent directories if the path doesn't exist (#330)
  • Fixed crash when using HTTP in the VS Code extension (#332)
  • Fixed repeated websocket.close calls causing a crash (#336)
  • xpcall error handlers can now yield
  • Mobile: Added onboarding screen for navigation bar instructions

If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @jackmacwindows. Feel free to leave a message there if you need anything.

CraftOS-PC Accelerated v2.7.5

11 Aug 20:24
7f17159
Compare
Choose a tag to compare
Pre-release

CraftOS-PC v2.7.5 is a minor update that includes some new CC:Tweaked features, as well as some small fixes.

  • Updated CC:T version to 1.106.1
    • Optimise JSON string parsing.
    • Add colors.fromBlit (Erb3).
    • Add custom timeout support to the HTTP API.
    • The speaker program now errors when playing HTML files.
    • edit now shows an error message when editing read-only files.
    • Port fs.find to Lua. This also allows using ? as a wildcard.
    • Add option to serialize Unicode strings to JSON (MCJack123).
    • Small optimisations to the window API.
    • Lua REPL no longer accepts )( as a valid expression.
    • Fix several inconsistencies with require/package.path in the Lua REPL (Wojbie).
  • Updated LuaJIT to the latest version
  • Added Apple Silicon/ARM64 support
  • Added term.relativeMouse function, which converts mouse_move events into mouse_move_relative events with relative velocities
  • Fixed modem.getNameLocal not existing
  • Fixed abort timeouts firing after the computer goes into sleep mode
  • Fixed stack corruption when using string.format("%q")
  • Fixed a niche case crash when the computer turns off while prompting for abort timeout
  • Fixed SSL errors in AppImage builds
  • Fixed incorrect file version number on Windows

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

CraftOS-PC v2.7.5

03 Aug 02:00
251c3ab
Compare
Choose a tag to compare

CraftOS-PC v2.7.5 is a minor update that includes some new CC:Tweaked features, as well as some small fixes.

  • Updated CC:T version to 1.106.1
    • Optimise JSON string parsing.
    • Add colors.fromBlit (Erb3).
    • Add custom timeout support to the HTTP API.
    • The speaker program now errors when playing HTML files.
    • edit now shows an error message when editing read-only files.
    • Port fs.find to Lua. This also allows using ? as a wildcard.
    • Add option to serialize Unicode strings to JSON (MCJack123).
    • Small optimisations to the window API.
    • Lua REPL no longer accepts )( as a valid expression.
    • Fix several inconsistencies with require/package.path in the Lua REPL (Wojbie).
  • Added term.relativeMouse function, which converts mouse_move events into mouse_move_relative events with relative velocities
  • Fixed modem.getNameLocal not existing
  • Fixed abort timeouts firing after the computer goes into sleep mode
  • Fixed stack corruption when using string.format("%q")
  • Fixed a niche case crash when the computer turns off while prompting for abort timeout
  • Fixed SSL errors in AppImage builds
  • Fixed incorrect file version number on Windows

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

The installers were updated on 8/3 to fix an issue in window.clear.
The Windows installers were updated on 8/26 to update libraries and fix an issue with WebSockets.

CraftOS-PC v2.7.4

14 May 22:59
369b054
Compare
Choose a tag to compare

CraftOS-PC v2.7.4 finally brings a wealth of new CC:T features, as well as a critical fix on Windows systems.

This version has been re-released to fix a critical issue when using multiple computers.

  • Fixed critical crashing issue on Windows systems relating to ropes
  • Updated CC:T version to 1.104.0
    • The shell now supports hashbangs (#!) (emmachase).
    • Error messages in edit are now displayed in red on advanced computers.
    • Improvements to the display of errors in the shell and REPL.
    • Fix rednet queueing the wrong message when sending a message to the current computer.
    • Fix the Lua VM crashing when a __len metamethod yields.
    • table methods and ipairs now use metamethods.
    • Argument errors now follow the standard "X expected, got Y" format.
    • Add coroutine.isyieldable.
    • Type errors now use the __name metatag.
    • xpcall now accepts arguments after the error function.
    • speaker program now reports an error on common unsupported audio formats.
    • multishell now hides the implementation details of its terminal redirect from programs.
    • settings.load now ignores malformed values created by editing the .settings file by hand.
    • Ignore metatables in textutils.serialize.
    • Fix gps.locate returning nan when receiving a duplicate location (Wojbie).
  • Added plugin support on iOS through in-app purchases
    • Use the plugins program to buy new plugin packs
    • Only one is available at the moment, featuring ccemux, joystick, and sound
  • Native load now uses Lua 5.2 syntax, matching Cobalt's behavior
  • Fixed crashing when calling monitor.blit when the cursor is off-screen
  • Fixed compilation error on newer Linux systems

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