Re: How to use the current directory?

2023-09-24 Thread Attila Lendvai
> I use a vanilla Quicklisp installation.  For some local directory
> trees I configure ASDF to prefer those trees over the standard
> Quicklisp versions by placing text like the following in my
> $HOME/.config/common-lisp/source-registry.conf file:
>
> (:source-registry
>  (:tree "/home/brown/toe/open-source/")
>  ;; For swank.asd
>  (:tree "/home/brown/local/software/source/slime/")
>  :inherit-configuration)


+1 for this as the simplest path to the desired outcome.


> ./configure
> make
> sudo make install
>
> and it works!  I can put the clone anywhere I want.  I can change it
> anyway I want.  The system doesn't fight me.


that system is a struggle in so many other ways (dll hell; all the
/usr/include stuff; etc...). and from all the various linux distros,
precious few can achieve the equivalent of the CL ecosystem WRT
reproducibility and fine-grained control over the versions of the
dependencies (NixOS and Guix are the ones i'm aware of).

the seeming simplicity of that ./configure dance has an enormous cost
that only shows up when it doesn't work in apparent or in covertly
surprising ways.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“In his dealings with the world, the gentleman is not invariably for
or against anything. He is on the side of what is moral.”
— Confucius (551–479 BC)


Re: How to use the current directory?

2023-09-23 Thread Attila Lendvai
> So my advice is:
>
> (push #P"/path/to/your/local/copy/" ql:*local-project-directories*)
> (ql:quickload :your-system)


alternatively, you can move or symlink your project into
~/quicklisp/local-projects/

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“No people will tamely surrender their Liberties, nor can any be
easily subdued, when knowledge is diffused and virtue is preserved. On
the contrary, when people are universally ignorant, and debauched in
their manners, they will sink under their own weight without the aid
of foreign invaders.”
— Samuel Adams (1722–1803)


Re: [RFC] subsystems vs. modules

2022-05-18 Thread Attila Lendvai
using :if-feature is not deterministic (it depends on e.g. the load
order of systems, unless fixed, see Robert's mail).

using subsystems that explicitly record dependencies is deterministic.

we once used asdf-system-connections, and the non-determinism that it
introduced was a source of long hours of headaches... once we moved on
to use subsystems and system names like :mylib+swank, it was all gone.
- attila



Re: :initform vs. :default-initargs

2021-12-22 Thread Attila Lendvai
i think i know why this is happening.

i have attached a test that has the two versions that i have talked about. the 
slot override works, but the default-initarg doesn't.

ASDF probably calls change-class, probably from reset-system-class, which 
invokes reinitialize-instance directly, and somewhere here the default initargs 
are ignored.

but my CLOS is rusty.

is this a user bug, or an ADSF bug?

- attila


test-system-default-initargs.script
Description: Binary data


Re: :initform vs. :default-initargs

2021-12-22 Thread Attila Lendvai
> Yes, this works as expected for me:
>
> (defclass foosys (asdf/system:system)
> ()
> (:default-initargs :default-component-class 'foo))
>
> (asdf/component:module-default-component-class (make-instance 'foosys)) => foo

indeed. after Robert's mail i also tried this, and it worked, yet i'm seeing 
the error when i use :default-initargs, but not when i'm using a slot override.

it's a more convoluted issue involving our entire codebase that i'll need to 
investigate. sorry for the noise!

- attila




:initform vs. :default-initargs

2021-12-22 Thread Attila Lendvai
dear list,

i wanted to set the default-component-class of our own system subclass using 
:default-initargs, but it's ignored because the slot has a :initform (as 
opposed to setting the default value using a :default-initargs entry).

in the current ASDF setup, i need to override the slot (or the accessor 
method), which involves messing with internal symbols.

if ASDF used :default-initargs then i could just override that using a 
:default-initargs entry on my own subclass (IIUC).

https://lisptips.com/post/11728375873/initform-and-default-initargs

i'm sending it for your consideration, it's not a pressing issue on my side.

- attila
PGP: 5D5F 45C7 DFCD 0A39

Re: Rejiggering the branches

2021-07-13 Thread Attila Lendvai
>
> Nah, a tag is supposed to never change. The mechanism for a "tag that
> changes" is called... a branch.


the user story that i desire is a label that someone with the commit bit
can move around freely, and then it gets automatically synchronized to
everyone else who pulls/fetches the repo (i.e. *without* reading multiple
blog posts and issuing multiple git commands).

a release branch, especially with force-pushed commits, is rather far from
that in terms of the user experience. but then maybe i should learn to love
merge commits...

now, how exactly git behaves is another story. it never seizes to surprise
me.

(i'm fine with calling the "stable" label as "release", or whatever else.
the actual name wasn't my point.)

- attila


Re: Rejiggering the branches

2021-07-13 Thread Attila Lendvai
>
>
> Would the "stable" branch be any different from the "release" branch?
> If it's actually a not-so-stable development branch for 3.3 while a
> separate branch contains development for 3.4, then maybe indeed
> calling branches v3.3 and v3.4 make more sense.
>
>
+1

what i would do:

   - one branch that holds the bleeding edge. i'd call it main, just to go
   with the flow.
   - branches for ASDF versions (down to the desired resolution, probably
   major.minor), so that you can easily cherry pick or backport fixes into
   them. a new version-branch is forked off of main whenever a release happens.
   - optionally a stable *tag* as an indirection to the latest release. it
   communicates which specific git revision is it that the maintainer
   considers the stable state at any moment in time. it comes handy e.g. in CI
   scripts that want to check out the latest ASDF release, etc...

note though that this last point requires force-pushing the stable tag,
which i have done before, but i'm not completely sure it results in a slick
workflow. the main question is whether or not a git fetch/pull silently and
automatically updates the tag in the local repo.

- attila


Re: only perfom when the output is missing

2021-04-17 Thread Attila Lendvai
thanks for the ideas Robert!


> I was wondering why it was important to avoid the build when the .h file
> is newer than the .spec file. This shouldn't happen very often, should
> it? Is it because:
>

the problem is much more down to earth: generating the spec file requires
launching a libllvm based external tool called c2ffi. compiling and
properly configuring this tool can sometimes consume a day, and the users
of e.g. hu.dwim.sdl shouldn't ever need to do that. it's only needed when
you want to capture newly added artifacts from the SDL.h files.

one way to avoid this could be to not communicate the dependency to ASDF,
and make the .h -> .spec generation manual (this used to be the case). for
some reason that feels lame, but not the end of the world either.


>1.
>
>The .h file is getting refreshed too often by something upstream of
>ASDF? E.g., is make being too eager about rewriting the .h file?
>
>
the problem is not with too often, but with anything greater than zero,
e.g. a git checkout.

- attila


Re: only perfom when the output is missing

2021-04-14 Thread Attila Lendvai
FTR, i have managed to solve it with this:

(defclass generate-lisp-op (selfward-operation)
  ((selfward-operation :initform '( ; we will specify it in our own
COMPONENT-DEPENDS-ON

(defmethod component-depends-on ((op generate-lisp-op) (c c2ffi-file))
  `((load-op ,(find-system "cffi/c2ffi-generator"))
;; Regenerating the spec file is a lot of headache, so we ignore
;; the file modification times, and only communicate the
;; dependency to ASDF if the spec file is missing.
,@(let ((spec-file (input-file op c))) ; TODO is it legal to call
ASDF:INPUT-FILES here?
(when (or (not (probe-file spec-file))
  (zerop (with-input-from-file (s spec-file)
   (file-length s
  `((generate-spec-op ,c
,@(call-next-method)))

the commit:
https://github.com/cffi/cffi/commit/46975c644aeb0a832cd170e953cc8ec3cbdc78df

- attila

PS: sorry for the double send, i have cleaned up my mail settings.


only perfom when the output is missing

2021-04-14 Thread Attila Lendvai
dear hackers,

i cannot convince ASDF to only perform my custom operation if the output
file doesn't exist; i.e. regardless of the modification times.

it's in cffi/c2ffi: foo.h -> foo.spec -> foo.lisp

when the spec is there, regardless of the mod time, i'd like to skip the
spec generation task.

neither reading the manual, nor grepping around helped me to come up with
the required magic.

my custom operation-done-p isn't even called if the file's mod time
instructs ASDF to run the operation.

any hints are appreciated, including pointers to examples or tests.

- attila

PS: i sent the same mail from the wrong account, don't allow that through
moderation please.


only perfom when output is missing

2021-04-14 Thread Attila Lendvai
dear hackers,

i cannot convince ASDF to only perform my custom operation if the output file 
doesn't exist; i.e. regardless of the modification times.

it's in cffi/c2ffi: foo.h -> foo.spec -> foo.lisp

when the spec is there, regardless of the mod time, i'd like to skip the spec 
generation task.

neither reading the manual, nor grepping around helped me to come up with the 
required magic.

my custom operation-done-p isn't even called if the file's mod time instructs 
ASDF to run the operation.

any hints are appreciated, including pointers to examples or tests.

- attila

Re: trouble with upgrade of asdf and versions

2019-09-03 Thread Attila Lendvai
> Here is the problem, (and Quicklisp seems to be working OK)
>
>
> CL-USER> (ql:quickload :quickproject)
> ; Evaluation aborted on #.


if you want to get help you'll need to copy-paste the actual error and
the backtrace.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
No man is free who is not master of himself.



Re: Shims for old systems

2019-02-20 Thread Attila Lendvai
> simple and sustainable is a key to survival. In asdf I see the
> accumulation of complexity with no end. That is bad generally.

old ASDF was broken in countless ways, and i've experienced the bugs
in my everyday activities.

the question is whether ASDF has any accidental complexity, i.e.
complexity that is not inherent to the problem domain, and thus could
be eliminated -- at least theoretically.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Where there are rulers, there are no rules, only interest-serving
opinions enforced by violence. To want rulers is to beg for chaos.”
— Brandon Roark



Re: Shims for old systems

2019-02-19 Thread Attila Lendvai
> The shims idea is interesting, but isn't it a lot of trouble to make and 
> maintain a shim (which has to somehow indicate where to find the source files 
> for the library), compared to forking a system?

+1

there's already the sharplispers group for taking over unmaintained
systems (not to be confused with hostile systems):

https://github.com/sharplispers

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Tact is a skill that can turn brutal honesty into just honesty. It's
a skill that develops with practice, and one that's harder to use when
emotions are running high. But you can't go towards someone with a
verbal fist and expect a hug in return. When method matches intention,
outcomes are much more peaceful.”
— Doe Zantamata



Re: why does ASDF ask to please only define system/test?

2018-12-11 Thread Attila Lendvai
sorry Stas, but i just had to dishonestly (?) cut your mail... :) with
the hope that it will incite some reflection:


> I specifically don't update cl-ppcre.asd [...]
>
> [...] and all the users can do is just to suck it up.


FTR, there's an open PR with discussion:
https://github.com/edicl/cl-ppcre/pull/30

i understand that "it was him who made the first change!", and
"everything would still be fine if he doesn't make a change!"... but
i'm not sure it's reasonable to expect this kind of conservatism in a
collaborative space. old ASDF was a piece of software that wasn't
designed for the tasks it is used for today (as in its API, let alone
its implementation), and that was causing a lot of headache to "the
users" you seem to be defending above.

i don't have a strong opinion about this specific warning. to be
honest, if i was the ASDF maintainer, it would be fine for me if the
warning was off by default, and i would only turn it on in my own CI
to send out the PR's and/or warnings to the relevant maintainers, and
then let old and/or conservative libs continue to misbehave as they
did with the old ASDF.

but it's quite disheartening to see all the trash-talk against the
refactored ASDF. i may be just one user, but the cleanup of ASDF
helped me tremendously! maybe i was using more deps than usual (~100),
and had to deal with live systems and whatnot that most CL users don't
do...? but prior to the ASDF cleanup i had wasted countless hours
hunting build-related bugs only to realize that there wasn't any bug
(in my code), and by getting used to mindlessly rebuilding from
scratch *any time* something strange happened.

conservatism, and the general hostility, has always troubled me in the
CL community, but i don't have a dog in this fight currently, or maybe
even anymore, so i better cut the talk...

good luck resolving whatever needs to be resolved for a better
tomorrow!

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The more artificial taboos and restrictions there are in the world,
the more the people are impoverished…. The more that laws and
regulations are given prominence, the more thieves and robbers there
will be.”
— Lao Tzu (sixth century BC)



Re: why does ASDF ask to please only define system/test?

2018-12-11 Thread Attila Lendvai
> What great functionality are we getting for this?

you can find and load a system without pre-processing every .asd file available.

> and have worked perfectly well without following the new convention?

was it, though?

it took multiple seconds to read and process every .asd on my system
before this change.

--
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“In a democracy, mass opinion creates power. Power diverts funds to
the manufacturers of opinion, who manufacture more, etc. […] This
feedback loop generates a playing field on which the most competitive
ideas are not those which best correspond to reality, but those which
produce the strongest feedback.”
— Mencius Moldbug



Re: Problems with DEFSYSTEM-DEPENDS-ON

2018-04-09 Thread Attila Lendvai
> A cheesy fix would simply be to wrap it in IGNORE-ERRORS. But it might cause
> errors in its present form.


i've learned, painfully, that indiscriminate ignore-errors will almost
always bite you back (in the form of wasted debugging time), no matter
how innocent they look.


> This really is more a QL issue than an ASDF one (although it illustrates an
> issue with wrapping errors, IMO).


while this is true, the implementation of QL requires a reliable way
to hook into the internal state of various versions of ASDF (namely,
into the situation when ASDF is looking for a system, and not finding
it will lead to an error without QL intervention). if i understand it
correctly, this is the crux of this issue.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“A general State education is a mere contrivance for molding people to
be exactly like one another; and as the mold in which it casts them is
that which pleases the dominant power in the government […]; it
establishes a despotism over the mind, leading by a natural tendency
to one over the body.”
— John Stuart Mill (1806–1873), 'On Liberty' (1869)



Re: Problems with DEFSYSTEM-DEPENDS-ON

2018-04-01 Thread Attila Lendvai
> The usage of DEFSYSTEM-DEPENDS-ON to specify dependencies that will be
> satisfied by QL:QUICKLOAD no longer seems to be working in asdf-3.3.1.

FTR, here's the history of this issue:

https://github.com/quicklisp/quicklisp-client/pull/122#issuecomment-160419822

https://github.com/quicklisp/quicklisp-client/issues/108

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“When a country is well governed, poverty and a mean condition are
things to be ashamed of. When a country is ill governed, riches and
honor are things to be ashamed of.”
— Confucius (551–479 BC), 'The Analects', Chapter VIII 
(邦有道貧且賤焉恥也,邦無道富且貴焉恥也。)



Re: "deprecated recursive use" warning

2018-03-21 Thread Attila Lendvai
> I think the Right Thing is to realize that what ASDF does is not so much
> transform files, as to maintain the consistency of the running lisp image.
> Now, in no case does the running lisp image need either the JSON generation
> system or the JSON to lisp translation system. All the running lisp image
> needs to function correctly is an up-to-date lisp file produced by this
> pipeline. So


this is a very useful insight, thanks for formulating it explicitly!
it's a good candidate for an introductory bird's eye view section of
the manual.

i already made the JSON generation a separate operation, and now i'm
considering to do the same with the JSON -> lisp generation.

in a way it makes sense: the lib author tested the code that he
saw. if the lisp generation gets changed/fixed (by a new patch to
CFFI), it may even break the rest of the lib that may be running with
some old assumptions... so, maybe it's better to just make both of
those as a separate process that needs to be initiated by the lib
author explicitly, and then checked into the git history.


> Once you think about what ASDF does and doesn't do, I think this makes
> perfect sense. But, of course, it might be a big pain to do so.


yeah, it feels like a lot of pain. it would be nice if there was a
fork-like API in ASDF for implementing such exec'd compilation, but
then i guess ASDF itself has no clue which /foo/bin/ directory has the
underlying lisp binary, and/or which lisp to launch at all, let alone
how...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Far from helping students to develop into mature, self-reliant,
self-motivated individuals, schools seem to do everything they can to
keep youngsters in a state of chronic, almost infantile, dependency.
The pervasive atmosphere of distrust, together with rules covering the
most minute aspects of existence, teach students every day that they
are not people of worth, and certainly not individuals capable of
regulating their own behavior.”
— Alfie Kohn, 'Punished by Rewards: The Trouble with Gold Stars,
Incentive Plans, A's, Praise, and Other Bribes'



Re: Testing for ASDF 3.3.2 and beyond?

2018-03-02 Thread Attila Lendvai
>> There is no batch loading, each test is run in a fresh CL process.
>>
> Interesting. The memory load might still be sensitive to compilation
> order, if you reuse fasls shared with previous builds versus rebuild
> new ones.

it can help on SBCL to insert (sb-ext:gc :full t) to a few key places,
like after operations that generate a lot of garbage (e.g. compilation).

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Ultimately, man should not ask what the meaning of his life is, but
rather must recognize that it is *he* who is asked. In a word, each
man is questioned by life; and he can only answer to life by
*answering for* his own life; to life he can only respond by being
responsible.”
— Viktor E. Frankl (1905–1997), 'Man's Search for Meaning' (1946)



Re: hu.dwim.zlib broke; broken operation-done-p

2018-02-04 Thread Attila Lendvai
> If you generate the Lisp files, do you need to check in the .spec files?

there's a strong argument for keeping the spec files: if the
cffi/c2ffi generator itself gets a bug fix/upgrade, then the lisp
files would need to be regenerated for those fixes/upgrades to take
effect, and that's only possible if the spec files are available.

which, BTW, currently happens automagically due to that unlucky
component -> system dependency on the "cffi/c2ffi-generator" system.

thanks for the review!

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
The real voyage of discovery consists not in seeking new landscapes,
but in looking with new eyes.



Re: hu.dwim.zlib broke; broken operation-done-p

2018-02-03 Thread Attila Lendvai
> One solution is to create a new file with the correct timestamp, that
> is either a copy of the existing spec file or a new generated one.


ok, here's an idea that i'd be grateful if i could bounce off of you:

what if i make the .spec generation a standalone operation that needs
to be explicitly run by the library author? it's a bit more burden for
the lib author because he needs to keep track of changes to the
configuration and/or the .h file, but that would implicitly fix one of
the bugs.

in fact i have already pushed this change:

https://github.com/cffi/cffi/commit/d59331b050fb31f3a3f9103f302890be176b77ce

and shall i do the same with the next stage, namely the .lisp file
generation? for some reason i think it's better to keep that automatic
and integrated into the normal flow of the build process, but i'm not
fully convinced about that either.

if i did that, it would annull the last remaining issue, namely the
current unlucky

(load-op ,(find-system "cffi/c2ffi-generator"))

dependency.

but the price would be high: either users would need to regenerate
.lisp files by hand each time they pull changes to the .spec file
(this is unacceptable), or all libs would need to check in also the
generated .lisp files into their repos (this is less of a
constraint/burden, but still...).

any thoughts?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
Education is life. Life is education.



Re: hu.dwim.zlib broke; broken operation-done-p

2018-02-01 Thread Attila Lendvai
> My theory is that that you're failing to re-generate the .spec when
> it's present, even though your dependencies say it will be
> re-generated. Therefore, ASDF decides that it's out-of-date and must
> be re-generated again the next time over, etc. In other words, you lie
> to ASDF, and ASDF punishes you right back.


that was indeed a lurking bug. excellent remote debugging skills,
thanks! :)

i pushed the fix. now after i touch'd the appropriate spec files, it
doesn't want to run c2ffi anymore, but it's still regenerating the
lisp file unconditionally.

i ran out of hacking steam for today. i'll look into it tomorrow, but
further remote debugging magic is welcome of course... :)

i'm kinda lost for now. i have no plan of action, so to say... :)

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
Liberty is a demand. Tyranny is submission.



hu.dwim.zlib broke; broken operation-done-p

2018-01-30 Thread Attila Lendvai
if you issue the following (available in quicklisp):

(asdf:load-system :hu.dwim.zlib)

then for the first time it should generate a lisp file, which then gets
compiled and loaded.

issuing it for the second time shouldn't do anything, but since some
revisions it regenerates the lisp file every time.

the relevant code is somewhere around here:

https://github.com/cffi/cffi/blob/master/src/c2ffi/asdf.lisp#L135

i tried to trace the INPUT-FILES, OUTPUT-FILES, PERFORM,
OPERATION-DONE-P methods, but i don't see anything wrong.

one unusual thing is that the output of GENERATE-LISP-OP goes into the
src/ directory, not to the usual fasl output dir. same applies to
GENERATE-SPEC-OP.

any ideas how to debug this? or what to look at?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“For an instant I think I saw. I saw the loneliness of man as a
gigantic wave which had been frozen in front of me, held back by the
invisible wall of a metaphor.”
— Carlos Castaneda (1925–1998), 'Journey to Ixtlan' (1972)



Re: "deprecated recursive use" warning

2018-01-30 Thread Attila Lendvai
> I haven't used CFFI in a while.

TL;DR: is this a sane fix?

https://github.com/cffi/cffi/commit/4b9b06f15912e823581b1aeb8a0d5c2ef11f702d

--
and here follows the elaborate email that led me to find the above
solution:

a bit of background: it's a subsystem of CFFI that generates the CFFI
bindings from a json file, that is in turn autogenerated from the C
source.

so,

 1) C -> json
 2) json -> lisp (CFFI definitions)
 3) asdf compiles/loads the generated lisp file

1) requires a heavyweight infrastructure (a binary run by
run-program), so there's support to do that lazily, and just
distribute the json files generated once by the lib author.

2) is relatively lightweight, but it still requires loading a broader
scope of lisp dependencies, so there's support for the lib author to
run the generation and distribute the generated lisp file.

now, whether the generator code (extra dependencies) is needed is
decided by whether or not the generated lisp file is up-to-date.

unfortunately i cannot test it properly because of another bug/change
that i'll report in a separate thread.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Enlightenment is a destructive process. It has nothing to do with
becoming better or being happier. Enlightenment is the crumbling away
of untruth. It's seeing through the facade of pretence. It's the
complete eradication of everything we imagined to be true.”
— Adyashanti (1962–)



"deprecated recursive use" warning

2018-01-30 Thread Attila Lendvai
dear list,

shall i be concerned about this?

WARNING:
   Deprecated recursive use of (ASDF/OPERATE:OPERATE
'ASDF/LISP-ACTION:LOAD-OP '("cffi/c2ffi-generator")) while
   visiting (CFFI/C2FFI::GENERATE-LISP-OP "hu.dwim.zlib" "c2ffi-spec"
"zlib.h") - please use proper dependencies instead

it happens due to this in cffi/src/c2ffi/asdf.lisp:

(defmethod perform ((op generate-lisp-op) (c c2ffi-file))
...
  (unless (component-loaded-p :cffi/c2ffi-generator)
(load-system :cffi/c2ffi-generator))
...
)

that system only needs to get loaded when the action is executed.

or is it safe to ignore that warning long term?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“If we have the truth, it cannot be harmed by investigation. If we
have not the truth, it ought to be harmed.”
— J. Reuben Clark (1871–1961)



Re: spurious reloads with systems not following the foo/bar naming convention?

2018-01-30 Thread Attila Lendvai
> I believe this is the bug that was fixed in 3.3.1.3.

FYI, there's no such tag pushed into the official repo.

https://gitlab.common-lisp.net/asdf/asdf/tags

using HEAD, the test case i sent doesn't fail anymore, but our own
issue still prevails. it's a large environment with many systems, but
the symptom looks the same, although for us due to cxml.

i couldn't easily test with an older version of ASDF because my SBCL
already ships with 3.3.0.1 (preventing an easy downgrade), but it used
to work until recently.

after i edit cxml.asd to follow the foo/bar convention, i see a few of
these, that may or may not be the cause of the spurious reload that i
still see:

WARNING:
  Computing just-done stamp in plan NIL for action
  (ASDF/LISP-ACTION:COMPILE-OP "iolib/syscalls" "ffi-types"), but
  dependency (ASDF/LISP-ACTION:PREPARE-OP "iolib/syscalls"
  "ffi-types") wasn't done yet!

WARNING:
   Computing just-done stamp in plan NIL for action
   (ASDF/LISP-ACTION:COMPILE-OP "iolib/os" "ffi-types"), but
   dependency (ASDF/LISP-ACTION:PREPARE-OP "iolib/os" "ffi-types")
   wasn't done yet!

WARNING:
   Computing just-done stamp in plan NIL for action
   (ASDF/LISP-ACTION:COMPILE-OP "iolib/sockets" "grovel"), but
   dependency (ASDF/LISP-ACTION:PREPARE-OP "iolib/sockets" "grovel")
   wasn't done yet!

please note that this is not a burning issue for us, it's just a
friendly heads up with the hopes that it's useful.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“A true friendship involves two people who are both intensely focused
on their own healing processes, on working on their own issues and
maturing and evolving. Basically two people who are growing toward
truth, and they both individually, in their own specific individual
lives, have that as their purpose. And when they come together it
becomes synergistic.”
— Daniel Mackler



spurious reloads with systems not following the foo/bar naming convention?

2018-01-29 Thread Attila Lendvai
dear list,

i noticed it with CXML, but here's a smaller system to reproduce it with:

git clone https://github.com/mmaul/cl-influxdb.git

(ql:quickload :cl-influxdb)
(asdf:load-system :cl-influxdb.examples)

each time the examples are loaded the main systems gets reloaded.

i see something interesting in the output that may be related:

WARNING:
   Computing just-done stamp in plan NIL for action
   (ASDF/LISP-ACTION:PREPARE-OP "cl-influxdb" "cl-influxdb"), but
   dependency (ASDF/LISP-ACTION:LOAD-OP "cl-influxdb" "package")
   wasn't done yet!

CL-USER> (asdf:asdf-version)
"3.3.1.1"

CL-USER> (lisp-implementation-version)
"1.4.1.98.hu.dwim.3-a860f4780"

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“With or without religion, good people can behave well and bad people
can do evil; but for good people to do evil — that takes religion.”
— Steven Weinberg (1933–), 'A Designer Universe?'



Re: weirdness with compile-op and retry restart

2017-07-21 Thread Attila Lendvai
> Would you perchance be using deferred-warnings?

yes.

i asked myself: what exactly (asdf:enable-deferred-warnings-check)
does? i couldn't answer. then i didn't find anything in the manual,
and a brief inspection of the code also didn't satisfy my
curiosity... so, i guess i'll just turn it off then... :)

thanks for the info,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“I'm not scared of the Maos and the Stalins and the Hitlers. I'm
scared of the thousands of millions of people that hallucinate them to
be "authority", and so do their bidding, and pay for their empires,
and carry out their orders. I don't care if there's one looney with a
stupid moustache. He's not a threat if the people do not believe in
"authority".”
— Larken Rose (1968–)



weirdness with compile-op and retry restart

2017-07-20 Thread Attila Lendvai
dear devs,

i have a system with a file that has a compilation error. i try to load it:

(asdf:load-system :hu.dwim.web-server.application.test)

it leads to an error with the following restart (notice its unusual
wording, and that it's about the entire system, not just that one
source file):

 6: RETRY Retry completing compilation for #.

the rest FTR:

 5: ACCEPT Continue, treating completing compilation for
# as having
been successful.

 4: RETRY Retry ASDF operation.

 3: CLEAR-CONFIGURATION-AND-RETRY Retry ASDF operation after resetting
the configuration.

if i touch the file and select the restart, then cl:compile-file
doesn't get called and no compilation seems to happen. there used to
be a restart to recompile the single source file that has failed.

i'm on ASDF 3.2.1 and the very latest SBCL (i'm testing it for the
current freeze)

note: these systems have some customizations from hu.dwim.asdf, but
not much changed there recently.

is this something obvious that i'm failing to see, or should i dig
deeper? what else would help?

it's not a show-stopper for me, so feel free to ignore this. i'm
writing this up more as offering help than asking for help.

thanks for your time,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Understand and abide by the following self-evident principle, and you
will be an anarchist: If there is something that would be wrong for
you to do yourself, then you shouldn't ask anyone else to do it
either.”
— Larken Rose (1968–)



Re: Plans for ASDF 3.3

2017-04-26 Thread Attila Lendvai
> Also, I know you are interested in parallel variants of ASDF.  It seems
> like this would conflict with the desire to enforce deterministic
> orderings, since if you have A must be before B, C, and D, but B, C, and
> D are unordered in the system definition, determinism would lead you to
> want to have a deterministic algorithm for ordering B, C, and D, but
> parallelism would suggest you separately compile B, C, and D in
> different images (each of which would have A loaded).


while we are at it, i would welcome a change/feature where anything
unspecified would be randomly ordered.

so that issues come up while developing, not when the live system has
a different filesystem order and boom, things just don't build...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Political speech and writing are largely the defense of the indefensible.”
— George Orwell (1903–1950), 'Politics and the English Language' (1946)



Re: ASDF 3.2.1 released

2017-04-04 Thread Attila Lendvai
> It is with great pleasure that we announce the release of ASDF 3.2.1.

$ git checkout 3.2.1
error: pathspec '3.2.1' did not match any file(s) known to git.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“If there is to be peace in the world,
There must be peace in the nations.
If there is to be peace in the nations,
There must be peace in the cities.
If there is to be peace in the cities,
There must be peace between neighbors.
If there is to be peace between neighbors,
There must be peace in the home.
If there is to be peace in the home,
There must be peace in the heart.”
— Lao Tzu (sixth century BC)



Re: ASDF release candidates

2017-03-30 Thread Attila Lendvai
> That would have been worthy of an official bug report.


wait, let me be more precise, because i may be wrong here: i vaguely
remember that in the past i used to see redefinition warnings issued
by sbcl regarding uiop, and it was in a context where it went against
my model of reality, i.e. as far as i understood what was going on it
shouldn't have happened. actual compilation may or may not have
happened, i don't remember.

i didn't file a bug because i couldn't easily reproduce it, and/or i
wasn't even sure that whatever was happening was wrong.

sorry for the fog, but it was some time ago, and it wasn't a crucial
issue for me.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Anarchists did not try to carry out genocide against the Armenians in
Turkey; they did not deliberately starve millions of Ukrainians; they
did not create a system of death camps to kill Jews, gypsies, and
Slavs in Europe; they did not fire-bomb scores of large German and
Japanese cities and drop nuclear bombs on two of them; they did not
carry out a ‘Great Leap Forward’ that killed scores of millions of
Chinese; they did not attempt to kill everybody with any appreciable
education in Cambodia; they did not launch one aggressive war after
another; they did not implement trade sanctions that killed perhaps
500,000 Iraqi children.

In debates between anarchists and statists, the burden of proof
clearly should rest on those who place their trust in the state.
Anarchy’s mayhem is wholly conjectural; the state’s mayhem is
undeniably, factually horrendous.”
— Robert Higgs



Re: ASDF release candidates

2017-03-30 Thread Attila Lendvai
> Oh, you mean you had this bug before 3.3 already? That's a useful data
> point!

yes, i already used to see unnecessary rebuilding of uiop several
months ago.

getting rid of explicitly depending on uiop resolved this issue for
me.

i'm not sure whether explicitly depending on asdf also triggered this,
but based on your advice that i read in some bug report somewhere, i
also got rid of those dependencies.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The more retarded humanity is, the more it is in the hands of the
politicians, in the hands of the priests, in the hands of all kinds of
vested interests. Who is interested in transforming man? They want you
to be completely blind and deaf. They want you to be just a robot:
efficient, not creating any trouble – no strike, no protest, no
revolution, no rebellion – just a robot who is always ready to say
"Yes, sir."”
— Osho (1931–1990), 'From Darkness to Light' (1985)



Re: ASDF release candidates

2017-03-30 Thread Attila Lendvai
> I still haven't inspected the spurious rebuilds of uiop that happened
> in some contexts.

FWIW, i also see those rebuilds every now and then if i have explicit
dependency on :uiop or :asdf (which i've gotten rid of, so i don't see
this anymore).

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Strong minds discuss ideas, average minds discuss events, weak minds
discuss people.”
— Socrates (c. 470–399 BC, tried and executed)



Re: ASDF release candidates

2017-03-26 Thread Attila Lendvai
> Failures on new version only:
> https://common-lisp.net/project/cl-test-grid/asdf/asdf-diff-62.html

it's very interesting, babel on ccl fails with this:

QUICKLISP-CLIENT:SYSTEM-NOT-FOUND : System "hu.dwim.stefil-api-impl" not found

what is this -api-impl thing? rgrep "api" babel/ and hu.dwim.stefil/
gives nothing. rgrep -- "api-impl" quicklisp-* yields also nothing.

where is this coming from?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Once the fabric of a just society is undone, it takes generations to
weave it back together.”
— Deepak Chopra



Re: ASDF 3.1.7.43 is 3.2 release candidate

2016-12-25 Thread Attila Lendvai
> Sorry for misclicking on my phone. What I meant is that SBCL 1.1.10 is over
> three years old. Should we really be supporting anything older than two or
> three years?

i just wanted to write that since then there were several changes to
that infrastructure in SBCL, and it's most probably fixed long ago and
safe to ignore.

i got carried away looking into this, probably for no good reason.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Step into the fire of self-discovery. This fire will not burn you, it
will only burn what you are not.”
— Mooji (1954–)



Re: ASDF 3.1.7.43 is 3.2 release candidate

2016-12-25 Thread Attila Lendvai
uicklisp
$ rlwrap sbcl-1.1.10-x86-64-linux/run-sbcl.sh --no-userinit
This is SBCL 1.1.10, an implementation of ANSI Common Lisp.
* (load "~/quicklisp/setup.lisp")

debugger invoked on a SB-INT:INVALID-ARRAY-INDEX-ERROR in thread
#: Index 22 out of bounds
for (AND (VECTOR T 10) (NOT SIMPLE-ARRAY)), should be nonnegative and
<10.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY] Retry EVAL of current toplevel form.
  1: [CONTINUE ] Ignore error and continue loading
file "/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd".
  2: [ABORT] Abort loading file
"/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd".
  3: [RETRY] Retry compiling #.
  4: [ACCEPT   ] Continue, treating compiling
# as having been successful.
  5: Retry ASDF operation.
  6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after
resetting the configuration.
  7:     Retry EVAL of current toplevel form.
  8: Ignore error and continue loading
file "/home/alendvai/quicklisp/setup.lisp".
  9: Abort loading file
"/home/alendvai/quicklisp/setup.lisp".
 10: Exit debugger, returning to top level.

(SB-C::FIND-SOURCE-ROOT 22 #)
0]

hth,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“All authority of any kind, especially in the field of thought and
understanding, is the most destructive, evil thing. Leaders destroy
the followers and followers destroy the leaders. You have to be your
own teacher and your own disciple. You have to question everything
that man has accepted as valuable, as necessary.”
— Jiddu Krishnamurti (1895–1986), 'Freedom from the Known'



Re: Work-around built-in ~/common-lisp/ in search path?

2016-11-16 Thread Attila Lendvai
> I could do that, but I that would also delete
>
>   system-source-registry
>   system-source-registry-directory and
>   default-system-source-registry
>
> ... which I feared might cause me access to bundled SBCL libraries.

i wanted to answer that you shouldn't be afraid, because it's
implemented through an entry in
asdf:*system-definition-search-functions*, but then i saw that it's
not anymore, and i couldn't even find out in 5 minutes how ASDF finds
SBCL contribs.

nevertheless, i have this in my
~/.config/common-lisp/source-registry.conf:

(:source-registry
  (:also-exclude "sbcl" "disabled-systems" "build")
  (:tree (:home "common-lisp/"))
  (:tree "/usr/local/share/common-lisp/source/")
  :ignore-inherited-configuration)

and the SBCL contribs are found.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The greatest fear in the world is of the opinions of others. And the
moment you are unafraid of the crowd you are no longer a sheep, you
become a lion. A great roar arises in your heart, the roar of
freedom.”
— Osho (1931–1990)



Re: Version 3.1.7.35 has been pushed

2016-11-16 Thread Attila Lendvai
another data point:

it was caused by asdf-system-connections. i thought i got rid of that
long ago, but it's included in ql, and it got installed on my system
somehow.

after

(ql:uninstall :asdf-system-connections)

my script continues, but then fails later on with iolib's
IOLIB/GROVEL::PROCESS-OP.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Most people think they need a ruler. Perhaps we should give them a
fake one that doesn't actually do anything, and then they won't think
about it. It is sort of like giving an infant a pacifier.”
— Perry Metzger



Re: Version 3.1.7.35 has been pushed

2016-11-16 Thread Attila Lendvai
> Please try it out.  Working towards a release of ASDF soon, so anything
> you could do to help iron out bugs would be very much appreciated!

i did a thoughtless git checkout and rebuild, and i got the attached
backtrace.

the issue is with the new ban on operation instances. note that it
seems to happen during an upgrade of ASDF itself, which may or may not
be relevant.

maybe for a while it should only be a full warning?

my script is basically a build script for an executable SBCL image
that loads all dependencies of our projects except our projects
themselves. the dependencies come from the a mixture of the latest of
quicklisp and my workspace.

hope this helps,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Nobody in the world, nobody in history, has ever gotten their freedom
by appealing to the moral sense of the people who were oppressing
them.”
— Assata Shakur (1947–)
;;; loading the following systems into this image:
   (alexandria cffi uiop trivial-features babel cffi/c2ffi asdf cffi-libffi 
cffi-grovel cffi-toolchain cl-autowrap
cl-json cl-ppcre cl-plus-c trivial-garbage projectured.sdl 
projectured.document parse-number projectured.editor
s-xml projectured.projection drakma puri cl-base64 chunga 
trivial-gray-streams flexi-streams usocket sb-bsd-sockets
cl+ssl sb-posix bordeaux-threads babel-streams cl-fad iolib iolib/base 
iolib/common-lisp split-sequence
iolib/multiplex iolib/syscalls iolib/grovel iolib/asdf iolib/conf 
iolib/streams iolib/sockets idna swap-bytes
iolib/pathnames iolib/os local-time rfc2109 rfc2388-binary contextl 
closer-mop lw-compat cl-graph metatilities-base
cl-containers metabang-bind cl-l10n cl-l10n-cldr iterate cxml cxml-dom 
cxml-xml closure-common cxml-klacks
cxml-test cl-typesetting cl-pdf zpb-ttf ironclad sb-rotate-byte nibbles 
anaphora sb-sprof cl-postgres+local-time
cl-postgres md5 moptilities metacopy-with-contextl metacopy 
command-line-arguments cl-smtp sb-cover optima)
To load "alexandria":
  Load 1 ASDF system:
alexandria
; Loading "alexandria"

debugger invoked on a ASDF/FIND-SYSTEM:FORMATTED-SYSTEM-DEFINITION-ERROR in 
thread
#:
  OPERATION instances must only be created through MAKE-OPERATION.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY] Retry ASDF operation.
  1: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the 
