juliagizmos / escher.jl Goto Github PK
View Code? Open in Web Editor NEWComposable Web UIs in Julia
Home Page: https://juliagizmos.github.io/Escher.jl
License: Other
Composable Web UIs in Julia
Home Page: https://juliagizmos.github.io/Escher.jl
License: Other
Version 0.4.0-dev+5293 (2015-06-10 09:21 UTC)
julia> using Escher
Warning: New definition
serialize(Any, DataStructures.HashDict) at /apps/infrafs1/dbrowne/.julia/v0.4/DataStructures/src/hashdict.jl:91
is ambiguous with:
serialize(Base.SerializationState, Any) at serialize.jl:399.
To fix, define
serialize(Base.SerializationState, DataStructures.HashDict)
before the new definition.
Warning: New definition
serialize(Any, DataStructures.HashDict) at /apps/infrafs1/dbrowne/.julia/v0.4/DataStructures/src/hashdict.jl:91
is ambiguous with:
serialize(Base.IO, Any) at serialize.jl:421.
To fix, define
serialize(Base.IO, DataStructures.HashDict)
before the new definition.
Warning: New definition
deserialize(Any, Type{DataStructures.HashDict{#K<:Any, #V<:Any, #O<:Any}}) at /apps/infrafs1/dbrowne/.julia/v0.4/DataStructures/src/hashdict.jl:100
is ambiguous with:
deserialize(Base.SerializationState, DataType) at serialize.jl:653.
To fix, define
deserialize(Base.SerializationState, Type{DataStructures.HashDict{#K<:Any, #V<:Any, #O<:Any}})
before the new definition.
julia> include(Pkg.dir("Escher", "src", "cli", "serve.jl"))
ERROR: LoadError: LoadError: LoadError: LoadError: UndefVarError: Range1 not defined
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:55
in require at /apps/infrafs1/dbrowne/.julia/v0.4/Requires/src/require.jl:8
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:55
in require at /apps/infrafs1/dbrowne/.julia/v0.4/Requires/src/require.jl:8
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:52
in require at /apps/infrafs1/dbrowne/.julia/v0.4/Requires/src/require.jl:8
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
while loading /apps/infrafs1/dbrowne/.julia/v0.4/Lazy/src/Lazy.jl, in expression starting on line 106
while loading /apps/infrafs1/dbrowne/.julia/v0.4/Hiccup/src/Hiccup.jl, in expression starting on line 3
while loading /apps/infrafs1/dbrowne/.julia/v0.4/Mux/src/Mux.jl, in expression starting on line 20
while loading /apps/infrafs1/dbrowne/.julia/v0.4/Escher/src/cli/serve.jl, in expression starting on line 5
julia>
compose.jl
js console ouput:
Uncaught ReferenceError: IPython is not defined1../is-vpatch @ compose.jl:5s @ compose.jl:5e @ compose.jl:5(anonymous function) @ compose.jl:5
latex.jl
type: anonymous: in apply, expected Function, got ASCIIString
in anonymous at /Users/mac/.julia/v0.3/Escher/src/cli/serve.jl:134
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:15
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in splitquery at /Users/mac/.julia/v0.3/Mux/src/basics.jl:28
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in wcatch at /Users/mac/.julia/v0.3/Mux/src/websockets.jl:12
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in todict at /Users/mac/.julia/v0.3/Mux/src/basics.jl:21
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in anonymous at /Users/mac/.julia/v0.3/Mux/src/server.jl:36
in handle at /Users/mac/.julia/v0.3/WebSockets/src/WebSockets.jl:287
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:359
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:99
in http_parser_execute at /Users/mac/.julia/v0.3/HttpParser/src/HttpParser.jl:106
in add_data at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:148
in process_client at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:330
in anonymous at task.jl:340
mc.jl
`lift` has no method matching lift(::Function, ::Type{Any}, ::Input{Bool})
while loading /Users/mac/.julia/v0.3/Escher/examples/mc.jl, in expression starting on line 11
in loadfile at /Users/mac/.julia/v0.3/Escher/src/cli/serve.jl:24
in anonymous at /Users/mac/.julia/v0.3/Escher/src/cli/serve.jl:128
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:15
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in splitquery at /Users/mac/.julia/v0.3/Mux/src/basics.jl:28
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in wcatch at /Users/mac/.julia/v0.3/Mux/src/websockets.jl:12
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in todict at /Users/mac/.julia/v0.3/Mux/src/basics.jl:21
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in anonymous at /Users/mac/.julia/v0.3/Mux/src/server.jl:36
in handle at /Users/mac/.julia/v0.3/WebSockets/src/WebSockets.jl:287
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:359
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:99
in http_parser_execute at /Users/mac/.julia/v0.3/HttpParser/src/HttpParser.jl:106
in add_data at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:148
in process_client at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:330
in anonymous at task.jl:340
plot.jl
plot not defined
in anonymous at /Users/mac/.julia/v0.3/Escher/src/cli/serve.jl:134
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:15
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in splitquery at /Users/mac/.julia/v0.3/Mux/src/basics.jl:28
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in wcatch at /Users/mac/.julia/v0.3/Mux/src/websockets.jl:12
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in todict at /Users/mac/.julia/v0.3/Mux/src/basics.jl:21
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in anonymous at /Users/mac/.julia/v0.3/Mux/src/server.jl:36
in handle at /Users/mac/.julia/v0.3/WebSockets/src/WebSockets.jl:287
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:359
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:99
in http_parser_execute at /Users/mac/.julia/v0.3/HttpParser/src/HttpParser.jl:106
in add_data at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:148
in process_client at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:330
in anonymous at task.jl:340
plotting.jl
drawing not defined
in anonymous at /Users/mac/.julia/v0.3/Escher/src/cli/serve.jl:134
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:15
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in splitquery at /Users/mac/.julia/v0.3/Mux/src/basics.jl:28
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in wcatch at /Users/mac/.julia/v0.3/Mux/src/websockets.jl:12
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in todict at /Users/mac/.julia/v0.3/Mux/src/basics.jl:21
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/mac/.julia/v0.3/Mux/src/Mux.jl:8
in anonymous at /Users/mac/.julia/v0.3/Mux/src/server.jl:36
in handle at /Users/mac/.julia/v0.3/WebSockets/src/WebSockets.jl:287
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:359
in on_message_complete at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:99
in http_parser_execute at /Users/mac/.julia/v0.3/HttpParser/src/HttpParser.jl:106
in add_data at /Users/mac/.julia/v0.3/HttpServer/src/RequestParser.jl:148
in process_client at /Users/mac/.julia/v0.3/HttpServer/src/HttpServer.jl:330
in anonymous at task.jl:340
widgets.jl
Buttons are unresponsive, don't know if that is intentional.
I just tried setting up Escher, but the server failed to load. Do you want help tracking down issues for 0.4? My julia version is about a week behind master right now.
[tom@tomoffice bin]$ ./escher --serve
Warning: New definition
serialize(Any, DataStructures.HashDict) at /home/tom/.julia/v0.4/DataStructures/src/hashdict.jl:91
is ambiguous with:
serialize(Base.SerializationState, Any) at serialize.jl:399.
To fix, define
serialize(Base.SerializationState, DataStructures.HashDict)
before the new definition.
Warning: New definition
serialize(Any, DataStructures.HashDict) at /home/tom/.julia/v0.4/DataStructures/src/hashdict.jl:91
is ambiguous with:
serialize(Base.IO, Any) at serialize.jl:421.
To fix, define
serialize(Base.IO, DataStructures.HashDict)
before the new definition.
Warning: New definition
deserialize(Any, Type{DataStructures.HashDict{#K<:Any, #V<:Any, #O<:Any}}) at /home/tom/.julia/v0.4/DataStructures/src/hashdict.jl:100
is ambiguous with:
deserialize(Base.SerializationState, DataType) at serialize.jl:653.
To fix, define
deserialize(Base.SerializationState, Type{DataStructures.HashDict{#K<:Any, #V<:Any, #O<:Any}})
before the new definition.
ERROR: LoadError: LoadError: LoadError: LoadError: LoadError: UndefVarError: Range1 not defined
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:55
in require at /home/tom/.julia/v0.4/Requires/src/require.jl:8
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:55
in require at /home/tom/.julia/v0.4/Requires/src/require.jl:8
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:52
in require at /home/tom/.julia/v0.4/Requires/src/require.jl:8
in include at ./boot.jl:253
in include_from_node1 at ./loading.jl:133
in include at ./boot.jl:253
in include_from_node1 at loading.jl:133
in process_options at ./client.jl:312
in _start at ./client.jl:412
while loading /home/tom/.julia/v0.4/Lazy/src/Lazy.jl, in expression starting on line 106
while loading /home/tom/.julia/v0.4/Hiccup/src/Hiccup.jl, in expression starting on line 3
while loading /home/tom/.julia/v0.4/Mux/src/Mux.jl, in expression starting on line 20
while loading /home/tom/.julia/v0.4/Escher/src/cli/serve.jl, in expression starting on line 5
while loading /home/tom/.julia/v0.4/Escher/bin/escher, in expression starting on line 6
If you think it's appropriate, I'd be happy to help transfer it (and make you a contributor, of course). Let me know. This looks like an absolutely wonderful package.
I'm trying to go through the tutorial on escher-jl.org, but I keep running into examples that won't run. I'm currently having trouble with Pattern 2, Example 1. At first, it wouldn't work because it couldn't find pad
, which is in Compose
(which is not imported in the text of the example). Even with the added using
, it still presents an error message -- one that I'm not sure how to resolve.
Code with added using
:
using Compose
function main(window)
push!(window.assets, "tex")
txt = tex("T = 2\\pi\\sqrt{L\\over g}")
txt1 = fontcolor("#499", txt)
txt2 = pad(5mm, txt1)
txt3 = fillcolor("#eeb", txt2)
vbox(txt, txt1, txt2, txt3)
end
Error message (from the terminal; webpage is blank):
Error handling websocket connection:
MethodError: `length` has no method matching length(::Patchwork.Elem{:xhtml,symbol("ka-tex")})
in convert at /Users/leah/.julia/v0.4/Patchwork/src/Patchwork.jl:53
in call at /Users/leah/.julia/v0.4/Patchwork/src/Patchwork.jl:74
in render at /Users/leah/.julia/v0.4/Escher/src/basics/layout.jl:462
in render at /Users/leah/.julia/v0.4/Escher/src/basics/layout.jl:471
in render at /Users/leah/.julia/v0.4/Escher/src/basics/tile.jl:89
in render at /Users/leah/.julia/v0.4/Escher/src/basics/layout.jl:290
in start_updates at /Users/leah/.julia/v0.4/Escher/src/cli/serve.jl:114
in anonymous at /Users/leah/.julia/v0.4/Escher/src/cli/serve.jl:180
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:15
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in splitquery at /Users/leah/.julia/v0.4/Mux/src/basics.jl:28
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in wcatch at /Users/leah/.julia/v0.4/Mux/src/websockets_integration.jl:12
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in todict at /Users/leah/.julia/v0.4/Mux/src/basics.jl:21
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in anonymous at /Users/leah/.julia/v0.4/Mux/src/server.jl:38
in handle at /Users/leah/.julia/v0.4/WebSockets/src/WebSockets.jl:354
in on_message_complete at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:393
in on_message_complete at /Users/leah/.julia/v0.4/HttpServer/src/RequestParser.jl:104
in http_parser_execute at /Users/leah/.julia/v0.4/HttpParser/src/HttpParser.jl:92
in process_client at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:365
in anonymous at task.jl:448
When I've just Pkg.add("Escher")
and Pkg.checkout("Mux")
, none of the examples work. Example errors from minesweeper are below. However, minesweeper does work if I Pkg.checkout("Escher")
, so maybe you could tag a new version?
It is really frustrating to add a new package, follow the instructions to run an example, and literally spend an hour encountering and overcoming errors before even one example runs successfully. (...especially when all of the error seem to just be due to packages not being tagged.) Is there any test process setup for Escher to let you know if the currently tagged version "Just Works" on the examples, when installing on a fresh Julia instance with just Pkg.add("Escher")
? Because I think that might help prevent this situation in the future.
In the terminal:
WARNING: both Escher and Base export "broadcast"; uses of it in module Main must be qualified
While attempting to load http://localhost:5555/minesweeper.jl
:
LoadError: UndefVarError: broadcast not defined
while loading /Users/leah/.julia/v0.4/Escher/examples/minesweeper.jl, in expression starting on line 69
in loadfile at /Users/leah/.julia/v0.4/Escher/src/cli/serve.jl:24
in anonymous at /Users/leah/.julia/v0.4/Escher/src/cli/serve.jl:165
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:15
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in splitquery at /Users/leah/.julia/v0.4/Mux/src/basics.jl:28
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in wcatch at /Users/leah/.julia/v0.4/Mux/src/websockets_integration.jl:12
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in todict at /Users/leah/.julia/v0.4/Mux/src/basics.jl:21
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in anonymous at /Users/leah/.julia/v0.4/Mux/src/server.jl:38
in handle at /Users/leah/.julia/v0.4/WebSockets/src/WebSockets.jl:354
in on_message_complete at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:393
in on_message_complete at /Users/leah/.julia/v0.4/HttpServer/src/RequestParser.jl:104
in http_parser_execute at /Users/leah/.julia/v0.4/HttpParser/src/HttpParser.jl:92
in process_client at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:365
in anonymous at task.jl:448
While I want to write all of this out myself, my hands don't seem to like the idea so much. Here is a table of contents of the things I want to document. Any help with documentation will be hugely appreciated!
Take a look at docs/index.jl
, docs/layout.jl
, docs/reactive.jl
, docs/layout-api.jl
to see how documentation can be written.
@api
& @apidoc
macrosTile
& TileList
WIP PR: #67
Tile
Behavior
typeI wonder if it is possible to have an Electron backend, as an alternative to the Polymer backend. Perhaps that will also make it possible to build rich desktop apps.
trying the latex.jl
in examples, the following error is displayed in the console:
Asset file /Users/aviks/.julia/v0.3/Canvas/assets/latex.html doesn't exist
in push! at /Users/aviks/.julia/v0.3/Reactive/src/Reactive.jl:308
in main at /Users/aviks/.julia/v0.3/Canvas/examples/latex.jl:7
I've tried to add an svg in different ways but I can't find I way to make it display. For instance,
Elem{:object, :object}({:data=>"image.svg", :type=>"image/svg+xml"}, EmptyNode)
or
Elem{:img, :img}({:src=>"image.svg"}, EmptyNode)
do not work
As of now, from tests using Julia v0.3.11 on Chromium:
nothing happens when you click on a square
``|> has no method matching |>(::Plot, ::ComposeGraphic)
This can be circumvented by unchaining the drawing of plot_beta.
Rendered text does not update
HTML links broken if served
References functions that are currently commented out (dropdown, item?)
The use of Markdown.jl suggests that this is best run with Julia 0.3. It would be nice to mention that in the README, since one cannot yet install Canvas.jl as a package.
Getting the following error with Julia 0.3.0-rc3+8 when trying to include using include(Pkg.dir("Escher", "src", "cli", "serve.jl"))
ERROR: setup_transport not defined
in include at /Applications/Julia-0.3.0-rc3-14654867cf.app/Contents/Resources/julia/lib/julia/sys.dylib
in include_from_node1 at /Applications/Julia-0.3.0-rc3-14654867cf.app/Contents/Resources/julia/lib/julia/sys.dylib
while loading --- .julia/v0.3/Escher/src/cli/serve.jl, in expression starting on line 80
I did checkout the latest as well using Pkg.checkout("Escher")
When you refresh a page from chrome it appears that Escher/Mux does not always notice the close of the websocket. Since the socket is keyed by the file name when next Escher tries to write to the socket it is in a closed state. This causes the process to bomb out, the symptom being an error from Reactive 'push! called when another signal is still updating'
Any thoughts how to resolve / chase down?
This means users don't need to open a browser separately to the server. I've got this working with Patchwork.jl and thought you might already be considering doing it with Escher.jl so here is a link to that project if you want a starting point. Sorry for the noise if you weren't considering it.
???
PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.3) and the nightly build of the unstable version (0.4). The results of this script are used to generate a package listing enhanced with testing results.
N/A - new package.
Package doesn't load.
Package doesn't load.
means that PackageEvaluator did not find tests for your package. Additionally, trying to load your package with using
failed.
This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.
Test log:
>>> 'Pkg.add("Escher")' log
INFO: Cloning cache of Escher from git://github.com/shashi/Escher.jl.git
INFO: Cloning cache of FunctionalCollections from git://github.com/JuliaLang/FunctionalCollections.jl.git
INFO: Cloning cache of Hiccup from git://github.com/one-more-minute/Hiccup.jl.git
INFO: Cloning cache of HttpServer from git://github.com/JuliaWeb/HttpServer.jl.git
INFO: Cloning cache of Markdown from git://github.com/one-more-minute/Markdown.jl.git
INFO: Cloning cache of Mux from git://github.com/one-more-minute/Mux.jl.git
INFO: Cloning cache of Patchwork from git://github.com/shashi/Patchwork.jl.git
INFO: Cloning cache of Reactive from git://github.com/JuliaLang/Reactive.jl.git
INFO: Cloning cache of WebSockets from git://github.com/JuliaWeb/WebSockets.jl.git
INFO: Installing ArgParse v0.2.11
INFO: Installing ArrayViews v0.6.2
INFO: Installing Benchmark v0.1.0
INFO: Installing BinDeps v0.3.12
INFO: Installing Codecs v0.1.4
INFO: Installing Compat v0.4.4
INFO: Installing DataArrays v0.2.15
INFO: Installing DataFrames v0.6.6
INFO: Installing Dates v0.3.2
INFO: Installing Docile v0.5.3
INFO: Installing Escher v0.0.1
INFO: Installing FactCheck v0.2.7
INFO: Installing FunctionalCollections v0.1.2
INFO: Installing GZip v0.2.15
INFO: Installing GnuTLS v0.0.4
INFO: Installing Hiccup v0.0.0
INFO: Installing HttpCommon v0.0.12
INFO: Installing HttpParser v0.0.11
INFO: Installing HttpServer v0.0.12
INFO: Installing JSON v0.4.3
INFO: Installing Lazy v0.8.4
INFO: Installing Markdown v0.3.0
INFO: Installing Mux v0.0.0
INFO: Installing Nettle v0.1.8
INFO: Installing Options v0.2.3
INFO: Installing Patchwork v0.1.4
INFO: Installing Reactive v0.2.0
INFO: Installing Reexport v0.0.2
INFO: Installing SHA v0.0.4
INFO: Installing SortingAlgorithms v0.0.5
INFO: Installing StatsBase v0.6.15
INFO: Installing TextWrap v0.1.3
INFO: Installing URIParser v0.0.5
INFO: Installing WebSockets v0.0.6
INFO: Building HttpParser
INFO: Building Nettle
INFO: Building GnuTLS
INFO: Package database updated
INFO: METADATA is out-of-date — you may not have the latest version of Escher
INFO: Use `Pkg.update()` to get the latest versions of your packages
>>> 'using Escher' log
Julia Version 0.3.6
Commit 0c24dca (2015-02-17 22:12 UTC)
Platform Info:
System: Linux (x86_64-unknown-linux-gnu)
CPU: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem)
LAPACK: libopenblas
LIBM: libopenlibm
LLVM: libLLVM-3.3
/home/vagrant/testpkg/v0.3/Escher
ERROR: Color not found
in require at loading.jl:47
in include at ./boot.jl:245
in include_from_node1 at ./loading.jl:128
in include at ./boot.jl:245
in include_from_node1 at ./loading.jl:128
in reload_path at loading.jl:152
in _require at loading.jl:67
in require at loading.jl:51
in include at ./boot.jl:245
in include_from_node1 at loading.jl:128
in process_options at ./client.jl:285
in _start at ./client.jl:354
while loading /home/vagrant/testpkg/v0.3/Escher/src/basics/util.jl, in expression starting on line 1
while loading /home/vagrant/testpkg/v0.3/Escher/src/Escher.jl, in expression starting on line 22
while loading /vagrant/releaseAL/PKGEVAL_Escher_using.jl, in expression starting on line 4
>>> test log
no tests to run
>>> end of log
On running mc.jl
with the latest master, I get the following error:
suscribe not defined
in >>> at /Users/aviks/.julia/v0.3/Escher/src/library/widgets.jl:17
in anonymous at /Users/aviks/.julia/v0.3/Escher/examples/mc.jl:143
in main at /Users/aviks/.julia/v0.3/Escher/examples/mc.jl:19
in uisocket at /Users/aviks/.julia/v0.3/Escher/bin/escherd:114
Followed the instructions in the README, but when the time comes to run escher
in the examples directory, I face this:
┌[rudimk@Giorgio] [/dev/ttys000] [master]
└[~/.julia/v0.3/Escher/examples]> ../bin/escher --serve
ERROR: Requires not found
in require at loading.jl:47
in include at /usr/local/Cellar/julia/0.3.9/lib/julia/sys.dylib
in include_from_node1 at /usr/local/Cellar/julia/0.3.9/lib/julia/sys.dylib
in include at /usr/local/Cellar/julia/0.3.9/lib/julia/sys.dylib
in include_from_node1 at /usr/local/Cellar/julia/0.3.9/lib/julia/sys.dylib
in reload_path at loading.jl:152
in _require at loading.jl:67
in require at loading.jl:51
in include at /usr/local/Cellar/julia/0.3.9/lib/julia/sys.dylib
in include_from_node1 at loading.jl:128
in process_options at /usr/local/Cellar/julia/0.3.9/lib/julia/sys.dylib
in _start at /usr/local/Cellar/julia/0.3.9/lib/julia/sys.dylib
while loading /Users/rudimk/.julia/v0.3/Escher/src/basics/lazyload.jl, in expression starting on line 1
while loading /Users/rudimk/.julia/v0.3/Escher/src/Escher.jl, in expression starting on line 25
while loading /Users/rudimk/.julia/v0.3/Escher/bin/escher, in expression starting on line 4
Not entirely sure where exactly I'm going wrong.
PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.3) and the nightly build of the unstable version (0.4). The results of this script are used to generate a package listing enhanced with testing results.
Tests pass.
Tests fail.
This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.
Test log:
>>> 'Pkg.add("Escher")' log
INFO: Cloning cache of Escher from git://github.com/shashi/Escher.jl.git
INFO: Cloning cache of FunctionalCollections from git://github.com/JuliaLang/FunctionalCollections.jl.git
INFO: Cloning cache of Hiccup from git://github.com/one-more-minute/Hiccup.jl.git
INFO: Cloning cache of HttpServer from git://github.com/JuliaWeb/HttpServer.jl.git
INFO: Cloning cache of Markdown from git://github.com/one-more-minute/Markdown.jl.git
INFO: Cloning cache of Mux from git://github.com/one-more-minute/Mux.jl.git
INFO: Cloning cache of Patchwork from git://github.com/shashi/Patchwork.jl.git
INFO: Cloning cache of Reactive from git://github.com/JuliaLang/Reactive.jl.git
INFO: Cloning cache of WebSockets from git://github.com/JuliaWeb/WebSockets.jl.git
INFO: Installing ArgParse v0.2.11
INFO: Installing ArrayViews v0.6.2
INFO: Installing Benchmark v0.1.0
INFO: Installing BinDeps v0.3.12
INFO: Installing Codecs v0.1.4
INFO: Installing Color v0.4.5
INFO: Installing DataArrays v0.2.15
INFO: Installing DataFrames v0.6.6
INFO: Installing Dates v0.4.4
INFO: Installing Docile v0.5.7
INFO: Installing Escher v0.0.3
INFO: Installing FactCheck v0.2.7
INFO: Installing FixedPointNumbers v0.0.7
INFO: Installing FunctionalCollections v0.1.2
INFO: Installing GZip v0.2.15
INFO: Installing GnuTLS v0.0.4
INFO: Installing Graphics v0.1.0
INFO: Installing Hiccup v0.0.0
INFO: Installing HttpCommon v0.0.12
INFO: Installing HttpParser v0.0.11
INFO: Installing HttpServer v0.0.12
INFO: Installing Lazy v0.8.4
INFO: Installing Markdown v0.3.0
INFO: Installing Mux v0.0.0
INFO: Installing Nettle v0.1.8
INFO: Installing Options v0.2.3
INFO: Installing Patchwork v0.1.4
INFO: Installing Reactive v0.2.0
INFO: Installing Reexport v0.0.2
INFO: Installing Requires v0.1.2
INFO: Installing SHA v0.0.4
INFO: Installing SortingAlgorithms v0.0.5
INFO: Installing StatsBase v0.6.15
INFO: Installing TextWrap v0.1.3
INFO: Installing URIParser v0.0.5
INFO: Installing WebSockets v0.0.6
INFO: Building HttpParser
WARNING: deprecated syntax "[a=>b, ...]" at /home/vagrant/.julia/v0.4/HttpParser/deps/build.jl:42.
Use "Dict(a=>b, ...)" instead.
INFO: Building Nettle
WARNING: deprecated syntax "[a=>b, ...]" at /home/vagrant/.julia/v0.4/Nettle/deps/build.jl:39.
Use "Dict(a=>b, ...)" instead.
WARNING: beginswith is deprecated, use startswith instead.
in depwarn at ./deprecated.jl:62
in beginswith at deprecated.jl:30
in available_versions at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:116
in package_available at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:111
in can_provide at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:608
in _find_library at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:451
in satisfy! at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:738 (repeats 2 times)
in anonymous at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:793
in include at ./boot.jl:254
in include_from_node1 at ./loading.jl:133
in evalfile at loading.jl:175 (repeats 2 times)
in anonymous at pkg/entry.jl:652
in cd at ./file.jl:22
in build! at pkg/entry.jl:651
in build! at pkg/entry.jl:646 (repeats 4 times)
in build at pkg/entry.jl:663
in resolve at ./pkg/entry.jl:472
in edit at pkg/entry.jl:26
in anonymous at task.jl:365
while loading /home/vagrant/.julia/v0.4/Nettle/deps/build.jl, in expression starting on line 39
WARNING: beginswith is deprecated, use startswith instead.
in depwarn at ./deprecated.jl:62
in beginswith at deprecated.jl:30
in available_versions at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:124
in package_available at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:111
in can_provide at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:608
in _find_library at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:451
in satisfy! at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:738 (repeats 2 times)
in anonymous at /home/vagrant/.julia/v0.4/BinDeps/src/dependencies.jl:793
in include at ./boot.jl:254
in include_from_node1 at ./loading.jl:133
in evalfile at loading.jl:175 (repeats 2 times)
in anonymous at pkg/entry.jl:652
in cd at ./file.jl:22
in build! at pkg/entry.jl:651
in build! at pkg/entry.jl:646 (repeats 4 times)
in build at pkg/entry.jl:663
in resolve at ./pkg/entry.jl:472
in edit at pkg/entry.jl:26
in anonymous at task.jl:365
while loading /home/vagrant/.julia/v0.4/Nettle/deps/build.jl, in expression starting on line 39
INFO: Building GnuTLS
WARNING: deprecated syntax "{a=>b, ...}" at /home/vagrant/.julia/v0.4/GnuTLS/deps/build.jl:15.
Use "Dict{Any,Any}(a=>b, ...)" instead.
WARNING: deprecated syntax "{a=>b, ...}" at /home/vagrant/.julia/v0.4/GnuTLS/deps/build.jl:48.
Use "Dict{Any,Any}(a=>b, ...)" instead.
WARNING: deprecated syntax "{a=>b, ...}" at /home/vagrant/.julia/v0.4/GnuTLS/deps/build.jl:53.
Use "Dict{Any,Any}(a=>b, ...)" instead.
WARNING: deprecated syntax "[a=>b, ...]" at /home/vagrant/.julia/v0.4/GnuTLS/deps/build.jl:55.
Use "Dict(a=>b, ...)" instead.
INFO: Package database updated
>>> 'Pkg.test("Escher")' log
INFO: Testing Escher
ERROR: LoadError: LoadError: LoadError: syntax: local declaration in global scope
in include at ./boot.jl:254
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:55
in include at ./boot.jl:254
in include_from_node1 at ./loading.jl:133
in reload_path at ./loading.jl:157
in _require at ./loading.jl:69
in require at ./loading.jl:52
in include at ./boot.jl:254
in include_from_node1 at loading.jl:133
in process_options at ./client.jl:304
in _start at ./client.jl:404
while loading /home/vagrant/.julia/v0.4/Reactive/src/Reactive.jl, in expression starting on line 33
while loading /home/vagrant/.julia/v0.4/Escher/src/Escher.jl, in expression starting on line 11
while loading /home/vagrant/.julia/v0.4/Escher/test/runtests.jl, in expression starting on line 1
===============================[ ERROR: Escher ]================================
failed process: Process(`/home/vagrant/julia/bin/julia --check-bounds=yes --code-coverage=none --color=no /home/vagrant/.julia/v0.4/Escher/test/runtests.jl`, ProcessExited(1)) [1]
================================================================================
INFO: No packages to install, update or remove
ERROR: Escher had test errors
in error at ./error.jl:21
in test at pkg/entry.jl:746
in anonymous at pkg/dir.jl:31
in cd at file.jl:22
in cd at pkg/dir.jl:31
in test at pkg.jl:71
in process_options at ./client.jl:280
in _start at ./client.jl:404
>>> End of log
I see this error:
julia> using Escher
WARNING: module Patchwork should explicitly import << from Base
WARNING: module DataStructures should explicitly import < from Base
WARNING: module DataStructures should explicitly import <= from Base
WARNING: module JSON should explicitly import colon from Base
WARNING: module JSON should explicitly import colon from Base
ERROR: LoadError: LoadError: syntax: malformed expression
in include at /Users/eschnett/julia/lib/julia/sys.dylib
in include_from_node1 at /Users/eschnett/julia/lib/julia/sys.dylib
in include at /Users/eschnett/julia/lib/julia/sys.dylib
in include_from_node1 at /Users/eschnett/julia/lib/julia/sys.dylib
in require at /Users/eschnett/julia/lib/julia/sys.dylib
while loading /Users/eschnett/.julia/v0.4/Escher/src/basics/util.jl, in expression starting on line 62
while loading /Users/eschnett/.julia/v0.4/Escher/src/Escher.jl, in expression starting on line 22
This is with a fresh version of Julia/master.
@api
macro to generate API methodsconvert(::Type{Tile})
methods for Gadfly, Compose, DataFrames, and SymPy@manipulate
I've been following the installation / usage instructions for Escher here: https://shashi.github.io/Escher.jl/ and am running into a problem on Version 0.4.0-dev+6112 (2015-07-20 17:52 UTC) Commit 189a043 (3 days old master)
:
julia> using Escher
julia> include(Pkg.dir("Escher", "src", "cli", "serve.jl"))
WARNING: deprecated syntax "tags (" at /Users/seth/.julia/v0.4/Hiccup/src/Hiccup.jl:87.
Use "tags(" instead.
WARNING: deprecated syntax "exporttags (" at /Users/seth/.julia/v0.4/Hiccup/src/Hiccup.jl:95.
Use "exporttags(" instead.
WARNING: deprecated syntax "expand (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:30.
Use "expand(" instead.
WARNING: deprecated syntax "switch (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:62.
Use "switch(" instead.
WARNING: deprecated syntax "> (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:111.
Use ">(" instead.
WARNING: deprecated syntax ">> (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:132.
Use ">>(" instead.
WARNING: deprecated syntax "as (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:159.
Use "as(" instead.
WARNING: deprecated syntax "_ (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:177.
Use "_(" instead.
WARNING: deprecated syntax "or (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:181.
Use "or(" instead.
WARNING: deprecated syntax "dotimes (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:193.
Use "dotimes(" instead.
WARNING: deprecated syntax "oncethen (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:205.
Use "oncethen(" instead.
WARNING: deprecated syntax "defonce (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:222.
Use "defonce(" instead.
WARNING: deprecated syntax "with (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:236.
Use "with(" instead.
WARNING: deprecated syntax "cond (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:252.
Use "cond(" instead.
WARNING: deprecated syntax "errs (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:275.
Use "errs(" instead.
WARNING: deprecated syntax "dynamic (" at /Users/seth/.julia/v0.4/Lazy/src/dynamic.jl:73.
Use "dynamic(" instead.
WARNING: deprecated syntax "rec (" at /Users/seth/.julia/v0.4/Lazy/src/tail.jl:53.
Use "rec(" instead.
WARNING: deprecated syntax "bounce (" at /Users/seth/.julia/v0.4/Lazy/src/tail.jl:89.
Use "bounce(" instead.
WARNING: deprecated syntax "bounce (" at /Users/seth/.julia/v0.4/Lazy/src/tail.jl:102.
Use "bounce(" instead.
WARNING: deprecated syntax "app (" at /Users/seth/.julia/v0.4/Mux/src/server.jl:14.
Use "app(" instead.
... and here it appears to hang. No other output, no listening port, no return to REPL until I hit ^C.
I'm trying out Escher for the first time. I've just installed the latest julia 0.4 nightly and have updated all my packages (as of 6 Sept 2015). When I try to serve up any of the examples, I just get a blank page in the browser (tested using Chrome and Safari). Selecting "View Source" from the browser clearly shows some HTML with a lot of Javascript code, but I never see a webpage.
$ escher --serve layout.jl
lots of deprecation warnings....
Listening on 0.0.0.0:5555...
What am I doing wrong?
If I change the plot command in plot.jl
to the following
plot([x -> sin(x + phase), x -> cos(x + phase)], 0, 6,
xintercept=[-.55, +.5], Geom.vline(color="purple", size=0.2mm))
I get the following error on the console:
Error handling websocket connection:
type: typeassert: expected Union(Measure{S,T},Nothing), got Length{:mm}
in anonymous at /Users/aviks/.julia/v0.3/Canvas/examples/plot.jl:9
in main at /Users/aviks/.julia/v0.3/Canvas/examples/plot.jl:8
in uisocket at /Users/aviks/.julia/v0.3/Canvas/bin/canvasd:111
in anonymous at /Users/aviks/.julia/v0.3/Mux/src/Mux.jl:15
in anonymous at /Users/aviks/.julia/v0.3/Mux/src/Mux.jl:8
in splitquery at /Users/aviks/.julia/v0.3/Mux/src/basics.jl:28
in anonymous at /Users/aviks/.julia/v0.3/Mux/src/Mux.jl:8
in wcatch at /Users/aviks/.julia/v0.3/Mux/src/websockets.jl:12
in anonymous at /Users/aviks/.julia/v0.3/Mux/src/Mux.jl:8
in todict at /Users/aviks/.julia/v0.3/Mux/src/basics.jl:21
in anonymous at /Users/aviks/.julia/v0.3/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/aviks/.julia/v0.3/Mux/src/Mux.jl:8
in anonymous at /Users/aviks/.julia/v0.3/Mux/src/server.jl:36
in handle at /Users/aviks/.julia/v0.3/WebSockets/src/WebSockets.jl:287
in on_message_complete at /Users/aviks/.julia/v0.3/HttpServer/src/HttpServer.jl:296
in on_message_complete at /Users/aviks/.julia/v0.3/HttpServer/src/RequestParser.jl:99
in http_parser_execute at /Users/aviks/.julia/v0.3/HttpParser/src/HttpParser.jl:106
in add_data at /Users/aviks/.julia/v0.3/HttpServer/src/RequestParser.jl:148
in process_client at /Users/aviks/.julia/v0.3/HttpServer/src/HttpServer.jl:267
in anonymous at task.jl:340
If I change the size=0.2mm
to size=0.2em
, then the error becomes:
type: typeassert: expected Union(Measure{S,T},Nothing), got Length{:em}
Currently, canvasd only serves .jl files out of its current working directory.
There should be of specifying a base directory from which to serve files. Forward relative paths from this directory should be followed. Backward relative paths should not be allowed.
It may be worth thinking about a long term configuration format. Command line flags only? INI/Toml files? JSON?
Right now, all assets are loaded from Escher's assets folder, uncompressed and un-concatenated. This is of course not ideal.
Here is a rough sketch of what this could look like in the future:
push!(window.assets, ["a.html", "b.css, "c.js"])
a, b, and c would get concatenated and gzipped (the first time they are needed), and cached in a file under assets/cache
with some canonical name like
string(join(sort(["a.html", "b.css", "c.js"]), "+") |> hash) * ".html.gz"
Problem 1: Some polymer files are repeatedly included in others. So if window.assets is pushed to a second time, it should be possible to exclude what was already sent. And the corresponding statements must be stripped. This is not only nice to have, not having this is a fatal error since elements will try to register themselves more than once.
Problem 2: cache invalidation. If one is editing the assets file, when should they be cleared? a manual way to do it can be provided: escher --clear-cache
.
So, doing everything mentioned in #3 removes all error messages. However, then navigating to, for eg. http://localhost:8000/examples/toolbar.jl shows a blank page in the browser.
View source in the browser shows: https://gist.github.com/aviks/16e883c1ac50662a5a02
Resources fetched in the browser as follows:
So what can I do to troubleshoot this further?
PS: did I say it already... hugely excited about Canvas.jl!!
function main(window)
push!(window.assets,"layout2")
A = vbox(md"Hello, world!"|>
fontcolor("#FFFFFF")|>
pad(1em)|>
fillcolor("#006699"),
md"Howdy!"|>
fontcolor("#FFFFFF")|>
pad(1em)|>
fillcolor("#669933")
)
end
does what I expect it to do. There are two boxes on top of each other, a blue one which says, "Hello, world!" and a green one which says "Howdy!"
However, say you want to make this layout the first page of a set of pages:
function main(window)
push!(window.assets,"layout2")
A = vbox(md"Hello, world!"|>
pad(1em)|>
fillcolor("#006699"),
md"Howdy!"|>
pad(1em)|>
fillcolor("#669933")
)
pages([A])
end
This collapses the boxes and puts them on top of each other. The text ends up hanging outside the boxes.
Maybe I'm not understanding something about how pages
works, but it seems like you should be able to use the layout API on individual pages.
Let me know if I can fix something easily, or if we just need more docs about higher-order layouts.
Shashi,
Is there currently a way to a daisy chain signals from one widget to another?
That is: if I have an Input into one widget, that itself creates an input used by another widget.
Getting error messages about: push! called when another signal is still updating
It looks like there was a reference to something like this in an issue raised by @Keno on JuliaGizmos/Reactive.jl#62.
Any suggestions here or workarounds?
Thanks,
Michael
Hi! When I try to run and access an example of escher.jl , I have a problem of segment fault...Does anyone know why?
Listening on 0.0.0.0:5555...
signal (11): Falha de segmentação
unknown function (ip: -370066064)
write at /usr/bin/../lib64/julia/sys.so (unknown line)
write at ./iobuffer.jl:235
I am using Fedora 22.
Thanks
In the browser tab, it shows up as the page URL, "http://escher-jl.org/".
Btw, a favicon would be nice too.
@shashi : I was wondering if there are any example of truly dynamic layouts?
For example, do you have an example of some callback that would add a new tab?
In a further step down this road, do you have any thoughts on how to integrate something like a gridstack-like drag/drop capability: http://troolee.github.io/gridstack.js/
In that case, not sure if julia would owns the layout model.
(BTW I see that polymer has some core-drag-drop capability, but the dynamic layout from gridstack is a bit more interesting - https://www.polymer-project.org/0.5/docs/elements/core-drag-drop.html)
Thanks,
Michael
What is this trying to get me to do?
HQSML-146932:examples rzwitc200$ ../bin/escherd
ERROR: LoadError: ArgumentError: Mux not found in path
in require at ./loading.jl:49
in include at ./boot.jl:250
in include_from_node1 at loading.jl:129
in process_options at ./client.jl:308
in _start at ./client.jl:407
while loading /Users/rzwitc200/.julia/v0.3/Escher/bin/escherd, in expression starting on line 4
Trying to experiment with using Escher for building a data dashboard. Would love some docs. Conversely, if you need a bit of help with building the docs itself, I can fork the repo and work on a gh-pages
branch.
Given the following watch! definition, where s is a sample().
watch!(s, textinput( "Initial Value" , name = "field0", label = string( "Enter field0")))
the sampler fails to get the initial value, tracing this through
// Line 22 behavior.html
// initialize
this.value = elem[self.attr] || elem.getAttribute(self.attr)
On an input field 'elem' references the outer paper-input-decorator and not the input field,
<paper-input-decorator is="undefined">
<input is="core-input" name="line0" id="line0">
<watch-state is="undefined"></watch-state>
</paper-input-decorator>
When the signal is sampled the result is an empty value unless the user has updated the field. As a kludge the following works, but is assuming that the first element is the input field.
this.value = elem[self.attr] || elem.getAttribute(self.attr)
|| elem.firstChild && ( elem.firstChild[self.attr]
|| elem.firstChild.getAttribute(self.attr) )
When i remove the @doc
calls in the return expression of macro api
macroexpand(quote @api test => TestType1 begin
arg(a::FloatingPoint)
end end)
results in
begin
immutable TestType1
a::FloatingPoint
end
test(#445#a) = TestType1(#445#a)
end
but normally, it expands to this
begin
immutable TestType1
a::FloatingPoint
end
begin # /home/brian/.julia/v0.3/Docile/src/Legacy/atdoc.jl, line 140:
begin # /home/brian/.julia/v0.3/Docile/src/Legacy/atdoc.jl, line 9:
if Docile.Legacy.!(Docile.Legacy.isdefined(:__DOCILE_STRINGS__)) # line 10:
const __DOCILE_STRINGS__ = Docile.Legacy.ObjectIdDict() # line 11:
const __DOCILE_METADATA__ = Docile.Legacy.ObjectIdDict() # line 12:
Docile.Legacy.nothing
end
end # line 141:
#481#old = if isdefined(:test)
(Docile.Legacy.Set{Docile.Legacy.Method})(Docile.Legacy.methods(test))
else
(Docile.Legacy.Set{Docile.Legacy.Method})()
end # line 142:
test(#480#a) = TestType1(#480#a) # line 143:
for #482#m = Docile.Legacy.setdiff((Docile.Legacy.Set{Docile.Legacy.Method})(Docile.Legacy.methods(test)),#481#old) # line 144:
(Docile.Legacy.metadata())[#482#m] = Docile.Legacy.data(#482#m,("",[:typ=>:TestType1,:name=>:test,:args=>{{:type=>:FloatingPoint,:curried=>false,:coerced=>true,:kwarg=>false,:name=>:a}}]); category=:method,codesource=(336,""),code=$(Expr(:copyast, :(:(test(#480#a) = TestType1(#480#a))))))
end # line 150:
test
end
end
eval(ans)
results in
error compiling anonymous: type definition not allowed inside a local scope while loading In[15], in expression starting on line 1
Nothing is served using:
~/.julia/Escher/bin/escher --serve
http://localhost:5555/plotting.jl
results in:
This webpage is not available
ERR_CONNECTION_REFUSED
julia runtests.jl
in ~/.julia/Escher/bin/escher/test results in:
ERROR: test1 not defined
in include at /Applications/Julia-0.3.9.app/Contents/Resources/julia/lib/julia/sys.dylib
in include_from_node1 at /Applications/Julia-0.3.9.app/Contents/Resources/julia/lib/julia/sys.dylib
in include at /Applications/Julia-0.3.9.app/Contents/Resources/julia/lib/julia/sys.dylib
in include_from_node1 at loading.jl:128
in process_options at /Applications/Julia-0.3.9.app/Contents/Resources/julia/lib/julia/sys.dylib
in _start at /Applications/Julia-0.3.9.app/Contents/Resources/julia/lib/julia/sys.dylib
while loading /Users/mac/.julia/Escher/test/macros.jl, in expression starting on line 5
while loading /Users/mac/.julia/Escher/test/runtests.jl, in expression starting on line 4
I am running OSX, using Julia Version 0.3.9 (2015-05-30 11:24 UTC).
Eager to play around with this, but I think I'm missing a file. Did you forget to commit it, or forget to not include it?
I have a property on a DOM node (not an attribute). When a patch is applied which just changes the property it fails to trigger a polymer change event. The property is correctly updated and if I force a redraw it works. Any suggestions? As a workaround have placed a hash of the data as an attribute, which gets triggered correctly, this worked ok in 0.5 but with 1.0 the properties are updated after the attributes, so the data is not updated till after the event is triggered.
I can put the data on the attribute, but that makes for very large documents.
I'm assuming that the virtual dom is not fully using the shady API to make updates? Perhaps there should be an explicit call in the virtual dom for this form of update ?
Any help appreciated.
Gitter/Github integration can be done by adding a Gitter badge to the README.md
.
Example for one of my repos:
[![Join the chat at https://gitter.im/Ismael-VC/HydrocarbonNets.jl](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Ismael-VC/HydrocarbonNets.jl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
This would allow us to have a good way to communicate and share stuff, it can be used with IRC also.
There are a lot of examples already: https://gitter.im/explore/tags/julia
This is one of the first examples on the escher-jl.org homepage, and it doesn't work.
function main(window)
push!(window.assets, "tex")
tex("""f(x) = \int_{-\infty}^\infty
\hat f(\xi)\,e^{2 \pi i \xi x}
\,d\xi""")
end
When run, it gives this error message (in the browser window):
LoadError: syntax: invalid escape sequence
while loading /Users/leah/src/learning-julia/code/escher-files/hello.jl, in expression starting on line 24
in loadfile at /Users/leah/.julia/v0.4/Escher/src/cli/serve.jl:26
in anonymous at /Users/leah/.julia/v0.4/Escher/src/cli/serve.jl:205
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:15
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in splitquery at /Users/leah/.julia/v0.4/Mux/src/basics.jl:28
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in wcatch at /Users/leah/.julia/v0.4/Mux/src/websockets_integration.jl:12
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in todict at /Users/leah/.julia/v0.4/Mux/src/basics.jl:21
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:12 (repeats 2 times)
in anonymous at /Users/leah/.julia/v0.4/Mux/src/Mux.jl:8
in anonymous at /Users/leah/.julia/v0.4/Mux/src/server.jl:38
in handle at /Users/leah/.julia/v0.4/WebSockets/src/WebSockets.jl:354
in on_message_complete at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:393
in on_message_complete at /Users/leah/.julia/v0.4/HttpServer/src/RequestParser.jl:104
in http_parser_execute at /Users/leah/.julia/v0.4/HttpParser/src/HttpParser.jl:92
in process_client at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:365
in anonymous at task.jl:448
I've looked at the code that's actually running (and that does work), and I can't see what the difference is:
tex_eg = """f(x) = \\int_{-\\infty}^\\infty
\\hat f(\\xi)\,e^{2 \\pi i \\xi x}
\\,d\\xi
"""
I tried adding an extra backslash in front of the \,e^
, since that was the only place with one \
, but that did not cause any problems.
Trying rule 2 example 1 from https://shashi.github.io/Escher.jl/ gives error in padding. Seems to apply to all calls of pad
. Escher 0.1.0
Error:
'pad_outer' has no method matching pad_outer(::Measure{MeasureNil,MeasureNil}, ::FontColor)
seth@schroeder:~/dev/julia/julia$ julia
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: http://docs.julialang.org
_ _ _| |_ __ _ | Type "help()" for help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.4.0-dev+6817 (2015-08-18 15:25 UTC)
_/ |\__'_|_|_|\__'_| | Commit 77bef6e (0 days old master)
|__/ | x86_64-apple-darwin14.5.0
julia> using Escher
WARNING: module Patchwork should explicitly import << from Base
WARNING: module JSON should explicitly import colon from Base
WARNING: module JSON should explicitly import colon from Base
WARNING: module Escher should explicitly import * from Base
WARNING: module Escher should explicitly import / from Base
WARNING: module Escher should explicitly import + from Base
WARNING: module Escher should explicitly import - from Base
julia> include(Pkg.dir("Escher", "src", "cli", "serve.jl"))
WARNING: deprecated syntax "expand (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:30.
Use "expand(" instead.
WARNING: deprecated syntax "switch (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:62.
Use "switch(" instead.
WARNING: deprecated syntax "> (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:111.
Use ">(" instead.
WARNING: deprecated syntax ">> (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:132.
Use ">>(" instead.
WARNING: deprecated syntax "as (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:159.
Use "as(" instead.
WARNING: deprecated syntax "_ (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:177.
Use "_(" instead.
WARNING: deprecated syntax "or (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:181.
Use "or(" instead.
WARNING: deprecated syntax "dotimes (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:193.
Use "dotimes(" instead.
WARNING: deprecated syntax "oncethen (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:205.
Use "oncethen(" instead.
WARNING: deprecated syntax "defonce (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:222.
Use "defonce(" instead.
WARNING: deprecated syntax "with (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:236.
Use "with(" instead.
WARNING: deprecated syntax "cond (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:252.
Use "cond(" instead.
WARNING: deprecated syntax "errs (" at /Users/seth/.julia/v0.4/Lazy/src/macros.jl:275.
Use "errs(" instead.
WARNING: deprecated syntax "dynamic (" at /Users/seth/.julia/v0.4/Lazy/src/dynamic.jl:73.
Use "dynamic(" instead.
WARNING: deprecated syntax "rec (" at /Users/seth/.julia/v0.4/Lazy/src/tail.jl:53.
Use "rec(" instead.
WARNING: deprecated syntax "bounce (" at /Users/seth/.julia/v0.4/Lazy/src/tail.jl:89.
Use "bounce(" instead.
WARNING: deprecated syntax "bounce (" at /Users/seth/.julia/v0.4/Lazy/src/tail.jl:102.
Use "bounce(" instead.
WARNING: module Lazy should explicitly import * from Base
WARNING: module Lazy should explicitly import == from Base
WARNING: module Lazy should explicitly import + from Base
WARNING: module Lazy should explicitly import - from Base
WARNING: both MacroTools and Lazy export "isexpr"; uses of it in module Hiccup must be qualified
ERROR: LoadError: LoadError: LoadError: UndefVarError: isexpr not defined
in include at /usr/local/julia-latest/lib/julia/sys.dylib
in include_from_node1 at /usr/local/julia-latest/lib/julia/sys.dylib
in require at /usr/local/julia-latest/lib/julia/sys.dylib
in include at /usr/local/julia-latest/lib/julia/sys.dylib
in include_from_node1 at /usr/local/julia-latest/lib/julia/sys.dylib
in require at /usr/local/julia-latest/lib/julia/sys.dylib
in include at /usr/local/julia-latest/lib/julia/sys.dylib
in include_from_node1 at /usr/local/julia-latest/lib/julia/sys.dylib
while loading /Users/seth/.julia/v0.4/Hiccup/src/Hiccup.jl, in expression starting on line 102
while loading /Users/seth/.julia/v0.4/Mux/src/Mux.jl, in expression starting on line 20
while loading /Users/seth/.julia/v0.4/Escher/src/cli/serve.jl, in expression starting on line 5
Things left to do
paper-input-decorator
instead of paper-input
with features viz.
Dict
sI just downloaded this package and tried to run it according to the directions in the readme. This is the output I got:
$ escher --serve
WARNING: `require` is deprecated, use `using` or `import` instead
in depwarn at ./deprecated.jl:73
in require at deprecated.jl:663
in include at ./boot.jl:260
in include_from_node1 at ./loading.jl:271
in require at ./loading.jl:210
in include at ./boot.jl:260
in include_from_node1 at ./loading.jl:271
in process_options at ./client.jl:308
in _start at ./client.jl:411
while loading /Users/leah/.julia/v0.4/ArgParse/src/ArgParse.jl, in expression starting on line 1
WARNING: module Escher should explicitly import * from Base
WARNING: module Escher should explicitly import / from Base
WARNING: module Escher should explicitly import + from Base
WARNING: module Escher should explicitly import - from Base
WARNING: New definition
write(#T<:Base.IO, HttpCommon.Response) at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:179
is ambiguous with:
write(#T<:Base.AbstractPipe, Any...) at stream.jl:548.
To fix, define
write(#T<:Base.AbstractPipe, HttpCommon.Response)
before the new definition.
WARNING: New definition
write(#T<:Base.IO, HttpCommon.Response) at /Users/leah/.julia/v0.4/HttpServer/src/HttpServer.jl:179
is ambiguous with:
write(#T<:Base.DevNullStream, Any...) at process.jl:95.
To fix, define
write(#T<:Base.DevNullStream, HttpCommon.Response)
before the new definition.
WARNING: deprecated syntax "app (" at /Users/leah/.julia/v0.4/Mux/src/server.jl:14.
Use "app(" instead.
ERROR: LoadError: LoadError: LoadError: LoadError: TypeError: Tuple: in parameter, expected Type{T}, got Tuple{DataType,DataType}
in include at ./boot.jl:260
in include_from_node1 at ./loading.jl:271
in include at ./boot.jl:260
in include_from_node1 at ./loading.jl:271
in require at ./loading.jl:210
in include at ./boot.jl:260
in include_from_node1 at ./loading.jl:271
in include at ./boot.jl:260
in include_from_node1 at ./loading.jl:271
in process_options at ./client.jl:308
in _start at ./client.jl:411
while loading /Users/leah/.julia/v0.4/Mux/src/websockets.jl, in expression starting on line 3
while loading /Users/leah/.julia/v0.4/Mux/src/Mux.jl, in expression starting on line 26
while loading /Users/leah/.julia/v0.4/Escher/src/cli/serve.jl, in expression starting on line 5
while loading /usr/local/bin/escher, in expression starting on line 7
I'm running on a Julia I built from scratch today. (I ran into other issues with this package when I tried to run with Julia 0.3, which is why I updated.) I'm on a Mac.
$ julia --version
julia version 0.4.0-pre
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.