cljs-dev

ClojureScript compiler & std lib dev, https://clojurescript.org/community/dev
favila 2019-08-16T11:26:55.118200Z

The key here is that in js, strings are not objects, they are primitives

πŸ‘ 1
favila 2019-08-16T11:27:09.118600Z

Different from Java

favila 2019-08-16T11:27:49.119200Z

Thus they have value equality and not identity

favila 2019-08-16T11:30:05.121700Z

And it makes sense that js would do this, because the fields of js objects (=maps) are identified by strings, not something struct-like or something only real to the compiler

scknkkrer 2019-08-16T14:16:27.124900Z

Is @stuartsierra author of the Clojurescript. Sorry for the basic question, but I’m writing a book that I hoped it will use as academic metarial, It is important that my informations are absolute true.

scknkkrer 2019-08-16T14:22:20.125900Z

Some Resources says Rich HICKEY made Clojurescript.

scknkkrer 2019-08-16T14:22:23.126100Z

I’m confused.

alexmiller 2019-08-16T14:24:14.126600Z

Rich Hickey and a team of others, including Stuart Sierra, made ClojureScript

πŸ‘ 1
scknkkrer 2019-08-16T14:25:45.127900Z

@bronsa, Actually, I wanted to know, who is come up with the idea first ? And, @alexmiller answered my question. Thank you!

bronsa 2019-08-16T14:26:23.128500Z

before clojurescript proper there was a version of clojurescript in clojure-contrib by chris houser

😱 1
bronsa 2019-08-16T14:26:40.128900Z

the design of it had nothing to do with the current clojurescript afaik

bronsa 2019-08-16T14:26:56.129400Z

but the idea for a clojurescript was around for a while

scknkkrer 2019-08-16T14:28:10.130900Z

@bronsa, The current implementation started from Rich and a team of developers.

scknkkrer 2019-08-16T14:28:12.131200Z

Right ?

bronsa 2019-08-16T14:28:17.131400Z

yes

scknkkrer 2019-08-16T14:29:12.132500Z

OMG, @bronsa. Can @chouser tell me about the first implementation ?

scknkkrer 2019-08-16T14:29:43.133200Z

A little history lesson would be nice.

bronsa 2019-08-16T14:30:27.134100Z

I believe chouser was also part of the team of developers that worked with rich on the current impl, so some of his prior work may have played a part in the current impl, but I have no idea if that's the case

bronsa 2019-08-16T14:31:14.134600Z

IIRC that version didn't have its own compiler per se, but piggiebacked on the clojure one

bronsa 2019-08-16T14:31:33.134900Z

so quite a different beast than what we have now

dnolen 2019-08-16T15:46:39.136900Z

@scknkkrer it was most definitely Rich Hickey's idea

dnolen 2019-08-16T15:47:17.137900Z

he did the initial analyzer/compiler bits by himself - he pulled in the Relevance team mostly to work on porting the standard library, implement the REPL, docs etc.

dnolen 2019-08-16T15:47:44.138200Z

this is trivially confirmed by looking at the original commits in the Git history

scknkkrer 2019-08-16T15:50:17.139200Z

Oh, welcome Boss. I’m looking at them now. @bronsa mentioned about early implementations, do you know anything about them ?

dnolen 2019-08-16T15:51:16.139900Z

far as I know the Chouser version doesn't have anything at all to do w/ what Rich did

dnolen 2019-08-16T15:51:48.140800Z

Rich had a very specific set of design goals

1
dnolen 2019-08-16T15:52:08.141500Z

most of this information is covered in the repo in org mode files as well as in his initial release talk

dnolen 2019-08-16T15:53:15.142600Z

I mean was there following along w/ all the various activities so I don't know who you're going to ask that has more context / information πŸ™‚

dnolen 2019-08-16T15:53:35.143Z

I was in the IRC channel since 2008, I was well aware of all the things going on at the time

scknkkrer 2019-08-16T15:55:22.143700Z

That’s why I call you Boss. πŸ˜‚

dnolen 2019-08-16T15:57:24.145100Z

as you can the Chouser thing fundamentally started from a place Rich didn't want start - reusing the Clojure compiler

dnolen 2019-08-16T15:57:48.145600Z

he wanted a new implementation done purely w/ Clojure basic data structures

dnolen 2019-08-16T15:57:52.145800Z

"Clojure-in-Clojure"

1
alexmiller 2019-08-16T16:07:45.145900Z

<shocked face/>

πŸ˜‚ 1
2019-08-16T16:58:05.148100Z

Why’s cljs compiler unable to infer NumberFormat and its properties here even though it comes from Closure Library? Is that because the compiler does not leverage type information from Closure Library?

(ns test.core
  (:import [goog.i18n NumberFormat]))

(set! *warn-on-infer* true)

(.. NumberFormat -Format -DECIMAL)

dnolen 2019-08-16T17:00:20.148400Z

@roman01la on the list of TODOs

dnolen 2019-08-16T17:00:32.148800Z

there's a bunch of work in place but a bit more to do

2019-08-16T17:00:54.149200Z

ok, just making sure I understand why this is happening

2019-08-16T17:01:50.150Z

We are moving to advanced compilation now, type inference definitely helps. Thanks a lot for that!

dnolen 2019-08-16T17:02:26.150400Z

yeah it's not that much more work I think - the type information is there now

dnolen 2019-08-16T17:02:37.150700Z

what's missing is treating a Closure libry as a kind ClojureScript namespace

dnolen 2019-08-16T17:02:48.151100Z

put all their info into the compiler state so that type inference will work

scknkkrer 2019-08-16T19:49:38.151400Z

I like this phrase!