HN user

pwpwp

1,069 karma
Posts29
Comments265
View on HN
postopen.org 2y ago

Post-Open: What Comes After Open Source

pwpwp
2pts1
axisofeval.blogspot.com 2y ago

Common Lisp's BLOCK / RETURN-FROM and UNWIND-PROTECT

pwpwp
4pts0
horstmann.com 2y ago

Java 21: The Nice, the Meh, and the Momentous

pwpwp
279pts185
action.peers.org 12y ago

Save Airbnb in NYC

pwpwp
1pts0
lambda-the-ultimate.org 13y ago

LtU migrating to a Facebook group

pwpwp
2pts0
scripting.com 14y ago

Corporate Everything (Twitter embedding cards only from whitelisted domains)

pwpwp
1pts0
www.forbes.com 14y ago

More Femgineers, Less Nerds

pwpwp
1pts0
research.google.com 14y ago

F1 - The Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business

pwpwp
201pts56
mobileopportunity.blogspot.com 14y ago

Why Windows 8 Scares Me -- and Should Scare You Too

pwpwp
27pts25
daniel.yokomizo.org 14y ago

The Essence of Dynamic Typing

pwpwp
11pts5
scripting.com 14y ago

Before I use Branch

pwpwp
4pts0
ddili.org 14y ago

Tutorial on D Ranges

pwpwp
1pts0
jlouisramblings.blogspot.com 14y ago

Musings on Dart

pwpwp
6pts0
giovanni.bajo.it 14y ago

Golomb-coded sets: smaller than Bloom filters

pwpwp
2pts0
axisofeval.blogspot.com 14y ago

The Axis of Eval: Notes on delimited continuations

pwpwp
3pts0
www.blog.highub.com 15y ago

An Inconvenient Truth – Android and the Open Mobile Web

pwpwp
8pts0
dashes.com 15y ago

Cloudtop Applications (Anil Dash)

pwpwp
1pts0
www.eweek.com 15y ago

Archive.org moves into single Sun shipping container

pwpwp
2pts1
gigaom.com 15y ago

Why Google Has No Game (Adam Rifkin)

pwpwp
10pts0
www.wired.com 15y ago

Apple’s App Store Director Sells His Own Fart Apps

pwpwp
1pts0
laforge.gnumonks.org 16y ago

First functional HTTP transfer in my own GPRS/EDGE network

pwpwp
2pts0
www.antipope.org 16y ago

Why Content Is a Public Good

pwpwp
11pts5
www.mediapost.com 16y ago

Swimming Upstream: 'Salmon,' Google's Open Source Social Web Aggregator

pwpwp
2pts0
salmon-protocol.googlecode.com 16y ago

Draft: The Salmon Protocol

pwpwp
15pts4
www.airs.com 16y ago

Go Interfaces, by one of the Go authors

pwpwp
4pts0
www.cl.cam.ac.uk 16y ago

Networking Named Content (PARC's take on next-gen internetworking)

pwpwp
4pts0
portal.acm.org 16y ago

Proceedings of the ICFP 2009

pwpwp
2pts0
lwn.net 16y ago

Hierarchical Read-Copy-Update (lockless synchronization for 1000's of CPUs)

pwpwp
14pts0
pwpwp.blogspot.com 16y ago

Steps Towards an Acceptable Lisp

pwpwp
19pts12
Fedi Is for Losers 2 years ago

covid

I don't understand this part. The people who left X after Musk's takeover seem to be mostly people who were on the winning side of Covid, i.e. the side that used the state and media apparatus to coerce people to participate in a medical experiment.

Overall I agree: yes, with fexprs you lose some code introspection ability compared to macros. I haven't found it to be a big deal in my fexpr-based hobby Lisp so far.

Re your two points:

You could have "symbol fexprs", analogous to symbol macros, I guess.

For places I think the first-class solution as employed by T and others is better, and would work fine with fexprs: (set (name-of person-1) "sam") simply stands for ((setter name-of) person-1 "sam").

IOW, name-of is expected to be a reader function. Every reader function has a writer function attached to it, that we extract with (setter name-of). Then we call that writer function with the rest of the original arguments.

I find the claim about image-based development being required for macros somewhat unfounded.

The most trivial counterexample is an interpreter - it can simply evaluate the macros just like ordinary functions.

A step up in complexity is a compiler that - during compilation - compiles macro definitions by emitting code and dynamically loading it (Goo does this http://people.csail.mit.edu/jrb/goo/goo.htm , and I have also put a toy implementation of this together using dlopen, and there are probably many other impls that do this.)

The Io Language 3 years ago

Those things take time. I am convinced that the next big Lisp dialect will be a Kernel.

The Io Language 3 years ago

Lack of compilation for fexprs is:

A) An exciting research problem! Shutt himself says that he doesn't see any fundamental obstacles to compiling them. It's just that nobody has done it yet.

B) Actually not a big deal for many applications. Take PicoLisp, which has been cheerfully used in customer-facing applications for decades. It's an ultra-simple interpreter (its GC is 200 LOC https://github.com/picolisp/picolisp/blob/dev/src/gc.c ) The same architecture can be used for Kernel implementations.

The Io Language 3 years ago

This is all documented.

Things have changed. Fexprs are coming back in a big way.

You need to check out John Shutt's Kernel language https://web.cs.wpi.edu/~jshutt/kernel.html

Yes, older Lisps messed fexprs up. Kernel fixes this. The vau calculus used by Kernel is simply a lambda calculus that, unlike CBN and CBV, doesn't implicitly evaluate arguments. The rest of the calculus is the same.

What this means is you get powerful hygienic metaprogramming (arguably as powerful or even more powerful than Scheme's most advanced macro systems) at a low low price and with very elegant theoretical properties. In Kernel, hygiene is achieved simply with the usual lexical scope that's already in lambda calculus.

So vau calculus is simpler than the CBV lambda calculus used by Lisps. Because it doesn't evaluate arguments, so it does less than those calculi. And by doing less it gains the great power of being able to do hygienic metaprogramming in the same calculus, without second-class contraptions like macros.

I don't find this convincing.

What do you return for an index into the array?

An option/maybe type would solve this much better.

Yes, I know, it can be clumsy to trace it back to its source

An exception would be much better, alerting you to the exact spot where the problem occurred.