The Register Home Page

* Posts by MarkMLl

179 publicly visible posts • joined 29 Jun 2019

Page:

Drowning in code: The ever-growing problem of ever-growing codebases

MarkMLl

Re: m4 macro processor

However, the real strength of a macro stage is when it can determine the type of its parameters: /this/ is an lvalue to which a 64-bit real can be assigned, /that/ is an expression that evaluates to a real, and so on.

Lack of a decent frontend which can handle that sort of thing is one of Pascal's many flaws. However when combined with a decent RAD IDE (i.e. Delphi or Lazarus) it still has quite a lot going for it: but I'm no longer sure that I'd recommend it to somebody seeking a language for in-depth study.

MarkMLl

Re: "Late in Wirth's career, he became a passionate advocate of small software."

"everything that was necessary and nothing that was not" is fine, /provided/ that the underlying platform (i.e. language, OS or whatever) is extensible.

For a language to not have a decent macro-expanding frontend is a major omission (and for the language's custodians to point to some favoured facility that can do many, but not all, of the same tricks is inexcusable aggression).

For an OS not to be extensible by device drivers is a major omission (and the same applies to loadable network protocol plugins etc.).

The devil take any developer that assumes that he understands all possible use cases to which his product may be applied, and eschews conventional wisdom and expectations.

MarkMLl

Simplify and add lightness...

I'm all for eliminating cruft and keeping systems- hardware, OS and apps- as small as possible.

The problem is, however, that if you simplify a computer (hardware and OS) too far, then it will no longer be able to support the mix of functionality that almost everybody insists is essential.

You can obviously get round that to some extent by having more physically-separated computers. But as you do that the number of communications links goes up exponentially, followed by the number of opportunities for race conditions and inconsistencies.

As should be obvious, in retrospect, to absolutely anybody who has had anything to do with a system such as the UK Post Office's "Horizon": which remains in service with a very worried population of captive users.

MarkMLl

Re: A Few Ironies

Yes, but there /is/ a fundamental problem here: if you revert to a simpler OS then you're going to have to throw stuff away. And nobody can agree what's to go.

MarkMLl

Re: UI standardised ?

Agreed. A major issue is that now that programs don't- as a rule- have menus the UI has lost the ability to "pop up" a hint telling the user what he's about to do.

RIP John Walker, software and hardware hacker extraordinaire

MarkMLl

Xanadu, and other SF

One of my favourite short stories is Walker's "We'll Return, After This Message" which he dates December 1989 https://www.fourmilab.ch/documents/sftriple/gpic.html

It includes the words "Back in '97 Xanadu still wasn't finished...", which suggest that despite his optimistic description in 1988 he very rapidly started having second thoughts.

Clarke in "Odyssey Two" (1982) seems to have swallowed the underlying idea, with just about everything (including electricity bills) stored in a handful of DP vaults scattered around the planet: strongly suggested to be a shared resource. And I think it was in "The Fountains of Paradise" (1979) where he implied that the pinnacle of computer proficiency was being able to generate imaginative SQL one-liners.

Since then we've had the Semantic Web, not to mention indisputable duds like Chandler.

And everybody's gone back to the DP bureau model, where they hire time from Google or Facebook without looking too closely at the fine print.

Raspberry Pi Pico cracks BitLocker in under a minute

MarkMLl

It took the /Pico/ less than a minute. The point being made- and I think it's fair- is that it didn't involve hours or days of computation to decrypt a key, or some substantial amount of memory to build up rainbow tables.

MarkMLl

Hardly surprising...

There's been multiple people looking at making use of the LPC bus- which is what accesses the TPM when it's not integrated into the CPU- for a couple of years: some of whom use the Pico.

https://hackaday.com/2023/06/13/bios-post-card-built-using-raspberry-pi-pico/

So the real issue here is that BitLocker uses the key from the TPM without combining it with "something /else/ you have" or "something /else/ you know": i.e. a swipeable card or a passphrase to be entered.

None of which would help in the "Dread Pirate Roberts" scenario where both he and his laptop were taken live, or... (obligatory XKCD) https://xkcd.com/538/

Fairberry project brings a hardware keyboard to the Fairphone

MarkMLl

Re: Not the way I would do this

Search for "Blackberry Q10 keyboard" on AliExpress: there's a lot around, either as unused spares or salvaged from e-waste.

Designing something like a keyboard is difficult, and refining it to the point where it is as well-regarded as the Blackberries' is well-nigh impossible. Not to mention MOQs for the specialist parts which are probably in the thousands.

MarkMLl

Fiddly bits

Apropos components, it appears to be only the Hirose connector which has to be sourced and soldered by the purchaser, and it probably wouldn't take many people clubbing together (order of 100?) to get JLCPCB to add it to their list in short order.

And they do have competitors...

More of an issue is the final housing. 3D printing- /particularly/ if it's FDM (Fused Deposition Modelling)- benefits enormously from manual finishing which is not a million miles removed from high-end car bodywork. Filler-sand-repeat several times, then paint: relatively few people have the patience to do a good job of it.

Tech billionaires ask Californians to give new utopian city their blessing

MarkMLl

Same old...

California, not to mention the rest of the USA, seems totally unable to get any form of "improvement" right:

https://www.nytimes.com/2022/10/09/us/california-high-speed-rail-politics.html

RIP: Software design pioneer and Pascal creator Niklaus Wirth

MarkMLl

Re: dangling else problem

Yes, which is my point. Have you actually read the ALGOL W source with an eye to working out how to make a significant change in the syntax?

MarkMLl

Re: Wirth and John McCarthy

According to Waychoff ** IBM had made a significant donation to Stanford in the early 1960s (i.e. pre-McCarthy) which they'd used to build a computer centre... and then put a Burroughs mainframe in it. Also according to the same narrative McCarthy was unhappy that Burroughs wouldn't give him a way round their memory protection so that he could take over memory management with LISP. It's very easy to interpret that as McCarthy wanting to get rid of Burroughs, with IBM prepared to bend over backwards to keep him sweet. (I'd note here that SLAC kept their Burroughs, and it contributed to the design of the Starwars-era S1 supercomputer which had an OS implemented in an extended Pascal.)

