Releases: MCJack123/craftos2
CraftOS-PC Accelerated v2.6.2
Happy Halloween! This release is unfortunately timed because a large number of spooky bugs are no longer present. However, this is also a treat for everyone who was having problems, so don't be tricked by the lack of spookiness.
- Bumped structure version to 6
- New fields in
Computer
:openWebsocketServers
- New fields in
configuration
:dropFilePath
- New fields in
PluginFunctions
:registerPeripheralFn
- New fields in
- Added ability to drop files to paste their paths instead of copying the file
- Enabled using
dropFilePath
config setting
- Enabled using
- Added single-window mode
- Displays all computers on the same window
- Activated with
--single
flag on CLI - Ctrl+Alt+Left/Right (Cmd+Option+L/R on Mac) to switch windows in GUI
- Added ability to copy screenshots on Linux (X11, Wayland)
- Added
registerPeripheralFn
capability to allow passing a function objectregisterPeripheral
is now deprecated
- Improved WebSocket server functionality
- Servers can now be properly opened by calling
http.websocket
with a port argument - Multiple clients to the same server now get unique identifiers as userdata values
- Added
websocket_server_closed
event to notify when an opened WebSocket server is no longer accepting connections
- Servers can now be properly opened by calling
- Replaced Windows nightly builds with CI build artifacts
- Windows builds will be available within minutes of the latest commit being pushed
- Nightly builds for Windows will no longer be posted on the website
- Go to https://github.com/MCJack123/craftos2/actions for the latest build
- CLI mode now uses Unicode characters for non-ASCII characters
- Drawing characters are approximated using Braille characters; this may not show up well on a real terminal
- Improved quality of CCEmuX plugin
- WebSocket text messages are now sent in UTF-8
- Improved Rednet deduplication efficiency (part of CC:T 1.99.0)
- cash no longer saves duplicate history entries
- Deprecated
peripheral::update
as it was never used - Fixed crashing whenever opening a debugger (from crash reports)
- Fixed a crash when comparing two identical substrings (#218)
- Fixed a crash caused by force-closing a computer after it's already gone (from crash reports)
- Fixed a crash in
term.drawPixels
when passing a negative value (#224) - Fixed occasional crashes from
get_comp
cache duplication (from crash reports) - Fixed crashes and incorrect behavior when using
string.format
with substrings (from crash reports: Creepi) - Fixed strings in modem messages not being sent properly on Linux (BytecodeEli)
- Fixed binary support in WebSocket messages
- Fixed an issue causing input to stop working in raw mode on Linux
- Fixed stack overflow when an error handler attempts to yield (from crash reports)
- Fixed a bug causing old
os
functions to be exposed (!) - Fixed an incorrect error message when concatenating a concatenated string or substring with a value of an invalid type (9551)
- Fixed an issue with completion for boolean config settings
This is the first release with a delta installer (Windows only). This should speed up updates from v2.6.1 as it doesn't have to download all of the libraries. If you're downloading from GitHub, please do not get the CraftOS-PC-Setup_Delta-v2.6.1.exe
installer unless you already have v2.6.1 installed.
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.
CraftOS-PC v2.6.1
IMPORTANT: Due to the combination of a change in GitHub's hosting API, as well as a bug in v2.6, CraftOS-PC is no longer able to download new updates. Please download the installer for this version manually.
After going off-the-grid for a month, I'm back with a new update to CraftOS-PC. CraftOS-PC v2.6.1 fixes a number of high-priority issues, tweaks a few things, and brings CC:T compatibility to the latest version.
CraftOS-PC 2's second anniversary is fast approaching (September 8). This is really an amazing milestone for me, and watching this little test project grow into a program used by hundreds to thousands of people, including large livestreamers, has been super exciting. When I first started working on CraftOS-PC 2, I thought it would be a project I worked on for maybe a couple of months, and then I'd leave it alone to move on to other things. But I've kept working on it pretty much every week since then, adding hundreds of features and bug fixes over two years. I'm real proud of how far it's come, and I hope you're enjoying using it. Thank you for your support!
- Bumped CC:T version to 1.98.2
- Add motd for file uploading.
- Fix
settings.define
not accepting a nil second argument (SkyTheCodeMaster). - Add a missing type check for
http.checkURL
. - Prevent
parallel.*
from hanging when no arguments are given. - Prevent issue in rednet when the message ID is NaN.
- Fix
help
program crashing when terminal changes width. - Prevent
wget
crashing when given an invalid URL and no filename. - Correctly wrap string within
textutils.slowWrite
.
- Bumped structure version to 5
- New fields in
configuration
:useWebP
- New fields in
Computer
:httpRequestQueue
httpRequestQueueMutex
- New fields in
- Added support for screenshots and recordings in WebP format
- WebP is an image format that is much smaller than PNG/GIF and supports animation
- All modern web browsers and OSes support WebP images
- Unfortunately, Discord does not support WebP recordings at the moment.
- Recordings can be up to 20x smaller than their GIF counterparts
- Disabled by default; enable the
useWebP
config option to use WebP instead of PNG/GIF
- Added support for delta installers on Windows
- These are stripped-down versions of the installer that only contain core CraftOS-PC files
- This reduces the size of data to download when updating
- Some versions may not have delta installers if libraries need to be updated
- Added update download progress window on Windows; made progress bar determinate on macOS
- Implemented limits for HTTP options that were present but non-functional
- Added automatic shell resizing when opening the keyboard on mobile platforms
- This can be disabled through the
shell.mobile_resize_with_keyboard
setting
- This can be disabled through the
- Parameters to events are now copied when standards mode is enabled
- Opening a file when the maximum file count is reached now creates the file as expected
- Rewrote
websocket.receive
function in C to perform better - Fixed WebSockets not sending PONG packets, causing sockets to randomly close after a while
- Fixed crashes when trying to use a WebSocket handle after closing it
- Fixed a race condition in HTTP requests that caused a crash
- Fixed a race condition causing crashes when running a task on the main thread
- Fixed a race condition causing functions (like
term.write
) to be run on the wrong computer - Fixed an issue causing the first frame of GIFs to be darker than the rest of the recording
- Fixed the close button not working in some cases
- Fixed
fs
API allowing illegal characters on Windows - Fixed modems not checking if channel numbers are in range
- Fixed
utf8.charpattern
not existing - Fixed crash error message not appearing in standards mode
- Fixed
os.clock()
not resetting on reboot (#215) - Fixed crash reporter failing to upload files + some websites failing to connect
- TLS 1.3 was disabled (pocoproject/poco#3395), so HTTPS connections may be slightly less secure
- Fixed duplication of default black/whitelist entries
- Fixed
pairs
returning incorrect values after a call hook
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.
CraftOS-PC Accelerated v2.6.1
After going off-the-grid for a month, I'm back with a new update to CraftOS-PC. CraftOS-PC v2.6.1 fixes a number of high-priority issues, tweaks a few things, and brings CC:T compatibility to the latest version.
CraftOS-PC 2's second anniversary is fast approaching (September 8). This is really an amazing milestone for me, and watching this little test project grow into a program used by hundreds to thousands of people, including large livestreamers, has been super exciting. When I first started working on CraftOS-PC 2, I thought it would be a project I worked on for maybe a couple of months, and then I'd leave it alone to move on to other things. But I've kept working on it pretty much every week since then, adding hundreds of features and bug fixes over two years. I'm real proud of how far it's come, and I hope you're enjoying using it. Thank you for your support!
- Bumped CC:T version to 1.98.2
- Add motd for file uploading.
- Fix
settings.define
not accepting a nil second argument (SkyTheCodeMaster). - Add a missing type check for
http.checkURL
. - Prevent
parallel.*
from hanging when no arguments are given. - Prevent issue in rednet when the message ID is NaN.
- Fix
help
program crashing when terminal changes width. - Prevent
wget
crashing when given an invalid URL and no filename. - Correctly wrap string within
textutils.slowWrite
.
- Bumped structure version to 5
- New fields in
configuration
:useWebP
- New fields in
Computer
:httpRequestQueue
httpRequestQueueMutex
- New fields in
- Added support for screenshots and recordings in WebP format
- WebP is an image format that is much smaller than PNG/GIF and supports animation
- All modern web browsers and OSes support WebP images
- Unfortunately, Discord does not support WebP recordings at the moment.
- Recordings can be up to 20x smaller than their GIF counterparts
- Disabled by default; enable the
useWebP
config option to use WebP instead of PNG/GIF
- Added support for delta installers on Windows
- These are stripped-down versions of the installer that only contain core CraftOS-PC files
- This reduces the size of data to download when updating
- Some versions may not have delta installers if libraries need to be updated
- Added update download progress window on Windows; made progress bar determinate on macOS
- Implemented limits for HTTP options that were present but non-functional
- Added automatic shell resizing when opening the keyboard on mobile platforms
- This can be disabled through the
shell.mobile_resize_with_keyboard
setting
- This can be disabled through the
- Parameters to events are now copied when standards mode is enabled
- Opening a file when the maximum file count is reached now creates the file as expected
- Rewrote
websocket.receive
function in C to perform better - Fixed WebSockets not sending PONG packets, causing sockets to randomly close after a while
- Fixed crashes when trying to use a WebSocket handle after closing it
- Fixed a race condition in HTTP requests that caused a crash
- Fixed a race condition causing crashes when running a task on the main thread
- Fixed a race condition causing functions (like
term.write
) to be run on the wrong computer - Fixed an issue causing the first frame of GIFs to be darker than the rest of the recording
- Fixed the close button not working in some cases
- Fixed
fs
API allowing illegal characters on Windows - Fixed modems not checking if channel numbers are in range
- Fixed
utf8.charpattern
not existing - Fixed crash error message not appearing in standards mode
- Fixed
os.clock()
not resetting on reboot (#215) - Fixed crash reporter failing to upload files + some websites failing to connect
- TLS 1.3 was disabled (pocoproject/poco#3395), so HTTPS connections may be slightly less secure
- Fixed duplication of default black/whitelist entries
- Fixed
pairs
returning incorrect values after a call hook
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.
CraftOS-PC v2.6
CraftOS-PC v2.6 brings a huge amount of fixes, as well as some performance improvements that have been dragging things down since v2.0. In addition, it adds support for the new raw mode 1.1 protocol, which includes the ability to transfer files. It's been a while since the last update, so why not make this a special one?
With CraftOS-PC v2.6 comes a new suite of mobile apps, letting you use ComputerCraft on-the-go. Simply download the app on your Android or iOS device, launch the app, and get going. Note: to open the keyboard, pinch inward, and to close it pinch outward. A better way of letting the user know this is in progress.
In the future, the apps will be available on the iOS App Store and the Google Play Store, but until then, you can get the Android app through the APK attached to this release, and you can get the iOS app on TestFlight (requires iOS 13 or later).
- CraftOS-PC is now available on Android and iOS
- Apps are available on the iOS App Store (Play Store in the future; please download the APK manually)
- Supports same feature set as desktop CraftOS-PC
- Monitors and multi-computer support is missing, but will be added in a future version
- Pinch in to open keyboard, out to close keyboard
- Extra mobile-centric features:
mobile
API withopenKeyboard(open: boolean)
andisKeyboardOpen()
functions_CCPC_mobile_keyboard_open <height>
event when keyboard is opened, with an argument for visible height_CCPC_mobile_keyboard_close
event when keyboard is closed
- Bumped CC:T version to 1.97.0
- 1.96.0:
- Use lightGrey for folders within the "list" program.
- Add cc.expect.range (Lupus590).
- Allow calling cc.expect directly (MCJack123).
- Fix paintutils.drawLine incorrectly sorting coordinates (lilyzeiset).
- Correctly handle sparse arrays in cc.pretty.
- 1.97.0:
- Add scale subcommand to
monitor
program (MCJack123).- This is a modification of the already-existing
resolution
subcommand.
- This is a modification of the already-existing
- Add option to make
textutils.serialize
not write an indent (magiczocker10). - Allow comparing vectors using
==
(fatboychummy). - Allow
craft
program to craft unlimited items (fatboychummy). - Add program subcompletion to several programs (Wojbie).
- Update the
help
program to accept and (partially) highlight markdown files. - Remove config option for the debug API.
- It still exists internally, but is always set to
true
.
- It still exists internally, but is always set to
- Allow uploading files by dropping them onto a computer.
- Update the
wget
to be more resiliant in the face of user-errors. - Fix
exiting
paint typing "e" in the shell.
- Add scale subcommand to
- 1.96.0:
- Bumped structure version to 4
- New fields in
PluginFunctions
:addEventHook
setDistanceProvider
- New fields in
Computer
:eventHooks
- Deprecated fields:
nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New fields in
Terminal
:nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New types:
event_hook
- New fields in
- Upgraded raw mode protocol to version 1.1
- New filesystem access ability
- Computer windows now send the ID of the computer
- Changed meaning of raw cursor blink field to indicate blinking, not showing
- Small improvements to the protocol
- Official protocol specification at https://www.craftos-pc.cc/docs/rawmode
- Improved performance of string concatenation by using ropes
- Final concatenation of strings is not completed until the string's value needs to be read
- This was implemented in CC:T 1.91.0
- Expect repeated concatenation operations to be around 100x faster
- Improved performance of
string.sub
by using efficient substring views- Getting a substring no longer has to reallocate the string
- Instead, it reuses the original string with the offset and length required
- Added HTTP whitelist & blacklist
- Emulates configuration of CC:T up until 1.87.0 (before rule-based system)
- Added command-line option to connect to a remote WebSocket server in raw mode
- Changed cursor blink speed to 0.4s to match CC's behavior
- Rewrote main thread task queuer to be more efficient
- Setting
abortTimeout
to 0 now disables abort timeouts - The close button no longer needs to be clicked twice to exit when
keepOpenOnShutdown
is enabled - Fixed "400 Bad Request" error on HTTP requests when the path is empty
- Fixed crash when a bad URL is passed to HTTP functions
- Fixed an issue causing encoded slashes in URLs being decoded prematurely (#199)
- Fixed some memory leaks in HTTP handles
- Fixed HTTP not working properly in CraftOS-PC Online
- Fixed random crashes while sending messages over a modem (#205)
- Fixed sending recursive tables over modems
- Fixed old abort timer firing after reboot, causing spurious "Too long without yielding" errors
- Fixed crash when canceling a timer that doesn't exist
- Fixed
os.epoch "local"
not accounting for Daylight Savings Time - Fixed files being truncated in text mode on Windows when a
\x0A
character is found (#204) - Software rendering now reuses the same surface to reduce memory pressure
- Fixed an issue causing inconsistent speeds when recording to GIF
- Fixed blit only allowing gray colors on grayscale terminals
- Fixed monitors in raw mode sending close events to the wrong window ID
- Fixed some issues with setting monitor scale
- Fixed mouse event debouncing on monitors
- Fixed monitors not reporting a second
monitor_touch
event when clicked twice at the same point - Fixed
mouse_move
leave event on monitors not sending the side - Fixed a bug causing
mouse_move
events to stop being sent after a while - Fixed behavior of
term.blit
when passing an invalid character to color strings - Fixed raw client mouse events not being sent properly
- Fixed an issue causing crashes when creating certain peripherals
- Fixed a possible crash when the BIOS cannot be found (#208)
__lt
metamethods can now yield from insidetable.sort
- Fixed a possible memory leak in
table.sort
- Fixed an issue causing
__lt
metamethods that yield to return the wrong result from<=
- Fixed various errors in yielding from debug hooks
- Fixed stack not being resized when > 0x08000000 entries are required
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.
The Mac binary has been updated to fix an issue preventing it from working on Apple Silicon Macs. (#212)
CraftOS-PC Accelerated v2.6
CraftOS-PC v2.6 brings a huge amount of fixes, as well as some performance improvements that have been dragging things down since v2.0. In addition, it adds support for the new raw mode 1.1 protocol, which includes the ability to transfer files. It's been a while since the last update, so why not make this a special one?
With CraftOS-PC v2.6 comes a new suite of mobile apps, letting you use ComputerCraft on-the-go. Simply download the app on your Android or iOS device, launch the app, and get going. Note: to open the keyboard, pinch inward, and to close it pinch outward. A better way of letting the user know this is in progress.
In the future, the apps will be available on the iOS App Store and the Google Play Store, but until then, you can get the Android app through the APK attached to this release, and you can get the iOS app on TestFlight (requires iOS 13 or later).
- CraftOS-PC is now available on Android and iOS
- Apps are available on the iOS App Store (Play Store in the future; please download the APK manually)
- Supports same feature set as desktop CraftOS-PC
- Monitors and multi-computer support is missing, but will be added in a future version
- Pinch in to open keyboard, out to close keyboard
- Extra mobile-centric features:
mobile
API withopenKeyboard(open: boolean)
andisKeyboardOpen()
functions_CCPC_mobile_keyboard_open <height>
event when keyboard is opened, with an argument for visible height_CCPC_mobile_keyboard_close
event when keyboard is closed
- Bumped CC:T version to 1.97.0
- 1.96.0:
- Use lightGrey for folders within the "list" program.
- Add cc.expect.range (Lupus590).
- Allow calling cc.expect directly (MCJack123).
- Fix paintutils.drawLine incorrectly sorting coordinates (lilyzeiset).
- Correctly handle sparse arrays in cc.pretty.
- 1.97.0:
- Add scale subcommand to
monitor
program (MCJack123).- This is a modification of the already-existing
resolution
subcommand.
- This is a modification of the already-existing
- Add option to make
textutils.serialize
not write an indent (magiczocker10). - Allow comparing vectors using
==
(fatboychummy). - Allow
craft
program to craft unlimited items (fatboychummy). - Add program subcompletion to several programs (Wojbie).
- Update the
help
program to accept and (partially) highlight markdown files. - Remove config option for the debug API.
- It still exists internally, but is always set to
true
.
- It still exists internally, but is always set to
- Allow uploading files by dropping them onto a computer.
- Update the
wget
to be more resiliant in the face of user-errors. - Fix
exiting
paint typing "e" in the shell.
- Add scale subcommand to
- 1.96.0:
- Bumped structure version to 4
- New fields in
PluginFunctions
:addEventHook
setDistanceProvider
- New fields in
Computer
:eventHooks
- Deprecated fields:
nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New fields in
Terminal
:nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New types:
event_hook
- New fields in
- Upgraded raw mode protocol to version 1.1
- New filesystem access ability
- Computer windows now send the ID of the computer
- Changed meaning of raw cursor blink field to indicate blinking, not showing
- Small improvements to the protocol
- Official protocol specification at https://www.craftos-pc.cc/docs/rawmode
- Improved performance of string concatenation by using ropes
- Final concatenation of strings is not completed until the string's value needs to be read
- This was implemented in CC:T 1.91.0
- Expect repeated concatenation operations to be around 100x faster
- Improved performance of
string.sub
by using efficient substring views- Getting a substring no longer has to reallocate the string
- Instead, it reuses the original string with the offset and length required
- Added HTTP whitelist & blacklist
- Emulates configuration of CC:T up until 1.87.0 (before rule-based system)
- Added command-line option to connect to a remote WebSocket server in raw mode
- Changed cursor blink speed to 0.4s to match CC's behavior
- Rewrote main thread task queuer to be more efficient
- Setting
abortTimeout
to 0 now disables abort timeouts - The close button no longer needs to be clicked twice to exit when
keepOpenOnShutdown
is enabled - Fixed "400 Bad Request" error on HTTP requests when the path is empty
- Fixed crash when a bad URL is passed to HTTP functions
- Fixed an issue causing encoded slashes in URLs being decoded prematurely (#199)
- Fixed some memory leaks in HTTP handles
- Fixed HTTP not working properly in CraftOS-PC Online
- Fixed random crashes while sending messages over a modem (#205)
- Fixed sending recursive tables over modems
- Fixed old abort timer firing after reboot, causing spurious "Too long without yielding" errors
- Fixed crash when canceling a timer that doesn't exist
- Fixed
os.epoch "local"
not accounting for Daylight Savings Time - Fixed files being truncated in text mode on Windows when a
\x0A
character is found (#204) - Software rendering now reuses the same surface to reduce memory pressure
- Fixed an issue causing inconsistent speeds when recording to GIF
- Fixed blit only allowing gray colors on grayscale terminals
- Fixed monitors in raw mode sending close events to the wrong window ID
- Fixed some issues with setting monitor scale
- Fixed mouse event debouncing on monitors
- Fixed monitors not reporting a second
monitor_touch
event when clicked twice at the same point - Fixed
mouse_move
leave event on monitors not sending the side - Fixed a bug causing
mouse_move
events to stop being sent after a while - Fixed behavior of
term.blit
when passing an invalid character to color strings - Fixed raw client mouse events not being sent properly
- Fixed an issue causing crashes when creating certain peripherals
- Fixed a possible crash when the BIOS cannot be found (#208)
__lt
metamethods can now yield from insidetable.sort
- Fixed a possible memory leak in
table.sort
- Fixed an issue causing
__lt
metamethods that yield to return the wrong result from<=
- Fixed various errors in yielding from debug hooks
- Fixed stack not being resized when > 0x08000000 entries are required
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.
CraftOS-PC v2.6 Beta 1
CraftOS-PC v2.6 brings a huge amount of fixes, as well as some performance improvements that have been dragging things down since v2.0. In addition, it adds support for the new raw mode 1.1 protocol, which includes the ability to transfer files. It's been a while since the last update, so why not make this a special one?
With CraftOS-PC v2.6 comes a new suite of mobile apps, letting you use ComputerCraft on-the-go. Simply download the app on your Android or iOS device, launch the app, and get going. Note: to open the keyboard, pinch inward, and to close it pinch outward. A better way of letting the user know this is in progress.
In the future, the apps will be available on the iOS App Store and the Google Play Store, but until then, you can get the Android app through the APK attached to this release, and you can get the iOS app on TestFlight (requires iOS 13 or later).
This is a BETA build, and as such has updates disabled. You should install this to a separate directory to avoid overwriting the stable build. On Windows, I recommend using the portable build to keep the installation separate. The main reason for this is that the performance improvements aren't confirmed stable yet, and I need to test how well it works in day-to-day use. Please report any bugs you find (especially crashes) to https://www.craftos-pc.cc/bugreport, and if possible, set snooperEnabled
to true
to allow crash reports to be sent.
Linux builds will not be available for this release. Please build this version from source if using Linux (or if you use Arch Linux, use the craftos-pc-git
AUR package).
- CraftOS-PC is now available on Android and iOS
- Apps will be available on the iOS App Store and Google Play Store
- Supports same feature set as desktop CraftOS-PC
- Pinch in to open keyboard, out to close keyboard
- Extra mobile-centric features:
mobile
API withopenKeyboard(open: boolean)
andisKeyboardOpen()
functions_CCPC_mobile_keyboard_open <height>
event when keyboard is opened, with an argument for visible height_CCPC_mobile_keyboard_close
event when keyboard is closed
- Bumped CC:T version to 1.96.0
- Use lightGrey for folders within the "list" program.
- Add cc.expect.range (Lupus590).
- Allow calling cc.expect directly (MCJack123).
- Fix paintutils.drawLine incorrectly sorting coordinates (lilyzeiset).
- Correctly handle sparse arrays in cc.pretty.
- Bumped structure version to 4
- New fields in
PluginFunctions
:addEventHook
setDistanceProvider
- New fields in
Computer
:eventHooks
rawFileStack
rawFileStackMutex
- Deprecated fields:
nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New fields in
Terminal
:nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New types:
event_hook
- New fields in
- Upgraded raw mode protocol to version 1.1
- New filesystem access ability
- Computer windows now send the ID of the computer
- Changed meaning of raw cursor blink field to indicate blinking, not showing
- Small improvements to the protocol
- Official protocol specification at https://www.craftos-pc.cc/docs/rawmode
- Improved performance of string concatenation by using ropes
- Final concatenation of strings is not completed until the string's value needs to be read
- This was implemented in CC:T 1.91.0
- Expect repeated concatenation operations to be around 100x faster
- Improved performance of
string.sub
by using efficient substring views- Getting a substring no longer has to reallocate the string
- Instead, it reuses the original string with the offset and length required
- Added HTTP whitelist & blacklist
- Emulates configuration of CC:T up until 1.87.0 (before rule-based system)
- Added command-line option to connect to a remote WebSocket server in raw mode
- Changed cursor blink speed to 0.4s to match CC's behavior
- Rewrote main thread task queuer to be more efficient
- Fixed "400 Bad Request" error on HTTP requests when the path is empty
- Fixed crash when a bad URL is passed to HTTP functions
- Fixed an issue causing encoded slashes in URLs being decoded prematurely (#199)
- Fixed some memory leaks in HTTP handles
- Fixed random crashes while sending messages over a modem (#205)
- Fixed sending recursive tables over modems
- Fixed old abort timer firing after reboot, causing spurious "Too long without yielding" errors
- Fixed crash when canceling a timer that doesn't exist
- Fixed
os.epoch "local"
not accounting for Daylight Savings Time - Fixed files being truncated in text mode on Windows when a
\x0A
character is found (#204) - Software rendering now reuses the same surface to reduce memory pressure
- Fixed blit only allowing gray colors on grayscale terminals
- Fixed monitors in raw mode sending close events to the wrong window ID
- Fixed some issues with setting monitor scale
- Fixed mouse event debouncing on monitors
- Fixed monitors not reporting a second
monitor_touch
event when clicked twice at the same point - Fixed
mouse_move
leave event on monitors not sending the side - Fixed behavior of
term.blit
when passing an invalid character to color strings - Fixed raw client mouse events not being sent properly
- Fixed an issue causing crashes when creating certain peripherals
__lt
metamethods can now yield from insidetable.sort
- Fixed a possible memory leak in
table.sort
- Fixed an issue causing
__lt
metamethods that yield to return the wrong result from<=
- Fixed various errors in yielding from debug hooks
- Fixed stack not being resized when > 0x08000000 entries are required
Known issues:
- Updates are disabled in this version due to being a beta. This is one reason why you should not replace your main installation.
- Plugins are not loaded in this version.
- Sometimes, random crashes may occur when calling certain functions (in particular,
os.startTimer
has been known to do this).
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.
CraftOS-PC v2.5.5
CraftOS-PC v2.5.5 is a relatively small update, but it brings some important fixes as well as a huge performance boost in most circumstances.
- Disabled locks when modems aren't attached
- This can improve speeds by up to 50%
- If any modem is attached, speeds will drop back to pre-v2.5.5 levels
- Rewrote HTTP handle read functions to improve reliability
- Removed Origin header from WebSocket requests
- Fixed behavior of table length to work more like CC:T
- Fixed paste contents not being cut at the first newline
- Fixed memory leak in file.readAll in binary mode
- Fixed incorrect modulo result when {(a < 0 | b < 0) & |a| % |b| = 0}
- Fixed hard crash on startup when a custom font file doesn't exist
- Fixed crash when passing non-string in header table
- Fixed crash when halting computer after it already closed
- Fixed crash when an exception occurs while closing WebSocket in the middle of catching another exception
- Possibly fixed a crash happening when connecting to a WebSocket
- Readded Lua features that were advertised in v2.5.4 but not actually present on Windows
- Added
debug.upvalue{id,join}
from Lua 5.3 - Fixed a race conditions with modems causing a crash
- Fixed some random crashes on an odd memory error
- Fixed crash when passing bad argument #1 to
table.foreach
- Added
- Windows: Replaced old link in System32 behavior with properly adding the install directory to the PATH
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.
CraftOS-PC Accelerated v2.5.5
CraftOS-PC v2.5.5 is a relatively small update, but it brings some important fixes as well as a huge performance boost in most circumstances.
- Disabled locks when modems aren't attached
- This can improve speeds by up to 50%
- If any modem is attached, speeds will drop back to pre-v2.5.5 levels
- Rewrote HTTP handle read functions to improve reliability
- Removed Origin header from WebSocket requests
- Fixed behavior of table length to work more like CC:T
- Fixed paste contents not being cut at the first newline
- Fixed memory leak in file.readAll in binary mode
- Fixed incorrect modulo result when {(a < 0 | b < 0) & |a| % |b| = 0}
- Fixed hard crash on startup when a custom font file doesn't exist
- Fixed crash when passing non-string in header table
- Fixed crash when halting computer after it already closed
- Fixed crash when an exception occurs while closing WebSocket in the middle of catching another exception
- Possibly fixed a crash happening when connecting to a WebSocket
- Readded Lua features that were advertised in v2.5.4 but not actually present on Windows
- Added
debug.upvalue{id,join}
from Lua 5.3 - Fixed a race conditions with modems causing a crash
- Fixed some random crashes on an odd memory error
- Fixed crash when passing bad argument #1 to
table.foreach
- Added
- Windows: Replaced old link in System32 behavior with properly adding the install directory to the PATH
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.
CraftOS-PC v2.5.4
Reminder: If you are using CraftOS-PC v2.5.2 (or very early versions of v2.5.3), you will have to install the update manually.
Even though development has been slowing down, CraftOS-PC v2.5.4 brings many bug fixes as well as compatibility with CC: Tweaked 1.95.3.
- Bumped CC:T version to 1.95.3
- Correctly serialise sparse arrays into JSON (livegamer999)
- Programs run via edit are now a little better behaved (Wojbie)
- Add User-Agent [and Accept-Charset] to a websocket's headers.
- Bumped structure version to 3
- New fields in
configuration
:keepOpenOnShutdown
- New fields in
computer_configuration
:computerWidth
- `computerHeight
- New fields in
PluginFunctions
:attachPeripheral
detachPeripheral
- New fields in
- Added
keepOpenOnShutdown
setting to keep computers open after shutdown- Use the X button to close the window (or your OS's respective key combo)
- Use Ctrl+R to start the computer again
- Added per-computer default size options
- Added two arguments when attaching monitors to specify their size
Addeddebug.upvalue{id,join}
from Lua 5.3- Added the ability to set host ports for WebSocket servers
- Added support for KMSDRM backends on Linux
- Disabled WebSocket servers in vanilla mode
- Adding duplicate virtual mounts now returns
false
without adding it again - Moved
romReadOnly
to hidden options - Fixed macOS installation instructions for Homebrew
Fixed a race conditions with modems causing a crash- Fixed abort timeout occasionally firing when running in a quickly yielding loop
- Fixed WebSockets not being closed soon after close is called
- Fixed race condition on timer add/remove
Fixed some random crashes on an odd memory error- Fixed WebSocket binary messages not being implemented correctly
- Fixed cursor not being reset on shutdown
- Fixed URL checks being missing from
http.get
- Fixed read past EOF in
file.read(n)
on text handles Fixed crash when passing bad table argument totable.foreach
- Fixed
arg
table being missing when running programs with cash - Fixed missing
http.listen
function - Fixed
window.getSize
not working with the new arguments - Fixed cash being enabled by default
- Fixed shell failing to run in vanilla mode
- LuaJIT: Fixed error when using invalid escape codes in a string
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.
UPDATE: It turns out the updated Lua library wasn't added to the installer, so changes that involve changes to Lua are not actually present. These are now crossed out, and will reappear in v2.5.5, which will be released soon.
CraftOS-PC Accelerated v2.5.4
Even though development has been slowing down, CraftOS-PC v2.5.4 brings many bug fixes as well as compatibility with CC: Tweaked 1.95.3.
- Bumped CC:T version to 1.95.3
- Correctly serialise sparse arrays into JSON (livegamer999)
- Programs run via edit are now a little better behaved (Wojbie)
- Add User-Agent [and Accept-Charset] to a websocket's headers.
- Bumped structure version to 3
- New fields in
configuration
:keepOpenOnShutdown
- New fields in
computer_configuration
:computerWidth
- `computerHeight
- New fields in
PluginFunctions
:attachPeripheral
detachPeripheral
- New fields in
- Added
keepOpenOnShutdown
setting to keep computers open after shutdown- Use the X button to close the window (or your OS's respective key combo)
- Use Ctrl+R to start the computer again
- Added per-computer default size options
- Added two arguments when attaching monitors to specify their size
- Added
debug.upvalue{id,join}
from Lua 5.3 - Added the ability to set host ports for WebSocket servers
- Added support for KMSDRM backends on Linux
- Disabled WebSocket servers in vanilla mode
- Adding duplicate virtual mounts now returns
false
without adding it again - Moved
romReadOnly
to hidden options - Fixed macOS installation instructions for Homebrew
- Fixed a race conditions with modems causing a crash
- Fixed abort timeout occasionally firing when running in a quickly yielding loop
- Fixed WebSockets not being closed soon after close is called
- Fixed race condition on timer add/remove
- Fixed some random crashes on an odd memory error
- Fixed WebSocket binary messages not being implemented correctly
- Fixed cursor not being reset on shutdown
- Fixed URL checks being missing from
http.get
- Fixed read past EOF in
file.read(n)
on text handles - Fixed crash when passing bad argument #1 to
table.foreach
- Fixed
arg
table being missing when running programs with cash - Fixed missing
http.listen
function - Fixed
window.getSize
not working with the new arguments - Fixed cash being enabled by default
- Fixed shell failing to run in vanilla mode
- LuaJIT: Fixed error when using invalid escape codes in a string
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.