HNHacker News
TopNewBestAskShowJobs

amszmidt

360 karma · joined January 11, 2024

sauerpunk gnu hacker / software freedom or bust / wizard of zymurgy / lisp machine revolutionary
submissionscomments
amszmidt··on Writing an operating system kernel from scratch

    > If Stallman had started with a kernel, there would be very few people who had the legal right to run any utilities or apps on the new kernel
That is really not true, one of the most important things when it comes to the GNU project and the whole Free Software movement is the ability to run _any_ program, be it non-free software or free software. This has been parroted for more than 40 years now ...
amszmidt··on SQLite's Use of Tcl (2017)

    Note however, that you can't use diff on binaries, [...]
You absolutely can, but you need to use an external diff tool:

   fossil diff --command "compare"
You can also customise the diff-command variable. You might need to pass --diff-binary .. I forgot.

As for storing binaries, unversioned files have no history, and are not synced automatically.

amszmidt··on SQLite's Use of Tcl (2017)
Yes, it is called "unversioned files" in Fossil, but the max size is limited to what SQLite can handle in a single blob (so ~4Gbytes)

https://fossil-scm.org/home/doc/trunk/www/unvers.wiki

amszmidt··on Writing a C compiler in 500 lines of Python (2023)
The original cc was just a wrapper like this Python example around a bunch of external programs, calling c00, c01, until something could be fed to as and then linked using ld.

GCC does basically the same thing even today,

amszmidt··on The day Return became Enter (2023)
A carriage is a wagon that transports people, not "things", a carriage are also usually wheeled, just like wagons.

In this case, one reason why "wagon return" might have made more sense is because there is a wagon that holds the platen of the typewriter.

amszmidt··on The Unix-Haters Handbook (1994) [pdf]
The LMI and MIT Lisp Machine source code is not proprietary since about 10 and 20 years respectively.
amszmidt··on SmallJS: Smalltalk-80 that compiles to JavaScript
Dan Ingalls answer is much more interesting than anything I could explain ...

From https://lists.squeakfoundation.org/pipermail/squeak-dev/1998...

    Ralph -
    
    Many times I have browsed past your article "About the Smalltalk
    Balloon" and been tempted to add to the little bit of history that you
    have there.  While your link is entitled "Why a hot-air balloon is the
    symbol of Smalltalk," you never really answer the question.  The time
    has come to tie up that loose end.  Return with us now to those
    thrilling days of yesteryear, and
    
     The Real Story About the Smalltalk Balloon
    
    Everyone in our group wanted to challenge the ivory tower image in
    Byte's special issue on Pascal, because in fact we were all working
    intensely to get Smalltalk-80 out the door from Xerox at the time.
    The cover of that issue depicted the "land of Smalltalk" as a remote
    island, and that triggered a connection for me out of which was born
    the fanstasy of liberating Smalltalk from the ivory tower by balloon
    ascent.
    
    Here is the connection...
    
    My favorite book from youth was The Mysterious Island, by Jules Verne.
    It is the story of an engineer, Cyrus Harding, who gets blown far
    afield in a storm during a balloon surveillance mission in the 1860's.
    He ends up stranded on an island but, through ingenuity and a bit of
    luck, he manages to recreate most of the accomplishments and comforts
    of civilization on his own (with a little help from an amiable
    orangutan ;-).  Cyrus Harding became my childhood standard for
    resourcefulness and the conviction that anything can be accomplished
    if you are clever and persistent.
    
    The fantasy of a balloon as the vehicle for Smalltalk's release stuck
    with me from then on.  When the opportunity came to design the cover
    for the Byte issue on Smalltalk, I made the suggestion of the balloon
    lifting off from the island shown on the Pascal cover, and everyone
    picked up on it.  Robert Tinney executed the wonderful graphic that we
    know so well, and the rest is history.
    
     - Dan
    
    P.S.  There is a further coincidence in this particular literary
    allusion: It is revealed at the end of The Mysterious Island that the
    island is actually the base of operations for a more well-known Verne
    character, and that character happens also to be the childhood hero of
    a more well-known figure in the history of Smalltalk.
amszmidt··on SmallJS: Smalltalk-80 that compiles to JavaScript
Its not the Romanian flag (order of color is different).
amszmidt··on Mezzano, an operating system written in Common Lisp
The git log says differently.

Not everything needs a "release" to be alive.

