HNHacker News
TopNewBestAskShowJobs

jackdaniel

720 karma · joined January 25, 2015

humble me ;-) turtleware.eu functional.cafe/@jackdaniel
submissionscomments
jackdaniel··on Re: Why Host Emacs Packages on GitHub? (Microsoft vs Freedom)
Shouldn't we call it a "network prison" in that case? :)
jackdaniel··on Guix on the Framework 13 AMD
Not everything is a bitmap. Ordinary drawing operations operate on coordinates, so fractional scaling should not lead to any blur (although may miss some pixel-perfect designs).

In other words vectors may be scaled with little precision loss, or they may be scaled naively (render to bitmap and then scale the bitmap).

jackdaniel··on Copyright is not a moral right, it's a monetization strategy
Copyright was not an immoral restriction on the general public until Meh Valley noticed more bucks in LLMs. I agree that copyright is very much broken for various reasons, and the Public Domain day is a day of celebration for me.

Having that in mind it is an irony that such broken law is the only thing that stands in a way of automatic and unattributed exploitation of people effort at scale. And it stands only on one leg at that :)

jackdaniel··on Copyright is not a moral right, it's a monetization strategy
Copyright was a moral right until 3 or 4 years ago, now AI training is the moral right. /s

Sarcasm aside, this take is very disappointing. People leverage copyright for many purposes - copyleft, recognition, exclusiveness and many more.

jackdaniel··on NY Times copyright suit wants OpenAI to delete all GPT instances
Technically firing CEO was also at the board's discretion, so I'm dubious whether that means anything at this point.
jackdaniel··on McCLIM 0.9.8 Yule – new release
CLIM - Common Lisp Interface Manager - it is a specification of numerous protocols (partially) derived from Genera's Dynamic Windows. In 2000s Mike McDonald decided to write a free CLIM implementation and named it McDonald's Common Lisp Interface Manager, hence McCLIM.
jackdaniel··on He blew the whistle on Amazon. He's still paying the price
I disagree with equating whistleblowering and snitching. We all have dirty secrets, but let's loosely say that the scale matters.

It is a different story when coworker tells "boss" who is lazying around, and a different story when someone reports a serious misconduct towards other people. I'm not sure how to phrase it clearly, but generally I would not associate myself with former people, but I wouldn't mind the latter. Maybe one day they'd prevent me from doing something really terrible (given I wouldn't know better).

jackdaniel··on He blew the whistle on Amazon. He's still paying the price
People often lie not only to others, but also to themselves. Also I don't see a problem with somewhat controversial takes from anonymous accounts; given today's internet opposite would be brave/stupid.
jackdaniel··on He blew the whistle on Amazon. He's still paying the price
While I disagree with your opinion, I appreciate a lot that you've stated it. That's a very honest thing to say.
jackdaniel··on Common Lisp: An Interactive Approach (1992)
ECL runs on wasm via Emscripten.
jackdaniel··on Proxy Generic Function
Thanks for asking! You may edit the legacy function implementation. These shenanigans are done to enable providing a new protocol that spans two different set of functions in a way that is a) backward compatible, b) forward compatible.

Say you have functions A and B that do roughly the same, so you refactor them into a function C and then redefine A() { C(); } B() { C(); }. So far good. But if B() is part of the API, some client could have defined auxiliary methods on B - normally they won't be called when C() is invoked directly. Moreover imagine that C() is also now part of the API and some new client could have defined auxiliary methods on C() - normally they won't be called when B() is invoked directly.

So either you need to specify that the old API is obsolete (so old programs doesn't work), or abandon the idea of exporting the new API. With a proxy generic function you may retain the old API and the new API at the same time without further duplicating functionality.

jackdaniel··on Embeddable Common Lisp 23.9.9
That's why the support is "preliminary". I plan to write some compelling examples for the emscripten target. Here is a "raw" build that shows repl (on some browsers results of evaluation show in the javascript console): http://turtleware.eu/static/ecl/ecl.html -- this is a little older build, but following instructions in INSTALL will get you to the same place.
jackdaniel··on Embeddable Common Lisp 23.9.9
Thanks! I think that the number of changes between ECL and MKCL is quite big. ECL had a short break in development between 2013 and 2015, other than that it is an actively developed project.
jackdaniel··on Writing Small CLI Programs in Common Lisp (2021)
it is planned to allow static linking against libc, not necessarily glibc (I've been thinking about musl). Dynamic linking is still a default, but different strokes for different folks I guess.
jackdaniel··on Writing Small CLI Programs in Common Lisp (2021)
currently there is not build flag to statically link libc manually (it is planned though). Regarding startup time, it all comes to ASDF:

$ time ecl --eval "(quit)"

0.052 secs

$ time ecl --eval "(require 'asdf)" --eval "(quit)"

;;; Loading #P".../lib64/ecl-21.2.1/asdf.fas"

0.301 secs

jackdaniel··on Plastic Money
That's super-interesting, thank you for sharing :)
jackdaniel··on Google engineers want to make ad-blocking (near) impossible
even assuming unbiased and objective attesters, the issue lies with the "baseline criteria" of attestation and who defines them.

There are two risks here (examples follow):

1. hostile requirements - "the agent won't feature adblockers", or "scraping without explicit website permission must be forbidden"

2. prohibitive requirements - "the agent implements protocols X, Y and Z and adheres to standards A, B and C" - all of these may be reasonable things, but en masse they may be too much work to carry by anyone but a reasonably big vendor

Additionally these criteria must be verifiable, so user can't basically modify the agent, because then the attestation is practically void.

jackdaniel··on Petalisp: Elegant High Performance Computing
I don't know what do you try to convey. The link is shared by a third-party.
jackdaniel··on Petalisp: Elegant High Performance Computing
While I'm not using Petalisp I can attest that Marco is known for delivering high quality software with a strong focus on performance. I suspect that the phrase "Coming soon!" means exactly that - when he'll make them they will be published.
jackdaniel··on Petalisp: Elegant High Performance Computing
Maxima is implemented in Common Lisp. The language features full numeric tower with bignums and rationals - generally it is a very good language for number crunching.
jackdaniel··on The Embeddable Common Lisp (2005) [pdf]
I think that you'd need to tinker a little with ECL makefile to adjust flags in order to enable static linking. That said ECL does work with musl libc, so at least from the porting perspective there should not be any problem.

If you manage to link musl libc statically then I'd greatly appreciate if you share your experience on our issue tracker or on irc (#ecl @ libera.chat), and if you have problems with it, you may ask in either for advice.

jackdaniel··on The Embeddable Common Lisp (2005) [pdf]
The short answer is no - ECL links against the libc present on the system. It is not that it could not be improved in this regard.

Even when you compile with "--disable-shared" you'll link against libc (but everything else will be statically linked). The function "--disable-shared" does not remove the compiler to native, it removes compilation of fasls to native. The reason for that is this:

- "native" fasls are shared objects under disguise linked against libecl (dlopen)

- they can't not link against libecl unless you want to statically link whole ecl with the fasl

Imagine that you call a PRINT function from the FASL. The symbol you will probably reference is ecl_print that is defined in ECL core runtime (usually in libecl.so, libecl.a/static-ecl).

The native compiler still can produce statically linked native binaries.

Now I'll get into current ECL developments - mind that this is not granted that this pan out as expected - perhaps I'll scrap whole work at some point:

I'm refactoring ECL compiler to have multiple frontends and backends (something like LLVM) - currently passes are far more coupled. With that I hope to have a better control over a generated code and we could use static analysis about which parts of CL are used, and in an opt-in manner we could allow minimal static builds that do not depend on full CL. Such static binaries could be really small.

jackdaniel··on The Embeddable Common Lisp (2005) [pdf]
Both ECL and GCL are descendants of Kyoto Common Lisp. That said ECL (generally speaking) is a complete as ANSI Common Lisp implementation[1], has more "man years" under its belt, has active community, better support across platform, is recognized by Common Lisp developers and has more "man years" under its belt.

[1] One of current GCL goals is to reach it

jackdaniel··on The Embeddable Common Lisp (2005) [pdf]
I know that ECL works on Apple M1 and otherwise, as of Swift - no idea. LQML / EQL5 created by Paul Ruetz is a very cool project that works on iphone, android and such with appealing graphical inteface. It is basically ECL embedded in QT.

If I recall correctly Paul has a few applications in the Apple Store, but you'd need to ask him directly to confirm that.

jackdaniel··on The Embeddable Common Lisp (2005) [pdf]
Hey, I'm one of ECL maintainers. If you have some questions I'll be glad to answer.
jackdaniel··on The Embeddable Common Lisp (2005) [pdf]
Hey! Emscripten port works (it will be merged somewhere soon, and we anticipate a release later this year), the next thing to target is "pure" WASI. Yes, ECL runs fine on OpenBSD (as well as on Windows, Linux, other BSD, haiku, iphone, android and - in a branch - wasm).
jackdaniel··on Show HN: Spaik Lisp Version 0.3
Could you elaborate what is similar to Common Lisp in Spaik?
jackdaniel··on How to make fancy road trip maps with R and OpenStreetMap
Can we, I don't know, let people enjoy programming languages they like without calling it a waste?
jackdaniel··on Why are there no antitrust claims vs. GitHub Copilot, when there is a precedent?
I'm not arguing for or against whether they are in the dominant position; what I'm doing is pointing out that the grandparent quoted part of the text (and argues against it) without quoting the justification the author provided that is directly relevant to what they say.

> There’s an important notion to address here. Open source code on GitHub might be thought of as “open and freely accessible” but it is not. It’s possible for any person to access and download one single repo from GitHub. It’s not possible for a person to download all repos from Github or a percentage of all repos, they will hit limitations and restrictions when trying to download too many repos. (Unless there’s some special archives or mechanisms I am not aware of).

jackdaniel··on Why are there no antitrust claims vs. GitHub Copilot, when there is a precedent?
Well, I certainly had some expectations that are covered in the license. I.e that derivative work is a subject of some constraints and that copyrights are not removed from the code.
← PreviousPage 2 of 5Next →