- Improve REPL's handling of expressions
(655d5aeca8)
- Some tiny optimisations to the window API
(4accda6b8e)
- Be lazy in reporting errors in the lexer
(54ab98473f)
- Update lua.lua require logic.
(88f0c44152)
- Fix GPS returning nan on duplicate positions.
- Distinguish between all parsers passing and failing.
- Improve several comma related parse errors.
- Ignore metatables in textutils.serialize.
- Detect common audio containers in "speaker".
Co-authored-by: Wojbie <Wojbie@gmail.com>
Given an input like f(x), which is both a valid statement and
expression, both parsers would accept the whole input. However, this was
treated the same as both parsers rejecting the input, resulting in a
crash when trying to print the error.
We now return immediately when any parser accepts the input.
Fixes#1354
The main purpose of this is to backport the improved parse/runtime
errors to older versions. I think they're sufficiently useful that we
should try to make it as widely available as possible.
We've been running them for a week now on SC3 and the released version
and not seen any issues, so I think it's probably stable enough.
This is a pretty lazy commit: I ended up copying the whole ROM over and
then picking up a few other related changes along the way.
- Trim spaces from file paths (b8fce1eecc)
- Correctly format 12AM/PM with
%I (9f48395596)
- Fix http.request and htpt.websocketAsync not handling a few failure
edge-cases correctly (3b42f22a4f).
- Move the internal modules into the main package path, hidden under
cc.internal (34a31abd9c).
- Gather code coverage in Java instead of
Lua (28a55349a9).
- Make error messages in edit more
obvious (8cfbfe7ceb).
- Make mcfly's test methods global. This means we don't need to pass
stub everywhere (7335a892b5).
- Improve runtime and parse errors. This comes from numerous commits,
but chiefly a12b405acf, and
5502412181.
- Hide the internal redirect methods in
multishell (33b6f38339).
Note this does /not/ include the shebang changes (sorry Emma!). I've
tried to avoid adding any user-controllable features, mostly because I
don't know how to handle the versioning otherwise :).
This allows other mods to create wired-modem alike blocks, which expose
peripherals on the wired network, without having to reimplement the main
modem interface.
This is not currently documented, but a peripheral_hub should provide
the following methods:
- isPresentRemote
- getTypeRemote
- hasTypeRemote
- getMethodsRemote
- callRemote
- Add a new file_transfer event. This has the signature
"file_transfer", TransferredFiles.
TransferredFiles has a single method getFiles(), which returns a list
of all transferred files.
- Add a new "import" program which waits for a file_transfer event and
writes files to the current directory.
- If a file_transfer event is not handled (i.e. its getFiles() method
is not called) within 5 seconds on the client, we display a toast
informing the user on how to upload a file.
Look, I don't enjoy having 600 LOC long build.gradle files, it's just
very easy to do! This at least moves some of the complexity elsewhere,
so the build script is a little more declarative.
I was going to do something productive tonight, but then this happened.
Whatever, I'm retired, I'm allowed to make my entire existence just
adding 50px to things. Heck, maybe I'll do the same tomorrow too.
Closes#1133. I'm not super happy about any of the versions proposed
there, but I think this is better than nothing.
Co-authored-by: JackMacWindows <jackmacwindowslinux@gmail.com>
We clamped various values to the height of the screen, rather than the
height of the content box (height-1). We didn't notice this most of the
time as the last line of a file is empty - it only really mattered when
a file was the same height as the computer's screen.
We now do the following:
- Strip the trailing new line from a file when reading.
- Replace most usages of height with height-1.
- Add a TOC to the Local IPs page.
- Increase the echo delay in our speaker audio page to 1.5s. This
sounds much better and is less clashy than 1s. Also add a
sleep(0) (eww, I know) to fix timeouts on some browsers/computers.
- Move Lua feature compat to a new "reference" section. Still haven't
figured out how to structure these docs - open to any ideas really.
- Mention FFmpeg as an option for converting to DFPWM (closes#1075).
- Allow data-mount to override built-in files. See my comment in #1069.
- Start making the summary lines for modules a little better. Just say
what the module does, rather than "The X API does Y" or "Provides Y".
There's still a lot of work to be done here.
- Bundle prism.js on the page, so we can highlight non-Lua code.
- Copy our local_ips wiki page to the main docs.
"Instead, it is a standard program, which its API into the programs that it launches."
becomes
"Instead, it is a standard program, which injects its API into the programs that it launches."