sharplispers / clx

a fork of crhodes' fork of danb's fork of the CLX library, an X11 client for Common Lisp
Other
114 stars 46 forks source link

Usage of xlib. #112

Closed commander-trashdin closed 5 years ago

commander-trashdin commented 5 years ago

I'm sorry if this is just me, but it is unclear from the description. Does this version use xlib? Or is it completely independent from it? Should probably be clarified in the readme.md.

dkochmanski commented 5 years ago

Hey. If it had used xlib (C library) it would be noted that these are bindings to the said library, not a library itself. It is X11 protocol client implementation written completely in Common Lisp.

commander-trashdin commented 5 years ago

In the demo there are a lot of functions xlib:create-pixmap and there s header descriptions like this one:

;;;;Mode:Lisp; Package:XLIB; Syntax:COMMON-LISP; Base:10; Lowercase:T
dkochmanski commented 5 years ago

This is a name of the package in which Lisp symbols reside. Something like c++ namespace. This name make sense, it is a library to access X server after all. Packages and system names sometimes overlap, but this is not a rule in CL ecosystem.

rpgoldman commented 5 years ago

@dkochmanski What about putting this in the README? For example, change "CLX is an X11 client library for Common Lisp." to "CLX is an X11 client library written entirely in Common Lisp."

And we can add, "Although the library's package name is XLIB, CLX is not an interface to the C library of the same name.".

That says clearly what it is, rather than making the reader make the indirect inference "If this was an interface to the C library, they would have told me so."

dkochmanski commented 5 years ago

I'm fine with adding the first remark, but the second one doesn't make much sense. If someone knows what is Common Lisp package there shouldn't be a problem with recognizing that.

Regarding first remark notice, that you change the original claim meaning. Instead of saying, that it is a library for CL you say it is a library written in CL (and you drop the information, for whom the said library is, artificially we could assume, that it is written for piping between terminal commands and X11 server). So I think that better phrasing would be: "CLX is an X11 client library for Common Lisp without FFI dependencies".

As I said in remarks earlier, I don't think this change is necessary (because it is easy to infer if you have a basic knowledge about CL libraries, i.e that if something is a FFI binding then that information is stated in the README), but I don't insist on having it the way it is* – please make a PR if I didn't convince you and I'll merge it.

[*] I'm against clarifying the obvious though, namely that Common Lisp packages are not C library names.