There was, without any doubt whatsoever, an enormous amount going on behind the scenes which might never be disentangled. We know that Wirth and Dijkstra were friends, we know that Dijkstra was very public in his disdain for IBM, we know that Wirth spent at least one sabbatical on the US West Coast but there's little indication that he visited Stanford.

So while it's very common to see accounts of there being a Europe vs USA battle centred around ALGOL/Pascal vs FORTRAN/COBOL, it might actually have been Dijkstra/Wirth vs IBM and, at a deeper level, IBM doing everything it could to disparage "The BUNCH": i.e. Burroughs et al.

** http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-8-pdf/k-8-u2779-B5000-People.pdf which is Donald Knuth's copy, hence the curious annotation on the front page (which has never been elaborated, including in Knuth's oral history where he has nothing but praise for Burroughs). I believe that copy came from Bill Parker who was a Burroughs FE in the UK, and had trained on the next generation Burroughs mainframes in November '79; I suspect it got to Knuth via Warwick University which was another Burroughs site despite its proximity to an IBM campus.

MarkMLl

Re: dangling else problem

I am fully aware of what it means. The problem persisted in Pascal implementations: it is more than just a specification issue.

It was fixed in Modula-2, which Wirth designed at his relative leisure after- I believe- switching to recursive descent which is easier to maintain.

It was fixed in Ada, where Wirth- and other authors of the ALGOL-68 Minority Report- served on the HOLWG.

But most importantly it was fixed in ALGOL-68 which required an explicit FI etc., hence Wirth was aware that it was a significant issue before embarking on Pascal.

MarkMLl

Wirth and ALGOL-68

The thing that has long surprised me is the complete lack of support that Wirth appeared to get from his former boss at Stanford, John McCarthy. The quip about "knuthput" in the "Final Word" cited suggests that he felt that the entire Stanford department had become hostile to him.

