slyrus / opticl

An image processing library for Common Lisp
Other
182 stars 35 forks source link

read error at opticl-20211209-git/jpeg.lisp #42

Closed martinfraserbrooks closed 2 years ago

martinfraserbrooks commented 2 years ago

Hi, and thank you. My AWS build broke for today; preceding build (successful) had been in November. Here's what it looks like in CCL, on an AWS Linux instance:

...

312,452 bytes in 0.01 seconds (32149.29KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/archive/cl-jpeg/2017-06-30/cl-jpeg-20170630-git.tgz"> ; 24.50KB

25,088 bytes in 0.01 seconds (4733.38KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/archive/opticl/2021-12-09/opticl-20211209-git.tgz"> ; 247.90KB

253,852 bytes in 0.01 seconds (25242.07KB/sec) ; Loading "opticl" [package com.gigamonkeys.binary-data]............. [package com.gigamonkeys.binary-data.common-datatypes]. .................................................. [package ieee-floats]............................. [package jpeg]....Performing compile-time optimization.. please wait. .Done. ............................... .................................................. [package deflate]................................. [package retrospectiff.constants]................. [package retrospectiff.globals]................... [package retrospectiff.binary-types].............. [package retrospectiff.util]...................... [package retrospectiff.bit-array]................. [package retrospectiff.compression]............... [package retrospectiff.image]..................... [package retrospectiff.ifd]....................... [package retrospectiff]........................... [package retrospectiff2].......................... .................................................. [package salza2].................................. [package zpng].................................... [package trivial-indent].......................... [package documentation-utils]..................... [package mmap].................................... [package nibbles]................................. [package 3bz]..................................... .................................................. .................................................. [package static-vectors].......................... [package swap-bytes].............................. [package zpb-exif]................................ [package pngload]................................. .................................................. .................................................. .................................................. [package skippy].................................. [package cl-tga].................................. [package opticl].................................. [package opticl-cltl2]............................ [package opticl-color]............................ ...................................... Read error between positions 430 and 1336 in /home/ec2-user/ccl/dists/quicklisp/software/opticl-20211209-git/jpeg.lisp.

Error: Unbound variable: +NCOMP-RGB+ While executing: CCL::CHEAP-EVAL, in process listener(1). Type :GO to continue, :POP to abort, :R for a list of available restarts. If continued: Retry getting the value of +NCOMP-RGB+. Type :? for other options.

slyrus commented 2 years ago

This should be fixed in git by commit c72fc17. Can you use the latest from github? If it's not fixed, please let me know. thanks!

martinfraserbrooks commented 2 years ago

Loading libraries on AWS instances is done by a build script that uses quicklisp. I don't know how to get quicklisp to load c72fc17; their current version 2021-12-09 still has the bug.

slyrus commented 2 years ago

So you've got a few options: 1) wait for a new quicklisp release 2) use something like ultralisp ( https://ultralisp.org/ ) for an updated opticl (presumably) 3) figure out how to make your build scripts pull opticl from github and place that in ~/quicklisp/local-projects/ 4) apply the simple patch (it's just an eval-when around some defconstant forms in jpeg.lisp) 5) use SBCL which doesn't seem to need these constants defined at compile-time to work.

martinfraserbrooks commented 2 years ago

Thank you for those great suggestions, and thank you again for opticl!

I solved it by adding :dist-version and :dist-url args -- for the previous dist -- in my build script's call to quicklisp-quickstart:install . I can remove those after the next Quicklisp release.