amszmidt··on The Medley Interlisp Project: Reviving a Historical Software System [pdf]
From what I see -- that is not the case.

The current state is _very_ fast in simulation to the point where it is uninteresting (there are other things to figure out) to write something as a behavioral model of the '181/'182.

~100 microcode instructions takes about 0.1 seconds to run.

amszmidt··on The Medley Interlisp Project: Reviving a Historical Software System [pdf]
> Provocative question: would a modern Lisp Machine necessarily use Lisp?

Seeing that not even "Original Gangster" Lisp Machine used Lisp ...

Both the Lambda and CADR are RISCy machines with very little specific to Lisp (the CADR was designed specifically to just run generic VM instructions, one cool hack on the CADR was to run PDP-10 instructions).

By Emacs you definitely mean GNU Emacs -- there are other implementations of Emacs. To most people, what the Lisp Machine was (is?), was a full operating system with editor, compiler, debugger and very easy access to all levels of the system. Lisp .. wasn't the really interesting thing, Smalltalk, Oberon .. share the same idea.

amszmidt··on The Medley Interlisp Project: Reviving a Historical Software System [pdf]
Current work is at http://github.com/ams/cadr4

And of course .. https://tumbleweed.nu/lm-3 .

amszmidt··on The Medley Interlisp Project: Reviving a Historical Software System [pdf]
Mostly dead. Current Lisp Machine shenanigans related to MIT/LMI are at https://tumbleweed.nu/lm-3 ...

Currently working on an accurate model of the MIT CADR in VHDL, and merging the various System source trees into one that should work for Lambda, and CADR.

amszmidt··on Literate programming tool for any language
> [...] and notebooks have embedded code in documentation since Mathematica in the 1980's.

Late 80's, very late ... but the concept of "notebooks" predates Mathematica by at least a decade (it was very common to embed structure in source code files with markup).

amszmidt··on Smalltalk, Haskell and Lisp
That is a very acute observation!
amszmidt··on Smalltalk, Haskell and Lisp
(No need for LET*, just LET would suffice.)
amszmidt··on Dijkstra on Ada
> What were the other colors?

ADA was designed around a competition between four companies, to make it unbiased the proposals got named by colour.

Honeywell was Green, Intermetrics was Red, SofTech was Blue, and SRI was Yellow. There where no other colors.

amszmidt··on We Need Lisp Machines
While the Lisp Machine does use lists, the benefits of CDR coding were / are quite overblown. The Lisp Machine also used other data structures far heavier than lists.

The Lisp Machine macroinstructions aren't that complicated, it is a basically stack based machine -- the most complicated thing was handling of the function arguments from Lisp (FEF); which has complicated semantics when it comes to handling optional, keywords, and what not arguments.

amszmidt··on We Need Lisp Machines
Not sure where this "analysis" comes from, but the demise of the Lisp Machine has generally been agreed that it had to do more with the speed of technological advances than Common Lisp -- by the time Common Lisp was standardized, for all intents and purposes, all Lisp Machine companies where already defunct.

Common Lisp was definitely not designed with the intention of better performance, the intention was literally to have a _common_ Lisp language that multiple implementations could use and where porting programs would be much easier. One needs to remember that when Common Lisp was first drafted, there where dozens of Lisp dialects -- all of them different.

The list of CPUs is a very large span, some predating Common Lisp (CLtL1 is from 1984, CLtL2 from 1990, and ANSI Common Lisp from 1996) by close to several years (VAX, from 1977).

But other than that, the idea of a not-Unix system does fall into those two buckets ... make it Unix, or rewrite everything. One can see this in Oberon, Smalltalk-78, Mezzano, etc...

amszmidt··on A shower thought turned into a Collatz visualization
Sinks where you wash dishes tend to be far more dirty than any shower.

Having showers at work is awesome, it means you can take a proper bike ride to work, and freshen up.

amszmidt··on Multiple security issues in GNU Screen
It is documented in detail in the GNU screen manual, https://www.gnu.org/software/screen/manual/screen.html#Log
amszmidt··on Libogc (Wii homebrew library) discovered to contain code stolen from RTEMS
Yeah entirely possible.

The threading code does seem to be "similar" enough to warrant some investigation, but from the looks no license notice was "removed". Even the threading code in question has never had one, from the initial import from CVS/Subversion.

Making a mountain out of a molehill .... before the molehill is even there?

amszmidt··on Libogc (Wii homebrew library) discovered to contain code stolen from RTEMS
> 1. Commit 3ba50ec which Marcan is complaining about was pushed in 2008 and didn't just delete attrib specifically, but all (?) VCS comments indiscriminately. The file was barely touched since

FWIW -- I think this is the commit being talked about: https://github.com/m87h/libogc/commit/3ba50ecd4134ef37a0f18f...

Looks honestly totally innocent ...

amszmidt··on Show HN: A Common Lisp implementation in development, supports ASDF
> A good way to make sure your project won't cross compile is to use Autoconf. Rampant use of Autoconf is the main reason distros gave up on cross compiling and started using QEMU. Developers who use Autoconf and who don't know what cross-compiling is will not end up with a cleanly cross-compiling project that downstream packagers don't have to patch into submission.

Cross compilation for distributions is a mess, but it is because of a wide proliferation of build systems, not because of the GNU autotools -- which have probably the most sane way of doing cross compilation out there. E.g., distribution have to figure out why ./configure is not supporting --host cause someone decided on writing their own thing ...

> The main idea behind Autoconf is political. Autoconf based programs are deliberately intended to hinder those who are able to build a program on a non-GNU system and then want to make contributions while just staying on that system, not getting a whole GNU environment.

Nothing could be further from the truth, GNU autoconf started as a bunch of shared ./configure scripts so that programs COULD build on non-GNU system. It is also why GNU autoconf and GNU automake go such far lengths in supporting cross compilation to the point where you can build a compiler that targets one system, runs on another, and was build on a third (Canadian cross compile).

amszmidt··on Show HN: A Common Lisp implementation in development, supports ASDF
> A recent HN submission shows a ./configure system made from scratch using makefiles, which parallelizes the tests. That could be a good starting point for a C on Linux project today.

Not everything is C, or GNU/Linux. The example also misses much of the basic functionality that makes GNU autotools amazing.

The major benefit of GNU autotools is that it works well, specially for new platforms and cross compilation. If all you care about is your own system, a simple Makefile will do just fine. And with GNU autotools you can also pick to just use GNU autoconf .. or just GNU automake.

Having generated files in the release tarball is a good practise, why should users have to install a bunch of extra tools just to get PDF of the manual or other non-system specific files? It is not just build scripts all over the place, installing TeX Live just to get a PDF manual of something is super annoying.

Writing your own ./configure that works remotely as something users would expect is non-trivial, and complicated -- we did that 30 years ago before GNU autoconf. There is a reason why we stopped doing that ...

I'd go so far to think that GNU autotools is the most sensible build system out there...

amszmidt··on Petition to the Open Source Initiative: Publish the Full 2025 Election Results
Such a license would be a non-free software / not open source license.
amszmidt··on Show HN: My from-scratch OS kernel that runs DOOM
FWIW, GNU/Hurd has been able to run a desktop environment the last 20+ years.

And as someone who portedgor Doom working on GNU/Hurd decades ago … I’m going to wager that the GP has never used it. :-)

amszmidt··on Things Zig comptime won't do
Steve Russell comment is about writing the actual interpreter for Lisp, so the comment is correct on that Lisp started out as an interpreted language, and even mentions that in the comment that you quote.

The interpreter (i.e. Lisp READ-EVAL-PRINT loop) was written in IBM 704 machine code, which just was a reimplementation of the EVAL function as JMC described it in his paper.

The part that "wasn't supposed to be implemented" was about the form of Lisp, M-expressions vs. S-expressions not Lisp it self. Which was supposed to be implemented as a programming system from day one.

amszmidt··on What the hell is a target triple?
The only truth to the story is the missed email.

There is nothing "unmodular" about GCC -- considering that it supports plenty of architectures, operating systems, and languages.

The big difference, which people seem to miss in the context of the GNU project and GNU system, is that modularity is for free software projects. GCC is planty modular, and very easy to extend in any way shape or form .. if you abide by the license!

If you want to be a parasite on a project licensed under the GNU GPL, you will have a rough ride .. that is after all the whole idea of copyleft.

amszmidt··on Once banned, Poland's stately 18th century dance garners UNESCO honors (2024)
That quote is from Robert Schumann, a German composer contemporary with Chopin. It was not a citation from any Russian officials, nor was Chopin banned in Poland by the Russians (it was banned during the German occupation for a while).
← PreviousPage 2 of 7Next →