This is so weird. I'm actually writing documentation *first*.

(well all right, I did already code the really stupid version of what I wanted, but now I'm having to write the less-stupid version, but there's also the small matter of deciding how insane we want the less-stupid version to be...

...guessing I've probably summarized All Software Development right there)

#LambdaMOO

also I feel like I'm re-inventing a wheel, but for some reason the question of exactly how you graft a testing regime onto a codebase that didn't previously have one doesn't seem to come up a whole lot these days

... or at least something you would **expect** to come up way more often with 30-year-old codebases that predate the "write your tests while you're writing your code" paradigm that seems to be prevailing now

Although I am perhaps also being weird in insisting that the test repository remain separate from the source repository because, oddly enough, I want to be able to switch between source commits/branches/versions without having my tests changing out from under me ...

1/n

#LambdaMOO

(in order to, say, know that a particular commit actually fixed something, or that a particular problem indeed existed in an old version) ...

....cannot imagine how devs would consider that acceptable and yet that seems to be the typical way of organizing codebases these days (i.e. one repo with everything + test subdirectory in the source; and frameworks I've looked at seem to assume this)

There's also the small matter that many of the tests may well be applicable to the various MOO forks out there, say if you want tests for language definition compliance or database file format correctness

(yeah I know, heaven forbid I should do anything that might benefit my competition; I evidently suck at capitalism; oh well...)

#LambdaMOO

2/2

#LambdaMOO

(I evidently suck at capitalism; oh well...)

and on the off-chance there *does* turn out to be some way to monetize this, the most likely outcome is that some asshole trillionaire will just buy the empty shell of Xerox and claw back all of the rights

(not that legality seems to matter a whole lot for the folks with That Much Money...).

(oh weird, spell-checker doesn't like "trillionaire"? wtf?)

Oh weird, it seems Xerox PARC was spun off and then "donated" to SRI in 2023 and it looks like all of the patent rights, at least, are all staying with the lab. Good deal for SRI, I guess.

So, evidently, Xerox is (still) in We Completely Do Not Give a Shit About Any of This mode.

Also $1B in equity on $8B in assets? And 2024 net profit of minus $1B (according to wikipedia). Is this normal?

I'm sensing a company that is not going to exist for too much longer.

@wrog Just curious, what are you doing, modernizing #LambdaMOO? Are you going to be implementing any of the features some of the forks have done? E.G. sub-second suspend/fork, waifs, anonymous objects, 64-bit ints, etc? Also I assume you know of the rewrite in Rust called Moor?

@wrog Test suites usually live in the repos they test so that they stay current with that code. Ideally at any given point in commit history all tests pass (or are annotated as non-passing, with the idea that they should be made passing at some point).

You may be looking for something more in the realm of a 'validation suite' or 'compliance suite', which is usually run up against a product or API or file to see how much of the standard is correctly implemented, usually for interop purposes.

@wrog There’s a whole book on the topic, Feathers’s Working Effectively with Legacy Code: https://archive.org/details/working-effectively-with-legacy-code
Working effectively with legacy code : Feathers, Michael C : Free Download, Borrow, and Streaming : Internet Archive

Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t mat- ter how pretty or object-oriented or well-encapsulated it is....

Internet Archive

@joXn

I'd be surprised if there wasn't a whole library of books on the topic.

@joXn

Well okay, it appears to be a **good** book on the topic of how to deal with legacy code.

... which unfortunately is not really what I'm looking for, even if I am now likely to spend some portion of the next month reading it to see if it has stuff I don't know about (it probably does).

1a/1b

@joXn

What I'm actually looking for is an answer to "Has somebody already built the Thing I'm in the Process of Building?"

Except I'm also pretty sure the answer there is, "Yes," but I suspect the vast majority of the time, these things are done as one-offs, the consultant moves on, and the actual tool stays stuck behind some stupid NDA wall...

... meaning it's more like, "Has somebody already built the Thing I'm in the Process of Building *and* pushed it out the door in some form that I can actually use?"

except (1) I'm too lazy to do that research and (2) I've already put in enough work in I may already be in NIH Mode anyway.

1b/1b