Not having McCarthy's support, and probably correctly feeling that he was too junior an academic to stand up to somebody of McCarthy's stature, he resigned from the committee in May 1968 ** and spent the next few months modifying his ALGOL W compiler to implement a new language for (I speculate) the Autumn postgrad intake to work with. As it was, the delay before an intelligible ALGOL-68 specification was available probably meant that he needn't have rushed.

At my most charitable, I think that Wirth was sufficiently inexperienced to realise that he had to cultivate his former colleagues and explain what he was doing and why.

Somewhat less charitably, accounts elsewhere suggest that McCarthy had lost enthusiasm for ALGOL by about 1965, when he had Stanford's Burroughs (i.e. ALGOL-based) mainframe replaced by an IBM.

Perhaps cruelly, there's even a possibility that McCarthy intentionally sabotaged ALGOL-68 to remove a threat to LISP.

** https://www.tomandmaria.com/Tom/Writing/DijkstrasCrisis_LeidenDRAFT.pdf

MarkMLl

Re: dangling else problem

"fixed in later languages, including Pascal"

No it wasn't. Wirth was in a rush, he based his earliest Pascal compiler on ALGOL W which used recursive ascent (rather than descent) and the changes required would have taken more time than he thought was available.

In practice, because ALGOL-68 was delayed, he could have slowed down a bit and done the job properly.

Apropos the semicolon, being a /separator/ rather than /terminator/ it couldn't appear before an ELSE (and some Pascal implementations were picky if it appeared before e.g. UNTIL).

But after various people- UCSD, Borland- had "improved" the language we've ended up with a mixture of structures which handle single statements (e.g. if-then-else) and structures which require END (try-finally-end).

The comparative lack of success of Modula-2, which tidied this stuff up, is unfortunate. But Wirth no longer had Kathleen Jensen to help him make it intelligible.

War of the workstations: How the lowest bidders shaped today's tech landscape

MarkMLl

Re: Good article, if a bit too wide ranging

I agree: so wide ranging it makes comment difficult and risks having somebody who has good reason to disagree with one point say things based on an imperfect understanding of others.

Having said that, I think the priesthoods that surrounded the major mainframe architectures were so intent on protecting their precincts by means of arcane incantations that their successors really hadn't got the faintest idea what they were talking about.

It took me years to find a coherent explanation of what a "parallel sysplex" is, and how it compares with an SMP system, or NUMA, or a cluster.

MarkMLl

Re: Disagree on a few points

"Yes, a concept carried over by Commodore on the original PET and it's floppy disk unit. Maybe others did it to, but none I'm aware of."

In that case you've really not looked very hard. From the early 80s onwards anything using a SCSI bus had a significant amount of processing power in each host (i.e. peripheral), and the situation has continued to the present day. Haven't you ever stopped to wonder just what's inside that fancy printer on your USB bus, with a display that would put the original PC to shame?

MarkMLl

Re: Correctness and Simplicity

I believe that the original definition was from John McCarthy (MIT and later Stanford), who compared a certain type of programmer with a "ski bum" intent on shaving a fraction of a second off his downhill run time.

MarkMLl

Re: What Is A “Workstation”?

Interestingly (at least IMO), Sun's enterprise-grade machines and the Cray CS64000 were all based on an "Artificial Intelligence Workstation" architecture developed at Xerox PARC, which was then reworked by a collaborative team of Sun and Xerox engineers to use SPARC processors (the seminal papers have a couple of dozen authors from the two companies).

If nothing else, this suggests that physical size and the number of simultaneous users are barely relevant when it comes to firming up the definition: it mostly boils down to "what does this company see itself as selling?".

MarkMLl

Re: Disagree

The bigger problems with the dynamic languages is lack of internal protection: an ordinary user can make breaking changes to the underlying structure of the system.

I'm fully behind "It's my PC, and I'll pry if I want to". However I think it's indefensible for a user to (a) make some arbitrary change to a network-facing computer and then claim it's unmodified or (b) make a change to some component which he does not "own" (i.e. take full responsibility for) and then blame everybody else for the resultant problems.

