This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-06-26
Channels
- # adventofcode (2)
- # beginners (69)
- # boot (37)
- # cider (6)
- # clara (31)
- # cljs-dev (75)
- # cljsrn (5)
- # clojure (72)
- # clojure-dev (7)
- # clojure-italy (11)
- # clojure-nl (8)
- # clojure-russia (2)
- # clojure-spec (56)
- # clojure-uk (54)
- # clojure-za (1)
- # clojurescript (156)
- # cursive (2)
- # datomic (34)
- # emacs (1)
- # fulcro (227)
- # hoplon (74)
- # jobs (1)
- # jobs-discuss (16)
- # leiningen (5)
- # lumo (17)
- # off-topic (9)
- # om (3)
- # onyx (10)
- # other-languages (1)
- # portkey (2)
- # re-frame (2)
- # reagent (36)
- # reitit (1)
- # remote-jobs (1)
- # ring-swagger (8)
- # shadow-cljs (85)
- # slack-help (2)
- # spacemacs (6)
- # specter (3)
- # sql (17)
- # test-check (15)
- # tools-deps (80)
morning
result: code is fine, I had a broken function definition left over in a long-running repl π
Bore da
I tend to can my repl every once in a while just so that it's getting refreshed
when I think I'm done hacking I tend to cider-restart just to make sure I'm not relying on something I haven't captured
i just do a c.t.n.r/refresh
regularly - that reloads everything and cleans out namespaces without paying the clojure init tax or doing the cider connection dance
@U0524B4UW does that work for multimethods and other compiled things too?
what dyu mean @U0525KG62 ? multimethods still have a var, so i think it works fine for them (we use multimethods quite a lot, and while i haven't explicitly tested, i think i would have noticed a refresh
not working on multimethods) `? i shouldn't think it works for pure java things which don't have a var in front of them
i think ztellman did something for people who need java class reloading too - i've never tried it out though - https://github.com/ztellman/virgil
@U6SUWNB9N clojure.tools.namespace.repl/refresh
i invoke c.t.n.r/refresh
through my app-context manager thingy https://github.com/employeerepublic/deferst which is kinda like component but async-compatible and much less intrusive... i just call @(reload!)
and it reloads everything and restarts the app-context
@U0525KG62 @U0524B4UW https://github.com/clojure/tools.namespace#reloading-code-motivation explains the bit about multimethods (and other motivation for c.t.n).
morning.
git bisect
is somehow cooler than it is useful - but just occasionally itβs the perfect tool for the job
I get the feeling my workflow in Clojure varies quite a lot from others. I typically just use the repl for experimentation. When Iβm happy I know how the pieces work I tend to rely more on tests (`lein auto test` is a godsend), or manually testing the entire application is working end-to-end
This sounds very much like my pattern too. I use the REPL to experiment and see if what I'm considering works, but the actual feedback is generally from writing a function stub, writing the tests, running boot watch test
and filling in the stubs
yeah I'm guessing most folk do some variant on repl-driven development and then reification into tests
(but I might be wrong!)
I created an experimental branch, moved the test way back in history (interactive rebase) and bisected the commits in between
it should have been there from the start, so Iβm tempted to make this the new master anyway
@lady3janepl force pushing master is always dangerous π mercurial added some support for "recorded rewritten history" which is apparently quite nice.
I use git for code version tracking and mental notes for why I made certain changes, so I can cut up history however I want
This sounds very much like my pattern too. I use the REPL to experiment and see if what I'm considering works, but the actual feedback is generally from writing a function stub, writing the tests, running boot watch test
and filling in the stubs
clojure.tools.namespace.repl/refresh
https://www.mercurial-scm.org/wiki/ChangesetEvolution this is what I was thinking of apparently π which is very cool. They let you perform 4 common operations on historical commits safely.
in earnest, some changesets are hidden apparently: https://arrenbrecht.ch/mercurial/evolution/