This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-09-24
Channels
- # 100-days-of-code (7)
- # announcements (1)
- # bangalore-clj (1)
- # beginners (87)
- # boot (6)
- # cljdoc (16)
- # cljsrn (13)
- # clojure (32)
- # clojure-dev (30)
- # clojure-italy (18)
- # clojure-nl (4)
- # clojure-serbia (1)
- # clojure-uk (48)
- # clojurescript (18)
- # cursive (18)
- # datascript (1)
- # datomic (7)
- # events (9)
- # figwheel-main (28)
- # fulcro (2)
- # hyperfiddle (2)
- # immutant (8)
- # jobs (16)
- # liberator (4)
- # nyc (2)
- # pedestal (15)
- # re-frame (8)
- # reagent (12)
- # reitit (8)
- # remote-jobs (1)
- # ring-swagger (2)
- # robots (1)
- # rum (1)
- # schema (1)
- # shadow-cljs (45)
- # spacemacs (49)
- # sql (13)
- # tools-deps (59)
- # uncomplicate (1)
- # vim (10)
Wow, I haven't looked at Clojure build matrix results on http://build.clojure.org in a long time. So many JDKs.
within the last 6 months I’ve almost completely swapped out the old set (with Oracle 8 maybe the only common one between old and new)
I do not miss IBM JDK 1.6
heh, me neither. but in the brave new open jdk world we might have a whole bloom of variants
not looking forward to that much
I’m looking into https://dev.clojure.org/jira/browse/CLJS-2794
In which @mfikes writes “while also dealing with the trick that vec and set employ when using with-meta to force a new object to be created”
1) The doc-string for set
does not specify that a new set is created, although https://dev.clojure.org/jira/browse/CLJ-1618 seems to indicate that a new set should be created.
2) With https://dev.clojure.org/jira/browse/CLJ-2362, calling set
on a set
does no longer create a new set
, since the (with-meta coll nil)
trickery doesn’t return a new set, unless the original set has meta-data
3) which also breaks the doc string for vec
, which clearly states that it returns a new vector:
1) the “new set” there is specifically about the case where there is meta returning a set with no meta. it doesn’t say that a set with no meta needs to return a new instance
stepping back, what is the interesting case where behavior has changed?
with persistent colls, there are great advantages to reusing identical instances when possible
one of the few cases where set/vec return an observably different instance is in the case of meta, and while I think that use case was more accidental than intentional, it’s been preserved
I guess this started as a question of “why is the doc-string for set
and vec
different wrt returning a new object?”
my guess would be that they were not intended to be meaningfully different
and unless there is some really good reason, I’d be more inclined to adjust the doc string to clarify than the code
I like thinking of set
and vec
as coercion fns; it would be nice if they act as the identity function when they can
just fyi, I am soon slipping over the Strange Loop event horizon and will re-emerge in some future dimension (aka next week)
... Alex returns to find several of us have reported him missing ...