This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-03-24
Channels
- # announcements (31)
- # babashka (21)
- # babashka-sci-dev (4)
- # beginners (8)
- # cherry (4)
- # cider (32)
- # clj-kondo (15)
- # cljdoc (4)
- # cljsrn (4)
- # clojure (69)
- # clojure-dev (1)
- # clojure-europe (12)
- # clojure-nl (1)
- # clojure-norway (8)
- # clojure-uk (4)
- # clojurescript (16)
- # clr (6)
- # conjure (4)
- # fulcro (4)
- # hispano (1)
- # honeysql (1)
- # humbleui (5)
- # hyperfiddle (8)
- # lambdaisland (4)
- # lsp (8)
- # malli (24)
- # off-topic (3)
- # polylith (5)
- # reagent (10)
- # remote-jobs (3)
- # rewrite-clj (7)
- # scittle (12)
- # spacemacs (4)
- # sql (2)
- # tools-deps (29)
- # xtdb (7)
Yesterday I released CIDER 1.7 (https://github.com/clojure-emacs/cider/releases/tag/v1.7.0), but I forgot to announce it. Enjoy!
Announcing version 5.0.0-SNAPSHOT of https://github.com/kennytilton/matrix/blob/main/cljc/matrix/README.md, a generic, glitch-free, property-to-property reactive engine that works especially well for wrapping GUIs, but can be applied usefully to streams of data as well.
New this release:
• "async" formulaic cells (object properties);
• a single tiltontec.matrix.api
NS to reduce require clutter;
• a useful :debug true
option for formulaic cells;
• "observers" are now "watches", to avoid conventional misunderstanding of the word "observer".
Unchanged:
• mutable input cells;
• formulaic cells;
• global reach for dependencies or mutations;
• eager or lazy formulaic cells;
• anonymous cells, or "synapses";
• instance-specific cells;
• cell or object type specific "watch" functions for side-effects; and
• as always, the https://tilton.medium.com/the-cells-manifesto-b21ed10329f0.
While all that ^^^ is true, this release exists mostly to support an upcoming (Monday?) https://github.com/kennytilton/web-mx#readme release.
Not much doc yet, but DM at will for help getting started, or see you over at #matrix.
Announcing release of cljr
as open source under Apache 2.0 license:
https://github.com/apexdatasolutions/cljr
@U2M7EC8KU Congrats. Windows only?
No it works on .NET core too. Basically targeting .NET Framework (Window) and .NET Core (cross platform). Problem for it on .NET Core is that MS took away saving binaries to hard disk via Reflection.Emit()... a problem that is rumored to be fixed with .NET Core 8.
i have been focused on Windows/.NET framework as I'm also integrating with Office (think: legacy app modernization). But one of the main use cases is microservices so you'd want those to run on Core to deploy cross platform.
.NET is relative hot mess because of the runtime fragmentation over the years (.NET, silverlight, core, standard, winRT, etc). They are trying to tie it all back together again into Core, but because of the Reflection.Emit() restriction the perf on Core is slightly less on startup as the runtime has to compile the entire core clojure library on the fly. Once it's running it's fast; but the startup can take a few seconds. It's much quicker on .NET framework with precompiled libraries.
i need to add detail about deps.edn for CLR purposes. Will add that to the readme over the weekend.
@U2M7EC8KU Have you considered that some libraries may target both JVM and CLR, and how does a deps.edn
for such a library look like if it has JVM + CLR dependencies?
there are toplevel CLR-specific keys: :clr-deps and :clr-aliases. These are ignored by JVM tooling. cljr ignores :deps and :aliases.
{:paths ["src/main/" :another-project-dir]
:clr-deps
{Some.Local.Library {:local/root :some-local-dir}
}
:clr-aliases
{:some-local-dir "C:\\libs\\"
:another-project-dir "C:\\projects\\another-project\\"}
:nuget/repos []
}
Keeping in mind there could also be :deps and :aliases keys in the same file, that's the current functionality. adding git and nuget are the next two big priorities besides expanding aliases for tool execution.
I'd say that should be:
{:clj-deps {org/lib {:local/root "Some.Local.Library.dll"}}}
cf how deps.edn deals with .jar files. But better discuss this with @U064X3EF3OK, that's good feedback. Can make it a feature or enhancement request on the Issues tab.
:local/root requires a path on the local drive, which in this case is provided by an alias
.NET formal names can be used in the first part of the k/v pair, but when referring to a specific folder, the short name of the assembly is enough.
another thing worth point out is that assemblies and jar files aren't quite the same thing. If the DLL is compiled by ClojureCLR, each namespace gits its own DLL, so the "correct" thing to do here will be somewhat dictated by a) .NET exigencies and assembly loading logic, and b) the design decisions that went into ClojureCLR up to this point. Java conventions will only be "somewhat" useful.