edicl / cl-unicode

Portable Unicode library for Common Lisp
https://edicl.github.io/cl-unicode/
61 stars 24 forks source link

Simplify .asd file and make it more correct. #8

Closed fare closed 8 years ago

fare commented 8 years ago

Correctly reflect dependencies using the newer ASDF 3 mechanisms (now ubiquitous).

Also, use canonical names for systems, i.e. strings.

stassats commented 8 years ago

So, (defsystem "string") is now the preferred way? Does it work on older asdfs? Curiously, asdf.asd uses (defystem :keyword)

fare commented 8 years ago

Yes, it has always worked, and asdf has been canonicalizing to string since asdf 1.

I decided recently that keeping things canonical is better — convinced so by how Google uses automatic formatters to keep all its source code as canonical as possible.

Thanks for noticing that asdf.asd itself fails to abide by this style I have been recommending of late (and applying to most of my systems, as I edit them). I'll fix that.

hanshuebner commented 8 years ago

Please change the system names back to keywords. I'd recommend that you also change the canonical form for ASDF accordingly, as keywords are the common practice. You'll see less resistance adapting your work if you don't make changes for that no good reason exists.

fare commented 8 years ago

OK, I undid that part in my patch to cl-unicode.

Beside backward compatibility, the reason why keywords can't be canonical is that coerce-name downcases symbols (including keywords) but preserve mixed-case strings. The point of this convention as initiated by danb being that case for symbols varies with implementation (see notably allegro "modern" variants) whereas the Unix convention is lowercase filenames.

hanshuebner commented 8 years ago

Merged, thanks.