Fork me on GitHub
#cljs-dev
<
2018-12-17
>
dnolen00:12:17

like I said there's so many thing like this

dnolen00:12:57

it used be bindings in loops were mutable like JS for at least 6 months or something

dnolen00:12:03

so you could have depended on that

dnolen00:12:10

when we fixed it was a breaking change?

dnolen00:12:21

it was a change - if we mark this that's enough

dnolen00:12:50

we had a bunch of changes around metadata to align with Clojure - as far as I'm concerned these are bugs

dnolen00:12:56

and these are also in the changelog

dnolen00:12:51

being in the changelog is more important than opinion about the importance of the change

mfikes01:12:54

Perhaps a bigger problem is that the entire News section of the site appears to be gone ¯\(ツ)

mfikes01:12:05

I have a vague memory that Alex mentioned some manual stuff going on. Perhaps related.

mfikes01:12:46

Quick Start is up; that's what's important 🙂

dnolen02:12:54

we should ping him about that tomorrow

Alex Miller (Clojure team)04:12:23

Something need a rebuild?

Alex Miller (Clojure team)04:12:41

The ci is dead so will only build if I do it manually

Alex Miller (Clojure team)04:12:05

just did a rebuild, let me know if it seems like something is missing or you need a rebuild

richiardiandrea04:12:14

The line of thought "it was not like Clojure therefore it is a bug not a breaking change" makes sense imho. If it's already in the changelog I will just shut up and pay more attention to it the next time. I have to say I went to the release notes only and this might have been the wrong piece of info to inspect for that particular problem. We live and learn 😉😉😉

mfikes12:12:02

Owing to the effect of Hyrum’s Law (http://www.hyrumslaw.com) many (most?) bug fixes are also breaking changes.

mfikes12:12:13

News is appearing again after the rebuild.

mfikes13:12:33

Here is a cool example of the appearance of platform-generated JavaScript error types in the improved error messages: Note the appearance of RangeError in the message.

cljs.user=> (defn foo [a b] (map #(vector "1" %) (range a (inc b))))
#'cljs.user/foo
cljs.user=> (foo "2" "8")
Execution error (RangeError) at (<cljs repl>:1).
Array size is not a small enough positive integer.
This is on JavaScriptCore. On Node the same error type is thrown but with a different message "Invalid array length". I suspect having things like RangeError appear may end up being useful. 🙂

mfikes13:12:07

(Don't be confused by RangeError appearing with the use of range; the real error is deep on the bowels of the system, but nevertheless a useful bit of into in the end.)

borkdude13:12:03

I thought: maybe count on range can be optimized, but I noticed it was already done in CLJS 🙂

borkdude13:12:28

this one was a bit funny:

(count (range))
1.7976931348623157e+308

souenzzo19:12:48

Okay. I accept that "everything in js returns something" But there is a ticket explain something about that?

borkdude19:12:12

Just look at the source, that would explain it.

👍 4
souenzzo19:12:10

there is some limitation to do a infity lazy seq in JS?

souenzzo19:12:29

or it's just a "lazy" implementation ?

borkdude19:12:41

look at the implementation of ICounted for Range.

souenzzo19:12:54

why range [] is not (iterate inc 0) as in clj?

mfikes13:12:42

Returning ##Inf would also be questionable.

borkdude13:12:09

yeah, I’m not suggesting it should be changed

mfikes13:12:30

You could argue that there is a bug in that it produces an incorrect result.

borkdude13:12:48

start and end are missing in the calculation. maybe it should return ##Hyrum

dnolen13:12:34

@mfikes I've generally avoided the JS error types because I haven't looked to see how portable they are

dnolen13:12:00

hrm, I guess RangeError is since ECMA-262 3rd ed.

mfikes13:12:21

Yeah, InternalError is only on FireFox; non-standard, for example

mfikes13:12:23

Maybe cljs.core should generally prefer ex-info

mfikes13:12:19

(For exceptions it throws)

mfikes13:12:44

My opinion: Don’t change anything now. Just see what this new visibility surfaces.

4