configuration.
  2: [ABORT] Give up on "alexandria"
  3: [RETRY] Retry EVAL of current toplevel form.
  4: [CONTINUE ] Ignore error and continue loading file 
"/home/alendvai/common-lisp/hu.dwim.environment/bin/build-development-image.sh".
  5: Abort loading file 
"/home/alendvai/common-lisp/hu.dwim.environment/bin/build-development-image.sh".
  6: Ignore runtime option --eval 
"(with-open-file (s 
\"/home/alendvai/common-lisp/hu.dwim.environment/bin/build-development-image.sh\"
 :element-type 'character) (read-line s) (load s))".
  7: Skip rest of --eval and --load options.
  8: Skip to toplevel READ/EVAL/PRINT loop.
  9: [EXIT ] Exit SBCL (calling #'EXIT, killing the 
process).

(ASDF/FIND-SYSTEM:SYSDEF-ERROR "OPERATION instances must only be created 
through MAKE-OPERATION.")
0] back

Backtrace for: #
0: (ASDF/FIND-SYSTEM:SYSDEF-ERROR "OPERATION instances must only be created 
through MAKE-OPERATION.")
1: ((:METHOD INITIALIZE-INSTANCE :BEFORE (ASDF/OPERATION:OPERATION)) 
#) [fast-method]
2: ((LAMBDA NIL :IN 
"/home/alendvai/common-lisp/hu.dwim.environment/bin/build-development-image.sh"))
3: (ASDF/INTERFACE::SYSTEM-LOADED-P CL-GRAPH-SYSTEM::CL-GRAPH)
4: ((FLET #:WRAPPER60 :IN ASDF/INTERFACE::REQUIRED-SYSTEMS-LOADED-P) 
CL-GRAPH-SYSTEM::CL-GRAPH)
5: (SB-KERNEL:%MAP-FOR-EFFECT-ARITY-1 # 
(CL-GRAPH-SYSTEM::CL-GRAPH CL-GRAPH-SYSTEM::CL-VARIATES))
6: (ASDF/INTERFACE::REQUIRED-SYSTEMS-LOADED-P 
#)
7: ((LAMBDA (ASDF/INTERFACE::CONNECTION) :IN 
ASDF/INTERFACE::LOAD-CONNECTED-SYSTEMS) #)
8: (ASDF/INTERFACE:MAP-SYSTEM-CONNECTIONS #)
9: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # 
# 
# :VERBOSE NIL)
10: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
11: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) # # 
:VERBOSE NIL) [fast-method]
12: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # 
ASDF/LISP-ACTION:LOAD-OP :ASDF :VERBOSE NIL)
13: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
14: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP 
:ASDF :VERBOSE NIL) [fast-method]
15: (ASDF/OPERATE:LOAD-SYSTEM :ASDF :VERBOSE NIL)
16: (ASDF/UPGRADE:UPGRADE-ASDF)
17: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
18: (ASDF/CACHE:CALL-WITH-ASDF-CACHE # :OVERRIDE NIL :KEY 

Re: asdf version dependency

2016-03-19 Thread Attila Lendvai
for some 0.02, this is my high-level perspective:

the name of an entity/concept is some letters/sounds/notation that we
humans use to point to it while communicating with each other.
sometimes we use computers to achieve that, e.g. when packaging a
library together with a .asd file.

from this perspective, the question is: should names in the ASDF model
be a simple string of characters, or should they be represented as a
more formal encoding that includes the state of the entity being
pointed to (i.e. the version information).

IOW, for me the question boils down to this: shall ASDF implement
version control features?

and looking at the unfortunate fact that source code is still saved
into flat text files today, and at the complexity/requiremenets of git
& friends to deal with the state of these text files, my gut reaction
is no, it should stay far away.

professional integrators should use professional VCS systems to mark
specific states of the entities they are integrating. i think anything
less is just wasted efforts that grows complexity without solving the
issue beyond the trivial cases. e.g. what about quicklisp, or
integrators in general? shall they bundle different versions of the
same system (they can't, because the lisp package namespace is
shared)? or will they just resort to whichever tools they are using to
resolve the integrator's headaches and just entirely ignore the new
ASDF feature?

FTR, for our libs i use darcs and overlapping tags to keep track of
the collective state of the dependencies when packaging various
different apps that use various different subsets of these
dependencies. for foreign libs i also use whichever VCS is used to
publish them.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Selfishness is not living as one wishes to live, it is asking others
to live as one wishes to live.”
— Oscar Wilde (1854–1900), 'The Soul of Man Under Socialism' (1895)



Re: newbie setup question

2016-01-18 Thread Attila Lendvai
> *  asdf:*central-registry*
>
> (#P"/home/LE/sbcl/" #P"/home/mordecai/quicklisp/quicklisp/")

i'd just put my code under ~/quicklisp/local-projects/ and forget
about ASDF configuration until it's again needed for something. you
can also use symlinks.

also, IIRC asdf:*central-registry* is obsoleted.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The first thing you have to do if you want to raise nice kids, is you
have to talk to them like they are people instead of talking to them
like they're property.”
— Frank Zappa (1940–1993), 'The Howard Stern Show' (1987)



Re: Issues with new testing scripts

2015-12-28 Thread Attila Lendvai
> This is the reason why I prefer 'git subtree' to 'git submodule': with

oh, git... why didn't i expect to have more than one way to implement
the same thing? as opposed to e.g. having a flag that switches between
the two modes of the same abstraction, both documented at the same
place... maybe?

thanks for the wakeup call! :)

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Unthinking respect for authority is the greatest enemy of truth.”
— Albert Einstein (1879–1955)



Re: a FIND-SYSTEM inconsistency which may be a bug

2015-11-18 Thread Attila Lendvai
> CLEANUP-SYSTEM-DEFINITION-SEARCH-FUNCTIONS attempts to remove
> SYSDEF-PRELOADED-SYSTEM-SEARCH from the hooks, but it is never added.
> and right under it, SEARCH-FOR-SYSTEM-DEFINITION also assumes that
> it's supposed to be called explicitly after the hooks.

i'm afraid i sent this mail too early. the comment above it says:

"Remove known-incompatible sysdef functions from old versions of
asdf."

so, if this is indeed a cleanup needed for a proper upgrade, then
please ignore my mail and sorry for the noise.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Justice is not concerned with the results of the various
transactions, but only with whether the transactions themselves are
fair.”
— F.A. Hayek (1899–1992), 'Law, Legislation and Liberty', I.6.j



Re: register-immutable-system -> (setf system-mutable-p)

2015-11-12 Thread Attila Lendvai
> the export entry in the package was not renamed, it still exports
> REGISTER-IMMUTABLE-SYSTEM.

damn, a dirty tree with my own unrecorded changes confused me.

ignore this mail and sorry for the noise!

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“If a politician found he had cannibals among his constituents, he
would promise them missionaries for dinner.”
— H.L. Mencken (1880–1956)



register-immutable-system -> (setf system-mutable-p)

2015-11-10 Thread Attila Lendvai
the export entry in the package was not renamed, it still exports
REGISTER-IMMUTABLE-SYSTEM.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“You can get love only from a free agent whose uniqueness is respected
by you, whose freedom is respected by you. It is out of the freedom of
the other that this moment of love has happened. Don’t destroy it by
trying to possess, by trying to hold, by creating a legal bondage, a
marriage. Let the other be free, and remain free yourself. Don’t let
anybody else possess you either. To possess or to be possessed, both
are ugly. If you are possessed you lose your very soul.”
— Osho (1931–1990), 'From Darkness to Light' (1985)



Re: trouble with :also-exclude

2015-10-08 Thread Attila Lendvai
> For this to apply to your ~/common-lisp/ you'd have to list
> ~/common-lisp/ explicitly, and then :ignore-inherited-configuration to
> avoid the regular entry for ~/common-lisp/ and then explicitly include
> any configuration you'd like to inherit anyway.

ouch.

is there any other way to tell :tree to ignore some branches?

it would be useful both for optimization, and also for dealing with
different versions of the same system. in my original config my
hand-written scanner was e.g. ignoring _foo directories, so i could
just rename dirs to use a different version.

i'd like to use a default config with as little interference as
possible, so i don't want to just shadow all the
/etc/common-lisp/... configs.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The liberty of man consists solely in this, that he obeys the laws of
nature because he has himself recognized them as such, and not because
they have been imposed upon him externally by any foreign will
whatsoever, human or divine, collective or individual.”
— Mikhail Bakunin (1814–1876)



trouble with :also-exclude

2015-10-02 Thread Attila Lendvai
i'm not sure what's the expected behavior. what i'm trying to achieve
is to exclude some dirs inside my ~/common-lisp/



$ cat ~/.config/common-lisp/source-registry.conf.d/00-excluded-systems.conf
(:also-exclude "sbcl" "disabled-systems")

$ rlwrap sbcl --no-userinit --no-sysinit
This is SBCL 1.2.4.debian, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* (require :asdf)

("ASDF" "asdf" "UIOP" "uiop")
;; force asdf upgrade
* (asdf:load-system :asdf)

T
* (gethash "cl-postgres+local-time" asdf::*source-registry*)

#P"/home/alendvai/common-lisp/disabled-systems/local-time.old-darcs/cl-postgres+local-time.asd"
T
* asdf::*source-registry-exclusions*

(".bzr" ".cdv" ".git" ".hg" ".pc" ".svn" "CVS" "RCS" "SCCS" "_darcs" "_sgbak"
 "autom4te.cache" "cover_db" "_build" "debian")
* asdf/upgrade:*asdf-version*

"3.1.5.18"

--

it may or may not be normal that *source-registry-exclusions* doesn't
contain "disabled-systems".

(trace asdf/source-registry::process-source-registry-directive :print
asdf::*source-registry-exclusions*)

the output of the above^ trace suggests that it gets processed (and
recorded into a dynamically bound variable? which is then thrown
away?).

any hints?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The worst enemy of clear thinking is the propensity to hypostatize,
i.e. to ascribe substance or real existence to mental constructs or
concepts.”
— Ludwig von Mises (1881–1973), 'The Ultimate Foundations of Economic
Science' (1962)



Re: ASDF 3.1.5 test suite issues on ACL (8.2 and 10.0 GM)

2015-09-17 Thread Attila Lendvai
>> * image-op and program-op couldn't have been fully portable without
>> bundle-operations, and wouldn't have been attempted.
>
> I use program-op on a regular basis and it has replaced a very complex
> scripting machinery which I gladly got rid of.

+1

it eliminated an entire project for us (hu.dwim.build)! :)

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“It is just as difficult and dangerous to try to free a people that
wants to remain servile as it is to enslave a people that wants to
remain free.”
— Niccolò Machiavelli (1469–1527)



Re: Standalone application delivery

2015-09-17 Thread Attila Lendvai
> is any of you interested in automating application delivery using ASDF?
> Now that I fixed ASDF's bundle operations and CFFI, the missing piece
> is the part where
> the bundled object files are linked against the runtime to produce a
> self-contained executable.

that^ sounds as if it was possible to generate e.g. an SBCL executable
core that also includes the CFFI groveler generated .a or .so files
linked into it. is that possible?

a cursory look suggests that it is, but not trivial at all:

https://stackoverflow.com/questions/9449845/how-to-link-object-file-to-executable-compiled-binary

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
Stupidity is an attitude.



Re: Standalone application delivery

2015-09-17 Thread Attila Lendvai
> It's possible, and some people have done it for SBCL at Google using
> bazel.io, though they never spent the time making it open source. I
> could extract bits from it and reproduce the same thing with ASDF, but
> I'd rather someone else do it, though I can explain what I see in
> those files.


does it happen
 a) from a final linking phase linking sbcl's .o files
 b) or using a vanilla sbcl exe (or executable core) and hacking the
