edicl / drakma

HTTP client written in Common Lisp
http://edicl.github.io/drakma/
249 stars 59 forks source link

Patches for Lispworks 8. #121

Open tdrhq opened 2 years ago

tdrhq commented 2 years ago

Unfortunately, it appears that LW hasn't defined a :lispworks8+ feature as of now, so we'll have to do this again when Lispworks 9 comes out.

erikronstrom commented 2 years ago

While this patch will make it work in LispWorks 8, it won't work with future LispWorks versions (LW 9 etc)

From the LispWorks documentation (http://www.lispworks.com/documentation/lw80/lw/lw-common-lisp-18.htm):

Code using new LispWorks functionality should be conditionalized only using features representing earlier versions, so as to future-proof your code:

(defvar *feature-added-in-LispWorks-8.0*
  #+(or lispworks4 lispworks5 lispworks6 lispworks7) nil
  #-(or lispworks4 lispworks5 lispworks6 lispworks7) t)

This is because a feature added in LispWorks 8.0 will generally also be in LispWorks 8.1, LispWorks 9.0 and all later versions.

Similarly:

(defvar *feature-added-in-LispWorks-7.1*
  #+(or lispworks4 lispworks5 lispworks6 lispworks7.0) nil
  #-(or lispworks4 lispworks5 lispworks6 lispworks7.0) t)

[...]

We have seen several problematic examples like this:

(defvar *feature-added-in-LispWorks-6.0*
  #+lispworks6 t
  #-lispworks6 nil)

which breaks in LispWorks 7.0, because that release does not contain the :lispworks6 feature.