EndBASIC 0.7.0
Released on 2021-07-03.
This is a huge release and its primary goal is to offer integration with the new
EndBASIC cloud service. To reach that goal, this release adds disk drives, new
commands specifically for cloud interaction, and comes with various usability
improvements to make the whole experience better.
Support for disk drives:
-
Added support for storage drives. All file commands now take a path to a
file of the formDRIVE:/PATH
where the drive part and the slash are
optional. By default, three drives are available:MEMORY:
, which is a
trivial memory-backed drive;DEMOS:
, which contains the read-only demo
files; andLOCAL:
, which points to local storage (either a local directory
or to the web browser's local storage). -
Added the
CD
command to change the current drive and thePWD
command to
print the current location. -
Extended the
DIR
command to take an optional path to the directory to
show. -
Added the
MOUNT
andUNMOUNT
commands to inspect and manipulate the
mounted drives. Note that this now allows users to mount arbitrary parts
of the external file system within the EndBASIC namespace, when in theory
it wasn't possible to escape the programs directory before. This is
intentional, but if there is a need, we can put restrictions in place
again. -
Renamed the
--programs-dir
flag to--local-drive
and removed the special
handling of the:memory:
value. Instead, this can now take arbitrary URIs
to refer to drive targets.
Support for the EndBASIC cloud service:
-
Added the
LOGIN
command to authenticate against the EndBASIC service and
to mount the user's own drive. -
Added a new
cloud://
mount target scheme to specify the drives of other
users. -
Added the
SHARE
command to set reader ACLs on files hosted in the
EndBASIC service, allowing users to share files among themselves.
Usability improvements:
-
Refactored the
HELP
command to only print a summary of topics by
default. As part of this, topics can now be looked up using prefixes of
their names. -
Made the output of
HELP
fit within the screen for easier readability
instead of allowing long paragraphs to wrap at unpredictable points. -
Added input history tracking to the REPL interface.
Miscellaneous additions:
- Added the array functions
LBOUND
andUBOUND
.