aysylu / loom

Graph library for Clojure. Mailing list https://groups.google.com/forum/#!forum/loom-clj
http://aysy.lu/loom/
886 stars 108 forks source link

Graph transpose does not work correctly in ClojureScript #131

Open kelvinqian00 opened 3 years ago

kelvinqian00 commented 3 years ago

Description: When calling graph/transpose in compiled ClojureScript, it returns a nil value for :adj. For example:

(def g (-> graph/digraph (graph/add-edges ["foo" "bar"]))
=> {:nodeset #{"foo" "bar"}, :adj {"foo" #{"bar"}, "bar" #{"foo"}}, :in {"bar" #{"foo"}, "foo" #{"bar"}}}
(graph/transpose g)
=> {:nodeset #{"foo" "bar"}, :adj nil, :in {"foo" #{"bar"}, "bar" #{"foo"}}}

For some reason, this bug does not appear in Clojure, nor when I run ClojureScript on a REPL.

For reproduction purposes, here is part of my deps.edn file:

{:paths ["resources" "src"]
 :deps  {org.clojure/clojure    {:mvn/version "RELEASE"}
         cider/piggieback       {:mvn/version "0.5.2"}
         aysylu/loom            {:mvn/version "1.0.2"}
 :aliases
 {:test
  {:extra-paths ["test"]}
  :runner
  {:extra-deps {com.cognitect/test-runner ;; Latest commit: 9/30/20
                {:git/url "https://github.com/cognitect-labs/test-runner"
                 :sha     "b6b3193fcc42659d7e46ecd1884a228993441182"}}
   :main-opts  ["-m" "cognitect.test-runner" "-d" "test"]}
  :runner-cljs
  {:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"}}
   :main-opts ["-m" "cljs-test-runner.main" "-d" "test" "-c" "build.edn"]}}
 :mvn/repos {"jitpack" {:url "https://jitpack.io"}}}

where build.edn is:

{
 :install-deps true
 :target       :nodejs
 }