<gasche>
would you companion_cube have some time then? (maybe just replying emails and making guesses)
<companion_cube>
replying to emails is always fine :)
<gasche>
hm, not sure it is related
<companion_cube>
well, rust is similar to {C,C++} performance-wise
<gasche>
maybe so
<companion_cube>
so I'd consider writing a SMT solver with it
<gasche>
but that's not really what people mean by "systems programming" today
<gasche>
(as in: Go is good at it, reportedly)
<companion_cube>
bah.
<companion_cube>
it's clear that Go isn't a system language
<gasche>
I think our project is also about how to reach performance in a particular domain while retaining a functional-programming approach
<companion_cube>
only Rob Pike believes this
<companion_cube>
depends what you mean by "functional programming" !
<gasche>
("systems programming" nowaday seems to mean something like "orchestration of microservices" or something)
<companion_cube>
I'd say for this kind of code (which is disproportionately representative to OCaml users, I think), what matters is the "expressive imperative+functional mix"
<companion_cube>
heh :D
<gasche>
ideally I would like the code for the most part to be simple, idiomatic OCaml code, with complex things pushed to the leaves
<gasche>
but I don't know whether this is achieveable
<companion_cube>
hum :D
<gasche>
I am also interested, in a more abstract sense, in building a good OCaml-Rust FFI bridge
<companion_cube>
you might want to take a look at the current code ;)
<companion_cube>
ah, that's also nice
<gasche>
but I'm not sure I want to work on this myself, at least not for now
<companion_cube>
but there's a talk by Enjolras at the workshop I think
<companion_cube>
about rust/ocaml
bruce_r has quit [Ping timeout: 255 seconds]
<gasche>
because it is much farther from my professionnal interests
<gasche>
also I find the idea of getting good performances (for a problem domain) while remaining in pure-OCaml land more interesting/challenging
<gasche>
(but ultimately I think we would like to have both)
<gasche>
(afk)
samrat_ has quit [Ping timeout: 240 seconds]
<zozozo>
gasche: I'm beginning the third year of my PhD, so it depends on what you mean by 'next'
<zozozo>
(sorry for the late answer, I have very sparse internet here)
sam___ has joined #ocaml
mengu has joined #ocaml
sam___ has quit [Ping timeout: 260 seconds]
<octachron>
Drup, gasche: for MPR#7604 this was a duplicated sentence in the documentation source itself: the documentation choose to repeat the preamble as an implicit section title.
mengu has quit [Ping timeout: 255 seconds]
fmardini_ has joined #ocaml
fmardini has quit [Ping timeout: 240 seconds]
<gasche>
octachron: I think I will leave this PR to your good graces :-'
toolslive has joined #ocaml
fmardini has joined #ocaml
mfp__ has joined #ocaml
fmardini_ has quit [Ping timeout: 255 seconds]
samrat_ has joined #ocaml
malina has quit [Remote host closed the connection]
malina has joined #ocaml
jao has joined #ocaml
sam___ has joined #ocaml
jao has quit [Ping timeout: 255 seconds]
sam___ has quit [Ping timeout: 255 seconds]
dhil has joined #ocaml
malina has quit [Remote host closed the connection]
samrat_ has quit [Ping timeout: 246 seconds]
mbuf has quit [Ping timeout: 260 seconds]
mbuf has joined #ocaml
ziyourenxiang has joined #ocaml
ShalokShalom_ is now known as ShalokShalom
fraggle_ has quit [Remote host closed the connection]
fraggle_ has joined #ocaml
mengu has joined #ocaml
malina has joined #ocaml
andreas__ has joined #ocaml
mengu has quit [Ping timeout: 260 seconds]
sam___ has joined #ocaml
sam___ has quit [Ping timeout: 240 seconds]
dakk has quit [Ping timeout: 255 seconds]
malina has quit [Remote host closed the connection]
copy_ has joined #ocaml
sam___ has joined #ocaml
Original_Nicknam has joined #ocaml
samrat_ has joined #ocaml
mengu has joined #ocaml
Nanjizal has joined #ocaml
<Nanjizal>
Good afternoon ( or suitable timezone greetings ). I was wondering does Ocaml have something like Gloss ?
fmardini_ has joined #ocaml
<Nanjizal>
Gloss is opengl graphics stuff for Haskell that is setup to be quite easy to use. I use Kha etc... with Haxe, and since Haxe compiler is written in Ocaml I am interested in learning a bit more Ocaml but really I prefer learning languages via creating graphics. But last time I looked at Ocaml the graphics I saw was not anywhere near as approachable as something like Gloss or Kha.
<Nanjizal>
There is a local meetup for Haskell learning so no doubt I will slowly pick up more of that. But suggestions for Ocaml graphics creation ??
mengu has quit [Remote host closed the connection]
fmardini has quit [Ping timeout: 240 seconds]
jlam__ has quit [Quit: Leaving]
<toolslive>
there is an opengl binding from ocaml, but it's a rather 1:1 translation of the API.
<toolslive>
I played with it in the past...
<Nanjizal>
I bought an expensive book on ocmal because it seemed to have some graphics in but turned out to have very little and was hard to follow so lost interest quite fast.
jlam_ has joined #ocaml
<Nanjizal>
some scientific book.
<def`>
What kind of graphics would you like to do?
<Nanjizal>
@toolslive did you look at Gloss I think it only does OpenGL or something so not flexible like Kha but it's is very approachable.
<Nanjizal>
Just general graphics stuff ? I don't really want to have to have to deal too deeply with shader stuff but I don't want a really slow canvas either.
jlam_ has quit [Ping timeout: 248 seconds]
<Nanjizal>
Well slowly learning a bit of webgl and shaders but I really liked the way Gloss allowed you to write functional code without having to get into the shader setup stuff. Only spent really an evening pair programmnig on a meetup with it but seemed fairly approachable with lots of examples.
mengu has joined #ocaml
sepp2k has joined #ocaml
malina has joined #ocaml
<Nanjizal>
Gloss is here https://github.com/benl23x5/gloss if you look at some of the examples you need very little code to get something running, maybe it's not low level enough for something serious, I am not sure but seemed ideal to practice some Haskell. So like 58 lines to create a very simple line drawing app and that includes lots of comments. https://github.com/benl23x5/gloss/blob/master/gloss-exam
<Nanjizal>
Will these be easy to setup and use on Mac?
fmardini_ has quit [Read error: Connection reset by peer]
fmardini has joined #ocaml
<def`>
I used to develop it on a mac, though I removed some mac-specific hack recently.
<def`>
I can try this evening.
<Nanjizal>
I seem to have Ocaml on my machine OCaml version 4.03.0+dev6-2015-01-20, might have some food and give it a try, I can't rem much about use Ocaml, but I did once experiment with the font stuff in the Haxe compiler which might be of interest, I was trying to get svg out of the font parser, but I probably lost the code. But if you want to add font to your engine probably look at... https://github.c
<Original_Nicknam>
the rank2 type "(∀a, a list -> a list) -> t" is more general than the ocaml "('a list -> 'a list) -> t", right ?
<Nanjizal>
It should parse TTF into draw commands which you could probably easily add to Nanovg
<Original_Nicknam>
more specific *
sam___ has quit [Ping timeout: 260 seconds]
<Original_Nicknam>
eh '_'
<Nanjizal>
The orginal code I think was in hxswfml ( haxe ) and ported over to Ocaml so I don't know if it's very functional style ?
<octachron>
Original_Nicknam, yes: rank 2 and above polymorphic functions need to be implemented using either polymorphic record field or object in OCaml
nomicflux has joined #ocaml
<Original_Nicknam>
octachron, i'm wondering, is the /only/ difference between those two types is the ability for the function to use its parameter with a different type parameter, or is there some more subtleties ?
<Original_Nicknam>
with different type parameters*
jlam_ has joined #ocaml
sam___ has joined #ocaml
jlam has quit [Ping timeout: 240 seconds]
jlam has joined #ocaml
_andre has joined #ocaml
jlam_ has quit [Ping timeout: 260 seconds]
dakk has joined #ocaml
jlam_ has joined #ocaml
mbuf has quit [Quit: Leaving]
jlam has quit [Ping timeout: 246 seconds]
jlam has joined #ocaml
jlam_ has quit [Ping timeout: 240 seconds]
<octachron>
Original_Nicknam, for most uses, yes. But it also affect typing, consider for instance "let a f = f 1"
mengu has quit [Remote host closed the connection]
<octachron>
its type is "(int -> 'a) -> 'a", which is quite different than "let id = {f:'a. 'a -> 'a} let a {f} = f 1" which has for type "id(≡{f:∀'a.'a->'a})->int"
<gasche>
kakadu: it would be even more convincing if you could use the error/warning location information to jump to the right place automatically
<gasche>
( for the record, Fabrice Le Fessant implemented a tool for this in typerex, crudely parsing typer error messages )
<Leonidas>
can I somehow tell depext which flags to infer?
<Leonidas>
or rather, tell it the flags
groovy2shoes has quit [Quit: Leaving]
groovy2shoes has joined #ocaml
samrat_ has quit [Ping timeout: 255 seconds]
sam___ has quit [Ping timeout: 248 seconds]
jbrown has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 246 seconds]
samrat_ has joined #ocaml
BitPuffin|osx has joined #ocaml
sam___ has joined #ocaml
sam___ has quit [Ping timeout: 255 seconds]
<kakadu>
gasche: I kind of did it but QtCreator doesn't show tooltips about the fact that Enter was pressed in the errors pane: https://cdn.pbrd.co/images/GFVzKzk.gif
al-damiri has joined #ocaml
oriba has joined #ocaml
jlam_ has joined #ocaml
jlam has quit [Ping timeout: 255 seconds]
jlam has joined #ocaml
jlam_ has quit [Ping timeout: 240 seconds]
samrat_ has quit [Ping timeout: 240 seconds]
silenc3r has joined #ocaml
samrat_ has joined #ocaml
vramana_ has joined #ocaml
vramana has quit [Ping timeout: 276 seconds]
silenc3r has quit [Quit: Leaving]
silenc3r has joined #ocaml
MercurialAlchemi has joined #ocaml
sam___ has joined #ocaml
sam___ has quit [Ping timeout: 240 seconds]
silenc3r has quit [Quit: Leaving]
malina has quit [Remote host closed the connection]
BitPuffin|osx has quit [Ping timeout: 248 seconds]
ygrek has joined #ocaml
ygrek has joined #ocaml
dakk has quit [Ping timeout: 240 seconds]
jlam has quit [Read error: Connection reset by peer]
jlam has joined #ocaml
jlam_ has joined #ocaml
Nanjizal has quit [Read error: Connection reset by peer]
tane has joined #ocaml
Nanjizal has joined #ocaml
jlam has quit [Ping timeout: 260 seconds]
oriba has quit [Quit: WeeChat 1.9]
jlam has joined #ocaml
jlam has quit [Read error: Connection reset by peer]
jlam has joined #ocaml
jlam_ has quit [Ping timeout: 246 seconds]
sam___ has joined #ocaml
jlam_ has joined #ocaml
jlam has quit [Read error: Connection reset by peer]
jlam has joined #ocaml
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 240 seconds]
jlam has quit [Ping timeout: 240 seconds]
bruce_r has joined #ocaml
sam___ has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
Nanjizal has quit [Ping timeout: 255 seconds]
c1000wn has joined #ocaml
c1000wn has quit [Client Quit]
Nanjizal has joined #ocaml
mbuf has quit [Quit: Leaving]
fmardini_ has joined #ocaml
raphaelss has joined #ocaml
fmardini has quit [Read error: Connection reset by peer]
fmardini has joined #ocaml
xuanrui has quit [Ping timeout: 240 seconds]
fmardini_ has quit [Ping timeout: 260 seconds]
fmardini_ has joined #ocaml
fmardini has quit [Ping timeout: 260 seconds]
fmardini has joined #ocaml
rostero has joined #ocaml
fmardini_ has quit [Ping timeout: 276 seconds]
fmardini_ has joined #ocaml
fmardini has quit [Ping timeout: 240 seconds]
fmardini has joined #ocaml
tane has quit [Quit: Leaving]
fmardini_ has quit [Ping timeout: 240 seconds]
tokomak has joined #ocaml
samrat_ has quit [Ping timeout: 246 seconds]
kakadu has quit [Quit: Konversation terminated!]
ziyourenxiang has quit [Ping timeout: 240 seconds]
slash^ has joined #ocaml
KeyJoo has joined #ocaml
<sh0t>
HI guys! Say I have a type for t which represents an abstract syntax tree.. with some constructors A, B, C. And I implemented a semantics for that. Now say I want to create another abstract syntax tree t' with another constructor D, so that in the traverse of an ast t' i can rely on the previous implementation for data of type t.
<sh0t>
I was thinking something like type t'=Emb of t | D of a
<sh0t>
(emb stands for embeds.)
<sh0t>
Is this something standard?
copy_ has quit [Quit: Connection closed for inactivity]
bruce_r has quit [Ping timeout: 246 seconds]
<sh0t>
(t is recursive)
sh0t has quit [Quit: Leaving]
FreeBirdLjj has quit [Remote host closed the connection]
MercurialAlchemi has quit [Ping timeout: 255 seconds]
peterpp has joined #ocaml
Enlik has joined #ocaml
FreeBirdLjj has joined #ocaml
<Enlik>
hi, what is the thing that provides --cookie when building stuff? Maybe it's standard enough you'll know right away. (I'm clueless when it comes to ocaml, I just want to build something and it dies with "/.ppx/ppx_driver.runner/ppx.exe: unknown option '--cookie'".)
xuanrui has joined #ocaml
<Enlik>
looks like ppx_driver even though they don't list this option in the readme
jlam__ has quit [Read error: Connection reset by peer]
jlam_ has joined #ocaml
MercurialAlchemi has joined #ocaml
silenc3r has joined #ocaml
<octachron>
Enlik, have you checked the version of ppx_driver ?
<Enlik>
octachron: after updating ppx_driver, building went smoothly
<Enlik>
so it was this. :) I created an issue to add the option to readme.
jlam_ has quit [Read error: Connection reset by peer]
jlam has joined #ocaml
bruce_r has joined #ocaml
mengu has joined #ocaml
kakadu has joined #ocaml
kakadu_ has joined #ocaml
kakadu has quit [Ping timeout: 246 seconds]
slash^ has quit [Read error: Connection reset by peer]
fmardini_ has joined #ocaml
fmardini has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
raphaelss has quit [Quit: Lost terminal]
Enlik has left #ocaml ["WeeChat 1.6"]
raphaelss has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
raphaelss has quit [Quit: Lost terminal]
ygrek has joined #ocaml
mengu has quit [Quit: Leaving...]
mrsmkl has quit [Ping timeout: 260 seconds]
tormen has quit [Ping timeout: 240 seconds]
tormen has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 240 seconds]
fmardini has joined #ocaml
fmardini_ has quit [Ping timeout: 240 seconds]
Nanjizal has quit [Ping timeout: 246 seconds]
tormen has quit [Ping timeout: 248 seconds]
tobiasBora has joined #ocaml
_andre has quit [Quit: leaving]
dhil has quit [Ping timeout: 240 seconds]
tormen has joined #ocaml
sepp2k has quit [Quit: Leaving.]
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0_ has joined #ocaml
infinity0_ is now known as infinity0
enterprisey has joined #ocaml
sam___ has joined #ocaml
silenc3r has quit [Quit: Leaving]
sam___ has quit [Ping timeout: 248 seconds]
pierpa has joined #ocaml
xuanrui has quit [Ping timeout: 255 seconds]
danieli has joined #ocaml
jbrown has quit [Remote host closed the connection]
coventry has joined #ocaml
Original_Nicknam has quit [Read error: Connection reset by peer]
<coventry>
People who don't use Batteries, Core, or some similar library, but write a lot of OCaml code: why not? Trying to decide whether to switch from reading the ocaml.org tutorials to Real World OCaml, which uses Core, but seems to be much higher quality.
<coventry>
tezos doesn't use either, and I'm studying to learn the tezos code, so that's a point against RWO.
Ergatis has joined #ocaml
cbot has joined #ocaml
<jmiven>
many (most?) things in RWO are applicable even if you don't use Core
<octachron>
coventry, between RWO and ocaml.org tutorials, RWO would be much better to learn OCaml, even if function names or arguments are slightly different than tezos in RWO
<coventry>
Thanks. I'll go with RWO for now.
ziyourenxiang has joined #ocaml
toolslive has quit [Remote host closed the connection]
xuanrui has joined #ocaml
mfp__ has quit [Ping timeout: 260 seconds]
mfp__ has joined #ocaml
rks` has quit [Ping timeout: 240 seconds]
enterprisey has quit [Remote host closed the connection]
ygrek has quit [Ping timeout: 240 seconds]
nomicflux has joined #ocaml
oliverfriedmann has joined #ocaml
jlam_ has joined #ocaml
jlam__ has joined #ocaml
jlam has quit [Ping timeout: 255 seconds]
srcerer has joined #ocaml
jlam_ has quit [Ping timeout: 264 seconds]
kakadu_ has quit [Remote host closed the connection]
peterpp has quit [Ping timeout: 255 seconds]
ziyourenxiang has quit [Ping timeout: 248 seconds]