venantius / ultra

A Leiningen plugin for a superior development environment
Eclipse Public License 1.0
1.24k stars 37 forks source link

Problem with Alembic #59

Closed malloc82 closed 8 years ago

malloc82 commented 8 years ago

Enabling ultra seems to break alembic. Alembic is used to load library from repl without restarting it. After enabling ultra, I have this error when I try to load a library with alembic:

user=> (require 'alembic.still)
nil
user=> (alembic.still/distill '[enlive "1.1.5"])

              java.io.FileNotFoundException: Could not locate fipp/engine__init.class or fipp/engine.clj on classpath:
    clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate fipp/engine__init.class or fipp/engine.clj on classpath: , compiling:(puget/printer.clj:1:1)
java.lang.reflect.InvocationTargetException:
user=>

Removing alembic from profiles.clj, alembic works again.

Although it does seem that more of ultra's dependency breaks it.

venantius commented 8 years ago

Fundamentally, this is related to https://github.com/venantius/ultra/issues/47.

To be clear: Ultra has a dependency on Fipp. Fipp requires reader conditional support, which was introduced in Clojure 1.8.0. Whatever classloading magic Alembic uses does not support one of: {Clojure 1.8.0, reader conditional support}.

It is, therefore, not an issue with Ultra. It is an issue with Alembic not supporting Clojure 1.8.0.