 bondscell_results $ed461518-3a1b-4fe3-b54e-9d4da9707b63queued¤logsrunning¦outputbody<div class="markdown"><h1 id="How-to-get-globals-inside-a-module?">How to get globals inside a <code>module</code>?</h1>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC3persist_js_state·has_pluto_hook_features§cell_id$ed461518-3a1b-4fe3-b54e-9d4da9707b63depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$24281688-3e37-4e2c-aeea-97c46118bcb0queued¤logsrunning¦outputbody
<div class="markdown"><p>Julia: big disconnect between what package devs document and what the general audience needs to read.</p>
<p>Why did pandas succeed? Their documentation explains usage first, implementation/details second. Julia docs generally put math/philosophy too early.</p>
<p>Good project for new contributors might be to &quot;port scikit-learn or pandas docs to their Julia equivalents&quot;. But maybe also explain some math/philosophy as side notes. Fons and Panagiotis can meet with BE :&#41;</p>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC3g'persist_js_state·has_pluto_hook_features§cell_id$24281688-3e37-4e2c-aeea-97c46118bcb0depends_on_disabled_cells§runtime Hpublished_object_keysdepends_on_skipped_cells§errored$cf74d2ee-1e65-4a46-bf7d-805d968f38fequeued¤logsrunning¦outputbodymsgFcannot assign a value to imported variable workspace#3.x from module Astacktracecall_shorttop-level scopeinlined£urlpathnonesource_packagecalltop-level scopelinfo_typeCore.CodeInfolinefilenonefunctop-level scopeparent_modulefrom_ccall_shorteval(m::Module, e::Any)inlined£urlEfile:///opt/hostedtoolcache/julia/1.12.6/x64/share/julia/base/boot.jlpath./boot.jlsource_packageCorecalleval(m::Module, e::Any)linfo_typeCore.MethodInstancelinefileboot.jlfuncevalparent_moduleCorefrom_ccall_shortmacro expansioninlinedãurlpathw/home/runner/work/community-call-notes/community-call-notes/2023/02-28/notes.jl#==#cf74d2ee-1e65-4a46-bf7d-805d968f38fesource_packagecallmacro expansionlinfo_typeNothinglinefile0notes.jl#==#cf74d2ee-1e65-4a46-bf7d-805d968f38fefuncmacro expansionparent_modulefrom_c«plain_error;cannot assign a value to imported variable workspace#3.x from module A
Stacktrace:
 [1] top-level scope
   @ none:1
 [2] eval(m::Module, e::Any)
   @ Core ./boot.jl:489
 [3] macro expansion
   @ ~/work/community-call-notes/community-call-notes/2023/02-28/notes.jl#==#cf74d2ee-1e65-4a46-bf7d-805d968f38fe:1 [inlined]mime'application/vnd.pluto.stacktrace+objectrootassigneelast_run_timestampAڅC8_persist_js_state·has_pluto_hook_features§cell_id$cf74d2ee-1e65-4a46-bf7d-805d968f38fedepends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efaqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAڅC3xٰpersist_js_state·has_pluto_hook_features§cell_id$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efadepends_on_disabled_cells§runtime kpublished_object_keysdepends_on_skipped_cells§errored$9bacb0aa-d684-4e07-9c71-8e4b062c85c1queued¤logsrunning¦outputbody`<div class="markdown"><h1 id="Rust-project?">Rust project?</h1>
