3,079 karma · joined September 5, 2010
The compromise for GNOME Terminal is that the cursor will stop blinking after a terminal has been idle for ten seconds.
> 5 Nov, 2007: Iron Spring Software announces the availability of the first alpha version of their new PL/I compiler. The alpha runs on the OS/2 operating system only.
Such writing would give non-standard meanings to signs, or drawn them in non-standard ways, or use entirely invented signs. It would be a puzzle to work out the meaning, and I imagine most people who weren't very literate would be stumped. They certainly stumped egyptologists for a while when the first examples were discovered.
Oberon has a tortured version history, so it takes a bit to explain what "Project Oberon 2013" is, but it's basically representative of Oberon in a very early stage of development.
This version was originally described by Wirth in his 1992 book "Project Oberon: The Design of an Operating System, a Compiler and a Computer". After his retirement he prepared a new edition, which came to be known as "Project Oberon 2013". For this edition he switched out the "computer" part -- the original used the now extremely obscure NS32000 CPU, the new edition used a custom RISC architecture implemented on an FPGA. But otherwise than this "implementation detail", the system was unchanged.
(And of course, given the FPGA source code, it's easy to build an emulator.)
But if you try this and it feels primitive -- it is. Later versions of Oberon got much fancier.
Curiously this isn't the oldest extant version of the source code. The Harvard archives have a copy of version 1.1, printed on 30 April 75. http://altairbasic.org/other%20versions/ian.htm
Mainframe APL2 is still marketed I think
⍝ Convert Fahrenheit to Celsius
f_to_c ← (÷∘1.8)∘(-∘32)
f_to_c 68
20
(f_to_c ⍣ ¯1) 20
68
Now I'm an APL noob, I don't know how deeply this is implemented. I suspect it's very adhoc.More interesting are logic languages such as Prolog. If you stick to the core logical features, you get the inverse of a function for free:
?- append([1,2,3], [4,5,6], X).
X = [1, 2, 3, 4, 5, 6].
?- append(X, [4,5,6], [1,2,3,4,5,6]).
X = [1, 2, 3].
?- append(X, Y, [1,2,3,4]).
X = [], Y = [1, 2, 3, 4] ;
X = [1], Y = [2, 3, 4] ;
X = [1, 2], Y = [3, 4] ;
X = [1, 2, 3], Y = [4] ;
X = [1, 2, 3, 4], Y = []. Python 3.12.7 (main, Oct 3 2024, 15:15:22) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print(f"foo {"bar"}")
foo bar> but TypeScript, Swift, Kotlin, and Scala take string interpolation to the furthest extreme of encouraging actual code being embedded inside strings
Many more languages support that:
C# $"{x} plus {y} equals {x + y}"
Python f"{x} plus {y} equals {x + y}"
JavaScript `${x} plus ${y} equals ${x + y}`
Ruby "#{x} plus #{y} equals #{x + y}"
Shell "$x plus $y equals $(echo "$x+$y" | bc)"
Make :) echo "$(x) plus $(y) equals $(shell echo "$x+$y" | bc)"
> TclTcl is funny because comments are only recognized in code, and since it's a homoiconic, it's very hard to distinguish code and data. { } are just funny string delimiters. E.g.:
xyzzy {#hello world}
Is xyzzy a command that takes a code block or a string? There's no way to tell. (Yes, that means that the Tcl tokenizer/parser cannot discard comments: only at evaluation time it's possible to tell if something is a comment or not.)> SQL
PostgreSQL has the very convenient dollar-quoted strings: https://www.postgresql.org/docs/current/sql-syntax-lexical.h... E.g. these are equivalent:
'Dianne''s horse'
$$Dianne's horse$$
$SomeTag$Dianne's horse$SomeTag$> Portable Genera, an official port of the VLM to Intel and ARM done under contract for existing customers. While this version isn't publicly available as of this writing, it's still actively developed.
The situation is different with SMTP, see https://www.postfix.org/smtp-smuggling.html