@LEVEL: how many programs are above this one
0 from the prompt or straight from Unix, 1 for one an EXECUTE reached -- the
numbering UniData and UniVerse both use. The guard for a routine that must not
talk to a terminal it does not own, which is what an account's LOGIN needs
when a LOGTO inside a running program fires it.
A different question from @USER.TYPE, which says whether there IS a terminal;
a routine that prompts wants both.
LOGTO from a program: the intrinsic, and what a BASIC shell has to re-open
A shell that replaces TCL was bound to the account it started in. LOGTO(acct)
changes account and returns 1/0 with the reason in STATUS(); EXECUTE "LOGTO
..." reaches the same place, which is the spelling UniData and UniVerse use.
The old account's files are closed, so re-opening is part of the move, and
replacing-tcl now says the LOGIN hook is one of the things you give up.
Messaging: payloads, the SEND and MESSAGE statements, and instant display
A message can carry a record now, so the chapter says what attribute 9
holds, what the receiving terminal does with it (offers, never opens),
and where the line is between the two. SEND and MESSAGE get an entry in
the statements chapter, including the part that matters most to somebody
with existing code: neither word is reserved.
Also: a message at the TCL prompt now appears as it arrives rather than
when you press return, which the deployment chapter was describing the
old way.
Messages between ports: MSG, the inbox, and the screen guarantee
mvx#228.
Sessions have a port, and LISTU shows who is on
mvx#226.
mvx-basic -g0 and -s, and NODEBUG / STRIP on BASIC and CATALOG
mvx#223.
packages: git comes with the toolchain, and JSON is no longer a package
Two changes in mvx left the wiki describing a layout that no longer exists.
mvx#169 removed the package submodules and built the JSON codec into the
runtime. So `packages/git' and `packages/json' are not paths any more, and
JSONENCODE/JSONDECODE are not a package: they are compiled into libmvxrt, need
no configuration, and `-DMVX_JSON=OFF' is not an option the build has.
MVX_PACKAGES defaults to `http' alone, not `json' or `json;http'.
mvx#198 filled the gap that left behind. git had gone from the tree without
arriving anywhere else, so an installed mvx had no GIT at all. `cmake --install'
now downloads the published MVPKG and git packages -- prebuilt, at pinned
versions, each checked against the checksum published beside it -- putting their
verbs and libraries in the system account and their commands in <prefix>/bin.
What each page was saying:
getting-started the install table listed neither mvx-git nor the packages
packages MVX_PACKAGES "defaults to json"; the JSON codec offered as
the reference package; "a real install WOULD copy bin/
commands into a system bin directory", which it now does
intrinsics JSONENCODE/JSONDECODE "provided by the json package"
files "-DMVX_JSON=OFF leaves it out"
git mvx-git "built ... into packages/git/bin/"
Two uses of the word submodule are deliberately untouched, being a different
thing entirely: an ACCOUNT carrying a git submodule (git.md), and the main repo
checking this wiki out under docs/ (tooling.md).
The Linux-x86-64-only caveat is stated where a reader meets it, because the
install warns and carries on rather than failing: on any other platform the
toolchain installs without the packages, and a reader who is not told that finds
a missing GIT and nothing explaining it.
Document TRIM(str, char[, option]) character trimming
terminal: document basic mouse support (@(-9)/@(-10), MOUSE()) (#57)
Docs: package language extensions (ext ABI, EXPORTS/NATIVE, systems, MVX_PACKAGES); JSON is a package
Docs: JSON encode/decode, MAPSPEC/MAPFIELD, the shared mapper
Import documentation from the mvx repo
Migrate the mdBook pages (docs/src) into the wiki: every chapter as a
top-level page, the introduction as Home, a _Sidebar for navigation, and
inter-page links rewritten to wiki page names.