grovelled .o or .so files into it?


> Or then again, the CL community could adopt bazel (not very likely).


from a strictly engineering perspective, do you think using bazel to
build cl code would be better than using ASDF? yes/no/hard-to-judge?

to me it seems that it's an important ability to customize the build
system from the .asd (because it's the same language), and that would
be lost with bazel, no?

feel free to ignore all of this, just random curiosity...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Politicians are successful criminals. Criminals are unsuccessful
politicians. Criminals are poor, pitiable. They had tried but they
failed. Politicians are of the same tribe, with only one difference:
they have succeeded.”
— Osho (1931–1990), 'From Darkness to Light' (1985)



Re: Almost there

2015-07-15 Thread Attila Lendvai
 Well, if we change the API to add a boolean slot to SYSTEM, we could

this may be naive, but what i meant is a very simple change:
introduce an exported SYSTEM-MUTABLE-P, together with a SETF version,
that messes around with the current hashtable based implementation.

IOW, it's pretty much just a rename of REGISTER-IMMUTABLE-SYSTEM -
(SETF SYSTEM-MUTABLE-P), and a new SYSTEM-MUTABLE-P that queries the
internal hashtable. the (setf ... false) version may be a
not-yet-implemented error if there's too much state to mess around
with before this release.

moving to a slot based implementation is another story that can be
delayed, and may not even be preferable (e.g. what if someone
sometimes wants a set of systems to be immutable, and some other time
not? although, this also applies to every slot of SYSTEM, so...).

 remove REGISTER-IMMUTABLE-SYSTEM, and make it the responsibility of
 the user to create the system, whether through
 register-preloaded-system or not. Actually, if the slot has an initarg
 keyword, then you can use register-preloaded-system directly to create
 an immutable system if not already present, or you'll have to use setf
 to make an otherwise existing one immutable.

 I'd rather you just release what we have for now, but if you want, I
 can make those changes before 3.1.5 (or after).

another alternative is to just keep all these symbols private and
delay their exporting. optionally multiple variants could be added but
not exported, so that early adaptors can already use the
to-be-published API by using ASDF:: prefix. probably it's only the two
of us participating in this thread who are using this new feature.

an untested sketch is attached that merely renames what's already
there, and errors at (setf ... false).

but to reiterate: i don't have hard feelings about this. i'm just
trying to help avoiding the publishing of a confusing name that will
be much harder to change down the road.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“All war is a symptom of man's failure as a thinking animal.”
― John Steinbeck (1902–1968)
diff --git a/find-system.lisp b/find-system.lisp
index 04b63f4..e40854e 100644
--- a/find-system.lisp
+++ b/find-system.lisp
@@ -129,20 +129,28 @@ downgrade, before you dump an image, use:
 but not loaded in memory
:format-arguments (list name))
 