<p>Are there any rust projects that future Pluto devs can work on?</p>
<h2 id="Ideas:">Ideas:</h2>
<h3 id="Code-for-a-live-collaboration-server,-similar-to-bore.pub">Code for a live collaboration server, similar to <a href="https://github.com/ekzhang/bore">bore.pub</a></h3>
<p>Paul started work on this &#40;in Go not Rust&#41;:</p>
<p>The server: <a href="https://gist.github.com/Pangoraw/c245762d78f5e0c636ef0bdd5f750c9e">https://gist.github.com/Pangoraw/c245762d78f5e0c636ef0bdd5f750c9e</a></p>
<p>The client: <a href="https://github.com/fonsp/Pluto.jl/tree/ws_proxy">https://github.com/fonsp/Pluto.jl/tree/ws_proxy</a></p>
<p>We also updated our GSOC list: <a href="https://github.com/JuliaLang/www.julialang.org/pull/1848">https://github.com/JuliaLang/www.julialang.org/pull/1848</a></p>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC32persist_js_state·has_pluto_hook_features§cell_id$9bacb0aa-d684-4e07-9c71-8e4b062c85c1depends_on_disabled_cells§runtime mpublished_object_keysdepends_on_skipped_cells§errored$44bdad24-b78a-11ed-1ec6-bbe460258abbqueued¤logsrunning¦outputbodyN<div class="markdown"><h1 id="Notes-28-feb-2023">Notes 28 feb 2023</h1>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC3i#persist_js_state·has_pluto_hook_features§cell_id$44bdad24-b78a-11ed-1ec6-bbe460258abbdepends_on_disabled_cells§runtime ܂published_object_keysdepends_on_skipped_cells§errored$146e6a55-91db-4d5c-acd3-dbdc36a638f6queued¤logsrunning¦outputbodymsgFcannot assign a value to imported variable workspace#3.x from module Astacktracecall_shortsetproperty!inlinedãurlpath./Base_compiler.jlsource_packagecallsetproperty!linfo_typeNothinglineGfileBase_compiler.jlfuncsetproperty!parent_modulefrom_ccall_shortsetproperty!inlinedãurlpath./Base_compiler.jlsource_packagecallsetproperty!linfo_typeNothinglineEfileBase_compiler.jlfuncsetproperty!parent_modulefrom_ccall_shortmacro expansioninlinedãurlpathw/home/runner/work/community-call-notes/community-call-notes/2023/02-28/notes.jl#==#146e6a55-91db-4d5c-acd3-dbdc36a638f6source_packagecallmacro expansionlinfo_typeNothinglinefile0notes.jl#==#146e6a55-91db-4d5c-acd3-dbdc36a638f6funcmacro expansionparent_modulefrom_c«plain_errorScannot assign a value to imported variable workspace#3.x from module A
Stacktrace:
 [1] setproperty!
   @ ./Base_compiler.jl:71 [inlined]
 [2] setproperty!
   @ ./Base_compiler.jl:69 [inlined]
 [3] macro expansion
   @ ~/work/community-call-notes/community-call-notes/2023/02-28/notes.jl#==#146e6a55-91db-4d5c-acd3-dbdc36a638f6:1 [inlined]mime'application/vnd.pluto.stacktrace+objectrootassigneelast_run_timestampAڅC8persist_js_state·has_pluto_hook_features§cell_id$146e6a55-91db-4d5c-acd3-dbdc36a638f6depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$6288d48a-b00f-42e2-bab2-d413c45b32f0queued¤logsrunning¦outputbodyMain.var"workspace#3".Amimetext/plainrootassigneelast_run_timestampAڅC8.persist_js_state·has_pluto_hook_features§cell_id$6288d48a-b00f-42e2-bab2-d413c45b32f0depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9aqueued¤logsrunning¦outputbody13mimetext/plainrootassigneelast_run_timestampAڅC8>հpersist_js_state·has_pluto_hook_features§cell_id$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9adepends_on_disabled_cells§runtime*published_object_keysdepends_on_skipped_cells§errored$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71queued¤logsrunning¦outputbodyO<div class="markdown"><p>Maybe this will start working in Julia 1.9?</p>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC3dpersist_js_state·has_pluto_hook_features§cell_id$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71depends_on_disabled_cells§runtime 3published_object_keysdepends_on_skipped_cells§errored$3539f731-cc23-42a3-b038-e68ef067ee82queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAڅC5persist_js_state·has_pluto_hook_features§cell_id$3539f731-cc23-42a3-b038-e68ef067ee82depends_on_disabled_cells§runtime4Opublished_object_keysdepends_on_skipped_cells§errored$22913c3e-b0b0-4867-9de0-243584fa2e3dqueued¤logsrunning¦outputbody<div class="markdown"><h1 id="Julia-1.9">Julia 1.9</h1>
