Releases: MCJack123/craftos2
CraftOS-PC Accelerated v2.8.3
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 theio
library. - Report a custom error when using
!
instead ofnot
. - Add
cc.strings.split
function. - Add missing bounds check to
cc.strings.wrap
(Lupus950).
- Add
- 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 returnsnil
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
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 theio
library. - Report a custom error when using
!
instead ofnot
. - Add
cc.strings.split
function. - Add missing bounds check to
cc.strings.wrap
(Lupus950).
- Add
- 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 returnsnil
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
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
'sRun
screen. - Improve several Lua parser error messages.
colour.toBlit
correctly errors on out-of-bounds values.- Round non-standard colours in
window
, liketerm.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).
- Discard characters being typed into the editor when closing
- 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 onspeaker.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
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
'sRun
screen. - Improve several Lua parser error messages.
colour.toBlit
correctly errors on out-of-bounds values.- Round non-standard colours in
window
, liketerm.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).
- Discard characters being typed into the editor when closing
- 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 onspeaker.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
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.
- Fix trailing-comma on method calls (e.g.
- 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
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 supportsr+
/w+
modes.- Add
allow_repetitions
option totextutils.serialiseJSON
. math.random
now uses Lua 5.4's random number generator.tostring
now correctly obeys__name
.
- Update to Lua 5.2
- 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
- Handles have an additional
server.close()
closes the server- Events are now under the
websocket_server_
domainwebsocket_server_connect <port> <handle>
: Sent when a client connects to the serverwebsocket_server_message <clientID> <message> <binary>
: Sent when a client sends a messagewebsocket_server_closed <clientID> [closeCode] [closeMessage]
: Sent when a client disconnects from the server
- Use
- 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
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 supportsr+
/w+
modes.- Add
allow_repetitions
option totextutils.serialiseJSON
. math.random
now uses Lua 5.4's random number generator.tostring
now correctly obeys__name
.
- Update to Lua 5.2
- 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
- Handles have an additional
server.close()
closes the server- Events are now under the
websocket_server_
domainwebsocket_server_connect <port> <handle>
: Sent when a client connects to the serverwebsocket_server_message <clientID> <message> <binary>
: Sent when a client sends a messagewebsocket_server_closed <clientID> [closeCode] [closeMessage]
: Sent when a client disconnects from the server
- Use
- 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
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 convertsmouse_move
events intomouse_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
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 convertsmouse_move
events intomouse_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
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 andipairs
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
returningnan
when receiving a duplicate location (Wojbie).
- The shell now supports hashbangs (
- 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
, andsound
- Use the
- 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.