ClojureDart icon indicating copy to clipboard operation
ClojureDart copied to clipboard

problem running the examples

Open gonzalogabrielfranco opened this issue 3 years ago • 10 comments

I have the following problem to run the examples, such as the fab example every time i try to execute with the command clj -M -m cljd.build flutter i get the following error image

how could i solve it?

gonzalogabrielfranco avatar Jun 11 '22 22:06 gonzalogabrielfranco

How did you initialize the project? (or could you provide the content of the cljd.edn file)

cgrand avatar Jun 12 '22 06:06 cgrand

Same, on a mac, while trying the 'How to run a sample project' on readme.

After clj -M -m cljd.build init sample.fab I get the following error:

{:clojure.main/message
 "Syntax error (NoSuchFieldException) compiling . at (cljd/compiler.cljc:984:21).\nnullWriter\n",
 :clojure.main/triage
 {:clojure.error/phase :compile-syntax-check,
  :clojure.error/line 984,
  :clojure.error/column 21,
  :clojure.error/source "compiler.cljc",
  :clojure.error/symbol .,
  :clojure.error/path "cljd/compiler.cljc",
  :clojure.error/class java.lang.NoSuchFieldException,
  :clojure.error/cause "nullWriter"},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message
    "Syntax error compiling . at (cljd/compiler.cljc:984:21).",
    :data
    {:clojure.error/phase :compile-syntax-check,
     :clojure.error/line 984,
     :clojure.error/column 21,
     :clojure.error/source "cljd/compiler.cljc",
     :clojure.error/symbol .},
    :at [clojure.lang.Compiler analyzeSeq "Compiler.java" 7115]}
   {:type java.lang.NoSuchFieldException,
    :message "nullWriter",
    :at [java.lang.Class getField "Class.java" 1703]}],
  :trace
  [[java.lang.Class getField "Class.java" 1703]
   [clojure.lang.Compiler$StaticFieldExpr <init> "Compiler.java" 1284]
   [clojure.lang.Compiler$HostExpr$Parser parse "Compiler.java" 1006]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$InvokeExpr parse "Compiler.java" 3888]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7109]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$InvokeExpr parse "Compiler.java" 3888]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7109]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6118]
   [clojure.lang.Compiler$LetExpr$Parser parse "Compiler.java" 6436]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6120]
   [clojure.lang.Compiler$LetExpr$Parser parse "Compiler.java" 6436]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6120]
   [clojure.lang.Compiler$FnMethod parse "Compiler.java" 5467]
   [clojure.lang.Compiler$FnExpr parse "Compiler.java" 4029]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7105]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7095]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler access$300 "Compiler.java" 38]
   [clojure.lang.Compiler$DefExpr$Parser parse "Compiler.java" 596]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7107]
   [clojure.lang.Compiler analyze "Compiler.java" 6789]
   [clojure.lang.Compiler analyze "Compiler.java" 6745]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.core$require doInvoke "core.clj" 6007]
   [clojure.lang.RestFn invoke "RestFn.java" 551]
   [cljd.build$eval138$loading__6721__auto____139 invoke "build.clj" 9]
   [cljd.build$eval138 invokeStatic "build.clj" 9]
   [cljd.build$eval138 invoke "build.clj" 9]
   [clojure.lang.Compiler eval "Compiler.java" 7177]
   [clojure.lang.Compiler eval "Compiler.java" 7166]
   [clojure.lang.Compiler load "Compiler.java" 7636]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6839 invoke "core.clj" 6126]
   [clojure.core$load invokeStatic "core.clj" 6125]
   [clojure.core$load doInvoke "core.clj" 6109]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5908]
   [clojure.core$load_one invoke "core.clj" 5903]
   [clojure.core$load_lib$fn__6780 invoke "core.clj" 5948]
   [clojure.core$load_lib invokeStatic "core.clj" 5947]
   [clojure.core$load_lib doInvoke "core.clj" 5928]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$load_libs invokeStatic "core.clj" 5985]
   [clojure.core$load_libs doInvoke "core.clj" 5969]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.core$require invokeStatic "core.clj" 6007]
   [clojure.main$main_opt invokeStatic "main.clj" 514]
   [clojure.main$main_opt invoke "main.clj" 510]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause "nullWriter",
  :phase :compile-syntax-check}}

laconiccrafts avatar Jun 12 '22 13:06 laconiccrafts

the cljd.edn file has this {:main acme.main, :bin "flutter"} it's the fab example, which is on github

gonzalogabrielfranco avatar Jun 12 '22 13:06 gonzalogabrielfranco

cd samples/counter && clj -M -m cljd.build init sample.counter && clj -M -m cljd.build flutter 
```
This worked on my old MacBook. Mind the init sample.counter.
The counter.fab is from main README of this repo.

So what about adding a README.txt in samples/ and add how to run them ? Maybe people find this issue :)

MarcWeber avatar Jun 12 '22 16:06 MarcWeber

@gonzalogabrielfranco you specified acme.main instead of sample.fab when initializing the project. Delete everything but deps.edn and src.

@MarcWeber good idea, the instructions are currently in the main README https://github.com/Tensegritics/ClojureDart/blob/daddc92339b74bffad5acfa02cf42799a6a67205/README.md#how-to-run-a-sample-project

cgrand avatar Jun 13 '22 09:06 cgrand

Init the project and mind that that sample.fab represents the path tho the main clojure file. Small change..

BTW: i tried installing this all in docker to get somewhat reproducable results. But the last message Can't resolve show above in the screenshot I get with both stable and beta flutter versions.

https://stackoverflow.com/questions/72301239/clojuredart-error-while-host-compiling-ns-samples-tables-require-packagef describes the solution.

But even then the docker version of chromium installed from Google starts, but the app doesn't appear. flutter build web -> copying it somewhere else does. So must be related to X11 forwarding (DISPLAY=:0) or such. It runs but the shows only the sliding bar (non release version).

MarcWeber avatar Jun 13 '22 13:06 MarcWeber

Ok, I'm going to simplify: main will be sourced from deps.edn. See https://github.com/Tensegritics/ClojureDart/blob/cb428974b7c9af6fbc41f8f15db750cc8a23b588/samples/datatable/deps.edn#L4-L5

cgrand avatar Jun 13 '22 23:06 cgrand

See #110 for the Can't resolve widgets/InheritedModel issue

MarcWeber avatar Jun 14 '22 07:06 MarcWeber

If you update to latest ClojureDart you can run example by cding the example project dir and juste doing

clj -Mcljd init
clj -Mcljd flutter

Hope this helps.

cgrand avatar Jun 15 '22 22:06 cgrand

Still need help @MarcWeber ?

dupuchba avatar Jun 16 '22 16:06 dupuchba