ciel-lang / CIEL

CIEL Is an Extended Lisp. Scripting with batteries included.
http://ciel-lang.org
349 stars 18 forks source link

dep: add asdf to make ql-deps; git pull if dir #65

Closed WillForan closed 2 months ago

WillForan commented 2 months ago

For #58, add $(QLDIR)/adsf recipe

Also added make function to pull instead of clone if local-projects dir already exists

vindarel commented 2 months ago

This would pull this version of asdf for all users who run the install command, regardless of their existing asdf version (if any). I wonder if this can be an issue.

WDYT everybody?

Overall very welcome improvements that I'll merge in, thank you.

tmtvl commented 2 months ago

This would pull this version of asdf for all users who run the install command, regardless of their existing asdf version (if any). I wonder if this can be an issue.

Yeah, trying to do dependency management in pure Makefile can be a bit of a pain in the patookus.

Actually, it may be fine to just do it like this and to have a Makefile.lisp file which does most of the same stuff using UIOP, which would let us do the ASDF version check. That would allow people who have ASDF to use the lisp file and people without it to use this standard Makefile.

Or we could just make a smaller lisp script which just outputs a 1 or a 0 depending on whether if a sufficiently up-to-date version of ASDF is installed.

vindarel commented 2 months ago

the script can be:

;; sbcl --script check-asdf-version.lisp
(require 'asdf)

(uiop:format! t "asdf version: ~a~&" (asdf:asdf-version))
(let ((version (asdf:asdf-version)))
  (cond
    ((uiop:version<= version "3.3.4")
     (uiop:format! *error-output* "your asdf version is too old.~&")
     (uiop:quit 1))
    (t
     (uiop:quit 0))))

(and oh, without dependencies, stock sbcl scripts run acceptably fast too. 0.10s)

vindarel commented 2 months ago

@WillForan Thanks for the well useful PR.

WillForan commented 2 months ago

ahh sorry I was too slow to help clean it up!