adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.2 announced http://ocaml.org/releases/4.02.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
relrod has quit [Read error: Connection reset by peer]
AltGr has joined #ocaml
ollehar has quit [Read error: Connection reset by peer]
ollehar1 has joined #ocaml
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mcclurmc has quit [Remote host closed the connection]
swgillespie has joined #ocaml
mcclurmc has joined #ocaml
Denommus has quit [Quit: going home]
relrod_ has joined #ocaml
tmtwd has joined #ocaml
keen__________13 has quit [Read error: Connection reset by peer]
keen__________13 has joined #ocaml
empyrean has quit [Remote host closed the connection]
mcclurmc has quit [Remote host closed the connection]
BitPuffin|osx has joined #ocaml
hay207 has quit [Ping timeout: 256 seconds]
swgillespie has quit [Remote host closed the connection]
relrod_ is now known as relrod
jwatzman|work has quit [Quit: jwatzman|work]
yomimono has quit [Ping timeout: 240 seconds]
sepp2k has quit [Quit: Leaving.]
mcclurmc has joined #ocaml
struktured has joined #ocaml
shinnya has quit [Ping timeout: 244 seconds]
mcclurmc has quit [Remote host closed the connection]
struktured has quit [Ping timeout: 276 seconds]
gpeterson1 has joined #ocaml
empyrean has joined #ocaml
gpeterson1 has quit [Ping timeout: 240 seconds]
ygrek has quit [Ping timeout: 250 seconds]
x47 has quit [Quit: ~]
mcclurmc has joined #ocaml
tmtwd has quit [Quit: Leaving]
mcclurmc has quit [Ping timeout: 250 seconds]
mcc has joined #ocaml
empyrean has quit [Remote host closed the connection]
empyrean has joined #ocaml
darkf has joined #ocaml
empyrean has quit [Ping timeout: 246 seconds]
empyrean has joined #ocaml
walter|r_ has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
MercurialAlchemi has joined #ocaml
tmtwd has joined #ocaml
creichert has joined #ocaml
MrScout has joined #ocaml
Algebr has joined #ocaml
waneck has quit [Remote host closed the connection]
mcclurmc has quit [Remote host closed the connection]
BitPuffin|osx has quit [Ping timeout: 256 seconds]
ygrek has joined #ocaml
Bhavya has joined #ocaml
mcclurmc has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 244 seconds]
<Algebr> this warning comes up because the value will only be known at runtime, correct (However, some guarded clause may match this value.)
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
struktured has joined #ocaml
manud has quit [Quit: manud]
Fleurety has quit [Ping timeout: 244 seconds]
tmtwd_ has joined #ocaml
Algebr has quit [Ping timeout: 256 seconds]
MrScout has quit [Ping timeout: 248 seconds]
tmtwd_ has quit [Remote host closed the connection]
tmtwd has quit [Remote host closed the connection]
MrScout has joined #ocaml
struktured has quit [Ping timeout: 265 seconds]
Bhavya has quit [Ping timeout: 248 seconds]
sh0t has joined #ocaml
darkf_ has joined #ocaml
darkf has quit [Ping timeout: 248 seconds]
mcc has quit [Quit: /quit]
darkf_ is now known as darkf
Bhavya has joined #ocaml
tmtwd has joined #ocaml
Nahra` has quit [Remote host closed the connection]
Simn has joined #ocaml
kdas_ has quit [Ping timeout: 240 seconds]
kdas_ has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
Bhavya has quit [Ping timeout: 264 seconds]
Bhavya has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 244 seconds]
kdas_ has quit [Ping timeout: 265 seconds]
kdas_ has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
Haudegen has joined #ocaml
Algebr has joined #ocaml
<Algebr> How can I do a raw syscall in ocaml?
tmtwd has quit [Remote host closed the connection]
<adrien> you cannot
<adrien> well
<flux> you do it by writing a C function to do it for you
darkf has quit [Read error: Connection reset by peer]
<adrien> it doesn't really make sense, at least without context
<flux> maybe ctypes could be extended to do it :)
<adrien> the ABIs are unlikely to match so you need a C layer
darkf has joined #ocaml
<Algebr> Can I ask the runtime to do it for me
<adrien> well
<adrien> which syscall?
accidus has joined #ocaml
accidus_benartiu has joined #ocaml
<Algebr> not sure yet which one
<Algebr> Why doesn't the Unix module expose more sys calls
troydm has quit [Ping timeout: 264 seconds]
sh0t has quit [Ping timeout: 265 seconds]
<flux> try extunix
MrScout has quit [Ping timeout: 248 seconds]
<apache2> ctypes is the way to go for libc -> vdso
Algebr has quit [Remote host closed the connection]
<apache2> re: Unix: that's probably to limit the amount of shit you need to implement when porting
ggole has joined #ocaml
Haudegen has quit [Ping timeout: 255 seconds]
monod has joined #ocaml
sh0t has joined #ocaml
octachron has joined #ocaml
Haudegen has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 248 seconds]
monod has quit [Ping timeout: 240 seconds]
<flux> apparently a tree of computations is a more complicated thing to implement than I would have imagined: https://github.com/janestreet/incremental/blob/master/src/incremental_intf.ml
<flux> (well, s/tree/dag/)
<flux> "self-adjusting computation"
<companion_cube> I'm not sure I see the difference with FRP
<def`> no events, no state
<flux> based on a different whitepaper?-)
<companion_cube> def`: you mean it's all signal?
<def`> handwavy yes
octachron has quit [Ping timeout: 248 seconds]
<companion_cube> oh ok, there are mutable variables... with discrete changes, like events :p
<def`> these are only inputs to the graph
<companion_cube> yes
<companion_cube> do they handle cycles?
<def`> 'with discrete changes' like signals
<def`> I don't think so.
<def`> I am not sure
<flux> I think it's DAG-based.. but you can do changes withing change functions?
<def`> (they veing Incr.t, not Var.t)
zpe has joined #ocaml
<def`> change? change functions?
<def`> You have conditionals, binds... Yes you can change the shape of the graph
<flux> so I mean you can have bind a (fun x -> Var.change z 42; return y) ?
<companion_cube> I wonder whether the tree of computations is a GADT :)
destrius has joined #ocaml
<def`> no, variables are outside of the computation
<ggole> Reminds me a bit of a spreadsheet
<ggole> Except not as automatic (and obviously, not arranged in a grid).
ygrek has quit [Ping timeout: 246 seconds]
ia0 has quit [Quit: leaving]
octachron has joined #ocaml
ia0 has joined #ocaml
yomimono has joined #ocaml
ia0 has quit [Client Quit]
sgnb`` is now known as sgnb
ia0 has joined #ocaml
ia0 has quit [Client Quit]
ia0 has joined #ocaml
troydm has joined #ocaml
matason has joined #ocaml
thomasga has joined #ocaml
manud has joined #ocaml
yomimono has quit [Ping timeout: 250 seconds]
manud has quit [Ping timeout: 264 seconds]
kdas_ has quit [Ping timeout: 252 seconds]
mcclurmc has joined #ocaml
jonludlam has joined #ocaml
mcclurmc has quit [Ping timeout: 244 seconds]
x47 has joined #ocaml
Fleurety has joined #ocaml
creichert has quit [Ping timeout: 240 seconds]
hay207 has joined #ocaml
bernardofpc has joined #ocaml
Kakadu has joined #ocaml
Bhavya has quit [Quit: Quit the channel]
rand000 has joined #ocaml
amnn has joined #ocaml
yomimono has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 255 seconds]
Submarine has joined #ocaml
magical-imouto is now known as pyon
pyon is now known as magical-imouto
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
thomasga has quit [Quit: Leaving.]
amnn has joined #ocaml
magical-imouto is now known as pyon
mort___ has quit [Ping timeout: 255 seconds]
mort___ has joined #ocaml
<yminsky> The spreadsheet analogy is apt
<yminsky> not sure why it's less "automatic". It's also more dynamic.
<yminsky> In a spreadsheet, you have a fixed universe of cells, and data flows along a graph you establish between them.
<yminsky> With Incremental (or really, any self-adjusting computation library), the structure of the graph can change in response to data flow, via bind.
<yminsky> companion_cube: Yes, the whole thing is built using GADTs. The change to GADTs was a big win both in terms of making the code cleaner and improving performance.
octachron has quit [Quit: Leaving]
<yminsky> flux: you can allocate new incremental nodes in the RHS of a bind, but you shouldn't really write to variables in a bind. (It doesn't make things blow up, but your writes aren't propagated until the next round of stabilization.)
<yminsky> companion_cube: incremental detects when you try to create a cycle and throws an exception.
<yminsky> (It doesn't do anything clever and try to find a fixed point for your cycle...)
<ggole> yminsky: you make explicit calls to "stabilize", right? With a SS the values just appear.
<ggole> Not that I think explicit calls are a bad idea.
<yminsky> Indeed. Though actually you can turn this automatic bit off in Excel, and then you press F9 to stabilize.
valli has joined #ocaml
<yminsky> And really, in a spreadsheet, it runs stabilize on a clock, not on every change, for batching reasons. So it's really very close.
<ggole> Mostly a UI thing, I suppose.
<yminsky> Indeed.
<ggole> I'm also reminded of a common lisp library called 'cells'
<yminsky> Notably, stabilize of an unchanged graph only takes a few nanos, so you can run stabilize all the time in a background loop without material cost.
<ggole> (Which was named after the spreadsheet element.)
<yminsky> Interesting. Does it have the bind-like dynamism that lets you mint-and-destroy cells as part of the data propagation?
<yminsky> That's a big part of what makes SAC work.
<ggole> Yeah.
<ggole> I never programmed seriously with that library, though...
milosn has quit [Ping timeout: 246 seconds]
<yminsky> There's also Adapton: http://www.cs.umd.edu/~hammer/adapton/
<yminsky> The claim in the papers is that it's a big step up from traditional SAC, but I don't quite understand the differences. Incremental, which we think of as mostly just an implementation of SAC, has (I think) all the properties they say Adapton provides. I probably just don't understand the paper well enough yet.
milosn has joined #ocaml
* ggole reads the slides
<ggole> Right, seems there's a strong common thread
<yminsky> Acar's work is really the source: http://www.umut-acar.org/self-adjusting-computation
pyon has quit [Quit: fix config]
thomasga has joined #ocaml
_andre has joined #ocaml
<companion_cube> o/ yminsky
<yminsky> (what does o/ mean?)
<companion_cube> it's me waving my hand towards you
<companion_cube> so, a greeting :p
<yminsky> That makes sense. o/!
<companion_cube> you can also \o
<yminsky> Seems like it should be symmetrical.
<companion_cube> o¬¬ if you find yourself sleep walking some day
<zozozo> companion_cube: it kind of looks like an old key for doors
<companion_cube> :)
kushal has joined #ocaml
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ceryo has joined #ocaml
accidus_benartiu has quit [Ping timeout: 252 seconds]
accidus has quit [Ping timeout: 256 seconds]
amnn has joined #ocaml
amnn has quit [Ping timeout: 264 seconds]
pyon has joined #ocaml
dsheets has quit [Ping timeout: 246 seconds]
gargawel has quit [Quit: leaving]
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 250 seconds]
whirm has joined #ocaml
mort___ has quit [Quit: Leaving.]
AltGr has left #ocaml [#ocaml]
struktured has joined #ocaml
gpeterson1 has joined #ocaml
dsheets has joined #ocaml
mort___ has joined #ocaml
pyon is now known as magical-imouto
jtfmumm has joined #ocaml
matason has quit [Ping timeout: 264 seconds]
gargawel has joined #ocaml
tmtwd has joined #ocaml
gpeterson1 has quit [Ping timeout: 264 seconds]
matason has joined #ocaml
<companion_cube> https://github.com/c-cube/IKSML/pull/1 my gosh, dsheets and I collaborated on code before I was even on this channel
<rks`> you guys are made for each other.
<companion_cube> yes, we clearly value the same rigor in software
amnn has joined #ocaml
tmtwd has quit [Remote host closed the connection]
tmtwd has joined #ocaml
mcclurmc has joined #ocaml
badkins has joined #ocaml
mcclurmc has quit [Ping timeout: 248 seconds]
darkf_ has joined #ocaml
darkf has quit [Ping timeout: 248 seconds]
<adrien_znc> I didn't know dsheets was reinventing wheels that often
<dsheets> it's important for enterprise
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<apache2> not their fault everyone else makes square wheels
<companion_cube> :>
darkf_ is now known as darkf
<adrien_znc> :D
<companion_cube> that's why I keep on reinventing octogonal wheels, you see
<Drup> following the work from Cousot&al on astrée
<Drup> (Octagons are better :D)
jtfmumm has joined #ocaml
* Drup notes "type theory jokes are ok, but not abstract interpretation ones".
<companion_cube> well I don't know what octagon is
<companion_cube> oh right, just the correct orthograph
<Drup> And it's an efficient domain for abstract interpretation of numerical computations :>
Denommus has joined #ocaml
sepp2k has joined #ocaml
Denommus` has joined #ocaml
Denommus has quit [Ping timeout: 246 seconds]
tane has joined #ocaml
Denommus` is now known as Denommus
matason has quit [Quit: matason]
<dmbaturin> companion_cube: Note that a sequence of polygonal wheels with increasingly many sides converges to a round wheel eventually!
Denommus` has joined #ocaml
Denommus` has quit [Max SendQ exceeded]
Denommus has quit [Ping timeout: 252 seconds]
<Drup> only if the polygones are regular.
Denommus has joined #ocaml
Denommus has quit [Max SendQ exceeded]
<Drup> You are underestimating companion_cube on this. :D
<dmbaturin> It's easy to enforce in dependently typed wheel reinvention DSLs.
Denommus has joined #ocaml
Denommus has quit [Max SendQ exceeded]
<Drup> But for maximum expressiveness power, you want un-concave polygons!
Denommus has joined #ocaml
mcclurmc has joined #ocaml
matason has joined #ocaml
Denommus` has joined #ocaml
gpeterson1 has joined #ocaml
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Denommus has quit [Ping timeout: 252 seconds]
Denommus` is now known as Denommus
mcclurmc has quit [Ping timeout: 240 seconds]
WanderingGlitch has quit [Quit: Glitch out]
<companion_cube> hmmm, a wheel reinvention DSL, nice idea
zpe has quit [Remote host closed the connection]
<Drup> it will leverage the c⁴, the companion_cube_compiler.
WanderingGlitch has joined #ocaml
<ggole> What an explosively good idea.
slash^ has joined #ocaml
BitPuffin has joined #ocaml
<adrien_znc> companion_cube: you can save 80% of the work by creating a new project name generator
<adrien_znc> always the most difficult aspect
<companion_cube> github does it for me
<companion_cube> don't reinvent the wheel, adrien_znc
<Drup> github's naming is terrible, though
<companion_cube> as if I were serious
KDr2 has quit [Ping timeout: 265 seconds]
<dsheets> i don't have a name generator in order to name my name generator project so i can't program any more
<dmbaturin> Drup: Any ideas how to make name generators better?
<dsheets> well, can't make any new projects any way
<companion_cube> let oh_god_i_should_find_a_name_for_this_name_generator () = "some name"
<dsheets> let name_project _description = (incr ctr; "project"^(string_of_int !ctr))
<companion_cube> Camel Name for "santorum" neologism ← it does propose interesting names
<companion_cube> Bipartisan Camel Name Reform Act
Denommus has quit [Ping timeout: 244 seconds]
<dmbaturin> Cool, it manages to get repetitive from the line 2.
<companion_cube> opam install bipartisan_camel_name_reform_act
<companion_cube> University of Reims Camel Name-Ardenne
<companion_cube> this is wonderful
<Drup> I'm trying to find a good linguistic-based portmanteau generator, but can't find any
<companion_cube> Square Wheel Regiment Prinz Carl ← nice one, too
rand000 has quit [Quit: leaving]
tane has quit [Remote host closed the connection]
ollehar has joined #ocaml
<dmbaturin> Even without generators, we can always resort to naming projects after animals. Bonus points if the animal in question has negative connotations in one or more languages.
hay207 has quit [Ping timeout: 246 seconds]
<Drup> dmbaturin: special bonus point if the animal in question has the same pronunciation has something (more or less) offensive in another language.
<companion_cube> :)
Denommus has joined #ocaml
Denommus has quit [Max SendQ exceeded]
struktured has quit [Ping timeout: 256 seconds]
BitPuffin has quit [Read error: Connection reset by peer]
oscar_toro has quit [Ping timeout: 252 seconds]
BitPuffin has joined #ocaml
jtfmumm has joined #ocaml
tane has joined #ocaml
ollehar has quit [Ping timeout: 250 seconds]
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 265 seconds]
rom1504 has quit [Ping timeout: 252 seconds]
pleiosaur has quit [Remote host closed the connection]
pleiosaur has joined #ocaml
kushal has quit [Read error: Connection reset by peer]
rom1504 has joined #ocaml
ygrek has joined #ocaml
walter|r has joined #ocaml
zpe has joined #ocaml
amnn has quit [Ping timeout: 276 seconds]
oscar_toro has joined #ocaml
amnn has joined #ocaml
ygrek has quit [Ping timeout: 246 seconds]
darkf has quit [Quit: Leaving]
jonludlam has quit [Ping timeout: 250 seconds]
zpe has quit [Ping timeout: 276 seconds]
kushal has joined #ocaml
amnn has quit [Remote host closed the connection]
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
kdas_ has joined #ocaml
kushal has quit [Ping timeout: 252 seconds]
creichert has joined #ocaml
x47 has quit [Ping timeout: 265 seconds]
maufred_ has joined #ocaml
maufred_ has quit [Client Quit]
oscar_toro has quit [Ping timeout: 252 seconds]
sepp2k has quit [Quit: Leaving.]
sepp2k has joined #ocaml
sepp2k has quit [Client Quit]
sepp2k has joined #ocaml
MrScout has joined #ocaml
mort___ has quit [Ping timeout: 246 seconds]
MrScout has quit [Read error: Connection reset by peer]
MrScout has joined #ocaml
kdas_ has quit [Ping timeout: 265 seconds]
shinnya has joined #ocaml
MrScout has quit [Remote host closed the connection]
Rebelion has joined #ocaml
MrScout has joined #ocaml
MrScout has quit [Remote host closed the connection]
MrScout has joined #ocaml
mcclurmc has joined #ocaml
walter|r_ has joined #ocaml
walter|r has quit [Ping timeout: 276 seconds]
mcclurmc has quit [Ping timeout: 256 seconds]
jtfmumm has joined #ocaml
kdas_ has joined #ocaml
jonludlam has joined #ocaml
struktured has joined #ocaml
ygrek has joined #ocaml
thomasga has quit [Quit: Leaving.]
mcclurmc has joined #ocaml
struktured has quit [Ping timeout: 264 seconds]
Kakadu has quit [Quit: Page closed]
Denommus has joined #ocaml
hay207 has joined #ocaml
Submarine_ has joined #ocaml
Submarine_ has joined #ocaml
MercurialAlchemi has joined #ocaml
psy_ has quit [Read error: Connection reset by peer]
psy_ has joined #ocaml
oscar_toro has joined #ocaml
whirm has quit [Quit: WeeChat 1.2]
Haudegen has quit [Ping timeout: 256 seconds]
obadz has quit [Ping timeout: 276 seconds]
obadz has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
Submarine has quit [Quit: Leaving]
Haudegen has joined #ocaml
soultadu has joined #ocaml
gpeterson1 has quit [Ping timeout: 250 seconds]
Kakadu has joined #ocaml
soultadu has left #ocaml ["Quit"]
ggole has quit []
ollehar has joined #ocaml
gpeterson1 has joined #ocaml
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
thomasga has joined #ocaml
luzie has quit [Read error: Connection reset by peer]
luzie has joined #ocaml
Hannibal_Smith has joined #ocaml
jtfmumm has joined #ocaml
soultadu has joined #ocaml
soultadu has left #ocaml ["Quit"]
soultadu has joined #ocaml
jonludlam has quit [Ping timeout: 252 seconds]
monod has joined #ocaml
walter|r_ has quit [Remote host closed the connection]
lobo has joined #ocaml
matason has quit [Ping timeout: 255 seconds]
gpeterson1 has quit [Ping timeout: 246 seconds]
uris77 has joined #ocaml
Haudegen has quit [Ping timeout: 265 seconds]
jwatzman|work has joined #ocaml
Haudegen has joined #ocaml
monod has quit [Ping timeout: 256 seconds]
xificurC has quit [Read error: Connection reset by peer]
xificurC has joined #ocaml
sh0t has quit [Ping timeout: 256 seconds]
thomasga has quit [Ping timeout: 246 seconds]
ollehar has quit [Ping timeout: 255 seconds]
hay207 has quit [Ping timeout: 240 seconds]
moei has quit [Quit: Leaving...]
oscar_toro has quit [Ping timeout: 256 seconds]
wraithm has quit [Quit: leaving]
jonludlam has joined #ocaml
gpeterson1 has joined #ocaml
ollehar has joined #ocaml
monod has joined #ocaml
lolisa has joined #ocaml
QuanticPotato has joined #ocaml
kdas_ has quit [Ping timeout: 240 seconds]
mort___ has joined #ocaml
<flux> looking at eliom's types some concept of a 'type parameter record' starts sounding nice..
martintrojer has quit [Read error: Connection reset by peer]
<def`> object type :P
<flux> I don't think it solves this
<flux> who's going to remember what a ('a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j) Eliom_service.service means?
<flux> but I guess one doesn't really need to deal with that a lot :)
gpeterson1 has quit [Ping timeout: 264 seconds]
martintrojer has joined #ocaml
thomasga has joined #ocaml
thomasga has quit [Client Quit]
gpeterson1 has joined #ocaml
soultadu has quit [Ping timeout: 246 seconds]
Denommus` has joined #ocaml
Denommus` has quit [Max SendQ exceeded]
thomasga has joined #ocaml
Denommus` has joined #ocaml
Denommus` has quit [Max SendQ exceeded]
Denommus` has joined #ocaml
Denommus` has quit [Max SendQ exceeded]
Denommus` has joined #ocaml
Denommus` has quit [Max SendQ exceeded]
thomasga has quit [Client Quit]
Denommus` has joined #ocaml
Denommus` has quit [Max SendQ exceeded]
thomasga has joined #ocaml
Denommus` has joined #ocaml
thomasga1 has joined #ocaml
brunob has joined #ocaml
thomasga has quit [Read error: Connection reset by peer]
brunob has quit [Client Quit]
onurb has joined #ocaml
QuanticPotato has quit [Ping timeout: 264 seconds]
Haudegen has quit [Ping timeout: 252 seconds]
QuanticPotato has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Haudegen has joined #ocaml
jtfmumm has joined #ocaml
QuanticPotato has quit [Ping timeout: 248 seconds]
Denommus` has quit [Ping timeout: 244 seconds]
QuanticPotato has joined #ocaml
Denommus has quit [Ping timeout: 256 seconds]
Denommus has joined #ocaml
matason has joined #ocaml
gpeterson1 has quit [Quit: WeeChat 1.1.1]
walter|r has joined #ocaml
walter|r has quit [Ping timeout: 246 seconds]
QuanticPotato has quit [Ping timeout: 264 seconds]
QuanticPotato has joined #ocaml
matason has quit [Ping timeout: 252 seconds]
ollehar has quit [Ping timeout: 265 seconds]
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Submarine_ has quit [Remote host closed the connection]
blAckEn3d has joined #ocaml
_andre has quit [Quit: leaving]
blAckEn3d has quit [Client Quit]
jtfmumm has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 256 seconds]
Mandus_ is now known as Mandus
onurb has quit [Quit: Lost terminal]
malc_ has joined #ocaml
struktured has joined #ocaml
mort___ has quit [Quit: Leaving.]
<def`> flux: < protocol:'a, post:'b, get:'c, route:'d, lo:'e, li:'f, lol:'g > Eliom_service.service
malc_ has quit [Ping timeout: 265 seconds]
thomasga1 has quit [Quit: Leaving.]
ceryo has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tane has quit [Quit: Verlassend]
monod has quit [Remote host closed the connection]
sh0t has joined #ocaml
ygrek has quit [Ping timeout: 256 seconds]
struktured has quit [Ping timeout: 252 seconds]
emanuelz has joined #ocaml
sheijk has quit [Remote host closed the connection]
kclancy has joined #ocaml
ollehar has joined #ocaml
<kclancy> I have a question about debugging using ocamldebug. I would like to be able to use the print command to view the value of any variable. However, variables with abstract types print out as <abstr>, which isn't very helpful.
<kclancy> Is there a way to use install_printer to work around this?
<kclancy> I saw a newsgroup post which suggested that this is the case. However, it says that install_printer can't be used to install functions which are part of the program being debugged.
<kclancy> How would I go about setting up the debugger so that I can view the values of variables with abstract types? I am willing to add new printing functions to my project if necessary.
emanuelz has left #ocaml [#ocaml]
<ollehar> anyone made a type-inferring compiler?
<ollehar> well, except ocaml ^^
<ollehar> is it hard?
<ollehar> must be a lot of docs available by now :P
<Drup> It's not very hard
<Drup> start by reading up on the W algorithm
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Drup> It's probably the simplest
<Drup> (assuming polymorphism, but a language isn't worth it without)
jtfmumm has joined #ocaml
<ollehar> ok
<ollehar> I'm thinking about making a subset of PHP type-inferred, using parts of the hacklang compiler. mostly as an experiment, I suppose.
<Drup> Ah
<Drup> then it's more complicated
<ollehar> hm
<Drup> start by creating a type system for it, then you can think of infering types ...
<jwatzman|work> ollehar: the Hack typechecker already does type inference, what more do you want to make type inferred? Do you want to do it across function boundaries too? You have to be very careful since PHP has implicit subtyping (and uses it *everywhere*), which makes total type inference undecidable
<ollehar> I would be OK with a stricter subset of PHP.
<jwatzman|work> ollehar: you'd have to remove subyping :-P
<ollehar> that can still run on php hosting, of course
<jwatzman|work> ollehar: You are also much better off with a more principled language than PHP and a more principled type system than the Hack typechecker
<jwatzman|work> for learning
<Drup> yeah
<Drup> (efficient) type inference is already complicated enough on ML
<ollehar> well, would a _very_ small subset of php be ok?
<ollehar> say, beginning with just variables, math op and string concat?
<jwatzman|work> ollehar: at that point, it's hardly PHP; you should use something more principled
<jwatzman|work> i'd start with a minimal subset of *ML* instead
tnguyen has joined #ocaml
accidus_benartiu has joined #ocaml
walter|r has joined #ocaml
<ollehar> what's implicit subtyping in php, btw?
accidus has joined #ocaml
<jwatzman|work> class C {} class D extends C {} function f(C $x) {}
<jwatzman|work> you can pass a D to f()
<ollehar> ok, but that's the same thing as explicit coersion in ocaml, no?
<jwatzman|work> inferring what the type of f() is, in the presence of no annotations, is undecidable in the general case (think classes implementing multiple interfaces)
tmtwd has quit [Ping timeout: 265 seconds]
<jwatzman|work> ollehar: I think ocaml's is all *explicit*, which makes it work? I'm not an expert on this
<jwatzman|work> (Hack is also explicit, in that it requires type annotations on function inputs/outputs, which is how we get away with it)
<ollehar> ok, good point, did not now about this.
<jwatzman|work> total type inference becomes undecidable if you sneeze wrong at your type system, features you think wouldn't matter make it undecidable.
tnguyen has quit [Client Quit]
<Drup> "total type inference becomes undecidable if you sneeze wrong at your type system" :]
<jwatzman|work> SML/OCaml were very very carefully constructed to make it decidable (and I think SML at least got it wrong, pretty sure there's undediibility in an obscure edge case). This is also why Haskell has so many weird type system options; most of them make inference undecidable in the general case
<bitemyapp> although a lot of things work surprisingly well, such as Rank-2 inference
<bitemyapp> work has been done to make inference for GADTs work most of the time as well. Kinda like how SAT solvers are tractable most of the time.
<jwatzman|work> bitemyapp: yeah, which is why most real Haskell programs start with a laundry list of options enabled, and it's just fine :)
<jwatzman|work> (I don't like undecidable type systems purely as a religious thing. :-P)
<Drup> well, they also annotates everything
<Drup> It's idiomatic in haskell to give types to every functions. not doing it raises a warning by default ...
lolisa has quit [Ping timeout: 248 seconds]
<Drup> jwatzman|work: be very careful, there is undecidable *inference* and undecidable *checking*
<Drup> haskell can be both.
<jwatzman|work> Drup: yeah, I realize I'm kind of conflating them
<jwatzman|work> which i really really shouldn't
<Drup> one is terrible, the other is apocalyptic
<Drup> bitemyapp: have you seen jacque garrigue's last article ? It's very interesting on this aspect
oscar_toro has joined #ocaml
<Drup> jwatzman|work: we can still laugh at the fact that Rust's traits are turing complete :3
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<ollehar> gotta sleep, thanks for input!
ollehar has quit [Quit: ollehar]
Haudegen has quit [Ping timeout: 246 seconds]
x47 has joined #ocaml
ygrek has joined #ocaml
ollehar has joined #ocaml
<bitemyapp> jwatzman|work: not most, not at all.
sepp2k has quit [Quit: Leaving.]
QuanticPotato has quit [Ping timeout: 256 seconds]
<bitemyapp> jwatzman|work: a lot of the Haskell files in my 9-5 work have zero extensions, often they just have boring ones like OverloadedStrings
<ollehar> jwatzman|work: function f(C $x) {} <--- but this function has annotation? isn't `C $x` enough?
sepp2k has joined #ocaml
<ollehar> for another completely different question, why haven't anyone added llvm bindings to hacklang?
<ollehar> (maybe wrong place to ask :) )
QuanticPotato has joined #ocaml
<ollehar> if I pass object of type D (that extends C) to f(), it will try to coerce it; if it fails, it will throw compiler error.
<ollehar> coerce it to C.
lobo has quit [Quit: leaving]
Haudegen has joined #ocaml
hay207 has joined #ocaml
moei has joined #ocaml
<ollehar> ach, have to sleep. again.
ollehar has quit [Quit: ollehar]
QuanticPotato has quit [Ping timeout: 252 seconds]
QuanticPotato has joined #ocaml
ollehar has joined #ocaml
uris77 has quit [Quit: leaving]
cdidd_ has quit [Ping timeout: 265 seconds]
ollehar has quit [Quit: ollehar]
QuanticPotato has quit [Ping timeout: 255 seconds]
manud has joined #ocaml
Simn has quit [Quit: Leaving]
cdidd_ has joined #ocaml
swgillespie has joined #ocaml
MrScout has quit [Ping timeout: 248 seconds]
MrScout has joined #ocaml
walter|r has quit [Remote host closed the connection]
robink_ has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
waneck has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
robink_ has quit [Ping timeout: 244 seconds]
madroach has joined #ocaml
accidus has quit [Ping timeout: 240 seconds]
sh0t has quit [Ping timeout: 255 seconds]
accidus_benartiu has quit [Ping timeout: 276 seconds]
ollehar has joined #ocaml
walter|r has joined #ocaml
walter|r has quit [Ping timeout: 246 seconds]
MrScout has quit [Remote host closed the connection]
robink_ has joined #ocaml
Kakadu has quit [Remote host closed the connection]
struktured has joined #ocaml