I thought clerk/row was just another viewer. Should the following code work?
^{::clerk/viewer clerk/row}
(def foo 1)I get an exception with this stack trace:
1. Unhandled java.lang.NullPointerException
Cannot invoke "java.util.concurrent.Future.get()" because "fut" is
null
core.clj: 2317 clojure.core/deref-future
core.clj: 2337 clojure.core/deref
core.clj: 2323 clojure.core/deref
core.clj: 2586 clojure.core/comp/fn
core.clj: 7645 clojure.core/some-fn/sp2
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
AFn.java: 160 clojure.lang.AFn/applyToHelper
RestFn.java: 135 clojure.lang.RestFn/applyTo
core.clj: 673 clojure.core/apply
core.clj: 662 clojure.core/apply
viewer.cljc: 422 nextjournal.clerk.viewer$update_val$fn__12135/invoke
viewer.cljc: 450 nextjournal.clerk.viewer$apply_viewer_unwrapping_var_from_def/invokeStatic
viewer.cljc: 439 nextjournal.clerk.viewer$apply_viewer_unwrapping_var_from_def/invoke
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
viewer.cljc: 638 nextjournal.clerk.viewer$update_if/invokeStatic
viewer.cljc: 638 nextjournal.clerk.viewer$update_if/invoke
viewer.cljc: 668 nextjournal.clerk.viewer$cell__GT_result_viewer/invokeStatic
viewer.cljc: 666 nextjournal.clerk.viewer$cell__GT_result_viewer/invoke
viewer.cljc: 681 nextjournal.clerk.viewer$transform_cell/invokeStatic
viewer.cljc: 675 nextjournal.clerk.viewer$transform_cell/invoke
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
AFn.java: 160 clojure.lang.AFn/applyToHelper
RestFn.java: 135 clojure.lang.RestFn/applyTo
core.clj: 673 clojure.core/apply
core.clj: 662 clojure.core/apply
viewer.cljc: 422 nextjournal.clerk.viewer$update_val$fn__12135/invoke
viewer.cljc: 1500 nextjournal.clerk.viewer$apply_viewers_STAR_/invokeStatic
viewer.cljc: 1492 nextjournal.clerk.viewer$apply_viewers_STAR_/invoke
viewer.cljc: 1710 nextjournal.clerk.viewer$present_STAR_/invokeStatic
viewer.cljc: 1703 nextjournal.clerk.viewer$present_STAR_/invoke
viewer.cljc: 1808 nextjournal.clerk.viewer$present/invokeStatic
viewer.cljc: 1800 nextjournal.clerk.viewer$present/invoke
core.clj: 2586 clojure.core/comp/fn
core.clj: 2759 clojure.core/map/fn/fn
core.clj: 7806 clojure.core/preserving-reduced/fn
PersistentVector.java: 418 clojure.lang.PersistentVector/reduce
core.clj: 6964 clojure.core/reduce
core.clj: 7817 clojure.core/cat/fn
core.clj: 2759 clojure.core/map/fn/fn
PersistentVector.java: 418 clojure.lang.PersistentVector/reduce
core.clj: 7025 clojure.core/transduce
core.clj: 7042 clojure.core/into
core.clj: 7029 clojure.core/into
core.clj: 2648 clojure.core/partial/fn
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
viewer.cljc: 1307 nextjournal.clerk.viewer$process_blocks/invokeStatic
viewer.cljc: 1303 nextjournal.clerk.viewer$process_blocks/invoke
core.clj: 2641 clojure.core/partial/fn
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
viewer.cljc: 1336 nextjournal.clerk.viewer$fn__12472/invokeStatic
viewer.cljc: 1334 nextjournal.clerk.viewer$fn__12472/invoke
viewer.cljc: 1500 nextjournal.clerk.viewer$apply_viewers_STAR_/invokeStatic
viewer.cljc: 1492 nextjournal.clerk.viewer$apply_viewers_STAR_/invoke
viewer.cljc: 1710 nextjournal.clerk.viewer$present_STAR_/invokeStatic
viewer.cljc: 1703 nextjournal.clerk.viewer$present_STAR_/invoke
viewer.cljc: 1808 nextjournal.clerk.viewer$present/invokeStatic
viewer.cljc: 1800 nextjournal.clerk.viewer$present/invoke
view.clj: 13 nextjournal.clerk.view/doc->viewer
view.clj: 9 nextjournal.clerk.view/doc->viewer
view.clj: 10 nextjournal.clerk.view/doc->viewer
view.clj: 9 nextjournal.clerk.view/doc->viewer
webserver.clj: 149 nextjournal.clerk.webserver/present+reset!
webserver.clj: 148 nextjournal.clerk.webserver/present+reset!
webserver.clj: 162 nextjournal.clerk.webserver/update-doc!
webserver.clj: 160 nextjournal.clerk.webserver/update-doc!
clerk.clj: 76 nextjournal.clerk/show!
clerk.clj: 22 nextjournal.clerk/show!
clerk.clj: 35 nextjournal.clerk/show!
clerk.clj: 22 nextjournal.clerk/show!
REPL: 1 data-prep.blade-2025/eval70213it is a viewer
seems to be some interaction with the viewer to show the value of the var
would you mind filing an issue?
I will!
@borkdude sure, please do
there's two issues here right? the first one being that a row should be a sequence of things, not just one thing?
^{::clerk/viewer clerk/row}
[1 2 3]^{::clerk/viewer clerk/row}
(def foo [0 1 2])
1. Unhandled java.lang.NullPointerException
Cannot invoke "java.util.concurrent.Future.get()" because "fut" is
null
core.clj: 2317 clojure.core/deref-future
core.clj: 2337 clojure.core/deref
core.clj: 2323 clojure.core/deref
core.clj: 2586 clojure.core/comp/fn
core.clj: 7645 clojure.core/some-fn/sp2
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
AFn.java: 160 clojure.lang.AFn/applyToHelper
RestFn.java: 135 clojure.lang.RestFn/applyTo
core.clj: 673 clojure.core/apply
core.clj: 662 clojure.core/apply
viewer.cljc: 422 nextjournal.clerk.viewer$update_val$fn__12135/invoke
viewer.cljc: 450 nextjournal.clerk.viewer$apply_viewer_unwrapping_var_from_def/invokeStatic
viewer.cljc: 439 nextjournal.clerk.viewer$apply_viewer_unwrapping_var_from_def/invoke
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
viewer.cljc: 638 nextjournal.clerk.viewer$update_if/invokeStatic
viewer.cljc: 638 nextjournal.clerk.viewer$update_if/invoke
viewer.cljc: 668 nextjournal.clerk.viewer$cell__GT_result_viewer/invokeStatic
viewer.cljc: 666 nextjournal.clerk.viewer$cell__GT_result_viewer/invoke
viewer.cljc: 681 nextjournal.clerk.viewer$transform_cell/invokeStatic
viewer.cljc: 675 nextjournal.clerk.viewer$transform_cell/invoke
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
AFn.java: 160 clojure.lang.AFn/applyToHelper
RestFn.java: 135 clojure.lang.RestFn/applyTo
core.clj: 673 clojure.core/apply
core.clj: 662 clojure.core/apply
viewer.cljc: 422 nextjournal.clerk.viewer$update_val$fn__12135/invoke
viewer.cljc: 1500 nextjournal.clerk.viewer$apply_viewers_STAR_/invokeStatic
viewer.cljc: 1492 nextjournal.clerk.viewer$apply_viewers_STAR_/invoke
viewer.cljc: 1710 nextjournal.clerk.viewer$present_STAR_/invokeStatic
viewer.cljc: 1703 nextjournal.clerk.viewer$present_STAR_/invoke
viewer.cljc: 1808 nextjournal.clerk.viewer$present/invokeStatic
viewer.cljc: 1800 nextjournal.clerk.viewer$present/invoke
core.clj: 2586 clojure.core/comp/fn
core.clj: 2759 clojure.core/map/fn/fn
core.clj: 7806 clojure.core/preserving-reduced/fn
PersistentVector.java: 418 clojure.lang.PersistentVector/reduce
core.clj: 6964 clojure.core/reduce
core.clj: 7817 clojure.core/cat/fn
core.clj: 2759 clojure.core/map/fn/fn
PersistentVector.java: 418 clojure.lang.PersistentVector/reduce
core.clj: 7025 clojure.core/transduce
core.clj: 7042 clojure.core/into
core.clj: 7029 clojure.core/into
core.clj: 2648 clojure.core/partial/fn
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
viewer.cljc: 1307 nextjournal.clerk.viewer$process_blocks/invokeStatic
viewer.cljc: 1303 nextjournal.clerk.viewer$process_blocks/invoke
core.clj: 2641 clojure.core/partial/fn
core.clj: 6259 clojure.core/update
core.clj: 6251 clojure.core/update
viewer.cljc: 1336 nextjournal.clerk.viewer$fn__12472/invokeStatic
viewer.cljc: 1334 nextjournal.clerk.viewer$fn__12472/invoke
viewer.cljc: 1500 nextjournal.clerk.viewer$apply_viewers_STAR_/invokeStatic
viewer.cljc: 1492 nextjournal.clerk.viewer$apply_viewers_STAR_/invoke
viewer.cljc: 1710 nextjournal.clerk.viewer$present_STAR_/invokeStatic
viewer.cljc: 1703 nextjournal.clerk.viewer$present_STAR_/invoke
viewer.cljc: 1808 nextjournal.clerk.viewer$present/invokeStatic
viewer.cljc: 1800 nextjournal.clerk.viewer$present/invoke
view.clj: 13 nextjournal.clerk.view/doc->viewer
view.clj: 9 nextjournal.clerk.view/doc->viewer
view.clj: 10 nextjournal.clerk.view/doc->viewer
view.clj: 9 nextjournal.clerk.view/doc->viewer
webserver.clj: 149 nextjournal.clerk.webserver/present+reset!
webserver.clj: 148 nextjournal.clerk.webserver/present+reset!
webserver.clj: 162 nextjournal.clerk.webserver/update-doc!
webserver.clj: 160 nextjournal.clerk.webserver/update-doc!
clerk.clj: 76 nextjournal.clerk/show!
clerk.clj: 22 nextjournal.clerk/show!
clerk.clj: 35 nextjournal.clerk/show!
clerk.clj: 22 nextjournal.clerk/show!
REPL: 1 data-prep.census-and-transitions/eval71504I'm only really getting it when I do a def
yep. but when you use
^{::clerk/viewer clerk/row}
1
it'll also fail, I mean^{::clerk/viewer clerk/row}
((constantly 0))is fine tho
ah ok
I don't get where the deref-future is coming from in the stack trace
that's... special :)
yeah I'll give it a look now. I'll focus just on the var case
thx