Smalltalk (or for that matter Lisp) with some form of object/class-based ownership and protection mechanism would be very interesting indeed. But AFAIK, such a thing does not exist.

Kernel kerfuffle kiboshes Debian 12.3 release

MarkMLl

Re: Oh flippin' great...

Got it thanks.

66-1 = 67.

MarkMLl

MarkMLl

Oh flippin' great...

Spotted the upgrade on Sunday (10th) evening, installed it yesterday (Monday 11th) morning and it's left me with kernel 6.1.66-1 (2023-12-09) and no indication of any available replacement.

However /etc/debian_version tells me I'm on 12.4, which is presumably OK.

Still better than my memories of OS/2...

MarkMLl

Revival of Medley/Interlisp: Elegant weapon for a more civilized age sharpened up again

MarkMLl

Re: You /what/ Liam?

So in Smalltalk you have left-to-right, in APL you have right to-left, and Lisp does its own thing. Then you've got RPN as used by Forth, HP et al.

All of which has left me with the definite feeling that we owe an enormous amount to ALGOL as originally defined, which despite the fact that few people at the time knew how to write a compiler did its best to stick to normal algebraic evaluation.

MarkMLl

Re: Downvote magnet ...

> But thats standard when writting any sort of code... comment the hell out of it.

No. Read the Blue Book and you will see that the language- not support software added later- contained what was basically project-management facilities.

MarkMLl

Re: (Potentially-) Evil Programming Constructs

"Untagged variant records" in more recent Wirth-style parlance. A lot of machines were like that, and while I've not gone into that facet of history in detail my suspicion is that the original intention of types as conceived by Hoare/Wirth was to handle those, with extension to more complex data structures etc. following.

MarkMLl

Re: Excellent Work !

Burroughs ALGOL-based mainframe emulation: https://retro-b5500.blogspot.com/

MarkMLl

Re: Excellent Work !

George 3: https://en.wikipedia.org/wiki/GEORGE_(operating_system)#Emulation https://www.rs-online.com/designspark/running-george-3-on-a-raspberry-pi

plus many others.

MarkMLl

Re: Downvote magnet ...

But one of the most significant things about Smalltalk as described in the "Blue Book" was that it went to significant lengths to encourage commenting etc. to make large-scale programming manageable.

Kay, unlike many who attempt to design a language, was intimately familiar with the state of the art: warts and all.

MarkMLl

Re: You /what/ Liam?

I'm disappointed that your editorial staff aren't sufficiently on the ball to have picked up the lisp/list inconsistency.

The more time I spend with software projects' excuse for documentation, the more I respect the rigour that the Ada community attempted.

I've dug around the history a bit, and in actual fact the Strawman requirements did mention LISP's indeterminate-length lists as something useful to have. Other than that it was ignored, and in the end they explicitly based the language on Pascal (i.e. as distinct from ALGOL-60 etc.).

And then it appears that the DoD's HOLWG actually hired Dijkstra, Hoare and Wirth as consultants: they being the prime movers behind the "Minority Report" which pointed out flaws in ALGOL-68 as first defined.

All of which could be very easily interpreted as an aggressive dismissal of a whole bunch of ivory tower academics including John McCarthy and van Wijngaarden's coterie.

But the bottom line is that neither Ada nor ALGOL-68 had an easy/cheap implementation which allowed an engineer or project specifier to take a copy home or run it standalone on his office workstation. And that's probably why C (and, in its day, Turbo Pascal etc.) outsold it something like 5,000-to-1. Hell, I've seen more copies of LISP sold than Ada...

MarkMLl
Coat

You /what/ Liam?

Interlisp or Interlist? Parehelion... who the heck were they?

And if LISP really was so great, how come it was almost totally ignored when the DoD was looking for a foundation for Ada?

MarkMLl

Polishing off a printer with a flourish revealed not to be best practice

MarkMLl

How the Hell did he manage that???

The TC500 decoders were sealed units with the electromagnetic clutches and brakes running in an oil bath.

If a rag got into it... well, all I can say is that https://xkcd.com/463/ applies.

