edicl / drakma

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

http-request broken in LispWorks 8 #124

Open erikronstrom opened 2 years ago

erikronstrom commented 2 years ago

2.0.8 works in LispWorks 8 but 2.0.9 doesn't. The problem was introduced in commit https://github.com/edicl/drakma/commit/5f6962c7dbb3bf163e5ece71b2d0c526a67fd598

This quote from the LispWorks documentation describes the situation pretty accurately:

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.

[...]

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.

fiddlerwoaroof commented 1 year ago

I just ran into this issue with LW8 and managed to work around it by adding (or :lispworks7.1 :lispworks8) wherever there was a lispworks7.1 reader conditional.

Yehouda commented 1 year ago

Changing to :lispworks (without a version) is even better. It is not going to work on earlier versions of LispWorks anyway.

mdbergmann commented 10 months ago

Does this have impact on http over ssl? Other than that Drakma works fine on Lispworks 8

Yehouda commented 10 months ago

Without SSL it changes the way it works in LispWorks, but still works ok. With SSL it breaks because the underlying code that it uses to support SSL (CL+SSL) is no working properly on LispWorks.

mdbergmann commented 10 months ago

Alright. Is there a PR that fixes it?

Yehouda commented 10 months ago

I don't actually make changes on github, but there are two PRs that fix it in the "Pull requests" tab. The one by tfiala looks better https://github.com/edicl/drakma/pull/129.