rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<discocaml>
<cemerick> Is there a writeup anywhere talking about why jsoo-generated code uses the runtime representations it does? I'm surprised to see records represented with arrays of values — as opposed to objects with named properties — which (last I knew) were privileged in various ways by e.g. v8 JIT, etc. I'm sure there's some good rationales though, and would love to read up
<discocaml>
<deepspacejohn> I'm sure someone can give a more complete answer, but I believe the short version is that records (and modules) are both compiled into tuples, which JSOO represents as arrays.
<discocaml>
<yawaramin> JSOO is compiling OCaml bytecode to JavaScript. bytecode represents record values as arrays. hence, the so does the JS output
<discocaml>
<yawaramin> i mean heterogeneous arrays ie tuples of course
agentcasey has quit [Read error: Connection reset by peer]
wickedshell has joined #ocaml
alfiee has joined #ocaml
<discocaml>
<cemerick> ah, sure, that makes sense
<discocaml>
<cemerick> ah, sure, that makes sense, thanks
<discocaml>
<cemerick> ah, sure, that makes sense, thanks
alfiee has quit [Ping timeout: 260 seconds]
Mister_Magister has quit [Quit: bye]
Mister_Magister has joined #ocaml
agentcasey has joined #ocaml
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 252 seconds]
Tuplanolla has quit [Quit: Leaving.]
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 246 seconds]
agentcasey has quit [Ping timeout: 260 seconds]
agentcasey has joined #ocaml
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 268 seconds]
quernd1 has quit [Read error: Connection reset by peer]
quernd1 has joined #ocaml
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 246 seconds]
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 268 seconds]
agentcasey_ has joined #ocaml
agentcasey has quit [Ping timeout: 268 seconds]
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 260 seconds]
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 272 seconds]
Haudegen has joined #ocaml
agentcasey_ has quit [Quit: ZNC 1.10.x-git-27-bfd731cf - https://znc.in]
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 265 seconds]
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
burley has quit [Remote host closed the connection]
ymherklotz has quit [Remote host closed the connection]
arya_elfren has quit [Remote host closed the connection]
rustyne has quit [Remote host closed the connection]
whereiseveryone has quit [Remote host closed the connection]
pluviaq has quit [Remote host closed the connection]
b0o has quit [Remote host closed the connection]
patrick_ has quit [Remote host closed the connection]
immutable has quit [Remote host closed the connection]
ursa-major has quit [Remote host closed the connection]
slondr has quit [Remote host closed the connection]
_alix has quit [Remote host closed the connection]
ggb has quit [Remote host closed the connection]
beo has quit [Remote host closed the connection]
richardhuxton has quit [Remote host closed the connection]
Ankhers has quit [Remote host closed the connection]
sleepydog has quit [Remote host closed the connection]
henrytill has quit [Remote host closed the connection]
seeg has quit [Remote host closed the connection]
tranzystorekk has quit [Remote host closed the connection]
lane has quit [Remote host closed the connection]
xvilka has quit [Remote host closed the connection]
philipwhite has quit [Remote host closed the connection]
soni_ has quit [Remote host closed the connection]
pmk has quit [Write error: Broken pipe]
pmk has joined #ocaml
b0o has joined #ocaml
rustyne has joined #ocaml
sleepydog has joined #ocaml
lane has joined #ocaml
ggb has joined #ocaml
philipwhite has joined #ocaml
Ankhers has joined #ocaml
tranzystorekk has joined #ocaml
patrick_ has joined #ocaml
seeg has joined #ocaml
henrytill has joined #ocaml
arya_elfren has joined #ocaml
whereiseveryone has joined #ocaml
xvilka has joined #ocaml
beo has joined #ocaml
burley has joined #ocaml
burley has joined #ocaml
beo has joined #ocaml
beo has quit [Changing host]
burley has quit [Changing host]
richardhuxton has joined #ocaml
slondr has joined #ocaml
soni_ has joined #ocaml
ursa-major has joined #ocaml
immutable has joined #ocaml
ymherklotz has joined #ocaml
_alix has joined #ocaml
pluviaq has joined #ocaml
Serpent7776 has joined #ocaml
cr1901_ has joined #ocaml
cr1901 has quit [Ping timeout: 276 seconds]
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 245 seconds]
myrkraverk__ is now known as myrkraverk
bartholin has joined #ocaml
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 272 seconds]
bartholin has quit [Quit: Leaving]
olle has joined #ocaml
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 268 seconds]
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 245 seconds]
<discocaml>
<.sabine.> Have you read the OCaml Platform Newsletter, the OCaml Changelog, or other communications from the OCaml Platform?
<discocaml>
<.sabine.>
<discocaml>
<.sabine.> I'm looking for feedback on how to make the updates and content we put out more useful to you!
<discocaml>
<undu> Does somebody know if the ocaml team intends to release another 4.14 release in the next few months?
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 252 seconds]
gentauro has quit [Read error: Connection reset by peer]
alfiee has joined #ocaml
gentauro has joined #ocaml
alfiee has quit [Ping timeout: 252 seconds]
<discocaml>
<mbacarella> as a theoretical matter, do you know why the approach is to transpile the byte code and not OCaml?
<discocaml>
<mbacarella>
<discocaml>
<mbacarella> ocaml-compiler-libs exists. might bear more fruit to read code into ASTs and produce JavaScript directly
<discocaml>
<mbacarella> oh wait maybe the loaded ASTs are not checked or inferred
<discocaml>
<octachron> The original argument was that the bytecode was a very stable IR
<discocaml>
<mbacarella> ppxlib exists now though?
<discocaml>
<octachron> ppxlib is very maintenance-heavy
<discocaml>
<octachron> And, the parsetree is not a suitable starting point for compilation. The earliest somewhat convenient IR would be the Lambda IR.
<discocaml>
<octachron> The typedtree would be another option, but with a heavy maintenance burden (a full-time developer familiar with the OCaml typechecker? maybe 50% ?)
Haudegen has quit [Quit: Bin weg.]
alfiee has joined #ocaml
<companion_cube>
Where does mélange start ?
dawids_ has joined #ocaml
dawids_ has quit [Client Quit]
alfiee has quit [Ping timeout: 245 seconds]
<discocaml>
<octachron> Same as rescript from the Lambda IR (after one simplification pass)
<companion_cube>
Right. Starting at the typedtree means redoing all the module work
<companion_cube>
Easier to come in later for sure
<octachron>
More than modules, all the constructs with complex semantics are still there in the typedtree (pattern matching, classes, recursive modules)
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 260 seconds]
Haudegen has joined #ocaml
<companion_cube>
Oh right, classes
<olle>
:O
<companion_cube>
It's a bit sad that types are lost after these are removed though
<olle>
We were just talking about that over in #proglangdesign
<olle>
Classes and compiler design and long-ass match-clauses
<olle>
What's worst - a match-clause spanning 500+ lines, or splitting the eval() method into different classes?
<olle>
The AST eval function, that is.
<companion_cube>
There's no hard rule imho
<olle>
Maybe not even a choice, since the programming language you use will decide for you.
alfiee has joined #ocaml
cr1901_ is now known as cr1901
alfiee has quit [Ping timeout: 248 seconds]
olle has quit [Ping timeout: 268 seconds]
<companion_cube>
I assumed we were talking about ocaml
alfiee has joined #ocaml
alfiee has quit [Ping timeout: 245 seconds]
<discocaml>
<Joe> Melange does transpilation on the AST level