Say.sbx has printed words since long before there were scripts, and is the wrong shape for one. It is a program: it has to be found on the disk, loaded and started, it prefixes what it was told with "it says:", and the system prints "finished" after it. Three lines of noise around one line of narration, and a load off the disk to produce them. echo is a command, so it costs a comparison. With nothing after it, a blank line - which is what anybody expects and is worth having to space a long script out. Not called "say", although that is the better word. Built-in commands are tried before the disk and always win, so a built-in say would shadow Say.sbx and quietly change what every existing script and test meant by it. Also puts "do" in the help, which the commit that added it forgot, and splits the help text: the new lines pushed it over the assembler's 255 character limit for one string. That failure was hidden for a few minutes by a 'make' whose errors were going to /dev/null - the build kept the disk it already had, and the machine cheerfully reported "I do not know: echo" from a system assembled before echo existed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
30 lines
781 B
Plaintext
30 lines
781 B
Plaintext
CosmOS
|
|
> nothing is loaded
|
|
> greet.sbx 211
|
|
hello.sbx 53
|
|
Life.sbx 1396
|
|
Snake.sbx 2164
|
|
Keys.sbx 664
|
|
Say.sbx 156
|
|
Break.sbx 149
|
|
notes.txt 21
|
|
hi.script 121
|
|
bad.script 45
|
|
plain.script 24
|
|
cross.script 280
|
|
nonl.script 38
|
|
13 files
|
|
> load what?
|
|
> no such file
|
|
> not a program
|
|
> loaded, starting at 4000
|
|
> a program, loaded off a disk, running on the system that loaded it
|
|
what should I call you? hello, Anachronaut. that is all I do.
|
|
finished
|
|
> a program, loaded off a disk, running on the system that loaded it
|
|
what should I call you? hello, Claude. that is all I do.
|
|
finished
|
|
> halted
|
|
Execution halted.
|
|
[exit 0]
|