Skip to content

CraftOS-PC v2.6 Beta 1

Pre-release
Pre-release
Compare
Choose a tag to compare
@MCJack123 MCJack123 released this 22 Jun 04:18
· 484 commits to master since this release
71e8119

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 with openKeyboard(open: boolean) and isKeyboardOpen() 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
  • 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 inside table.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.