System76 teases features coming in homegrown Rust-based desktop COSMIC

MarkMLl

Yes, yes, yes... but when are we going to get a half-decent Rust-based RAD with IDE, form builder, integrated debugging etc. to rival NeXTSTEP, Delphi or FPC/Lazarus?

openSUSE makes baseline CPU requirements a little friendlier than feared

MarkMLl

Re: I don't see an explicit "version2" or "architecture version number" there...

Hmm. So /very/ approximately:

v2 sse4_2

v3 avx2

v4 avx512

...with a lot of scope for chip variants to have some enhancement of (in particular) AVX512 to suit "jeu de jour".

MarkMLl

So since we are- obviously- talking Linux here, what does this translate to in terms of what the kernel reports via /proc/cpuinfo ?

I don't see an explicit "version2" or "architecture version number" there...

You thought you bought software – all you bought was a lie

MarkMLl

Re: Sometimes you have to pay

"software to run your factory"... customised for you by a specialist, built on an Oracle database after they bypassed the technical departments and made a pitch to the directors. The price goes up exponentially every year, and eventually you're told that you have to move to "the cloud" because they're no longer going to support on-site servers. And since you've not been investing in your own people to handle the maintenance, you don't have the slightest idea how to disentangle things and move to an alternative.

Once you're ensconced in the cloud, somebody cuts a cable at the other end of the country and a chunk of the national telecoms infrastructure goes down. So your factory stops.

MarkMLl

Re: One of those "Yes!" articles

USA spelling... I believe Liam still writes with a British-made Parker pen. What El Reg's editorial desk does with it is outside his control.

MarkMLl

Re: Public Domain

No. "public domain" in general implies res nullius, i.e. nobody owns it and there are no strings attached. FOSS is owned, and that ownership is enforced to a sufficient extent to allow one of the FOSS licenses to govern its distribution.

MarkMLl

What do you really own?

Well done Liam, very good indeed.

The one thing I'd add is that generally speaking ownership of a particular piece of free software /has/ been retained by the developers, or delegated to somebody who is expected to act in the project's interest. That is why non-compliance with the selected license can be policed.

However, the end user can fairly claim to own the binaries that he is running, have a non-revokable right to continue running them, potentially move them between computers, and to turn to whoever he chooses for support and maintenance.

Why the end of Optane is bad news for all IT

MarkMLl

Yes, /but/...

This is something that Liam and I have been sparring over for the last ten years or so.

The first thing I'd say is that on Linux- in fact I'd hazard any modern unix- everything /isn't/ a file: network interfaces aren't files, sockets aren't files, USB devices aren't files... and even in the case where some device or OS interface /does/ exist as a name in the filespace it very often needs a specialist API which controls it via IOCTLs.

Second, if we do magically decide that we can do without secondary storage and have everything inside the application program(s) like a 1980s home computer or like a PDA how do we organise it and ensure that it will scale?

I can sympathise with Liam's uneasiness at the idea of having data which isn't immediately accessible to the CPU. However, what is the alternative? There really does have to be some sort of organisation even for something which has a single-level addressspace, and if we assume that the leading contenders are environments like Lisp or Smalltalk we have to ask: how is internal data organised, and in particular how is any form of security implemented?

The original Smalltalk books (Goldberg et al.) casually remarked on cases where system owners were free to change low-level details. However the early non-PARC implementors were quick to point out that such things made systems virtually unmanageable since there was absolutely no way that a program (some species of object bundle) could make any assumptions about what already existed on the system.

To the best of my knowledge, there is no persistent single-level environment where every object has an owner and well-defined access rights. Hence there is no way of saying "this stuff belongs to the user and can be read by nobody else", "this stuff belongs to the underlying environment system and can only be updated by its maintainers", and "this stuff is the intellectual property of some middleware bundle released as open-source, and if modified it can no longer be passed off as The Real Thing".

As such, I have reluctantly decided that the idea of file-less flat systems is a non-starter.

CHERI-based computer runs KDE for the first time

MarkMLl

Re: A way to go!

> I agree with Tony Hoare.

