ecl: make load-op default

Bug #1649198 reported by Daniel Kochmański on 2016-12-12
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

asdf.lisp excerpt:

  (unless (or #+(or clasp ecl) (use-ecl-byte-compiler-p))
    (setf *load-system-operation* 'load-bundle-op))

this is bogus for cases, when ECL explicitly installs bytecodes compiler at runtime. load-bundle-op fails miserably preventing use of ASDF.

Steps to reproduce:
1. Run ECL and load ASDF
2. (ext:install-bytecodes-compiler)
3. Load any system with dependencies
4. Quit Lisp and do once again steps 1-3 (step 3 will fail).

*load-system-operation* can't be determined at load time. If it can't be determined at runtime it should be set back to 'load-op.

Daniel Kochmański (jackdaniel) wrote :

Proposed solution:

Introduce (load-system-operation) function instead of a special variable.

Faré (fahree) wrote :

OK. But what would the function definition be?
Can the value change under the hood in the middle of planning?

My intuition is that we should scrap the whole idea, get back to just load-op by default, and leave bundles be a matter of delivery only.

Is there any advantage to using bundles during development? Is the advantage worth the complexity? If you often want them, can't you "just" write your own function instead of load-system that calls operate with 'load-bundle-op? And/or use "make" and :build-operation?

Daniel Kochmański (jackdaniel) wrote :

I don't mind bringing load-op and removing load-bundle-op.

Proposed solution was to make it work as expected in the code. Definition for now would be the same as before but wrapped in funciton:

(defun …
(unless (or #+(or clasp ecl) (use-ecl-byte-compiler-p))
    (setf *load-system-operation* 'load-bundle-op))

It's unlikely that value would change while planning, because switching compiler from another thread would break everything either way.

Faré (fahree) wrote :

OK, I open !61 where I altogether remove *load-system-operation*.

Please comment there for details.

Faré (fahree) wrote :

There is a fix in MR !61 targeted for ASDF 3.3

Changed in asdf:
assignee: nobody → Faré (fahree)
milestone: none → 3.3
status: New → Fix Committed
Changed in asdf:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers