HackerTrans
TopNewTrendsCommentsPastAskShowJobs

johncowan

no profile record

comments

johncowan
·hace 3 años·discuss
That raises a more general point. When you can't or don't have compile-time checks, removing run-time checks in production amounts to wearing your seat belt only when driving around a parking lot and then unbuckling when you get on the highway. It's very much the Wrong Thing.
johncowan
·hace 3 años·discuss
> there is no guarantee that [syscall stability] will last forever even in Linux given the latest attacks

That's true, but what of it? Linus won't last forever, Linux won't last forever, computers won't last forever, and Homo sapiens won't last forever. Everything needs maintenance sooner or later. "The Rockies may crumble / Gibraltar may crumble / They're only made of clay."
johncowan
·hace 3 años·discuss
I remember the first time I heard of someone being fired for buying IBM, a thing that many people thought would never happen.
johncowan
·hace 3 años·discuss
Not the case. Anyway, it's not about being quarrelsome, it's about having a different point of view. As for compromise, it's hard to compromise between strictness vs. laxness, for example.

Child A: I want the whole pie!

Child B: How about we split it 50/50?

Adult C: You two need to compromise. A gets 75%, B gets 25%.

(I am not implying that any particular persons are A, B, and C here.)
johncowan
·hace 3 años·discuss
Not if it's so constraining to the implementer that you can't get any implementations. Nobody's paying us to do this stuff.
johncowan
·hace 3 años·discuss
Damn, my emoji got eaten. See https://emojipedia.org/chair.
johncowan
·hace 3 años·discuss
Sorry, not sorry. Here's one for you: .
johncowan
·hace 3 años·discuss
We have had four models:

Committee consensus took us up through R5RS. There were about 30 members of the committee, though obviously some were more active than others. The problem with that was that we got no change except at the margins. Implementations were extended in random incompatible ways.

Then we had consensus of a small committee (5 members, later 4) for R6RS, followed by a community ratification vote. A lot of people thought the resulting standard was over-engineered, and I am quite sure that many people didn't understand all of it (I didn't for sure, especially macros and records.) Some implementers adopted it, others declared they never would.

For R7RS-small and the early stages of R7RS-large, we had the open SRFI process (anyone can propose, the community helps refine, the author decides when to freeze the result).

Now we have a (de facto) Sitzfleisch process: however stays in their seat and is still arguing the longest, wins. I eventually ran out of energy for this one.

Note that in all cases the text controls the meaning, not the author(s), and when the standard and an implementation collide, it is the implementation that is wrong. This is very nearly a sacred principle, as in C/C++ and various other multiple-implementation languages.
johncowan
·hace 3 años·discuss
Alas, no. There are quite a few other things that are needed in what is now being called the Foundations in order for adding features to be done through libraries. Scheme, like other Lisps, is almost all "library" and very little "language", once you get past variables, constants, and function/macro calls. The only "language" feature added so far (in R7RS-small) is that previously a vector constant had to be quoted, whereas now it is self-evaluating: you used to have to say (vector-ref '#(a b c) 0), whereas now you can leave out the quote mark.
johncowan
·hace 3 años·discuss
Racket is not an extension of Chez; Chez is an implementation language for Racket (it replaces most of the C code in earlier versions). See my comment above about implementation languages.

The main benefit of basing Racket on Chez instead of C was maintainability. A bit of performance and a few fairly unimportant features (like single floats) were lost.
johncowan
·hace 3 años·discuss
Or more simply https://github.com/johnwcowan/r7rs-spec/tree/errata/rnrs, where you can get Every Scheme Standard Evar. It's unsurprising that there is no one place for R7RS-large, considering how inchoate it is.
johncowan
·hace 3 años·discuss
The issue is that lots of languages don't make complex numbers part of what Lispers call the numeric tower, fully integrated into numeric operations, even if there is a complex library. Here's Guy Steele's 3-part smoke test for early Common Lisp implementations:

1. At the REPL, if you type `T` (true), and you get back `T`, the test passes.

2. Define factorial. Then type `(/ (factorial 100) (factorial 99))`. If you get back 100, the test passes.

3. Type `(atanh -2)`. If you get a complex number, the test passes. If you get the correct complex number [namely -0.5493061443340549+1.5707963267948966i] extra credit. Far too many non-Lisp languages return NaN or throw an exception.
johncowan
·hace 3 años·discuss
For "precisely" read "correctly". Unless the implementation language is exposed to users of the implemented language, it doesn't matter what the implementation language is. gfortran is written in C and C++, but that does not mean Fortran programs are written in C or C++.
johncowan
·hace 3 años·discuss
Which of course cannot be done portably except by drastic restrictions like "never add a number greater than MAXINT / 2 and never multiply a number greater than sqrt(MAXINT)".
johncowan
·hace 3 años·discuss
Racket is far and away the most popular Scheme (and I reject the claim that it is not Scheme).
johncowan
·hace 3 años·discuss
Very well said. A fourth group is people maintaining existing user code (including libraries), who also want backward compatibility.
johncowan
·hace 3 años·discuss
Lisp is 65 years old and its future will be longer than its past! Another way to look at a fast-moving industry is that it's all hype and flutter with the occasional solid achievement.
johncowan
·hace 3 años·discuss
If you really want to undo the Cambrian explosion, you will get Fortran and Lisp. A better SQL, Prolog, and something like Haskell might also be useful/necessary.
johncowan
·hace 3 años·discuss
On the other hand, a theorem prover written by John McCarthy in 1958 was trivially adaptable to both Common Lisp and Scheme. Not too many languages get to make that claim.
johncowan
·hace 3 años·discuss
If you mean me, I am definitely not a human sacrifice. I walked away because I had had enough.