"Many years later we asked our customers whether they wished us to provide an option to switch off [bounds] checks in the interest of efficiency on production runs. Unanimously, they urged us not to—they already knew how frequently subscript errors occur on production runs where failure to detect them could be disastrous. I note with fear and horror that even in 1980, language designers and users have not learned this lesson. In any respectable branch of engineering, failure to observe such elementary precautions would have long been against the law."

The bottom line is that by ignoring most of the available hardware protection capabilities in an attempt to make software appear to run slightly faster, Microsoft et al. have left their systems vulnerable to any amount of bugs and malware. Even ignoring the cost of theft and extortion, the time wasted scanning for potential problems and fixing any that get through is vastly greater than the time they were able to save.

MarkMLl

Re: Capabilities you say?

> You mean like the Manchester MU5 of the late sixties?

...which shipped in '74, some fifteen years after Burroughs started working on their descriptor-based architecture which was released commercially in I think '63.

I admit to being slightly dubious about the ultimate provenance of that architecture. The tag that indicated whether a word in memory was data or a descriptor might have been a side-effect of designing hardware to run ALGOL, which later turned out to have broader applicability.

Tavis Ormandy ports WordPerfect for UNIX to Linux

MarkMLl

OK, but just what /is/ this?

Well, I remember people running WordPerfect multiuser on CCP/M-86.

But just what are we looking at here? Is this a fairly straighforward compilation of available sources, or is there some sort of shim involved in the same way that Linux used to offer shims to support the APIs of some of the established unix flavours? And how's the UI handled: curses/termcap or something more esoteric?

Confirmation that a modern Linux distro remains compatible with legacy software is at least as big news as the availability of Lotus or Wp for a current OS.

Google calculates Pi to 100 trillion digits

MarkMLl
Coat

If that were the case, then somewhere embedded in the digits of pi are the digits of pi... a statement which is either trivial (if we allow the perfect overlap) or paradoxical.

Export bans prompt Russia to use Chinese x86 CPU replacement

MarkMLl

Who cares?

The bottom line is that you don't need a supercomputer to read propaganda.

And it doesn't matter whether that propaganda comes from Vlad the Insane or Elon the Erratic.

Debian faces firmware furore from FOSS freedom fighters

MarkMLl

Jenny List, writing at https://hackaday.com/2021/01/29/why-blobs-are-important-and-why-you-should-care/ , suggests that many controller ASIC contain bought-in IP which might include firmware provided under NDA, the source of which quite simply can't be made public.

As others have said, this is hardly a new problem. In addition, Debian does have various binary firmware collections in the "non-free" area of its main repository.

The real problem is when installation requires non-free firmware... and the target system has no supported removable medium from which it may be loaded (not to mention the virtually-undocumented naming conventions etc.). Or even (and I've seen this on SPARC systems... anybody remember SPARC?) when the installation CD contained a blob for the SCSI controller which it didn't actually install.

The wild world of non-C operating systems

MarkMLl

Re: REALTIME, baby.

Yes, and the first computer implementation of APL was by Breed with Wirth as academic supervisor.

MarkMLl

Re: Jupiter ACE

Related code was used in boot ROMS from IBM and Apple at various times. It went on to be used on the One Laptop Per Child machines and never lived it down.

MarkMLl

Re: Modula 2

I agree. Basically, Pascal was a rush job designed in between April when Wirth threw his toys out of the pram and resigned from the ALGOL-68 committee and the intake of new graduates in the Autumn.

But it made too much of a splash, and Wirth was never able to really popularise the "done right" version that was Modula-2.

What is not generally known is that Borland had an 8-bit Modula-2 that they decided not to sell themselves but licensed to IIRC Echelon (Ciarcia's company). However they didn't license the documentation, which meant that it was essentially unsellable.

The 16-bit implementation became TopSpeed, published by JPI and later Clarion.

MarkMLl

Re: Modula 2

Yes, but if you look at Post-Wirth Pascal you'll find that just about everything that's been added is basically Modula-2 syntax, e.g. the try-finally-END and try-except-END blocks.

Page: