autumnai/phloem

0.3.0 doesn't build with 1.7-nightly

ehiggs opened this issue · 6 comments

If I use leaf = "0.1.1" in my Cargo.toml then it pulls in phloem 0.3.0 which doesn't build on 1.7-nightly:

   Compiling phloem v0.3.0
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:24:5: 24:36 error: unresolved import `co::shared_memory::SharedMemory`. Could not find `shared_memory` in `co` [E0432]
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:24 use co::shared_memory::SharedMemory;
                                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:24:5: 24:36 help: run `rustc --explain E0432` to see a detailed explanation
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:29:5: 29:28 error: unresolved import `co::libraries::blas::*`. Could not find `libraries` in `co` [E0432]
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:29 use co::libraries::blas::*;
                                                                                             ^~~~~~~~~~~~~~~~~~~~~~~
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:29:5: 29:28 help: run `rustc --explain E0432` to see a detailed explanation
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:30:38: 30:43 error: unresolved import `co::libraries::numeric_helpers::Float`. Could not find `libraries` in `co` [E0432]
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:30 use co::libraries::numeric_helpers::{Float, cast};
                                                                                                                              ^~~~~
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:30:38: 30:43 help: run `rustc --explain E0432` to see a detailed explanation
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:30:45: 30:49 error: unresolved import `co::libraries::numeric_helpers::cast`. Could not find `libraries` in `co` [E0432]
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:30 use co::libraries::numeric_helpers::{Float, cast};
                                                                                                                                     ^~~~
/home/ehiggs/.cargo/registry/src/github.com-88ac128001ac3a9a/phloem-0.3.0/src/blob.rs:30:45: 30:49 help: run `rustc --explain E0432` to see a detailed explanation

Problems seem to be, that phloem uses not the latest Collenchyma version 0.0.6. You could try to pin Phloem's Collenchyma dependency to 0.0.6. But anyhow, we are about to ship the changes for the upcoming Leaf 0.2.0 which is removing the Phloem dependency, completely.

CC @hobofan: He works towards Leaf 0.2.0 - let's see if he can push something working for Leaf. There is currently a big refactoring going on, as we include Collenchyma.

What @MichaelHirn said is not quite correct. With the update to Collenchyma 0.0.6 Phloem is obsolete.
I will hopefully have a somewhat working branch with the work towards 0.2.0 online later today, but at the moment it still depends on some unpublished changes in collenchyma and collenchyma-nn.

I forgot to mention why Collenchyma 0.0.6 will make Phloem obsolete:
With 0.0.6 Collenchyma the SharedTensor gained all the logic about tensor rank and dimensions, which was previously the job of Phloem. With that responsibility taken away, a Phloem Blob is no more than a struct that contains 2 SharedTensors, which doesn't really justify the overhead of maintaining a crate.

Ok. I understood the reasons based on the explanation in the docs. It's just an outstanding issue that the most recent version to which one can pin is not currently building. Maybe this issue belongs in autumnai/leaf?

Any idea when a version of leaf will be available that builds?

I'll release a Phloem 0.3.1 that has the Collenchyma version properly locked as soon as I can (probably tomorrow). Then Leaf 0.1.1 should be able to build.

@ehiggs Phloem 0.3.1 and Leaf 0.1.2 have been released and should build.

If there are still any problems feel free to comment or reopen the issue.