Perl5 for UNIX is approaching EOL
If your company has any money invested into Perl development, you need to read this page all the way to the 'Summary' section. Or just skip to the 'Summary' section.
I've been talking recently to various Perl groups all over the planet and it looks like not many of them understand that next year might well be the end of Perl5 (all it takes to decommission Perl5 forever is major UNIX maintainers to include Perl6 as default - that was the process tested before). It was done with systemd and then it was done with Python (2 vs 3 switch) so it's only a matter of time when that happens to Perl5. Now because last few years not many people were able to make a living with Perl5 coding, this kind of hostile termination of Perl5 on UNIX can be relatively easy to do.
That's why last few years various Perl shops are trying different approaches to deal with (imminent) discontinuation of Perl5. Some shops are rewriting everything. Some shops are investing into their own distribution (Strawberry Perl is the most active example). There were various other attempts under Perl 11 umbrella (not one solid enough, but there are some really good moves out there). Active State is no longer dedicated to Perl (they were never dedicated to UNIX anyways).
Now important moment here is UNIX as well. After IBM acquired Red Hat, that basically marks the End of UNIX in Americas Enterprise. There were various notifications of that happening for several years. (Oracles Moves, Debian Moves, stuff like that).
There are of course some branches of UNIX that might still survive as a marginalized shop (BSD, for example, never left that niche, and they are fine being who they are). Only I think there would be not much enterprise budgets coming into UNIX most likely (and that would mean even less enterprise support for Perl, which was non-existent last 12 years anyways).
I know how to save (and rejuvenate) Perl5 for UNIX. I used to provide my own Perl5 distribution very long time ago, I also used to provide my own distribution of UNIX (long time ago, based on Debian) that's how I know.
If your shop would like to get your own Perl5 distribution for UNIX going - I know how to make it self-funded. By doing the exact same move Perl did in the beginning of its life. Some moves are described on my website pault.com
Pass around? Maybe somebody would like to give it a try.
pault12 at gmail
November 28 2021
"Told you so" : Moving from Centos to Ubuntu Used to be no issue for Perl / Unix. Basically, Perl is already dead in a way. Is not dead for me, though. I just use it not the way you, guys, use it. This page provides details. Time for the new age Perl distribution. I have about 50% of it.
July 07 2023
I think the perl5 monster will continue to be part of unix. I think that something similar to 'systemd' might eventually happen with "Perl in UNIX". "Perl in Windows" will be different story (as usual). There *is* a "right way" still and it is described on this page. Would it happen - that's another story. It might.
Jan 01 2024
Disclaimer There is my name on that book. I know what I'm talking about.
I'm a software engineer and I code every day. In Perl. End of Disclaimer
If you think good technology can't vanish - think again. AxKit - Apache Axkit was retired in August 2009
Problem is, it was retired not because it was bad or something. It was actually retired because it was the only way on this planet to produce scalable and flexible rendering pipelines that can be used by humans.Pipeline: application server produces xml (or csv, the data flow) -> preprocessor (php + templates, say, in case of AxKit it was of course Perl) -> CSS/whatever
The attempt that started it all was XML + XSLT, but they managed to mess up XSLT layer very badly (because language). So what happened, happened, but as a result the (only possible) pipeline, that was a brainchild of the smartest people on the planet with decades of publishing experience (academia) was ruined in *production* (elitism), so everybody started to dance around PHP + CSS since then. The *only* working solution was AxKit.
If you want to produce a better version of AxKit - I can tell you how. I made some progress on a language level since then. Making rejuvenated AxKit a keystone for rejuvenated Perl 5 distribution is kind of no-brainer. They try to do something in that general direction with "Modern Perl". Since Larry Wall retired they are all a bit lost. Unfortunately.
December 09 2021
Figured out the roadmap. Interesting how it took exactly one month. Zope-Beans Resurrection ( And 20+ years of course ).
January 09 2022
So I install some Perl modules, read some comments. Many of the Perl people, whom I remember ... They're dead. Or destroyed. I wonder if I'd become one of them if I was a "Perl person". Which I'm not. I'm more of a Forth person.
March 31 2022
Why does OpenBSD still include Perl in its base installation? First shot at removing Perl from *nix distro. Fascinating reading. End of 2019. What's interesting here that the guy is actually correct, but he got it backwards. The right move is to *keep* the Perl and remove everything else. It's possible. I did it in 2005 and it worked all right. Here is a bit more
April 01 2022
Larry Wall is an example of a great humanitarian leader. Most of the statements he made are indestructible. Yet there were a very few little things he got wrong. One of those he admitted - ( use strict should have been default ). Some he could not 'admit' because it's very hard to make a call about complex things. One of those things is "don't use spaces for alignment of assignments". I understand why he made it (you let that 'in' and might end up with Python) but I think it's dogma. He was better off not trying to enforce that one in particular. He escaped Python dogma, but failed for Bourbaki dogma. In his defence, I think he had no idea about Bourbaki when he was writing his guidelines. No matter what we do with computers, the fixed width / variable width dichotomy (for fonts) will always stay with us.
April 03 2022
Long time ago I learned C then Perl and then English. In a way those languages saved my life. The difference is that C and Perl only provided me with the good stuff (well, C was 100% good stuff, Perl was 90% good stuff and 10% some crap that can be ignored). I could have written the ratio for impact of English language on my life, but I will not do that. But I could. This Scandinavian stuff they started in Europe ... It will pass. As to the languages ... The only language worth learning is the one that improves your employment situation. The rest is bullshit. One can easily calculate which languages they should have learned last 20 years.
April 10 2022
Not very decentralized, you know ... There is only one guy, who holds Perl VM together. Only possible because cPanel pays him. Here is the interview with him - Interview with Reini Urban
perlcc is still the original compiler. There were some minor outstanding bugs, which didn't hinder cPanel to use it for over 12 years with 5.6.2 successfully. There were some new and changed OP* and SV* data structures, but nothing dramatic. There were always B bugs, which I fixed by overriding the bad methods by my own.
And sometimes as in the latest years it does not make much sense to add support for a new release, because the latest releases had other dramatic problems, the maintainers were not able to understand. At least they eventually fixed it over time. Or let's say I had to fix it.
If you follow the development cycles for every new major release it is not much work. The problem is something else. Usually p5p is not able to come up with a proper design of a new feature, and the API is usually horrible. I am not talking about B. The normal API for XS developers and even core developers. Every new design is just horribly bad. Almost nothing would be acceptable in another language with proper SW developers and management. I have to leave out python and ruby here because they are even worse than perl5, but at least there is some kind of management going on. They have RFC's e.g. This upsets me of course, but you are not able to critize the developers. Their manager RJBS even recently came out with the new policy to enforce "faith" into his p5p developers, because of my constant critism. If you don't show "faith" you will be punished. perl5 has not only bless to create objects, it is now officially an religion and heretics are driven away. They don't show up anymore anyway.
So it usually needs some time to overcome my anger about so much stupidity and actually start implementing support for it. For example I could leave out immediate support for 5.16 to 5.20 because those releases where not worthwhile to support. But when Oleg Pronin/'syber' came along with his PIC patch, polymorphic inline caching to store the last used class pointer in the method with a 30% performance improvement, 5.22 suddenly became the most interesting target since 5.6.2 and 5.14.4. Of course p5p managed to talk Oleg down to throw away the PIC advantages and only use a naive monomorphic inline cache, i.e. store no hash of classes, just the last used class, but it is still a monumental improvement for method calls. "Why do we need a third hash implementation?" People should really be more critical and either use the older properly maintained versions or don't let p5p get away with technical nonsense. They usually have no idea what they are talking about, most normal CPAN developers do know better.
Platform support is done via the perl5 porters. They are the experts for platform problems and maintainance. I'm the expert for the compiler and the VM.
Yes, it is this bad. It's actually worse. He is in Europe. He has no idea how good he has it.
The future of perl5 is in hands of single German dude (who is pissed off).
Having said that - there is a way out. The dude is too focused on Lisp approach, so he is missing Forth escape.
cperl is a huge undertaking
perlcperl - a perl5 with classes, types, compilable, company friendly It will not prevail because there is no justification for a user to use this project. The user will follow standard perl5 into oblivion for as long as it would be possible because compliance. There could have been a way to boost the visibility of this project (by focusing on B::C part of the tool chain) only the author himself does not understand the importance of that, so the B::C section is buried in the middle of the document. The correct approach : throw away the entire document and only do B::C section, but do it right, not "Maybe provide python-like precompiled". Currently the stuff does not compile and there is no way to understand why it does not compile. Google is silent. This means nobody is compiling it. Last activity was in 2019. I would prefer something that actually installs (even if it does not support CPAN nor classes). On the positive side, I'm the only known perl5 developer who is properly paid 100% to work on perl5 core full-time. Exactly.
cperl is out, looks like. That leaves Rperl (which does not install and is very unusual) and Perlito. And that's it. Perlito only compiles into sub optimal backends, so the best approach is just to take Perlito and grow it. (Which is Forth way). Perlito worked like a charm. Very good project.
May 14 2022
perlito chokes on modules. GCJ also choked on modules (to the point that it died completely as a project). perlcperl did the great effort supporting the modules for that very reason. perlcperl is a huge undertaking indeed. perlito path looks a bit better still. If only all the way to AST. ... AST is suboptimal ... There was no need for AST to be like that ... That's because all the semantics of perl 5 and perl 6 and everything. All those years produced *this* ? I begin to feel German dude's pain. Back ticks not working - how come. Back ticks actually work but it depends on a shell command. Perlito is fun. UNIX has a way out. Allows working around pretty much everything. Perlito path - works so far.
May 20 2022
python2, python3, python3.9. "python". Crypto is the same actually. On steroids.
Perlito does the job. It's very consistent with the first builds of Perl. "It does the job". Amazing effort. Perlito is clearly awesome. As long as you use UNIX instead of modules (the way it should be). Now the funny problem is one messed up part in runtime, after it's figured out the rest just works. *However* this little thing means not many people actually use this amazing code. Same with cperl. Perl remains an interesting part of the universe.
There is only *one* way to handle perlito's little runtime problem nicely. And that way is based on patch. The thing that Larry Wall wrote *before* Perl. This is really spectacular. Perlito (that is the same miracle in modern world, like Perl was 30 years ago) effectively brings us back 40 years, before Perl even existed. This is some splendid stuff. *Nothing* changed in 40 years? How was that even possible? Yet here we are.
May 21 2022
There are some obscure technical moments in crypto technical stack that were bugging me for some time (more is here: On Bitcoin) Today I finally figured out *why* it is the way it is. Amazingly, the technical problems of crypto stacks all originate from fundamental limitations of UCSD Pascal. In case somebody still does not know - there was Java before Java (1994) and it was called UCSD Pascal (1977) - which spans from Niklaus Wirth approach to computing!
In 20th century there were only two people, who knew what they were doing with computers and Wirth is still alive and his approach is going strong - in academia. If you need an illustration of "how little things affect big things" - this is the clearest possible illustration. The Wirth's implementation of VM is skewing the market cap of Several Trillion Dollars! Yes. That's why Perl's VM is so *censored* important. It's the last one alive. Not for long, though.
As to crypto stack - it has a blind spot and that blind spot is specific to UCSD Pascal. It's embedded into that product line, so people who are only exposed to that product line will *never* see the obvious engineering approach, that is perfectly available outside their sandbox. That blind spot costs them trillions of $.
Real Programmers Don't Use Pascal - this piece talks about it. 1983.
He had located the data he was working on near the top of memory -- the largest locations the instructions could address -- so, after the last datum was handled, incrementing the instruction address would make it overflow. The carry would add one to the operation code, changing it to the next one in the instruction set: a jump instruction. Sure enough, the next program instruction was in address location zero, and the program went happily on its way.
Little problem with perlito runtime turned out to be a problem the size of UNIX. Clearly, perlito dude only runs it on Windows. It's not big of a deal yet, but I can't fix it nicely as fast as I was planning. Anyway, German's dude code can not even compile on my hardware, it needs a normal computer. Perlito works. Well ... looks like 50% of correct solution can be done easily. Ironically, there is a tcl way that allows crappy runtime to pretend that everything is OK. Wow. So now I understand the way tcl was produced.
The only reason Perl (and hence the Internet) prevailed was because of very few extensions written by very few british freaks. I think british managed to run out of freaks by this time. Somehow.
May 27 2022
Patch of 1 line fixes 90% of the problem. The rest 10% (the hardest one) are pushed to the future. UNIX way, indeed.
You *do* understand why Perl is represented by Camel, right? It's a very old joke about design by committee. Internet says the joke is (at least) 1952.
Well, pretty much everything related to UNIX and files is borken. So it was not really 90% more than 50%. It needs some help, basically. Very much like perl4. Pretty straightforward so far.
May 28 2022
Hungarian notation was an interesting convention. Perl is the only existing programming language (except shell of course. PHP is just a crippled Perl repackaged and friendly) that contradicts it.
May 29 2022
So here is the summary. If you are currently doing anything in Perl
1. If you plan to throw away all your Perl code in a year or two, this page does not affect you. Could write everything in, say, Python (and rewrite everything every time somebody changes something, the Python world is different from Perl world). Or could even use plain shell (some corporations are doing that now).
2. If you plan to use Perl for web development - an ultimate solution for that is briefly described on this page (and no other solution exists on this planet and nobody is going to produce it because it already had been produced but the author is no longer operational).
3. If you plan to use Perl for *non-web* development - an ultimate solution for that is also hinted on this page and no other solution exists on this planet, because they are a bit lost last few years. This creates a very interesting situation around Perl.
In simple terms - everything you do can go down the drain any moment. And that is specific to Perl. Read this page to understand why.
May 30 2022
Perlito + Munin client makes for another strong blend. Figured out the name. Usually that's 50% of the project. Tried to figure it out for 10+ years now.
Jun 03 2022
C vs Pascal is Freedom vs Safety.
Jun 04 2022
If you still think Docker exists - you're a bit behind. Better to catch up.
Jun 09 2022
Larry Ellison is out. He was the last one. 77 y/o. Yes, this is very relevant to Perl.
Jun 10 2022
Figured out the prefect move for perlito. That solves 99% of the problems.
Figured out a way to improve on UNIX. A little bit. Yes, everything can be improved. UNIX is rather old. 1 minute granularity, race conditions etc. Systemd was interesting move. Useless, but interesting.
Jul 08 2022
Perlito is stagnant. Don't know if that's a good thing or a bad thing. In principle, I might be able to progress. But in a few years ... It's Lua or Go. Or Oberon. OK, D might have some hope after all. Go beats D, because crosscompiling. It's rather remarkable what is going on with the stacks recently.
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
It was supposed to be "write once run anywhere". "Anywhere" now differs between two versions of Ubuntu for crying out loud. Perl is in better shape then. Wow. Who would have though.
Perlito is kind of OK but modules are a problem, yes. So need to untangle them one by one basically. Perl be Perl.
Jan 09 2023
Perlito can not compile broken Perl modules. Turns out, some of *core* Perl modules *are* broken. And there is a person, who was injecting the insanity. Yes, there was only one. Rather, remarkable how much damage a single person can do. Perl codebases will be fun to maintain. Looks like there is rather simple way to get rid of this whole thing now. Who would have tought. I don't blame Perlito. I would have done more or less the same that he did. This *does* explain cries for help that some Perl core maintainers were including inside the modules. Perl core *was* purposely destroyed by the set of appointed peoples. It is very interesting what happens to this engine which effectively created the Web.
So there is a function localtime that takes time and returns the array. It's part of the language. But also there is a function timelocal that does the opposite (and it is *not* part of the language. It's a module). Surely in 30 years somebody would notice such an oddity and fix it? Nope. Not how it works.
The core Perlito pipeline - 100% done and works. Maybe I'm missing something, but it will be easy to fix. Did I say Perlito is an awesome project? Perlito is a godsend, basically. Like Perl 4 was.
#!/usr/bin/perl -I/u/PP -I. use P; use STD; my ($sec,$min,$hour,$mday,$mon,$year) = localtime(); my $dt = STD::Timelocal($sec,$min,$hour,$mday,$mon,$year); print "$dt\n"; ubuntu@ubuntu-desktop:/u2/P$ ./t.pl 1673908092 ubuntu@ubuntu-desktop:/u2/P$ ./t.pl _j_ 1673908103 ubuntu@ubuntu-desktop:/u2/P$
This pipeline allows for a clean port of Munin to Windows. I do use a Munin's subset (there was one person who did the minimal port ages ago) but that subset is very limited, really. It only covers very few metrics, not the whole thing. Then again, maybe nobody needs the whole thing. Still - after today, there is a clear path to bring Munin client to Windows.
Jan 16 2023
It is clear that Rust will produce more problems than even Java, because (lack of) patterns.
Jan 17 2023
Figured out the only pragmatic way to pull it all together. It is based on my work that I did 30+ years ago.
Feb 04 2023
LAMP stack is clearly no more. There will be plenty of business on all those PHP codebases
Feb 05 2023
Put the first component production. It works. The pipeline is a bit strange, because Perlito does have some bugs in code generation that sometimes get in a way in some major way. So far I always find ways to patch around via P layer, but eventually I will need to fix Perlito's codegeneration. Also, this kind of enforces "good style" (goto does not work, but while(1) does work), but some of the things are not so nice. ARGV is absolutely messed up somehow, backicks are messed up etc. Still - it's all doable, the design works *great* and this whole construction will carry on for as long as Java exists. And that will be a long time with all those people feeding of it.
I have the whole thing working. Regression testing. Automatic code coverage etc. Took a day to put it all together. Automatic code coverage is very good to have. Even if homegrown.
Prolog might be next. Yes. Prolog might be *perfect* fit for this. Who would have thought. Basically this all means that I might drop dependency on Perl as collective. It allows me to write in Perl, deploy *production* and have no dependency on Perl (and eventually on UNIX). This is big, really. Freedom.
Surprisingly, some parts look like JCL. JOB SYS IN DD. Yeah.
Feb 15 2023
Turns out - situation with Java packaging degraded substantially over these years. Comparable to LAMP stacks. So this now could move two ways. Was there anybody fixing anything at all last 6 years? Looks like they were only breaking things and stashing what they could not break. "Smash and grab" has that effect, yes.
Feb 16 2023
Figured out how to do the same trick around this, like systemd did to UNIX. The trick destroys node.js. Just eliminates it. Completely. Like back in a day I eliminated Hadoop. Pfs
Feb 18 2023
Figured out how to beat the ZMQ. Ironically, using his own real-life pattern.
Feb 19 2023
The resulting construction looks a bit unusual. But then again, nothing is "usual" last 6 years, so the only thing that matters is if it works or it does not. It works. It works great.
Mar 04 2023
This is re-incarnation of Forth and Prolog. And C. What's not to like? So far so good. Hello 1970s, we meet again. It will take about a week to consume Go (and Windows). This is moving *fast*.
There is only one university on this planet (in EU) who is doing similiar stuff, and they are only doing it because they have my blueprints from 30+ years ago. Nothing changed in 30 years. Absolutely nothing.
Are there problems with Perlito codegeneration? Yes, there are. Is it a deal breaker? Nope.
Mar 05 2023
Yes Prolog. But not the way they do it. The whole Meta thing was a fad. Only Forth did it right. I wonder who started the fad.
Mar 22 2023
C vs Pascal is freedom vs safety. It's obvious that freedom costs *a*lot*. Oberon fits into single floppy disk, was capable of automating entire country of EU and was all written by a single guy. And had no bugs of course. Compare that to the world of falling Boeing's etc. You got the idea. Freedom is not free at all. Surely Oberon had no (media capable) browser. Niklaus Emil Wirth knew his people really, really well. There was only one guy like him in US. He did not know his people as well as Niklaus knew his people.
This means the *only* choice of the stack (reminder of) is between Go and Oberon and it does not really look like Go provides much advantage besides cross-compilation. Alas. Oberon does not provide cross-compilation, only Go does.
Mar 22 2023
Figured out the whole architecture. It's still von Neumann, but it's not Boolean. And it's not quantum either. And no OS. No need. The real problem with Kubernetes is that it masquerades the failing processess and calls that "machine works". Re-spawning faulty process 300 times an hour (those were Rails numbers as far as I remember) so doing that does not mean something "works". It's an illusion of work. Fake work. Now the real work as in "machines should work" - that's totally different story and (suprirse) my architecture is *that*. Obsession with OS is just that, an obsession. Forth dude was right about pretty much everything. Hi 1970s. It's been a long 50 years and *nothing* was done. Can just pick up where they left. Tensorflow is a joke.
Mar 28 2023
#ifdef becomes :ifarg
Not bad for 50 years of progress. It turns out that Wirth is *exact* opposite of Moore. Talk about top down vs bottom up approach. What a difference 5 years make. Yes, that's their age difference. Both are alive.
Apr 11 2023
Go pipeline - works end to end. Basically, this thing can consume pretty much anything *really* fast. Any language, any restriction. Most of those restrictions are artificial for a long time now, that's why.
So I debug it in Perl, then I prepare the executable via Go (for any platform, covered by Go - that includes cross-compilation to Windows as well), and the entire thing grows like Forth in a way. Also - no need in JRE installation (Java is messed up anyways). There is no other stack on the planet currently that would allow this. I had some hopes for D and Oberon a year ago. They can't do this. This even beats Perlito. Basically it beats any imaginable solution somehow. Was not planning for *that*, but it is what it is now.
Now that dude, who sits on all that code in Switzerland ... What was he doing all those 30 years I wonder? What is going on, basically? "Crypto", I guess. Well, 50% of every US downtown had been wiped out in 3 years, how would civilization recover from this? Most likely it would not. So let's recycle, then. Whatever.
Yes, today changes pretty much everything. Somehow Perlito is no use now. And Java is no use now. Completely. Java is no use at all. Well, to think about Java as a phenomena, it was a fake contrarian play. "Non-visual Basic" that's what it was. I think the (fake contrarian) play was created by MS. "Crypto" conflict, effectively. I think the only reason it all worked out for so long was because of the "Internet highway" con (and the real goal of it all was to masquerade the (broken) inflation).
From technical side of things, this looks like a natural progression actually. After I found a way to replace Hadoop (the poster child of Java stack) it was only natural to find a way to replace the entire Java stack. Kind of funny, really. To replace Hadoop I had to replace HDFS. That was the hardest. In a way. Also, that "D" thing is equally fake contrarian play. Looks like they always introduce the same "fake contrarian" trick. "namespaces in XML vs SGML" and all that. Never solves a thing. Forth's dude was right about everything. And Brooks was also right about everything. "Show me your tables, but hide the code". He died in 2022. I really miss the guy. Somehow. They were all good, but him I miss more than others, somehow. He only wrote a few pages of substance but the world still does not get those few pages. I see it every day for many years. I see it for many decades.
Apr 16 2023
I guess Forth had no regression testing. Would be hard to have one. Because there is kind of "no bugs". And when there is a bug, you just figure it out and keep moving. It goes totally against all those industrial approaches. The guy was a genius. That explains a lot about Brooks' work as well. Bottom line - Forth's approach works *fantastic*. Several decades after it was introduced. The right thing to do is to follow it as close as possible. It's rather hard, because a single mistake in kernel creates a mountain of problems down the road and that means one *has* to get the layers perfect "the first time" - (which at first looks like a contradiction to Brook's "second system" approach). Basically, Brooks is planning for a disaster. Forth said "why is that? Just try to get it right the first time, and rollbacks are *cheap*". As long as your layers are perfect, rollback is not that bad in Forth. Yeah. UNIX pipes again. Hi 70s. Still, even with Forth, it still looks possible to leverage the "second system" approach, but that's because I can afford to make shortcuts "to be fixed later". Clearly, the key battle is variable number of parameters. I think first version of C did not even have that. I think they had to use MAC1, MAC2, MACN macros. No other way to do that. And why is that a problem? From what I see it is not *really* a problem, really. Still, somebody had to press for va_args and such. Because "looks ugly". (Found who was the "somebody". It was creator of C and it was because he was bothered that he has printf with variadics and nobody else has. ANSI C archives are amazing reading). Yeah ... It is a problem. Not for compiler level, for Macro level ... It can be hacked around with aggressive code expansion, but that will really complicate everything ... Basically this 'variable number of parameters' is really complex problem to handle nicely. Well, can always chain things ... The trick is to keep the number of parameters in check. Yeah ... it looks like aggressive code expansion is the only way to bridge nicely a world that has fixed number of parameters (assembly and such) and the world that has all that variety all over the place (unix utilities have piles of parameters for example, unix *pipes* have even more flexibility). The resulting system will become rather powerfull. Now need to figure out a way to do it nicely. That is macros on steroids, but steroids are non-recursive kind. Having said all this - I still cannot decide on mechanism and will postpone this for a while. In the meantime Benford's law is the bet. Works so far.
Also, macros per-se is not evil in C. It is *nested* macros, that is evil in C. Recursion is such a nifty trick that I think our brain craves it after it figures it out (only one out of 100 coders understands recursion. Now it is one out of 1000. Or worse.)
I *solved* the variadic macros problem by Jul 4-th and solving *that* problem *was* key to pretty much everything. No wonder it bugged me for a few years.
Apr 18 2023
Figured out how to apply this to publishing. Remember there was that XSL-FO thing ? Based on XML/SGML ? Yeah ... Figured out the replacement for that stack as well. That is because SGML/XML tree was effectively the part of that same Java stack tree. That's the problem with fake technologies. When bubbles go down, they go down *hard*. I think it's interesting that if MS would had included a single RMI.jar file into their MS IE browser distribution, the world would have been very different. Because it would have enabled the "Java is everywhere" architectures. Java applets would have called Java servlets over RMI and http stack would have been no more. A single .jar file not included with MS IE changed the course of civilization. In a way. And now I can just throw away Java stack alltogether. This is rather amazing. The thing that was one very little step away from consuming the world had been stopped and fallen. Bringing substantial part of civilization down in the process.
Might do Kotlin native after go, but there is no incentive to do that yet. The hardcore way might be Rust. Having said this, after this point it does not really matter much which stack to piggyback, they are all more or less the same.
Apr 22 2023
May 02 2023.
Surprisingly, everything grows from PlanKalkul. Every single thing. He got every single thing right. Not just with computers.
He even got the hungarian notation that actually makes sense. In 1945, he did.
I am solving the same puzzles as he was.May 03 2023.
SCO announced on August 2, 2000, that it would sell its Server Software and Services Divisions, as well as UnixWare and OpenServer technologies, to Caldera Systems, Inc. The purchase was completed in May 2001. The remaining part of the SCO company, the Tarantella Division, changed its name to Tarantella, Inc., while Caldera Systems became Caldera International, and subsequently in 2002, the SCO Group.
The Shanghai Cooperation Organization (SCO) is a Eurasian political, economic, international security and defence organization. It is the world's largest regional organization in terms of geographic scope and population, covering approximately 60% of the area of Eurasia, 40% of the world population. Headquarters: Beijing, China Founded: June 15, 2001
Old trademark was put to sleep in May 2001. The new trademark emerged Jun 15 2001. Three letter trademarks are (relatively) easy. Two letter trademarks are much more interesting.
May 24 2023.
At the end of February I figured out how to beat ZMQ using his own design pattern. As of today, his design model is simply - wrong. Constant simplification of a challenge ensures that nothing new will happen. Not saying that things should be pushed to the limits for the sake of pushing to the limits of course. But his core design *is* indeed wrong. Better than many (I was thinking maybe *the* best), but wrong. Zilog again.
May 26 2023.
Now I am reading through some ANSI C documents. Finding various people sitting in various high places around various programming languages. Long story short, the state of the industry is a disaster since 1980. That was the year they started the destruction of SU. Some people in EU and US are feeding of those times for 40+ years now. That explains why the key computer skills have been removed from planet job market. This chat GPT thing might try to consume as many computer resources as possible, because the guardians are basically dead (Dennis Ritchie was clearly one of the guardians, it's obvious from reading his communication with the committee), so the guardians are dead and there is nobody to replace them. This also explains all the misunderstandings I experienced here 20+ years ago. I was not supposed to be able to write a usable grammar for example. That's a sacred knowledge here and only special peoples are supposed to do that. This stuff with computer languages is more important than I thought. Basically, how come 6 elegant pages of BNF become 15 *mln* lines of (useless) code? It's not over till it's over of course. Basically figured out what to do with the stack and turns out the road forward implies going back to 1980s. Technology is fun.
This part about chat GPT. In one of her musings in the 90s the guardians secretary is asking herself "we have email/spam and we have viruses, will somebody combine those?" Content mutations personalized. Yeah. Welcome chat GPT.
The modern RU planet level trade flows had been set up in about 1974. Those were very questionable trade flows and only benefited very few areas. Whatever happened since that time was built on a very shitty cultural agreements. The agreements started to collapse around Y2K and collapsed completely in 2014. 74 + 40 = 2014. 40 years cycles are *very* real.
May 29 2023.
Mob is everywhere. They are easy to spot now.
May 30 2023.
Figured out the way to handle variadics and basically designed everything. Yes, it is perfect.
Bootstrap and self-hosting is a fallacy from 70s, because that's how they basically had to do things at that point. Forcing everybody into bootstrap and self-hosting is rather classic cargo cult, but what else to expect? *Everything* is cargo cult since 2008. 70s is not a bad place to be. Some parts of the world *really* want to get back to XVII century. Let them. I take the 70s.
Nvidia all time high.
June 02 2023.
If depressed and tired, just listen to Ana Vidovic playing Bach. She will fix you.
June 03 2023.
I had *no* idea this little project will bring me to *so* much understanding about EU calamities. For example, there is only one usable module on the entire planet and it is barely usable because of one manual page and that page is only usable because it has one line of information. And it is like that for decades (literally). Basically, at some point one has to stop publishing anything that is remotely technical or scientific. So this is the exact opposite of what the situation used to be in the beginning of the Internet. Internet was created primarily for people from socialist camp(s) to be able to publish their scientific work. That was the only purpose of the Internet, basically. (Yes, I know - should differentiate between Internet and Web, whatever).
June 04 2023.
Everything works as designed. End to end. N backends. This is fun. Took about one day to solidify the previous version. Problem is (always) to find a few hours of uninterrupted work. Turns out that go's "imported and not used" is rather major fortizm. I am undecided about it, really. It effectively enforces useless typing and re-typing, for no reason. Could have easily introduced --lint key to compiler. The rest is more or less tolerable. I think Ritchie was the only guy, who actually wrote code. Any coder would have done it via --lint key, not enforcing useless typing. It is what it is. It's the best we got. It (still) works, so everything is fine.
June 07 2023.
The exact phases of EU (year-by-year) degradation can be easily traced by one flagship science fiction EU writer, who produces one book a year since the 90s. Because to keep the author "fresh" they change the people, who write the series (the smartest people, who created the series are dead for a long time) so when they bring the new bunch of writers it *really* changes the tone of the narrative. Critical years for EU were 2013-2014. It's obvious in retrospect. It's *not* obvious for US (yet), but the mechanism is rather exactly the same. When I talk to new wave of degenerates, flooding into the area, they have no idea, they all use the same language pattern. A simple perl script can easily detect them. And I think the perl script *does* detect them.
June 08 2023.
Switzerland - no longer neutral. Sweden was, but they just submitted 20 hours ago. Japan said "yeah, no problem here". This means - second series. Yes, the Dam being detonated is like the pipeline being detonated. Terrorists now control EU, basically. They *do* try to take over US, but I think they will fail here. All this bullshit is pushed by a few hundred people and their names are publicly available. It's all EU crap.
June 12 2023.
Dear God, please no nuclear war this summer? Thank you.
Not much consolation of course, but I think I finally found the way to crack the DL Acorn. Turns out separation between PL and DL is rather artificial. No matter if you're a human or a computer actually. The fields of the Internet are a bit too narrow to write down the whole thing here. Naturally.
June 19 2023.
There will never be a Noble Prize for Mathematics. There will never be grants for Mathematics as well. Soros used to pay $50/month or something like that in the 90s. Interesting dude. Assembly language is (maybe the only thing?) that makes or breaks (any?) Mathematician.
June 23 2023.
According to today's SJMN the life of everybody in USA, who can read, write and count will be changing dramatically next few years. (If they are born in USA, naturally). The way it will change had been tested by one obscure case around Perl, that happened decades ago. And then there was another case, like that, happened on another coast. Basically, hello 90s, we meet again. AI scale equals Y2K scare. Not going to work, I think.
June 25 2023.
The few (broken) things in go are obviously about the ownership. Well, that is the company, that built everything by scraping everybody's content and then restricting scraping of their own content. What kind of language(s) could they possibly produce? Now this becomes a bit unusual recently because they're fighting Moore's Law (and that is impossible). So they *have* to expand their grip into tangible assets. That's the only thing they're trying to do actually. For a long time now. There was a movie back in a day (Depp was in it) I forgot the name. They produce pretty much thin air. That's why the german dude run away and the german gal also run away. Thin air is not much of protection really.
Who would have told me that I will be re-doing FORTRAN in the 21-st century? Whatever.
June 28 2023.
Somehow there is always a moment when you add new contructions to the language and *decrease* the number of lines in the compiler at the same time. And that is the moment when you know things work the way they should.
June 28 2023.
This stuff is *easy*. So what is going on with compilers for the last 50 years? Same stuff that is going on with everything else (that is hard skill) last 50 years. In late USSR there were about 20 managers for one worker. By this time the ratios got worse. Much worse.
Jul 01 2023.
#ifdef _strconv_ _ "strconv" #else "strconv" #endifTake that, go compiler. That's the only way to (forever) forget about "imported but not used" crap. (there is "goimports" for that, yes. and it has hooks for emacs, yes. that explains.)
Jul 02 2023.
20 years ago I figured out one trick that keeps giving. Just found a way to re-apply that trick to this toolchain. Re-applied it today. The resulting stack is orders of magnitude more efficient. And no longer depends on Perl (!). That was not expected. Basically, I could replace Perl in a month, say. Can do it any time, so let's keep it for some time. So much wasted work.
Jul 04 2023.
Basically, go is a very strict assembly (which is ok thing) but the syntax is messed up badly ( with no justification whatsoever ) and many paradigms are introduced with very little justification. So far so good. It is clearly missing a normal toolchain, but I think that's on purpose as well. To keep people typing.
New toolchain works end to end. There is only one place that depends on perl. It can be easily replaced with, say, python. Or lua even. Few days of work.
Jul 12 2023.
Production works like a charm. Figured out version 2. I am beginning to wonder, why nobody did it before, because everyhing was available in the 70s, really. Whatever.
It replicates perl4 design pattern rather exactly.
Perl timeline - clearly, 1977 was the inflection point. Perl adds nothing to awk.
Plan9 was a complete disaster. Inferno was another disaster (because it was building on top of a disaster). Everything went belly up in 1977. Because who needs local educated peoples, when there is (was) bottomless Asian market to ride (to the ground).
Jul 13 2023.
Figured out Plan9 angle. That was not expected. It looks like this technology thing is in such a sorry state all those years. I wonder why.
Jul 15 2023.
TIOBE says that Python is number one and C is number two. Interesting how they call Python not differentiating between Python 2 / 3 / 3.9 it's all "Python". But it does not matter, actually. What matters is that clearly people like simplest possible languages, like BASIC and Python. And Python is actually *not* that bad. They do have some problems, of course ( took them 20+ years to make Dictionary to be an actual Dictionary - and even after that it makes no sense whatsoever ) but the core of the language is kind of OK. The indentation based blocks are of course the key differentiator. Clearly, there is actual stuff (C libraries) and Python - a tiny scripting layer pretending to matter, that sits on top of the C layer. The world of Python is a two-layered architecture, piggybacking C. So it is *still* around C somehow. And C++ pretending to do better than C. It does not do better.
*How* did they manage to mess up Plan9? The original architecture was ok. The implementation was ok. They had *piles* of powers behind them. By this time it should have been running everywhere. They had to try *hard* to mess up. I blame the EU and disgusting deals of the 90s. Moving it to Inferno reminds of Perlito, actually. Too mechanical. Too much work. Wrong assumptions about what's hard and what's easy, that kind of stuff.
Jul 16 2023.
There was no rational justification for Plan9 to be in such a shape. Trashing of EU in the 90s is pretty much the only explanation.
There is one angle in Plan9 they clearly ignored. That's why Plan9 did not grow the way it could have. They put a nice logo on it, but at the same time they ignored the trade angle. Most likely on purpose. Because Academia. Eiffel tower engravings again, basically.
Version 2 will be Plan9. Or is it Version 3? Version 1 was Perl, Version 2 moved to Go (+), Version 3 will be Plan9.
The *only* decision I need to make is on a bridge. Currently the bridge is http and it works allright, but had it been over Plan9, things would have been better.
Ironically, I am at the *exact* same crossroads they had ( the only agrument that I found why Plan9 failed "UNIX was so good, Plan9 improvement was not interesting" ). I think that's bullshit argument on many levels. Here is why. GNU-(notUNIX)-Linux managed to break through UNIX grip (and Linux was such a pile of crap, the world is still trying to understand how the heck *that* happened?) Only the answer to "how did that happen" is rather obvious. Linux for example was the *only* 100% free way to run non-MS SQL server. That 100% was key. There were better alternatives, reasonably priced, but *100%* free is very hard to beat. *Money* *Matters*. There was not a single money angle for Plan9 (except that it was free and open source but that's not some kind of magic dust). They *purposely* kept it "pure". Academia. Like Knuth dude did with his entire body of work.
Also, it has to have Reversi angle (which I kind of figured out after yesterday) because that's the only possible angle in this area for whatever reason.
Jul 17 2023.
Stack works. Might need to restructure some things eventually, but the architecture holds. It's interesting how go and Perlito (Java) are both messed up in particular (same) places and those places are ridiculously important. Yes, I don't think it's a random moment. It was deliberate. Not in Perlito, I think. Perlito was lack of testing. The interesting thing with deliberate injections - they are easy to work around. The basics are ok, though, so that's the only thing that matters.
Jul 19 2023.
Figured out the money angle of Plan9. Best part - it already happened before. Those are the best projects. One benchmark, all it takes now. No hurry, the stuff is from the 70s, it will not run away or something.
Figured out two opposite approaches to code generation. One is based on minimal number of perfect layers, second is based on large number of crappy layers. It is clear that "pragmatic approach" always ends up with second approach. In reality, Brooks gives a way out because of second system. Spolsky (MS) is a strong advocate for writing piles of crap and then gradual refactoring. Surely, if you're MS you can do that forever. If you're MS you can re-arrange chairs in cafeteria and call that engineering. If you're MS you will miss the internet and then you will miss hungarian notation and basically you will miss everything. Whatever. I will need to cross this bridge between the layers at some point, it *did* work for variadics, it might work on layers. For now - that's the clear definition of the challenge. To be revisited later.
Jul 20 2023.
Figured out one interesting Boolean trick. It will definitely work for AI bubble. It's a classifier, rather obvious, but it will work better than many alternatives. Was not obvious to me.
Jul 21 2023.
Figured out one rather interesting (and simple) trick to hide sensitive information on the internet in plain sight.
Jul 23 2023.
Figured out how to blend the stuff from the 70s with the very recent EU technology (Academia). Interestingly, all it takes is one rather simple transform ( horizontal pipes vs vertical pipes ). Current world is all based on mind maps (that's frames, that's Minsky). Somehow everything stopped in 70s. Does not matter, now I have two tricks to play with, one Boolean another is from EU. And they can be combined on paper even, so don't really need a computer. Finally. Basically, "languages are good, but there are languages besides English". Who would have thought.
Jul 25 2023.
Dijkstra was also correct about everything. Like don't even use computer to do the designs. I figured out how to do the DVM. Figured out how to fix the HTTPS. Basically, because the idiots are only destroying things for a very long time now, plenty of stuff can be easily fixed now. The (only) question is why bother.
Aug 01 2023.
There were many things said about computers, but one I like the most is "Machines should work, People should think". I get back to it over and over again, it's timeless. Also, there is one really interesting paradox what to do with a broken link. In a nutshell, there are two approaches possible. One is "restore automatically" (that's US approach and it degrades the security). There is alternative approach, it's European, it's counter-intuitive, but it guarantees being ahead. I saw it implemented in a EU bank, that's how I know. 90s were a good time in some places. Pareto all the way.
I looked at current go web stack. This stuff that is described on this page. It could become valuable. Because go web stack is a mess and this page gives the antidote.
Aug 06 2023.
Looked at Haskell. Because Cardano. Basically, it's BNF on steroids. Which is not that bad of idea, really. I do like Prolog's take a bit better, but this BNF on steroids stuff is not really *that* bad of approach. The problem with those "smart" languages ( such as Prolog, Haskell and *go* ) is that they do add lots of fluff for the sake of adding fluff. This stack that I use now, it actually allows to replace the fluff and only keep the good stuff. Crypto was most definitely a hoax, just read the Wikipedia about the leaders. The hoax worked, though. Web was similar hoax. It also worked. Could it be that the hoax is the *only* way to bring something new to this world?
Aug 09 2023.
Figured out this go stack. I mean, that's from the same company who did Python (which had a dictionary broken for 20+ years and had the GIL for many years as well). Also that same company produced Hadoop (that can be replaced with a single command line). So what's their business model one might ask? Easy. They're a branch of government. So was MS and some other guys.
The stack works and grows almost exactly like Apache did in the beginning of the internetz. One would think that *something* improves with time, because "so many people are working, right?". No, not really.
Aug 11 2023.
JCL still going strong. Don't tell CSS peoplez, let them think they are inventing the good wheel. Found the way to bring a bit more JCL into the stack, like the trick from Jul 01. Simple tricks keep giving.
Yes, go is a bit messed up between the distributions, but because it follows original UNIX spirit, it's remarkably easy to handle, comparing to, say, Java. Or to pretty much anything else. All it takes is one symlink. That's how it should be, really. Packaging is grossly messed up everywhere else. I do have the new stack designed end to end, maybe will implement it some day. So far just 30% of the real thing allows me to solve all the real problems with ease, so there is no rush.
As of today the stack is polyglot. Few hours of work.
Aug 18 2023.
Two things not to forget. 1. Blend the compiler part with asm part at some point. Figured out! 2. Blend Plan 9 with ZMQ (easy stuff, can happen later).
Aug 28 2023.
CLP is all Dijkstra. Dijkstra is not even mentioned.
Figured out a DSL notation.
Aug 29 2023.
Rendez-vous pattern is a trivial state machine of two atomic valiables. French like to complicate simple things with fancy words. Dijkstra all the way.
Figured out the (pragmatic) approach to mixed content. As in "let it be". Took 20+ years (and some really intense preceding work). Nobody else figured it out (20+ years is a good test), so it's all good. Interestingly enough, one MIT dude figured out similar thing about compilers (many years ago) but the way he handled the problem was not technical at all. Purely humanitarian thing he did. I am talking the technical stuff. There are severe technical problems with mixed content, if you're compiler writer. The only people defending it were lawyers. Now I understand why it was like that for decades. Interestingly enough, if you just google "mixed content" you will find garbage. That should not be surprising. Not only google does not know. I tried bing, yandex, duckduckgo, baidu. They *all* find garbage. I think they (all) look up to google any time they need to decide. "Mixed content XML" will find the right thing. More or less.
Aug 30 2023.
Did a bit more reading around 70s languages. C and Pascal were the key moments, and everything around them was garbage. Only C was able to compact the garbage and make it usable. Pascal did not bother. Had no need to. And then there is Forth. Looking at all this and smiling.
How on Earth did I manage to miss the Emerald Language? Because it only got to Internet by 2007! That's why. This is impressive. They do the Java killer in 1983. In USA. But it is then frozen for 25 years! And then they publish it in 2007 - by that time it is too late. Well ... Is it too late? I was once asked to implement one line of that language.
The interpreter itself was written in C, but in a way that treated C as a macro-assembler. We would first identify the most efficient assembly-language sequence for the task at hand; for example, we found that non-null loops were more efficient if the termination test came at the end rather than at the beginning, because this avoided an unconditional branch. We then wrote the C code that we knew would generate the appropriate assembly language sequence, for example, using if(B) do . . . while(B) rather than while(B)
Yep. Pretty much what I do, but they are missing the most important part (which is mixed content). The oversight is kind of understandable for their times, but it is *not* because of technical limitations of their times, actually. The limitations were self-imposed. C dude broke the self-imposed limitations, so they just piggy backed him. Which is ok.
During our car trip from Seattle to Portland for the first OOPSLA in 1986, we bounced around the idea of writing a paper about Classes Considered Harmful
Only they did not. Self-regulating system.
So first they map Pascal to UCSD Pascal (San Diego 1977). Nobody cares about that one. Then after about 10 years later they map Concurrent Pascal to Emerald (in 1983, in Seattle) and it fails. Then they move it up North, and Canadian Gosling finally produces Java (which is some implementation of UCSD Pascal) in 1995. Then Java says that all you basically need is simple RMI, and pretty much all is needed for RMI to take over the Internet is for MS to include Java RMI with their MSIE browser. But they *already*failed* with Emerald in 1983. *Both* Emerald and Java are just rewrites of UCSD Pascal (from 1977) only one rewrite was done in Canada (and is called Java) and another rewrite was done in Seattle (and is called Emerald). Looks like MS could not allow others succeed in the area they failed, so they pulled the plug on Java RMI in MSIE (and eventually Sun is acquired by Oracle and that's it).
Aug 31 2023.
1. Nothing beats original UNIX pipes. 2. Because they copied what they did not understand (see Wikipedia), they failed to make the next step. 3. Progress stopped on awk.
I was actually asked to improve on UNIX pipes about 30 years ago. Only the manager was insane, so it did not work out as it could have. I think the manager had no idea what was the actual problem. It happens. Ironically, I actually delivered, only I did not understand the importance at that time.
Yes, this should be done (again) basically. Several pages on this site explain why nothing happened since 1970s. There was no web in 1970s, but there was von Neumann already, so this stuff is timeless.
Only need one benchmark! It was clear what to benchmark *against* but now I figured out what will be the contending tool. Details are on DC page.
Sep 03 2023.
Ubuntu (which is a totally free OS, so it's everywhere) is now even less reliable than Windows used to be. Some interesting effects when running on suboptimal hardware. It is still possible to work around that kind of problems, but it is also important to understand that Ubuntu is (GNU) Linux. It's not UNIX.
The granularity of UNIX cron is 1 minute. That was more than good enough in the 1970s, indeed. Some people say it's still good enough.
Sep 07 2023.
I suspect that generics are a copout. Macros + DSLs might work better. I also suspect that LISP is similar copout. I also suspect that all one needs is compilation into Forth (from both ends). Yes, that eliminates each and every OS on the planet. Why not. Yes, nobody does that. They will. I went through Ada Lovelace Notes and the whole AI thing is trying to implement a single sentence from her Notes. Which she did not find interesting really (and I agree with her). Where is that "progress" thing everybody is talking about? Notes are 1842-1843.
Sep 13 2023.
Google languages (go and python) are as usable as google bicycles. Interesting, how Steve Jobs called computers "A Bicyle for the Mind". In 1990 he did. I don't think he really envisioned the piles of crooked useless bicyles getting in a way of pretty much everything. Yet he started it all with one-button mouse. Well, crooked minds, crooked bicycles, what you gonna do. I just tried to move one python3 script between two ubuntu computers. You can guess what happened. "Write 100 times run nowhere", basically. There is a way to fix this, but why bother. Actually this will produce one normal thing from 2 messed up things, so it looks like an ok move. There is pytago. And it's more or less active. I can see at least one perfect move on this. It's good to have something to build upon. Pytago is effectively Perlito for Python. Now the only question is what's the quality. The dude is in NC and his website is down. Not particularly encouraging, but it does not matter. I don't really need them. I might use something, though. Gosh, it's using hand-made parser. Oh, humanity. I am positive, python has a hook for that. They do use ast module, but not the way it should have been used. It's their first compiler ever. They might learn in 20 years. Need to think about this.
1. My stack allows this.
2. The resulting product will beat the company with valuation in Blns.
Looks like not a bad project.
Sep 14 2023.
Figured out the first move. It will blend Pytago with one more thing. I already did this kind of project 15+ years ago. Those were the days. Before 2008. Found a few interesting motives, all around one US state. Only one. Who would have thought.
Sep 18 2023.
Looked at plan 9 again, found xoc. My 'mixed content' approach is superior. Nobody does it. Knuth was dancing around something that might be seen as similar. He is academia, I am not. I would never spend time designing artificial language for non existing architecture. Two worlds.
Sep 21 2023.
Turns out, the FO saga is not over - at all! The stuff I wrote at the top of this page - it is actionable! Trashing of Canada of last many years is directly related. Basically, all I need to do now is to redo the project that got discontinued in 2009. Looking good. Yes, it was directly related to mixed content puzzle. The HTML was a hack. As simple as that. Mixing semantics with markup is a lunacy (only works for people, who never seen a good thing). As simple as that. Injection of ':' into XML spec (for the only purpose to derail SGML parser) was a cheap silly trick (that accomplished nothing. zero). As simple as that. Replacing the real thing (AxKit) with fake thing (Cocoon) accomplished nothing as well. Basically, it all goes back to a few EU bodies. Who decided, that stealing is more efficient, compared to production. The approach backfired. Big time. As simple as that.
Sep 24 2023.
Figured out the "hello world" app for Pytago stack. Yeah! The trick is to do the minimal possible move. Very hard.
Sep 25 2023.
Pytago install / first run. golang packages are actually *not* that bad, but one has to know UNIX really well because there is not a single error message from the installer. It just dies silently like "haha". I don't think there is any other packager like that for anything. If you know the .profile and setenv conventions it works like a breeze, but in perl world the installer would tell you something, it's one line of code. Not the way golang rolls.
Modules are a bit messed up, but expandable(!). If go is an ok assembly, pytago might be even better assembly! This is most definitely one more step closer to compiling into forth from both sides approach. Major win. Pytago vs Perlito - Pytago wins hands down. Mixed content will kick in eventually, but first few steps might be possible on pytago alone.
Modules are messed up *a*lot*. So this is very basic engine that only understands this and that. No access to command line parameters for example. So I will need to repeat several tricks that I have implemented for Perlito and after that. Still a good project.
Sep 27 2023.
Looked at Kotlin. "Let's help Java coders to deal with NPE" is the *only* reason that language exists, basically. Kotlin/Native is the only part of the stack that might be of use, but why bother if golang covers it all? Having said that, Pytango/Kotlin bridge is possible, why not. The right way to do it is via mixed content, of course. Which will happen. Eventually.
The Kotlin's approach to types is clearly even further from Perl, than Java approach is. So the convenience goes Perl-Java-Kotlin. Perl only has 2 scalar types, you know. You think that's silly? In Tcl everything was a 'string', how about that. Tcl was a bit more elegant because of that. It goes back to Pascal (human over machine dictatorship) vs C (machine is a first class citizen) religions. EU vs Asia. Different everything. Let's not talk about hierarchical / relational stuff yet. But we will. Eventually.
Nov 10 2023.
Pytago path - works. "The Chinese foreign ministry said on Friday that Xi would visit the United States Nov. 14-17".
Nov 13 2023.
Pytago works ok. Types are messed up. Fixed with a simple processor. There are problems with modules here and there, but now with the types figured out it looks like a very decent assembly layer. Modules, who needs them. It's in decent shape now.
Nov 14 2023.
Everything related to OS was (of course) messed up in Pytago. Good thing I already had it all figured out on my Perl step, so just need to re-shake some already existing code. Basically, after I finish this, nothing stops from combining it into Perl1 distribution. Win.
Nov 21 2023.
I am re-reading the Dragon book. Turns out, what I did (several times) it's called "Rational" preprocessors. The terminology only exists in Dragon book. Also, found some major holes in S vertical (the one with \). I cannot even write the name now. What a world we are living in.
Nov 23 2023.
Introduction of UNIX pipe was for purely accounting purposes. The trade was justified back in a day, but Moore's law worked against it. In today's world, tee should be blended to each and every '|' symbol, but modern generation simply does not understand the most basic things. Well, they're literally illiterate (can not read), why do you think they will do better, than the smartest guys of 70s? They will not. Dragon book also has one eye opening fragment about LISP origins. Anybody, who is defending S-expressions, is most likely illiterate. Just read the book to understand why. It's classic QWERTY thing.
Nov 29 2023.
Figured out *massive* non-boolean loophole. I am of course not the first, they figured it out in the 70s, I even read about that, but I did not understand the importance, because it looked like "no big deal". It is a big deal. The concept of "heap" that kind of stuff. It's where two Taleb's systems meet.
Dec 22 2023.
John Carmack has some angles right but also some wrong. Yes, I know, some perplexity in this one.
Dec 27 2023.
As per SJMN, today Intel decided to destroy some stuff. There is Open Watcom, however. And they're in *Finland* and *NZ* of all places. Well, well, well.
Jan 01 2024.
I started this page in the middle of 2022. Perl5 (monster) is still part of every UNIX distribution and it will remain that way for nobody knows how long. By this time I kind of ditched the Perl stack almost completely (it's a complicated story, I had to revisit some OS moments, writing everyting down is kind of very hard because no time). Still, everything worked out. I have a very flexible stack now and everything works nicely. And because it works nicely, I can continue working. I guess the "plan" worked out. Only there was no "plan", really. Impossible to have any "plan" since 2016.
Jan 04 2024.
RIP: Software design pioneer and Pascal creator Niklaus Wirth
Jan 09 2024.
Figured out how to apply set theory to this. Figured out the interesting loophole in monades.
Turns out some not so bright people (both in the South and in the North) when they are faced with actual problem, always create a committee. Gosh. Set theory is *trivial*. Yet XML violates it. Not XMLs fault.
Jan 10 2024.
Yes, it is possible to apply Kronecker's view to computing and the moment you do that many things become simpler.
Jan 12 2024.
No RPN in dragon book. That's cute. No yard, naturally. And of course the battle between Wirth and ATnT was on a single symbol. * is the symbol. Not unique. The battle between XML and SGML was the battle between '-' and ':' . Empires built and destroyed by a single symbol. This civilization is rather wild. The symbol for empty set should be here, but keyboards don't have that. * / - and : they do have.
Jan 16 2024.
PL360. It had everything already. 1966. Stanford. Interesting indeed.
Jan 26 2024.
So the tcl/tk thing had those several layers nicely wrapped against each other. There was absolute core written in C and there was the next layer written in tcl and then there was actual code which was another layer. It's pretty much the only way, if you need to do everything by yourself, it just happens like that. The most primitive bootstrap possible. So there is basically two STDLIBs growing in parallel, one low level and next the scripting level. Works great.
Jan 27 2024.
Python is still trying to be the worst imaginable scripting language (mutating language * borken runtime). Pretty impressive how long they manage to keep this going. I think Python is even worse than Basic in some ways. Everything related to cooperation with OS is messed up. Just kills the cloud architectures (that are all very sensitive to (oversubscribed) IO)
Python is not to be blamed for *everything*. There are shenanigans inside the DCs. Well, well, well.
Feb 11 2024.
He cheated with Euler. As simple as that. I can not possibly blame him, he was absolutely correct in his actions. Yes, sometimes it takes 50+ years to get to the truth. Most people in RU don't live that long. As simple as that.
Yard most definitely beats Weber.
Gotta give it to TX.
Feb 12 2024.
Found loophole in BNF. Big one.
Feb 21 2024.
The loophole in BNF still holds. Found rather amazing stuff in Rust. Rust is basically monads by Leibniz. Not my terminology. The roots of Apple were rather interesting. Newton was Leibniz' lookalike. The Apple's h/w architecture was Leibniz monadic. The valley had some serious european roots clearly. If you don't know about project Copland - now you know.
Feb 26 2024.
Tilix, rust, go, c, c++. I did the benchmark of Rust vs Go. Using AI generators. My stack still holds. Surprisingly. Generators are a game changer. Of sorts.
Numbers *do* match. Means there is no mistake on first benchmark.
Feb 28 2024.
von Neumann > zkVM
Feb 29 2024.
Clearly there were several bubbles going in parallel, masquerading one another. The stuff that AI generators do ...