-  (defun register-immutable-system (system-name key (version t))
-(let* ((system-name (coerce-name system-name))
-   (registered-system (cdr (system-registered-p system-name)))
-   (default-version? (eql version t))
-   (version (cond ((and default-version? registered-system)
-   (component-version registered-system))
-  (default-version? nil)
-  (t version
-  (unless registered-system
-(register-system (make-preloaded-system system-name (list :version version
-  (register-preloaded-system system-name :version version)
-  (unless *immutable-systems*
-(setf *immutable-systems* (list-to-hash-set nil)))
-  (setf (gethash (coerce-name system-name) *immutable-systems*) t)))
+  (defun system-mutable-p (system-name)
+(let ((system-name (coerce-name system-name)))
+  (or (sysdef-preloaded-system-search system-name)
+  (and *immutable-systems*
+   (gethash system-name *immutable-systems*)
+
+  (defun (setf system-mutable-p) (new-value system-name key (version t))
+(if new-value
+(let* ((system-name (coerce-name system-name))
+   (registered-system (cdr (system-registered-p system-name)))
+   (default-version? (eql version t))
+   (version (cond ((and default-version? registered-system)
+   (component-version registered-system))
+  (default-version? nil)
+  (t version
+  (unless registered-system
+(register-system (make-preloaded-system system-name (list :version version
+  (register-preloaded-system system-name :version version)
+  (unless *immutable-systems*
+(setf *immutable-systems* (list-to-hash-set nil)))
+  (setf (gethash (coerce-name system-name) *immutable-systems*) t))
+(error Not yet implemented: (SETF SYSTEM-MUTABLE-P) with false new-value.)))
 
   (defun clear-system (system)
 Clear the entry for a SYSTEM in the database of systems previously loaded,


Re: Almost there

2015-07-15 Thread Attila Lendvai
 SYSTEM-MUTABLE-P take a real *SYSTEM* as argument, instead of having an
 odd API where only a system-NAME is acceptable.


note:

CL-USER (asdf:coerce-name (asdf:find-system :hu.dwim.def))
hu.dwim.def


 I think having a confusing name that we deprecate is better than taking
 the good name, and implementing something bad on it.  This way we can
 think about a better API and put the better API on the better name.


i thought (and stated previously, with a doubt) that RIS is something
new, but now that i double checked i realized it's already there since
2014 aug, exported:

https://github.com/fare/asdf/commit/1b38225b8cc5749fafac9f300ac469fd92beba86

it's a lost case then, it's already published, so there's no way other
than the deprecation way. in that case it's not an urgent issue, just
put it on the TODO.

sorry for the noise!

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Many people believe that evil is the presence of something. I think
it’s the absence of something.”
— Lisa Unger (1970–), 'Sliver of Truth'



Re: Almost there

2015-07-14 Thread Attila Lendvai
 maybe a simple defun SYSTEM-MUTABLE-P and a setf variant would be better?

 Maybe. I'll let Robert decide if he wants a way to make a system
 mutable no more.
 Up until now, the usage scenario was that systems would transition one
 way only from mutable to immutable,
 as you prepare an image for delivery.

 I'm reluctant to add more code unless there's a demonstrated need for
 the functionality.  I'd remind everyone that ASDF has ballooned in size
 and for all our efforts that inevitably means it has collapsed in
 maintainability!

 If you'd like an extension to provide either introspection or
 mutabilification, please file an enhancement ticket.  But unless you
 provide a use-case with it, it is likely to get short shrift.


no, i'm fine with the functinality of REGISTER-IMMUTABLE-SYSTEM.

what i wasn't fine with is an exported global holding a hashtable, and
at that time i hadn't noticed RIS because i was expecting a different
name. REGISTER-IMMUTABLE-SYSTEM doesn't register any systems, it
rather marks a system, that is already known by asdf, immutable. it's
a different story that the implementation registers it in a hashtable
as opposed to e.g. setting a flag on the system object.

so, before i knew about RIS, i proposed an API that i still think
would be better, namely SYSTEM-MUTABLE-P.

if it's still feasible i suggest to replace REGISTER-IMMUTABLE-SYSTEM
with (SETF SYSTEM-MUTABLE-P) and stop exporting *IMMUTABLE-SYSTEMS*.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Until you make the unconscious conscious, it will direct your life
and you will call it fate.”
— Carl Jung (1875–1961)



Re: Almost there

2015-07-14 Thread Attila Lendvai
 I'm inclined to remove the export of *IMMUTABLE-SYSTEMS*.  It hasn't
 been used in a released version of ASDF AFAIK, so it seems benign to
 remove it.

isn't that also the case for REGISTER-IMMUTABLE-SYSTEM?

if that export sticks in the release then it'll be a headache down the
road (assuming that it is indeed an unfortunate name and not just my
lone opinion).

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“There is no such thing as the government. There are only a group of
people who refer to themselves as the government and act in a
governmental manner.”
― Murray N. Rothbard (1926–1995)



Re: program-op is nice!

2015-06-06 Thread Attila Lendvai
 I'm quite glad you, of all people, like it!


what? am i that critical usually? :)


 2- Use (defmethod output-files ((o program-op) (s (eql (find-system
 mysys (values ... t)) so it will be exactly where you want it.


this one did the trick, thanks!

hu.dwim.build is then pretty much obsoleted... great!

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“In the electronics industry, patents are of no value whatsoever in
spurring research and development.”
— vice-president of Intel Corporation, Business Week, 11 May 1981.



program-op is nice!

2015-05-30 Thread Attila Lendvai
Fare, your asdf/uiop image-dumping machinery is great! with only a few
minutes of trying i've already made an exe for the dwim.hu service
that seems to just work. i'm very pleasantly surprised, because it
gets rid of the entire hu.dwim.build complexity, and is now even
platform independent... thank you! :)

FTR, the change is here:
http://dwim.hu/darcsweb/darcsweb.cgi?r=HEAD%20hu.dwim.home;a=commitdiff;h=20150531001956-35491-e309a5382d80bfbe5426294d07fd4e891c40a8c6

it all seems to just work, but i have a hard time telling asdf where
to put the resulting exe. the :build-pathname arg of defsystem errors
with absolute paths (which sounds reasonable), but then it's merely
the filename of the exe. my problem is that it gets saved into the
fasl cache, which i cannot calculate from the shell script side of the
build script to mv the file to its final place.

is there some doc or test that i have missed?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“You think you know when you can learn; are more sure when you can
write; even more when you can teach... but certain when you can
program.”
— Alan Perlis



Re: [Asdf-devel] request for test: experimental-submodules branch

2014-08-27 Thread Attila Lendvai
 Windows? Are .lnk files supported on all Windows implementations? Meh.

FTR, windoze supports proper symlinks on NTFS since Vista.

https://en.wikipedia.org/wiki/NTFS_symbolic_link

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The Army is a place where you get up early in the morning to be
yelled at by people with short haircuts and tiny brains.”
— Dave Barry

___
Asdf-devel mailing list
Asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [Asdf-devel] syntax control

2014-04-03 Thread Attila Lendvai
 (labels(({(] rest [)(apply([ ])[))([(])(elt(]())]))(]()(
 do-external-symbols(]`:cl)(push`,]`,))(sort `string`:key`string))(}(}
 {)({`688({`875({`398()~{~A ~}~%(]()))}(+`,{(*)})))({`381)({`816`2/9)))
 ({`561()#'}`(874,948 7,6009 4862,370 10,12249)`(3,2 4,4 2,1 1,0)))

WTF!!

:D

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Some people, when confronted with a Unix problem, think I know, I'll
use sed. Now they have two problems.”
— Jamie Zawinski

___
Asdf-devel mailing list
Asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] Make the CL syntax predictable

2014-03-29 Thread Attila Lendvai
 We can provide new, improved functionality without breaking anything.
 And keep old systems working forever with new ASDF.


forever is a very strong word Anton. e.g. if CL doesn't fade into
the category of history in 10 years, meaning that a significant number
of people will still use it to develop new software, then i'll be both
surprised and disappointed.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Virtue is never left to stand alone. He who has it will have neighbors.”
— Confucius (551–479 BC)



Re: [asdf-devel] Make the CL syntax predictable

2014-03-29 Thread Attila Lendvai
 I prefer the defaults of the CL implementation of my choice not to
 be overridden by some tool whose primary purpose is something
 unrelated to those defaults. That’s all.

i fail to see how ASDF's primary purpose is unrelated to global state
that affects the outcome of a build process.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“In order to rally people, governments need enemies. They want us to
be afraid, to hate, so we will rally behind them. And if they do not
have a real enemy, they will invent one in order to mobilize us.”
― Thich Nhat Hanh (1926–)



Re: [asdf-devel] Make the CL syntax predictable

2014-03-29 Thread Attila Lendvai
 You’re quoting me out of context. If deterministic by default had no
 cost associated with it, it would clearly be the desirable
 choice. But it has a cost associated with it, so this is less
 clear.


am i right to assume here that the costs we are talking about is
merely adding markers to those few already existing defsystem's that
depend on leakage, or depend on non-portable (read: random) defaults?

because that it has a cost associated with it above sounds like some
serious pain...


 If I failed to convince you that this is the case, and that other
 people may have other preferences, then I apologize.


reading from this side of the screen your preference seems to be to
have change in what you like (new goodies coming from qicklisp), but
not in what you don't like (the primary build infrastructure of the
entire community maturing into something useful).

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Lisp has jokingly been called the most intelligent way to misuse a
computer. I think that description is a great compliment because it
transmits the full flavor of liberation: it has assisted a number of
our most gifted fellow humans in thinking previously impossible
thoughts.”
— Edsger W. Dijkstra (1930–2002)



Re: [asdf-devel] Make the CL syntax predictable

2014-03-28 Thread Attila Lendvai
 I do have control: If femlisp or any other library makes a boneheaded
 decision that breaks my software, I can stop using it.


yes, resolving that is trivial -- once you have identified the
problem.

regarding the recent discussions i'm generally baffled why it is at
all a question whether to make a build software deterministic or
not. in my view if there's anything in the global state that has an
effect on the building of a software, anything, then it's a bug.

and if this state can be set in a way that it leaks out and influences
builds later in time, then it's an ugly bug feasting on programmer
nerves and time.

the only question to me is what should be the defaults, and how can
the transition be made smoother with deprecation warnings and whatnot.

and if there are some unmaintained, bitrotten libraries and some
software depending on them, then they have all the freedom in the
world not to upgrade ASDF, or to put on the maintainer hat and patch
the bitrotten libs.

by now the time on spent discussing this would have easily been enough
to fix all of them twice over, and to add a section to the top of the
manual, with bold, that lists the global state that ASDF guarantees
and isolates.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Those who love peace must learn to organize as effectively as those
who love war.”
― Martin Luther King, Jr. (1929–1968, assassinated)



Re: [asdf-devel] Make the CL syntax predictable

2014-03-28 Thread Attila Lendvai
 regarding the recent discussions i'm generally baffled why it is at

 all a question whether to make a build software deterministic or
 not. in my view if there's anything in the global state that has an
 effect on the building of a software, anything, then it's a bug.

 I think one question is whether it's worth taking a path to this goal
 that breaks programs that currently work. I don't think all such
 programs are bitrotted junk that can be fixed up in a day.


those programs that currently work will keep on working if ASDF is not
upgraded.

no upgrade, no breakage.

to me it's a very strange argument that the right way to avoid
breaking unmaintained old code is by hindering change that makes new
things better in the future.

what's needed is people helping you Xach building, testing and
maintaining quicklisp distros. i feel the frustration and i can
understand it, becuase i remember how many times i backed out from a
sprialing upgrade mess... and for you it's a regular TODO.

at one point i tried to build a ql distro locally to add and test a
new project, but i didn't even have the bird's eye view, so i gave
up. if there was a blog post or something then people may join the
effort... but that's off topic here. i just wanted to let you know
that your work on ql is appreciated, and that some people sometimes
even try to help out with it that you may harness.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The noble-minded are calm and steady. Little people are forever
fussing and fretting.”
— Confucius (551–479 BC), 'Analects of Confucius'



Re: [asdf-devel] Make the CL syntax predictable

2014-03-28 Thread Attila Lendvai
 and if this state can be set in a way that it leaks out and influences
 builds later in time, then it's an ugly bug feasting on programmer
 nerves and time.


 This would be true only if a software was equivalent to an ASDF
 system.  That is not the case.  I have seen many applications that are
 made up of a large number of ASDF systems, because ASDF does not
 necessarily provide nice structures for large applications.  In such


we also have libs with 10+ asdf systems.


 application builds, you WANT state to bleed from one ASDF system to
 another, because these ASDF systems are not freestanding entities.


one can write a trivial loader file that calls ASDF with some extra
keyword parameters to load such systems.


 Complaining that state leaks in and out of these systems is like
 complaining that state leaks into a closure.  It's intended to leak, and
 that is not a bug.


the vast majority of the asdf systems don't want leakage, and defaults
should be covering the majority use-case (if/when it's possible
without setting up landmines).

reproducible builds are a valuable feature.

if i wanted to cater for the use-case you described then i'd still
make full isolation the default with features to let systems
explicitly turn off specific isolations, or just simply let them on
their own to subclass and customize ASDF the way we currently have to
subclass and customize asdf to avoid the leakage from the hu.dwim.*
universe (we use e.g. readtable customizations).

and whoever is not ready to invest time in following the changes,
should simply not upgrade, and then it's a non-issue. but this starts
to feel like preaching and i don't really have that much stake in this
anymore because we have already invested in covering our bases... so,
these are just some 0.02...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The three most harmful addictions are heroin, carbohydrates, and a
monthly salary.”
— Nassim Taleb (1960–)



Re: [asdf-devel] Make the CL syntax predictable

2014-03-18 Thread Attila Lendvai
 That's why, for example, we have systems that bleed readtable across
 their boundaries: the systems really aren't stand alone entities, but
 limitations on ASDF expressiveness, and the desire to get more
 modularity than the (necessarily in-line) :MODULE will permit, causes a
 proliferation of systems that are NOT libraries, and have meaning only
 in context.

 I'm not going to move ASDF towards breaking such systems.


Robert, this is how i see it reading this thread:

 - you know at least about one big and complex codebase with many asdf
   systems, where isolating *readtable* would break it and cause a lot
   of work/headache that is hard to debug, especially if the codebase
   doesn't compile free of warnings to begin with. this headache would
   probably be yours in case of this system.

 - to Fare (and to me, who have wasted precious hours due to this)
   readtable higiene clearly looks like a major improvement when
   looking at it objectively, so much so that somewhere down the road
   breaking systems that now break other systems (by modifying the
   global readtable) is acceptable. my impression is that you would
   also agree with this if the legacy was not pulling your back.

*if* this is the case, then why not accommodate for such legacy
systems/use-cases simply by e.g.:

;; force upgrade
(asdf:load-system :asdf)

;; optionally, for extra safety
(asdf:load-all-dependencies-of :my-legacy-system)

(setf asdf:*readtable-higiene* nil)

(asdf:load-system :my-legacy-system)

and then we can have our cake and eat it too...

(alternatively a new system class could be introduced and all legacy
systems could specify a :class hu.dwim.asdf:hu.dwim.system, just
like we need to do currently for self-defense purposes against
e.g. readtable polluters and against we polluting the readtables.)

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“I maintain that Truth is a pathless land, and you cannot approach it
by any path whatsoever, by any religion, by any sect. [...] The moment
you follow someone you cease to follow Truth.”
— Jiddu Krishnamurti (1901–1986)



Re: [asdf-devel] Re: NAMED-READTABLES

2014-03-17 Thread Attila Lendvai
 I would like to forestall facile answers to the above claim, too.  I
 don't just mean SLIME would have to handle IN-READTABLE. SLIME would
 have to be fixed, yes, but also ELI, Allegro Composer, Hemlock (or
 whatever the CCL IDE is), LispWorks whatchamacallit, etc., etc.

 True. However, lack of support there is not a regression.
 Things that used to work still will work.
 New things that may work will require additional support,
 but we can leave that up to those who will use those things.
 I suspect Attila and the dwim.hu guys have extensions like that already.


it's a simple thing that can easily be adapted to named-readtables,
and i'm willing to help doing that if things get moving on this front:

http://dwim.hu/darcsweb/darcsweb.cgi?r=HEAD%20hu.dwim.def;a=headblob;f=/integration/swank.lisp

it's loaded with hu.dwim.def+swank.asd

we have a develop-op in hu.dwim.asdf that at the end looks for all the
*+swank systems, and loads them if all of their dependencies are
already loaded. (it also does a (declaim (optimize debug)), and
various other changes with logging, etc... depending on what system is
loaded with develop-op)


 ASDF should not demand a programming style that doesn't have full
 support for in-editor dynamic code writing and maintenance.

 ASDF doesn't demand anything;
 it just enables new extensions by providing hygiene.


this reminds me of the general idea of backwards compatibility: people
who want to live without this feature can chose not to upgrade, as
always. or if they need the new stuff, then they can just patch asdf
locally to disable the enforcement of this. or asdf could even
accommodate this with a defsystem property that can opt a system out
of this otherwise useful isolation.

*or* this feature may not clearly be an improvement in general, but
i'm not convinced about that for now.


 These extensions may in turn demand editor support,


either way, if you use reader syntax in CL then you'll be neck deep
anyways into duct taping things together, unless an infrastructure is
set up that people agree to use.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Unthinking respect for authority is the greatest enemy of truth.”
— Albert Einstein (1879–1955)



Re: [asdf-devel] Make the CL syntax predictable

2014-03-16 Thread Attila Lendvai
 The clean thing to do would be to use named-readtables and/or
 cl-syntax, and have each file evaluate (in-readtable :foo) or have a
 perform :around method or around-compile hook that does it for you.

[...]

 Without ASDF, there's no way the libraries will be safe by default.

well, there is, but it's not trivial, so most will not take the extra
effort required:

FTR, from hu.dwim.common we ended up shadowing cl:in-package in all
our projects and added an internal mapping from package to
readtable-setup-function (using a custom package definer that knows
about readtables).

our hu.dwim.common:in-package also sets the readtable and expects that
our hu.dwim.asdf systems rebinds a copy of *readtabe* around compiling
and loading.

in a hu.dwim.common+swank integration system (or in one of those...)
Slime is also notified about the readtables, so C-c C-c works as
expected.

i'd be happy if all this web of complexity could move out of our repos
and into the environment, where it simultaneously becomes much simpler
also.

in short, i agree with Fare on this.


 But polluting arbitrary systems loaded after you is definitely a bad
 idea:


yes, projects sideffecting *readtable* was annoying me quite a lot,
and i've sent around my set of patches to a few projects that did
that, including none other than iterate itself.


 based on a general-purpose each system has a set of private
 variables protocol.


i don't have a strong opinion on this, but after some consideration we
went with another protocol that is based on functions that modify a
readtable that is given to them, which is much more flexible. not
sure/don't remember whether this extra flexibility was actually
needed, though. maybe it was needed for some combination of multiple
syntaxes set up at the same time...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The Atheist does not say there is no god, but he says I do not
know what you mean by god; I am without the idea of god; the word god
is to me a sound conveying no clear or distinct affirmation. I do not
deny god, because I cannot deny that of which I have no conception and
the conception of which by its affirmer is so imperfect that he is
unable to define it to me.”
— Charles Bradlaugh  (1833–1891), 'National Review' (1883–11–25)



Re: [asdf-devel] Alternate default lisp system location

2014-03-13 Thread Attila Lendvai
 Ok good. Then how about having ASDF loudly announce that it is registering
 the default directory (e.g. ~/cl/), as well as providing the hint about
 using a .conf file with the right syntax with :tree, if the user wants to
 exclude certain subdirectories.

 The goal here is to make the addition of the default registry directory as
 painless and surprise-free as possible for anyone who already happens to
 have stuff floating around in the new default directory.


FTR, when i wrote my own version of :tree i also added a loud output
that listed everything that got added to the registry, because
previously i've wasted way too much time with loading the wrong
systems, and with debugging build differences between dev environments
and production deployments.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“It is truth that liberates, not your effort to be free.”
— Jiddu Krishnamurti (1901–1986), 'The First and Last Freedom'



Re: [asdf-devel] Alternate default lisp system location

2014-03-13 Thread Attila Lendvai
 I *do* get the objection that Pascal had, and I absolutely agree that we
 should not choose a directory name that will collide with existing
 users' directories.


when reading this i imagined my future child some decades down the road
reading the ASDF manual (hopefull only for historical reasons while
reifying CL semantics to have an environment where he can try his
father's code)... and then pondering: what on earth made someone chose
this weird ~/asdf-local-projects/ name instead of e.g. ~/common-lisp/
:)

IOW, i'd like to draw more attentinon to the fact that what we are
weighting here is a few active complaints today from experts (who are
already aware of this issue reading the mailing list, even before the
change itself)... against all the yet to be born/educated CL
programmers until the time when ASDF is eventually obsoleted (or for
that matter CL altogether), and all the aggregate time these future
people will waste reading manuals and asking questions.

i think a tendency towards not taking this into consideration has a
lot to do why the CL community is not successful. the defaults of
slime is another very good example of this, although it got much
better since the times when i first climbed the CL/Emacs fence.

also note: as Fare already pointed out, if e.g. XCVB gains more
traction, then some/most systems will have two system definition
files, but all sitting under the asdf specific ~/asdf-local-projects/
name.

but hopefully by the time my children are old enough for programming
computing systems will have finally obsoleted this silly idea that the
base axioms for data storage is labeled binary numbers, and their
labels organized into a tree... and with that rendering this whole
question moot. hopefully...

sorry for the sentiments.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Disregard for the preferences and interests of individuals alive
today in order to pursue some distant social goal that their rulers
have claimed is their duty to promote has been a common cause of
misery for people throughout the ages.”
— Isaiah Berlin (1909–1997)



Re: [asdf-devel] BUILD-OP

2014-03-13 Thread Attila Lendvai
 Usability demands an asdf:build function. The name may vary, but
 shorter is better.
 asdf:b or asdf:bnm (build 'n' munge?) might do, too.

these sound awful to me, but then i'm against abbreviations in general
and always have fuzzy completion on my TAB...

a perfect candidate for this semantics would be 'operate', but sadly
that's already taken.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
I wish there was more:
 Grace to accept with serenity the things that cannot be changed,
 Courage to change the things that should be changed,
 and Wisdom to distinguish the one from the other.
— a secular version of The Serenity Prayer
(http://youtu.be/zZvBknPV6hk?t=3h52m00s)



Re: [asdf-devel] Alternate default lisp system location

2014-03-12 Thread Attila Lendvai
 to expose so a :tree recursion there would be very annoying. And please
 don't tell me to :ignore-inherited-configuration, for what's the point
 of the default configuration if so many people either don't use it or
 have to explicitly ignore it ?

well, for now it's two hard-core hackers, for whom it's probably
marginal to get things back on track *if* it actually breaks something
for them.

but we have no idea about the number of newcomers who fire up an
apt-get install sbcl for the first time in their lives, and just want
to try a piece of code copied from the net...

i still remember how goddamn high the fence was to first climb in to
the CL+emacs garden. i'm with Robert on this.

i'm not sure how the defaults would help on this, though. probably a
very slick quicklisp experience has more value than any of these
defaults can create.

just some 2¢,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Be who you are and say what you feel, because those who mind don't
matter and those who matter don't mind.”
― Dr. Seuss (1904–1991)



Re: [asdf-devel] Alternate default lisp system location

2014-03-12 Thread Attila Lendvai
 I think you will find that the configuration of the source search path
 is *very* complex, indeed too complex for a beginner.  It's great for
 hackers with complex requirements, but there's too much to be read if
 you just want to make one or two simple systems.

FTR, even i was mildly irritated by this when i first approached the
new ASDF config infrastructure.

but don't get me wrong, i have no ideas how to simplify it, and the
docs are probably also much better these days...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
The essence of a civilized society: evidence trumps reason trumps emotions.



Re: [asdf-devel] Fixing asdf-sytem-connections

2014-03-08 Thread Attila Lendvai
 Actually, I would go so far as to discourage use of asdf-system-connections,
 and encourage only explicit dependency on connection systems.
 IIUC, the hu.dwim team changed their systems this way, at my suggestion.


and everything became much much better.

we just add a new .asd with the name system1+system2.asd and
explicitly list whatever dependencies it has, and whatever extra files
need to be loaded, usually from under the dir called integration/ in
system1.

chosing which system/repo/project to put the integration files in is
subjective, but usually the choice gives itself.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“There is only one basic human right, the right to do as you damn well
please. And with it comes the only basic human duty, the duty to take
the consequences.”
— P.J. O'Rourke (1947–)



Re: [asdf-devel] how to add one more directory to an initialized registry?

2014-02-17 Thread Attila Lendvai
 Sorry, why is it that you put in the line with
 *source-registry-parameter* instead of simply adding the new directory?


reading your answer makes me think i was unclear, sorry!

my situation is that i have a piece of code that collects directories
and then initializes the registry by calling i-s-r.

and then i have another piece of code later on where i would like to
add one more directory to the registry.

i couldn't find any other way to do that than the kludge in my
previous mail.


 BTW, for exactly your use case -- making it easy for people to put
 configurations in a revision control system, and have an entire team get
 their configuration that way, we added :HERE to the DSL for initializing
 the source registry.


thanks for the note! it will probably come handy when i get to port my
registry initialization to the new way.

but first i wanted to get an impression whether i want/should/need to
do that. with your mail i'm leaning more towards a yes now, which
renders the original question somewhat moot.


 [I feel compelled to disclose that because we have so much legacy code
 in that form, I still use the variable asdf:*central-registry* for my
 own configuration purposes, with an in-house library that essentially
 duplicates the function of Faré's directory traversal.]


same here... :)

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Whenever you find yourself on the side of the majority, it is time to
pause and reflect.”
— Mark Twain (1835–1910)



Re: [asdf-devel] Pushed version 3.1.0.52 -- first version with checks for OPERATION subclasses -- please test!

2014-01-22 Thread Attila Lendvai
 For the record, I still think this intentional breakage is a bad idea.
 In the short term, it causes a known inconvenience


FTR, i pulled asdf when i saw the request for testing, tried to build
our stuff, saw that iolib failed (a dependency), and then i decided to
git reset and stay there until others struggle through this, even
though we also have some operation subclasses.

there are situations when the least inconvenient and most productive
way of breaking backwards compatibility is by starting with a clean
slate.


 PS: I used to avoid committing spaces at end of line.
 I see that you have some.


emacs has nice tools to show lose whitespace (see the varaible
whitespace-style and there are some faces, too).

it even has automatic cleanup, but that can be too intrusive when
working on other people's code.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“If men are good, you don't need government; if men are evil or
ambivalent, you don't dare have one.”
— Robert LeFevre (1911–1986)



Re: [asdf-devel] Pushed version 3.1.0.52 -- first version with checks for OPERATION subclasses -- please test!

2014-01-22 Thread Attila Lendvai
 Yes, I turned these off in my editor.  I ended up with too many
 distracting red blocks on my screen, and then too many spurious diffs
 when I would commit automatic whitespace cleanup.


yep. i turned auto fixing off myself, and i have a very slight red
tint on the whitespace mistakes.

thanks for the mini-doc! i'm doing one more trial.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Study the past if you would define the future.”
— Confucius (551–479 BC)



Re: [asdf-devel] Recompiling SBCL contribs

2013-11-03 Thread Attila Lendvai
 My point of view is that anything that makes
 system construction non-deterministic, conditional on the environment,
 sensitive to the order in which things are defined or otherwise surprising
 or hard to track is only going to make things harder in the end.

my painful memories loudly add a big +1 for that.

we moved to the foo+bar explicit dependency solution after we spent
way too much time debugging stupid things that e.g. depended on inode
order in the filesystem...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The individual has always had to struggle to keep from being
overwhelmed by the tribe. If you try it, you will be lonely often, and
sometimes frightened. But no price is too high to pay for the
privilege of owning yourself.”
— Friedrich Nietzsche (1844–1900)



[asdf-devel] deferred warnings doesn't tell which file

2013-10-29 Thread Attila Lendvai
hi!

so, i'm using deferred warnings, because warnings are useful!

the only problem is that, in this specific case, i get the following
after compilation has finished:


; compilation finished in 0:00:00.033
; in: LAMBDA (SB-PCL::.METHOD-ARGS. SB-PCL::.NEXT-METHODS.)
; (SB-MOP:SLOT-VALUE-USING-CLASS # HU.DWIM.PEREC::INSTANCE ...)
;
; caught WARNING:
;   undefined variable: HU.DWIM.PEREC::INSTANCE
;
; compilation unit finished
;   Undefined variable:
; HU.DWIM.PEREC::INSTANCE
;   caught 1 WARNING condition
;
; compilation unit aborted
;   caught 4 fatal ERROR conditions


and it doesn't even tell which file it happened with. (this error comes
from the depths of sbcl internals around generic methods).

how was it meant to work originally? is it assumed that the warning
will always contain a name or something that helps identifying where
it comes from? if so, then it's not always the case, and when warnings
are not deferred at least the current toplevel form is visible in the
output.

note: this is not a showstopper just an inconvenience. i can identify
the file by checking the *.sbcl-warnings files manually.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Here is the world. Beautiful and terrible things will happen. Don't be afraid.”
— Frederick Buechner



Re: [asdf-devel] deferred warnings doesn't tell which file

2013-10-29 Thread Attila Lendvai
 If you look in uiop/lisp-build.lisp, functions reify-undefined-warning
 and unreify-undefined-warning, you'll see that we're trying to save
 and restore file context information; I don't know whether or not
 we're failing to save and restore it, or SBCL is failing to display it
 after we restore the data (you could try to disable the deferred
 warning mechanism, and see how it behaves — if it then displays file
 information, that's a UIOP failure; if it doesn't, probably an SBCL
 failure).


there are more details in my mail to sbcl-devel, but this warning
comes from a nested compilation initiated by some generic method
internals. most probably sbcl fails to provide enough info, but here
is the content of the .sbcl-warnings file for the initiated eyes:

((SB-C::*UNDEFINED-WARNINGS*
  (:VARIABLE HU.DWIM.PEREC::INSTANCE 1
   (:ENCLOSING-SOURCE NIL :SOURCE NIL :ORIGINAL-SOURCE 
(SB-MOP:SLOT-VALUE-USING-CLASS # HU.DWIM.PEREC::INSTANCE ...)
:CONTEXT
((LAMBDA (SB-PCL::.METHOD-ARGS. SB-PCL::.NEXT-METHODS.)))
:FILE-NAME :LISP :FILE-POSITION 0 :ORIGINAL-SOURCE-PATH (1 2 3 2 4 2
0)

to sum it up, it's a warning signaled by sbcl due to a bug, and
doesn't contain source location. so, i think it's something we can
safely ignore as a nasty corner case...

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
Pyramid schemes are illegal. Social Security is a pyramid scheme.



Re: [asdf-devel] Ordering of system :depends-on elements

2013-07-17 Thread Attila Lendvai
 ASDF's process for constructing a build plan from partial-order
 dependencies is (unless Faré changed something when I wasn't
 looking) non-deterministic.

does it mean that it's actively randomized?

i remember in our busier days (well before ASDF3) we used to have
load order anomalies that seemed like they depended on filesystem
order or something external to lisp.

the symptom was that on my dev machine stuff compiled/loaded fine
reproducibly, then when the recorded changes got pulled to the live
server it suddenly failed to compile/load due to a dependency that was
not explicitly added to the .asd file.

i don't really remember if it was just partial reloading, or clean
recompile/reload, but i think it was the former, because it was rather
baffling and the former wouldn't be too baffling.

if the ordering is actually not deterministic (as opposed to merely
unspecified), then maybe it's a good idea to actively randomize
lists before dependency constraints are applied?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Mathematics is as little a science as grammar is a language.”
— Ernst Mayr



Re: [asdf-devel] adsf/bundle:monolithic-fasl sometimes puts dependent system first in list

2013-03-16 Thread Attila Lendvai
 Is it possible to get it to return a plain text
 source file instead of a fasl?


yes. look at how asdf HEAD builds itself, especially
monolithic-concatenate-source-op

-- 
 attila

Notice the erosion of your (digital) freedom, and do something about it!
PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] An upgrade path for checking deferred-warnings

2013-03-02 Thread Attila Lendvai
 it is time that I declare this simultaneous change
 towards checking deferred
 warnings as a failure.


i haven't experimented much with this infrastructure, so take it with
a piece of salt... but maybe there's a middle ground, where the new
warnings get printed but the load/compile is not forced to fail? or
that's the case already?

-- 
 attila

Notice the erosion of your (digital) freedom, and do something about it!
PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] standard io syntax woes

2013-02-25 Thread Attila Lendvai
 Or I could rely on SBCL being used a whole lot and indeed having
 immutable such default syntax tables with understandable messages
 to blame whoever tries to mutate those tables without rebinding them

this approach seems to be the most straightforward to me.

especially since we have that great cl-test-grid running on multiple
lisps, one of which is sbcl which will catch the wrongdoers.

i'd also argue that it's also a potential time waster if asdf rebinds
a copy and someone foolhardy tries to modify *readtable*, and will
experience zero sideffects contrary to his expectations.

he will waste his own time only, so it's already much better, but
still not ideal.

-- 
 attila

Notice the erosion of your (digital) freedom, and do something about it!
PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] help needed with asdf internals knowledge

2013-02-21 Thread Attila Lendvai
 I had code that looked just like that in cl-launch, now also copied to
 exscribe (see compile-and-load-file in exscribe.lisp). I suppose I
 should make it part of asdf/lisp-build even though asdf/defsystem
 itself won't use it. Is it OK for you to depend on a recent
 asdf-driver?

yes, that would be perfect for me.

(people should learn to NOT pull changes, or pull them together in waves)

-- 
 attila

Notice the erosion of your (digital) freedom, and do something about it!
PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] load order of dependencies

2011-12-09 Thread Attila Lendvai
 There have been many attempts in the past to subvert ASDF into
 something that allows this kind of effects (see asdf-system-connections),
 but the semantics of such connections is not very clear (to me at least),
 and being familiar with ASDF itself, I don't see how such tricks
 can be made reliable at all.

well, what i need is less than asdf-system-connections, because in my
case the dependencies are explicit. i just want to have a word in the
load order, also.

a-s-c wants to jump in automagically and load new systems if some
other systems are already loaded. we used it for a while but after
countless headaches we switched to explicit systems called
project1+project2+project3 that depended on the 3 projects and listed
what else to load.


 before, or it's not, and might be loaded before or after and you can't
 retroactively unload and reload the system to have logging magically
 take effect.


i'm programming for long enough to have learnt to make compromises,
and i'd be happy to rmfasl and reload when i'm about to debug
something.

and re :system-depends-on, it bit me hard. took me hours of debugging
why a file is being compiled/loaded twice while i was reinstalled
http://dwim.hu and building the sbcl executable that runs on it (the
symptom was a warning from defpackage about already exported symbols,
it stopped the build).

i was suspecting all kind of weird issues until i've unpulled this
patch from hu.dwim.reiterate.

for now, i'm ok. i'll just make sure i don't pull this patch to the
live system...

thanks for the help!

-- 
 attila

Notice the erosion of your (digital) freedom, and do something about it!

PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39
OTR XMPP: 8647EEAC EA30FEEF E1B55146 573E52EE 21B1FF06

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] load order of dependencies

2011-12-09 Thread Attila Lendvai
 It might be an interesting test discipline (typically of interest only
 in combination with :FORCE t) to allow people to run ASDF operations
 with random tie-breaking.  This seems like a poor debugging technique,
 though, since the number of such orderings will explode in systems with
 weak RECORDED dependencies, so stumbling on a missing dependency might
 well not happen quickly

i think that exponential blowup of the problem space is not so bad,
because the load order issues also materialize in big subspaces of it.

but how about making then sorting the load order? (but then what about
different lisps sorting unicode differently?)

i've learned to live with this, but i thought i bring this up here,
maybe someone has some good idea that could go into ASDF2.

-- 
 attila

Notice the erosion of your (digital) freedom, and do something about it!

PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39
OTR XMPP: 8647EEAC EA30FEEF E1B55146 573E52EE 21B1FF06

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] [Sbcl-devel] Logical pathnames vs ASDF SBCL

2011-06-16 Thread Attila Lendvai
 The main reason why I'm having problems with ASDF 2.x is
 because it's alpha-quality software at best (you're still trying
 to figure out some very basic concepts, it seems to me), yet
 you don't even call it beta quality, but instead choose to call
 it 2.x, push it down everybody's throats, and turn a whole
 community into alpha testers who didn't volunteer to be
 guinea pigs in the first place.


as people with positive opinion speak up much less, let me point out
here that i'm a happy user of ASDF2 from its early days.

it did require some work to follow it, but it made many things simpler
and more reliable in our dev setup and production environment (the
load order with underspecified dependencies using ASDF1 used to be
influenced by the filesystem order, seemingly not even randomly,
because errors consistently appeared when changes were pulled to
another computer. rmfasl didn't influence it. a real pain in the ass
when build fails on the production system after an upgrade...)

any form of backwards incompatibility, and upgrading in general, is a
pain, but we need to live with it because for now it's part of being a
software developer (it's solvable on the language/vm/devtool level,
but our ideas are mere vapour). i regularly unpull problematic patches
of random libraries, and ASDF is just one of them. luckily ASDF2 can
even properly upgrade itself now!

to me it's certainly an improvement over ASDF1.

thanks for all the work put into ASDF, both v1 and v2!

-- 
 attila

Notice the erosion of your (digital) freedom, and do something about it!

PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39
OTR XMPP: 8647EEAC EA30FEEF E1B55146 573E52EE 21B1FF06
BitCoin: 154uf86Vd9rpjMULd9CXa7nVwikknYZJiB

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] asdf verbosity

2011-05-01 Thread Attila Lendvai
 I don't like these kinds of user-visible changes, because if someone
 liked the old behavior, or was at least accustomed to it, they now have
 to do research and become involved in ASDF to learn how to get the
 previous behavior.


i don't really have an opinion on the specific topic, and i don't mean
to annoy...

but what if someone *didn't* like the behavior? then they would have
to do research and become involved in ASDF to learn how to get rid of
the current behavior (notice the almost exact same wording of a
counter argument).

just pointing out that to me it seems like you're simply stating your
personal preferences and/or dislike for change. it's a common human
behavior and there's nothing wrong with that, especially in your case
Zach: as author of quicklisp you obviously try to minimize headaches
caused by changes to ASDF. but if this really is the case then we
should be aware of that because it often hiders technical discussions
and development of software systems (the closest example that comes to
my mind is what is happening to Slime. or really, what is *not*
happening to it...)

the ultimate backwards compatibility is not having had even started
the project in question (modulo my english grammar deficiencies).

also worth noting that people much-much more often speak up of
annoyance than being pleased by a change.

/rant

-- 
 attila

Notice your eroding (digital) freedom, and do something about it!

PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39
OTR XMPP: 8647EEAC EA30FEEF E1B55146 573E52EE 21B1FF06
BitCoin: 154uf86Vd9rpjMULd9CXa7nVwikknYZJiB

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


[asdf-devel] performance of find-system (on sbcl)

2009-11-16 Thread Attila Lendvai
dear list,

find-system is so slow that i took the time to look into it. this is
what i've used to test:

(sb-sprof:with-profiling ()
  (trace sb-fasl::load-as-source)
  (time (labels ((recurse (system-name)
   (let ((system (asdf:find-system system-name nil)))
 (dolist (child (rest (first
(asdf:component-depends-on 'asdf:compile-op system
   (recurse (asdf:find-system child nil))
  (recurse (asdf:find-system :hu.dwim.walker nil)

out of the box run:

Evaluation took:
  3.233 seconds of real time
  2.35 seconds of total run time (2.12 user, 0.23 system)
  [ Run times consist of 0.410 seconds GC time, and 1.940 seconds non-GC time. ]
  72.69% CPU
  15,573 forms interpreted
  2,688 lambdas converted
  5,615,673,160 processor cycles
  15 page faults
  128,748,160 bytes consed

when adding the following to asdf:find-system, just around the cl:load call:

#+sbcl (sb-ext:*evaluator-mode* :interpret)

Evaluation took:
  1.506 seconds of real time
  0.74 seconds of total run time (0.64 user, 0.10 system)
  [ Run times consist of 0.110 seconds GC time, and 0.630 seconds non-GC time. ]
  49.14% CPU
  16,582 forms interpreted
  56 lambdas converted
  2,764,841,332 processor cycles
  2 page faults
  58,959,808 bytes consed

any thoughts on this?

-- 
 attila

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] how to query root of a system

2009-10-28 Thread Attila Lendvai
 (defun query-system-root (x) (asdf:component-pathname (asdf:find-system x)))

or with a not too old ASDF:

TEST (asdf:system-relative-pathname :hu.dwim.stefil )
#P/home/ati/workspace/hu.dwim.stefil/

-- 
 attila

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel


Re: [asdf-devel] [RfC] default value for *central-registry*

2009-09-24 Thread Attila Lendvai
 or whatever, and have ASDF either recurse through these directories or
 go to the systems directory underneath? This would allow sharing the


i would like to point out that the way asdf suggests the symlinking of
systems as the default way is not too newbie friendly...

a different setup would be much more slick for newcomers, where it has
a list of dirs that it scans for *.asd's 1 level deep.

this symlinking is a though-trap, from which it's hard to escape, but
i still remember the point when i did my own scanner and happily
forgot symlinking and systems dirs forever.

/me ducks

-- 
 attila

___
asdf-devel mailing list
asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel