I bumped ASDF to 3.1.7.1 after I fixed a performance bug in directory-files that made it quadratic instead of linear, due to some remove-duplicates used for logical-pathnames. The fix was to only use this quadratic behavior for LPNs. If you use LPNs, you deserve to lose on large directories. LPNs are for legacy Lisp code with relatively few files, only.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The best of all regimes is one where I am the head honcho of a worldwide empire. — Winston Churchill (his most famous quip, as translated to plain English)
Faré fahree@gmail.com writes:
I bumped ASDF to 3.1.7.1 after I fixed a performance bug in directory-files that made it quadratic instead of linear, due to some remove-duplicates used for logical-pathnames. The fix was to only use this quadratic behavior for LPNs. If you use LPNs, you deserve to lose on large directories. LPNs are for legacy Lisp code with relatively few files, only.
If you mean that REMOVE-DUPLICATES is quadratic, then it's bad in itself (we know better algorithms for linear REMOVE-DUPLICATES); There's no reason to disparage logical pathnames, they're very nice.
I bumped ASDF to 3.1.7.1 after I fixed a performance bug in directory-files that made it quadratic instead of linear, due to some remove-duplicates used for logical-pathnames. The fix was to only use this quadratic behavior for LPNs. If you use LPNs, you deserve to lose on large directories. LPNs are for legacy Lisp code with relatively few files, only.
If you mean that REMOVE-DUPLICATES is quadratic, then it's bad in itself (we know better algorithms for linear REMOVE-DUPLICATES);
It's quadratic when used with a test that isn't one of the few for which the implementation knows a compatible hash function.
UIOP is the wrong place to implement a new hash-table implementation based on a new hash-function just for pathname-equal, then reimplement remove-duplicates on top of that. And for portability reasons, I can't just replace pathname-equal by normalization then using equal, or by using namestrings instead of pathnames, etc.
There's no reason to disparage logical pathnames, they're very nice.
In the abstract, the idea sounds vaguely nice, but the specification is a disaster, and so are its many incompatible implentations. As for using DIRECTORY with it... ouch ouch ouch.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I have never let my schooling interfere with my education. — Mark Twain
On 6/10/16 Jun 10 -8:41 PM, Faré wrote:
I bumped ASDF to 3.1.7.1 after I fixed a performance bug in directory-files that made it quadratic instead of linear, due to some remove-duplicates used for logical-pathnames. The fix was to only use this quadratic behavior for LPNs. If you use LPNs, you deserve to lose on large directories. LPNs are for legacy Lisp code with relatively few files, only.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The best of all regimes is one where I am the head honcho of a worldwide empire. — Winston Churchill (his most famous quip, as translated to plain English)
For whatever reason, on my Mac, this fails test-clean-load on lispworks.
But I'm not sure where the output of test clean load goes, so I don't know what's going wrong. There's no obvious bad output in build/results/lispworks*
Running under make I get an error 65 for
make test-clean-load l=lispworks
Running
run-tests.sh -c lispworks
I get no output at all, but the exit code is 65.
Still investigating.
Possibly this is just some mess in my lispworks copy.
OK, never mind. My replacement license was for 32-bit LW, and my LW is 64-bit, so it quietly exits. :-/
On 6/10/16 Jun 10 -8:41 PM, Faré wrote:
I bumped ASDF to 3.1.7.1 after I fixed a performance bug in directory-files that made it quadratic instead of linear, due to some remove-duplicates used for logical-pathnames. The fix was to only use this quadratic behavior for LPNs. If you use LPNs, you deserve to lose on large directories. LPNs are for legacy Lisp code with relatively few files, only.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The best of all regimes is one where I am the head honcho of a worldwide empire. — Winston Churchill (his most famous quip, as translated to plain English)
On the Mac, this fails testing on clisp: looks like a regression. See launchpad ticket: https://bugs.launchpad.net/asdf/+bug/1592180
Looks like maybe there was always a bug here on clisp, but when you took out the REMOVE-DUPLICATES, you revealed it.
Please have a look at this, thanks! r
Ouch. Somehow there are duplicates under CLISP indeed. WTF? That might have been one of the reasons the code was factored that way to begin with, for all I remember of the pains of writing UIOP.
Maybe I should keep the remove-duplicates, just use 'equal for physical pathnames and 'pathname-equal for logical pathnames? Maybe only for CLISP? This seems to fix the bug. Should I commit and push?
Le Sigh.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Whenever someone asks what I think government rulers should do, my answer is that it should follow the example of the only honest ruler ever, Oedipus: they should apologize for their sins, step down, and gouge their own eyes out.
On Mon, Jun 13, 2016 at 6:39 PM, Robert Goldman rpgoldman@sift.net wrote:
On 6/10/16 Jun 10 -8:41 PM, Faré wrote:
I bumped ASDF to 3.1.7.1 after I fixed a performance bug in directory-files that made it quadratic instead of linear, due to some remove-duplicates used for logical-pathnames. The fix was to only use this quadratic behavior for LPNs. If you use LPNs, you deserve to lose on large directories. LPNs are for legacy Lisp code with relatively few files, only.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The best of all regimes is one where I am the head honcho of a worldwide empire. — Winston Churchill (his most famous quip, as translated to plain English)
On the Mac, this fails testing on clisp: looks like a regression. See launchpad ticket: https://bugs.launchpad.net/asdf/+bug/1592180
Looks like maybe there was always a bug here on clisp, but when you took out the REMOVE-DUPLICATES, you revealed it.
Please have a look at this, thanks! r