<p>Beta 4 seems much faster at precompilation that previous beta releases. We should redo the benchmarks to see if we still need to make changes here. :&#41;</p>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC3Kpersist_js_state·has_pluto_hook_features§cell_id$22913c3e-b0b0-4867-9de0-243584fa2e3ddepends_on_disabled_cells§runtime 4,published_object_keysdepends_on_skipped_cells§errored$6204d1f2-ef72-4433-8f92-fe96938a189bqueued¤logsrunning¦outputbody12mimetext/plainrootassigneexlast_run_timestampAڅC8xذpersist_js_state·has_pluto_hook_features§cell_id$6204d1f2-ef72-4433-8f92-fe96938a189bdepends_on_disabled_cells§runtime"published_object_keysdepends_on_skipped_cells§errored$0fab55d6-782b-417e-a5b8-9120c4016877queued¤logsrunning¦outputbodyٲ<div class="markdown"><p>Topics:</p>
<ul>
<li><p>JuliaSyntax.jl</p>
</li>
<li><p>Featured notebooks</p>
</li>
<li><p>Julia 1.9</p>
</li>
<li><p>Motivations</p>
</li>
</ul>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC3persist_js_state·has_pluto_hook_features§cell_id$0fab55d6-782b-417e-a5b8-9120c4016877depends_on_disabled_cells§runtime \published_object_keysdepends_on_skipped_cells§errored$dba7937e-77aa-434a-9722-b64fce78fd22queued¤logsrunning¦outputbodyprefixJuliaSyntax.ParseErrorelementssource## SourceFile ##
1 +text/plaindiagnosticsprefixJuliaSyntax.DiagnosticelementsprefixDiagnosticelementsfirst_byte4text/plainlast_byte3text/plainlevel:errortext/plainmessage"premature end of input"text/plaintypestructprefix_shortDiagnosticobjectid479f7b1ff76bb456!application/vnd.pluto.tree+objecttypeArrayprefix_shortobjectid70fe57135d35bccf!application/vnd.pluto.tree+objecttypestructprefix_shortParseErrorobjectid692fe116e39dc3damime!application/vnd.pluto.tree+objectrootassigneeexlast_run_timestampAڅC8q
tpersist_js_state·has_pluto_hook_features§cell_id$dba7937e-77aa-434a-9722-b64fce78fd22depends_on_disabled_cells§runtime   JHƵpublished_object_keysdepends_on_skipped_cells§errored$f0f440e2-7ae8-46ed-b28c-9063d4e512fdqueued¤logsrunning¦outputbodyc<div class="markdown"><h1 id="JuliaSyntax.jl"><a href="https://github.com/JuliaLang/JuliaSyntax.jl">JuliaSyntax.jl</a></h1>
<p>Is in the process of being merged in Julia core 🎉</p>
<p>Long time ago we talked about how to use it inside of Pluto.</p>
<p>Turns out to be quite simple&#33; It has a function <code>JuliaSyntax.parse</code> as alternative to <code>Meta.parse</code>.</p>
<h2 id="First-prototype&#33;">First prototype&#33;</h2>
<p><img src="https://user-images.githubusercontent.com/6933510/221932729-990e67b8-31c4-4d2a-b5cc-33e29aa12492.png" alt="" /></p>
<p>Will be easy to implement in Pluto because we only do parsing in the pluto server, not the notebook server. So we can just add JuliaSyntax as dependency to Pluto.</p>
<h2 id="Long-TTFP">Long TTFP</h2>
<p>First parse takes 8 seconds on binder. Needs investigation :&#41; but eventually it will be included in Julia with zero latency. Probably there is an easy fix :&#41;</p>
<h2 id="Frontend">Frontend</h2>
<p>Implemented using <a href="https://codemirror.net/examples/lint/"><code>@codemirror/lint</code></a> which looks very powerful&#33;</p>
</div>mimetext/htmlrootassigneelast_run_timestampAڅC3persist_js_state·has_pluto_hook_features§cell_id$f0f440e2-7ae8-46ed-b28c-9063d4e512fddepends_on_disabled_cells§runtime 	ipublished_object_keysdepends_on_skipped_cells§errored$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fdqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAڅC3persist_js_state·has_pluto_hook_features§cell_id$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fddepends_on_disabled_cells§runtime Npublished_object_keysdepends_on_skipped_cells§errored±cell_dependencies $ed461518-3a1b-4fe3-b54e-9d4da9707b63precedence_heuristic	cell_id$ed461518-3a1b-4fe3-b54e-9d4da9707b63downstream_cells_mapupstream_cells_map@md_strgetindex$24281688-3e37-4e2c-aeea-97c46118bcb0precedence_heuristic	cell_id$24281688-3e37-4e2c-aeea-97c46118bcb0downstream_cells_mapupstream_cells_map@md_strgetindex$cf74d2ee-1e65-4a46-bf7d-805d968f38feprecedence_heuristic	cell_id$cf74d2ee-1e65-4a46-bf7d-805d968f38fedownstream_cells_mapupstream_cells_mapCoreA$6288d48a-b00f-42e2-bab2-d413c45b32f0Core.eval$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efaprecedence_heuristic	cell_id$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efadownstream_cells_mapupstream_cells_map$9bacb0aa-d684-4e07-9c71-8e4b062c85c1precedence_heuristic	cell_id$9bacb0aa-d684-4e07-9c71-8e4b062c85c1downstream_cells_mapupstream_cells_map@md_strgetindex$44bdad24-b78a-11ed-1ec6-bbe460258abbprecedence_heuristic	cell_id$44bdad24-b78a-11ed-1ec6-bbe460258abbdownstream_cells_mapupstream_cells_map@md_strgetindex$146e6a55-91db-4d5c-acd3-dbdc36a638f6precedence_heuristic	cell_id$146e6a55-91db-4d5c-acd3-dbdc36a638f6downstream_cells_mapupstream_cells_mapA$6288d48a-b00f-42e2-bab2-d413c45b32f0$6288d48a-b00f-42e2-bab2-d413c45b32f0precedence_heuristic	cell_id$6288d48a-b00f-42e2-bab2-d413c45b32f0downstream_cells_mapA$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9a$146e6a55-91db-4d5c-acd3-dbdc36a638f6$cf74d2ee-1e65-4a46-bf7d-805d968f38feupstream_cells_mapx$6204d1f2-ef72-4433-8f92-fe96938a189b$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9aprecedence_heuristic	cell_id$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9adownstream_cells_mapupstream_cells_mapA$6288d48a-b00f-42e2-bab2-d413c45b32f0$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71precedence_heuristic	cell_id$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71downstream_cells_mapupstream_cells_map@md_strgetindex$3539f731-cc23-42a3-b038-e68ef067ee82precedence_heuristiccell_id$3539f731-cc23-42a3-b038-e68ef067ee82downstream_cells_mapJuliaSyntax$dba7937e-77aa-434a-9722-b64fce78fd22upstream_cells_map$22913c3e-b0b0-4867-9de0-243584fa2e3dprecedence_heuristic	cell_id$22913c3e-b0b0-4867-9de0-243584fa2e3ddownstream_cells_mapupstream_cells_map@md_strgetindex$6204d1f2-ef72-4433-8f92-fe96938a189bprecedence_heuristic	cell_id$6204d1f2-ef72-4433-8f92-fe96938a189bdownstream_cells_mapx$6288d48a-b00f-42e2-bab2-d413c45b32f0upstream_cells_map$0fab55d6-782b-417e-a5b8-9120c4016877precedence_heuristic	cell_id$0fab55d6-782b-417e-a5b8-9120c4016877downstream_cells_mapupstream_cells_map@md_strgetindex$dba7937e-77aa-434a-9722-b64fce78fd22precedence_heuristic	cell_id$dba7937e-77aa-434a-9722-b64fce78fd22downstream_cells_mapexupstream_cells_mapJuliaSyntax$3539f731-cc23-42a3-b038-e68ef067ee82JuliaSyntax.parseExpr$f0f440e2-7ae8-46ed-b28c-9063d4e512fdprecedence_heuristic	cell_id$f0f440e2-7ae8-46ed-b28c-9063d4e512fddownstream_cells_mapupstream_cells_map@md_strgetindex$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fdprecedence_heuristic	cell_id$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fddownstream_cells_mapupstream_cells_mapcell_execution_order $3539f731-cc23-42a3-b038-e68ef067ee82$44bdad24-b78a-11ed-1ec6-bbe460258abb$0fab55d6-782b-417e-a5b8-9120c4016877$f0f440e2-7ae8-46ed-b28c-9063d4e512fd$dba7937e-77aa-434a-9722-b64fce78fd22$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fd$ed461518-3a1b-4fe3-b54e-9d4da9707b63$6204d1f2-ef72-4433-8f92-fe96938a189b$6288d48a-b00f-42e2-bab2-d413c45b32f0$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9a$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71$146e6a55-91db-4d5c-acd3-dbdc36a638f6$cf74d2ee-1e65-4a46-bf7d-805d968f38fe$9bacb0aa-d684-4e07-9c71-8e4b062c85c1$22913c3e-b0b0-4867-9de0-243584fa2e3d$24281688-3e37-4e2c-aeea-97c46118bcb0$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efalast_hot_reload_time        shortpathnotes.jlprocess_statusreadypathO/home/runner/work/community-call-notes/community-call-notes/2023/02-28/notes.jlpluto_versionv0.20.27last_save_timeAڅC3=cell_order $44bdad24-b78a-11ed-1ec6-bbe460258abb$0fab55d6-782b-417e-a5b8-9120c4016877$f0f440e2-7ae8-46ed-b28c-9063d4e512fd$3539f731-cc23-42a3-b038-e68ef067ee82$dba7937e-77aa-434a-9722-b64fce78fd22$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fd$ed461518-3a1b-4fe3-b54e-9d4da9707b63$6204d1f2-ef72-4433-8f92-fe96938a189b$6288d48a-b00f-42e2-bab2-d413c45b32f0$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9a$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71$146e6a55-91db-4d5c-acd3-dbdc36a638f6$cf74d2ee-1e65-4a46-bf7d-805d968f38fe$9bacb0aa-d684-4e07-9c71-8e4b062c85c1$22913c3e-b0b0-4867-9de0-243584fa2e3d$24281688-3e37-4e2c-aeea-97c46118bcb0$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efapublished_objectsnbpkginstall_time_ns   沬instantiatedòinstalled_versionsJuliaSyntax0.3.2!__internal_julia_manifest_version1.12.6__internal_julia_version1.12.6terminal_outputsJuliaSyntax
[0m[1mResolving...[22m
[90m===[39m
[36m[1m     Project[22m[39m No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_uvioecehat/Project.toml`
[36m[1m    Manifest[22m[39m No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_uvioecehat/Manifest.toml`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
Waiting for notebook process to start... Done. Starting precompilation...
nbpkg_sync
[0m[1mResolving...[22m
[90m===[39m
[36m[1m     Project[22m[39m No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_uvioecehat/Project.toml`
[36m[1m    Manifest[22m[39m No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_uvioecehat/Manifest.toml`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
Waiting for notebook process to start... Done. Starting precompilation...
enabled÷restart_recommended_msgrestart_required_msgbusy_packageswaiting_for_permission,waiting_for_permission_but_probably_disabled«cell_inputs $ed461518-3a1b-4fe3-b54e-9d4da9707b63cell_id$ed461518-3a1b-4fe3-b54e-9d4da9707b63code1md"""
# How to get globals inside a `module`?
"""metadatashow_logsèdisabled®skip_as_script«code_folded$24281688-3e37-4e2c-aeea-97c46118bcb0cell_id$24281688-3e37-4e2c-aeea-97c46118bcb0codemd"""

Julia: big disconnect between what package devs document and what the general audience needs to read.

Why did pandas succeed? Their documentation explains usage first, implementation/details second. Julia docs generally put math/philosophy too early.

Good project for new contributors might be to "port scikit-learn or pandas docs to their Julia equivalents". But maybe also explain some math/philosophy as side notes. Fons and Panagiotis can meet with BE :)
"""metadatashow_logsèdisabled®skip_as_script«code_folded$cf74d2ee-1e65-4a46-bf7d-805d968f38fecell_id$cf74d2ee-1e65-4a46-bf7d-805d968f38fecodeCore.eval(A, :(x = 99))metadatashow_logsèdisabled®skip_as_script«code_folded$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efacell_id$6a6dd6ce-c9b2-49d0-9b8b-a5227a084efacodemetadatashow_logsèdisabled®skip_as_script«code_folded$9bacb0aa-d684-4e07-9c71-8e4b062c85c1cell_id$9bacb0aa-d684-4e07-9c71-8e4b062c85c1codemd"""
# Rust project?

Are there any rust projects that future Pluto devs can work on?

## Ideas:

### Code for a live collaboration server, similar to [bore.pub](https://github.com/ekzhang/bore)

Paul started work on this (in Go not Rust):

The server:
[https://gist.github.com/Pangoraw/c245762d78f5e0c636ef0bdd5f750c9e](https://gist.github.com/Pangoraw/c245762d78f5e0c636ef0bdd5f750c9e)

The client:
[https://github.com/fonsp/Pluto.jl/tree/ws_proxy](https://github.com/fonsp/Pluto.jl/tree/ws_proxy)

We also updated our GSOC list: [https://github.com/JuliaLang/www.julialang.org/pull/1848](https://github.com/JuliaLang/www.julialang.org/pull/1848)
"""metadatashow_logsèdisabled®skip_as_script«code_folded$44bdad24-b78a-11ed-1ec6-bbe460258abbcell_id$44bdad24-b78a-11ed-1ec6-bbe460258abbcodemd"""
# Notes 28 feb 2023


"""metadatashow_logsèdisabled®skip_as_script«code_folded$146e6a55-91db-4d5c-acd3-dbdc36a638f6cell_id$146e6a55-91db-4d5c-acd3-dbdc36a638f6codeA.x = 99metadatashow_logsèdisabled®skip_as_script«code_folded$6288d48a-b00f-42e2-bab2-d413c45b32f0cell_id$6288d48a-b00f-42e2-bab2-d413c45b32f0code module A
import ..x

z = x+1
endmetadatashow_logsèdisabled®skip_as_script«code_folded$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9acell_id$b4b7f2bf-fd34-4be5-a936-b1baa9bc1a9acodeA.zmetadatashow_logsèdisabled®skip_as_script«code_folded$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71cell_id$0aaea840-f6c6-41d1-b5e9-d5e6ed5bfb71code5md"""
Maybe this will start working in Julia 1.9?
"""metadatashow_logsèdisabled®skip_as_script«code_folded$3539f731-cc23-42a3-b038-e68ef067ee82cell_id$3539f731-cc23-42a3-b038-e68ef067ee82codeusing JuliaSyntaxmetadatashow_logsèdisabled®skip_as_script«code_folded$22913c3e-b0b0-4867-9de0-243584fa2e3dcell_id$22913c3e-b0b0-4867-9de0-243584fa2e3dcode٭md"""
# Julia 1.9

Beta 4 seems much faster at precompilation that previous beta releases. We should redo the benchmarks to see if we still need to make changes here. :)
"""metadatashow_logsèdisabled®skip_as_script«code_folded$6204d1f2-ef72-4433-8f92-fe96938a189bcell_id$6204d1f2-ef72-4433-8f92-fe96938a189bcodex = 12metadatashow_logsèdisabled®skip_as_script«code_folded$0fab55d6-782b-417e-a5b8-9120c4016877cell_id$0fab55d6-782b-417e-a5b8-9120c4016877codeQmd"""
Topics:
- JuliaSyntax.jl
- Featured notebooks
- Julia 1.9
- Motivations
"""metadatashow_logsèdisabled®skip_as_script«code_folded$dba7937e-77aa-434a-9722-b64fce78fd22cell_id$dba7937e-77aa-434a-9722-b64fce78fd22code9ex = try
	JuliaSyntax.parse(Expr, "1 +")
catch ex
	ex
endmetadatashow_logsèdisabled®skip_as_script«code_folded$f0f440e2-7ae8-46ed-b28c-9063d4e512fdcell_id$f0f440e2-7ae8-46ed-b28c-9063d4e512fdcodejmd"""
# [JuliaSyntax.jl](https://github.com/JuliaLang/JuliaSyntax.jl)

Is in the process of being merged in Julia core 🎉

Long time ago we talked about how to use it inside of Pluto.

Turns out to be quite simple! It has a function `JuliaSyntax.parse` as alternative to `Meta.parse`.

## First prototype!

![](https://user-images.githubusercontent.com/6933510/221932729-990e67b8-31c4-4d2a-b5cc-33e29aa12492.png)

Will be easy to implement in Pluto because we only do parsing in the pluto server, not the notebook server. So we can just add JuliaSyntax as dependency to Pluto.

## Long TTFP

First parse takes 8 seconds on binder. Needs investigation :) but eventually it will be included in Julia with zero latency. Probably there is an easy fix :)

## Frontend

Implemented using [`@codemirror/lint`](https://codemirror.net/examples/lint/) which looks very powerful!
"""metadatashow_logsèdisabled®skip_as_script«code_folded$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fdcell_id$51e5cafd-7b00-4f88-b2a1-e06dfb5cb1fdcodemetadatashow_logsèdisabled®skip_as_script«code_folded«notebook_id$0e024384-58af-11f1-b899-d5a42b4dda40in_temp_dir¨metadata