adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml MOOC http://1149.fr/ocaml-mooc | OCaml 4.02.3 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
<zozozo> well, from what I know there isn't much weird syntax magic (except if you use camlp4, but it should die soon I think)
pierpa has quit [Ping timeout: 245 seconds]
<zozozo> polymorphism and functional programming allows to write concise, generic and clear code most of the time, :)
<lokien_> That's good :)
<lokien_> zozozo: do you recommend core from jane street?
<zozozo> I don't personally use it, but from what I hear it's nice, there are also other alternative standard libraries extension if you want (namely, Batteries and Containers)
<zozozo> I use containers usually; the interesting part is that most modules in it are pretty much stand alone so you can even copy paste code from it when you don't want to pull the whole library
<lokien_> Isn't that fragmentation bad for the language? Several compilers and core libraries?
<mrvn> only one compiler and yes it is
ygrek has quit [Ping timeout: 260 seconds]
<lokien_> mrvn: what do you do about it?
<mrvn> wait who wins
<lokien_> Fragmentation has killed common lisp, and it's so ugly now
<blub> what fragmentation is that
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<lokien_> Like, you want to do pair programming with some ocamler and you end up arguing about what core library to use
<blub> i meant wrt lisp
<zozozo> lokien_: happens, but there IS a standard library distributed with the compiler
<zozozo> it's just that most people feel the standard library is missing some functions
<mrvn> it is. it only contains what the compiler needs basically.
<zozozo> yeah, I know
<companion_cube> even a subset of that
<lokien_> blub: lisp coders would write a lot of macros and dsls, and not document any of that. there is no cl community, only cowboy coders being on their own, not being able to use others' code
<lokien_> Umm.. Let's say I want to do some string stuff. What library would I use?
<lokien_> Replaces, counts, stuff like that
<zozozo> lokien_: what string stuff ? there's Re for regular expressions
blockeduser has joined #ocaml
<blockeduser> is metalinguistic abstraction / data-driven programming possible in Ocaml?
<blockeduser> ie something similar to Lisp s-expressions
<mrvn> nothing is impossible
<blockeduser> I took an ocaml course last year and it made no mention whatsoever of DDP
<blockeduser> just wondering anyway
<blockeduser> bec
<blockeduser> ause it can be done so elegantly in lisp..
Haudegen has joined #ocaml
<blockeduser> ocaml is supposed to be the future but i'm not sold until it has s-expressions haha
<lokien_> zozozo: how would you replace some sequences with others in a string? Something like :s/foo/bar/g in vim
<blockeduser> and s-expression literals of course
jrslepak has quit [Quit: This computer has gone to sleep]
<blockeduser> sorry i'll shut up
<blub> lokien_: i wouldn't call underdocumentation fragmentation, or something unique to lisp. there are plenty of libraries everyone uses on quicklisp too, i don't really understand the complaint
<lokien_> blub: it was not a complaint, really. just some random thoughts
struk|desk2 is now known as struk|desk|away
<lokien_> I might be wrong about everything
<zozozo> lokien_: that's a good question
<lokien_> blockeduser: no, why?
<blockeduser> just wondering because I think DDP is an programming technique ripe with potential, and that ocaml also has lots of potential
<zozozo> lokien_: I would split the string using a regexp matching your separator, then reassemble the string fragments after inserting the replacement strings
<blockeduser> i'm a bit futurusitci
<blockeduser> thanks for the answer though lokien_
<Drup> blockeduser: yes and no
<Drup> you don't have "code as data" like in lisp
<lokien_> zozozo: so.. no easy way? No core.string/replace "foo" "bar"?
<blockeduser> this is why lisp still is relevant if it's not typed
<Drup> you can however go pretty far with "type-driven programming"
<blockeduser> i guess the problem with code as data is you can't type it hahaha
<Drup> precisely
<blockeduser> this is super interesting i mean i've worked professionally in a non-Turing complete language
<blockeduser> which was non-TUring complete *but* it was more parallelizable because there was no mutations
<zozozo> lokien_: i don't know about Core, but it's possible there is a function that does that
<blockeduser> there is like this weird space of languages and abilities eh
<Drup> lokien_: use Re
<blockeduser> so Scheme/Common Lisp can still have their place in this world and it's not ocaml all the way for the future? because DDP is so powerful
<lokien_> blockeduser: what about typed racket?
<blockeduser> the weird thing too is that ocaml uses the term "pattern matching" to refer to type decomposition syntax sugar and not to DDP
<blockeduser> lokien_: it exists? i should investigate it :)
<Drup> typed racked doesn't have code as data
<blockeduser> ah
<blockeduser> Drup was right then
<blockeduser> DDP is so powerful and beautiful an idea and yet it is almost never used anymore in the everyday life of 2016
<lokien_> Drup: I'll use it when I figure out what it is
<fds> Not all beautiful ideas make reliable software.
<Drup> blockeduser: as I said, you can do most of this with ADTs anyway ..
<lokien_> blockeduser: bu-ut, there is typed clojure and schema. you can use it too, if you want types
<lokien_> fds: *cough* haskell *cough*
<Drup> but most of the uses of lisps that lispers consider "interesting" are not really typable ...
tane has quit [Quit: Verlassend]
<blockeduser> yeah so i guess the choice is between typing or lingusitic expressivity
<mrvn> Drup: well, Y isn't typable
<blockeduser> typing helps correctness right
<mrvn> blockeduser: 90% of bugs are type errors
<Drup> mrvn: sure it's typeable, in the right theory.
<blockeduser> what about synchronization bugs like deadlocks and race conditions
<blockeduser> if you work as an OS programmer these will be the major bug types i think
<blockeduser> at least it was that way when i visited an OS dev shop this summer
<lokien_> blockeduser: maybe you want to try rust?
<mrvn> blockeduser: ocaml isn't concurrent multithreaded
<blockeduser> rust is interesting for OS right
<blockeduser> it's a mozilla project so
<blockeduser> definitely C is not the future hahaha
<lokien_> mrvn: hey, they promised ocaml would run on many cores by the end of this year, what happened?
<mrvn> lokien_: it's only day 3 of the year
<blockeduser> functionally pure languages parallelize well, surely? then it would just be a matter of programming an appropriate compiler
<blockeduser> which is just some engineering busywork that can be solved right?
<mrvn> blockeduser: ocaml isn't pure
<blockeduser> oh right
<lokien_> mrvn: previous* :(
<blockeduser> but surely if you write pure ocaml it can parallelized?
<blockeduser> does it have a typechecker for purity?
<mrvn> blockeduser: purity isn't part of a functions type
<blockeduser> it's that weird '() or whatever type that's for side effects right?
<blockeduser> oh
<blockeduser> right
<blockeduser> it could be though?
<blockeduser> like we could have f: 'a -> (b', random side effects)
<mrvn> blockeduser: it could be many things it isn't.
<blockeduser> so there is some real pragmatism operating eh
<blockeduser> is there a industrial domain that ocaml is practical for
<mrvn> blockeduser: the side effect has to be part of the ->
<Drup> "then it would just be a matter of programming an appropriate compiler which is just some engineering busywork that can be solved right?"
<Drup> ah.ah.ah
<blockeduser> well i mean it's not heavy theory
<blockeduser> it should be possible is what i meant
<Drup> ah.ah.ah²
<zozozo> blockeduser: actually, I think it's the garbage collection that's complicated
<blockeduser> i've been in the real world of engineering don't worry
<blockeduser> only i like to "think big"
<blockeduser> i've worked for real companies on real commercial contracts with real stupid bugs
<blockeduser> i've done well in school too
<blockeduser> anyway i'm sorry about the idealism
madroach has quit [Ping timeout: 246 seconds]
<blockeduser> zozozo: that's kind of weird in a way
<fds> http://www.cl.cam.ac.uk/~sd601/multicore.md might be an interesting read.
<mrvn> blockeduser: your problem is that you think the problem are the pure functions
<blockeduser> don't they parallelize well?
<mrvn> blockeduser: the others don't
<blockeduser> let me be honest with you I worked for a company that had a language similar to ocaml
<blockeduser> and it had pure functions
<blockeduser> and it was paralellized to run on multiple cores
<blockeduser> and they did multi million dollar contracts with this beast
<blockeduser> so i think it's possible
<blockeduser> it's proprietary top secret goo though ;)
<mrvn> blockeduser: and who says no other thread calls an impure function while your pure function runs?
<blockeduser> sorry my assumption was the whole thing was pure
madroach has joined #ocaml
<blockeduser> and if the other thread is in another program which doesn't share memory with this one it's still good
<zozozo> blockeduser: if you don't share memory, just start separate processes ?
<blockeduser> yeah
<blockeduser> that sounds legit
<blockeduser> i still cant believe its a trade secret a pseudo-ocaml with a multicore compiler
<blockeduser> heh
<blockeduser> dont tell anyone hahaha
<zozozo> blockeduser: you do know that this channel is public and that there are most probably bots recording what happens here ?
<blockeduser> i haven't said anything offending
<blockeduser> nor anything private
<blockeduser> it's public knowledge that these systems exist
<mrvn> blockeduser: now you exposed company secrets, expect the layers
<blockeduser> sorry
<blockeduser> it's public knowledge
<blockeduser> there are papers
<blockeduser> the secret is the implementation
struk|desk|away is now known as struk|desk2
<blockeduser> the overall product's abilities like multicore is all public knowledge in trade brochures etc
<blockeduser> anyway sorry if I offended you
lobo has quit [Quit: leaving]
<blockeduser> i want to advance science!
<blockeduser> it took some pretty smart PhDs to write that compiler i guess
<mrvn> .oO(Don't reproduce :)
<blockeduser> the point is you can be optimistic that such a thing exists :)
<blockeduser> and then they say gabriel you have to learn your design patterns hahahaha
<blockeduser> when i already earned $ writing code in pseudo-ocaml :)
<blockeduser> oh well
<blockeduser> i hate java
Guest38 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<zozozo> blockeduser: you're not the only one
<blockeduser> ;)
<blockeduser> it just sucks when my university is java-focussed and has this self-rigtheous java "expert" guy as its self-proclaimed boss
<blockeduser> and then he gives these exams where he sinks half the class and the average is 40%
<blockeduser> oh well
<blockeduser> beware
<blockeduser> i could have moved to waterloo i guess but i wanted to stay close to my family
<rrika> <_< sounds like my university
<blockeduser> the cost is having to learn java
<blockeduser> but i learnt ocaml too!
rpg_ has quit [Quit: rpg_]
<blockeduser> thank you ocaml for being a highly civilized and intelligent language!
kakadu has quit [Remote host closed the connection]
<blockeduser> this is the paper btw http://www.orms-today.org/orms-4-05/airline.html
<blockeduser> so just for legal purposes the foregoing confirms that what I said is public domain knowledge since like 1999
<zozozo> ^^
<blockeduser> it was all publically published as part of PhD
<blockeduser> only the implementation is secret
<blockeduser> and there is no competitive risk because the company is very well established
<blockeduser> anyway
<blockeduser> if people ever tell you functional programming is a useless ivory tower mental masturbation, raise this! an industrial applications which helps pilots everyday!
<blockeduser> and its still smarter than java :)
<blockeduser> keep up the good work :)
<blockeduser> sorry for the spam
ely-se has joined #ocaml
nuuit has quit [Ping timeout: 276 seconds]
<mrvn> and just for the hype of it there is js_of_ocaml
<blockeduser> that's cool
pierpa` is now known as pierpa
<blockeduser> kind of like this guy eh www.biwascheme.org
<blockeduser> and also emscripten which translates C to javascript via LLVM
<blockeduser> heh
<blockeduser> i kinda hate javascript but i like C so i can use emscripten now
<blockeduser> and write "web friendly" "apps"
jonludlam has quit [Remote host closed the connection]
Stalkr_ has quit [Quit: Leaving...]
mort___ has quit [Quit: Leaving.]
rpg has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 264 seconds]
blockeduser has quit [Quit: gtg]
rpg has quit [Ping timeout: 245 seconds]
struk|desk2 is now known as struk|desk|away
hay207_ has joined #ocaml
<apache2> come on, java is not that bad
<apache2> at least it's not c or javascript
hay207 has quit [Ping timeout: 250 seconds]
badon has quit [Quit: Leaving]
ely-se has quit [Quit: Leaving...]
rpg has joined #ocaml
rpg has quit [Ping timeout: 264 seconds]
jfntn has joined #ocaml
jfntn has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
lokien_ has quit [Quit: Connection closed for inactivity]
gustav___ has quit [Ping timeout: 256 seconds]
badon has joined #ocaml
gustav___ has joined #ocaml
tmtwd has quit [Ping timeout: 256 seconds]
habs has joined #ocaml
<habs> Hi, I know this is a bit of a weird question and would not typically need to be used in programming because it's easily checkable by humans, but is there a way to check if a variable is defined in the current scope?
<Drup> "ignore x" and see if it compiles ? :)
<habs> Drup: Yes that would work, but I am looking for a way that would not cause any errors (or at least throw an exception which can be caught)?
<Drup> that is really not a runtime property, so, no.
<flux> habs, ocaml doesn't really know which variables are in scope. how would you make use of that?
<pierpa> habs, maybe you should describe what you really want to do?
psy_ has quit [Ping timeout: 264 seconds]
<flux> I guess it would be applicaple to meta programming (ie. ppx), but I don't think it's really possible there either (including camlp4, unless you walk the tree yourself?)
<flux> (s/aple/able/)
psy_ has joined #ocaml
<habs> flux: pierpa: Well it is understandably not what ocaml was intended for but I was thinking about how to complete this codegolf challenge: http://codegolf.stackexchange.com/questions/68391/please-count-me
<habs> If I could check if a variable is defined, then the challenge would be trivial, because if n is defined I would increment it (shadowing) but if not I would set it to 1.
<Drup> eh, /me not interested by code golfing
<pierpa> it's interesting that all the solution present there are written in shit languages
<pierpa> coincidence?
<pierpa> I DON'T THINK SO!
<Drup> I was thinking "meh, those are all perl-like" :)
<habs> pierpa: Haha I agree with you guys, I have never done a codegolf ever before to be clear and I dislike that the solutions often depend on arbitrary features of the language so the language with the most "quirks" often wins
<Drup> habs: but really, you don't need this, you just need to pick a mutable variable that is defined by default
<Drup> fortunately, OCaml (without -safe-string) does provides one.
<pierpa> :)
<pierpa> Sys.argv.(0) ?
<Drup> ah, yes, that one too
<Drup> I was thinking "string_of_bool true"
<pierpa> aha!
<habs> Drup: Yes I considered that too but I am not too familiar with the stdlib so I didn't know what to mutate, but now I see
<Drup> (It's evil, but so is using perl *shrug*)
<pierpa> evil and more evil: Sys.getcwd ()
rpg has joined #ocaml
rpg has quit [Ping timeout: 256 seconds]
mac10688 has quit [Ping timeout: 265 seconds]
darkf has joined #ocaml
rpg has joined #ocaml
MercurialAlchemi has joined #ocaml
rpg has quit [Ping timeout: 255 seconds]
NingaLeaf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
NingaLeaf has joined #ocaml
Algebr has joined #ocaml
Algebr is now known as Guest6020
antkong_ has joined #ocaml
Guest6020 is now known as Algebr`
nchambers has joined #ocaml
<nchambers> does anyone happen to know of a channel for ML?
FreeBirdLjj has quit [Ping timeout: 256 seconds]
FreeBird_ has joined #ocaml
rpg has joined #ocaml
antkong_ has quit [Quit: antkong_]
NingaLeaf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rpg has quit [Ping timeout: 260 seconds]
<cojy> nchambers: #sml?
<nchambers> cojy, thanks!
MercurialAlchemi has quit [Remote host closed the connection]
JacobEdelman has joined #ocaml
teknozulu has quit [Ping timeout: 265 seconds]
teknozulu has joined #ocaml
pierpa has quit [Ping timeout: 276 seconds]
Bahman has joined #ocaml
struk|desk|away is now known as struk|desk2
cody` has joined #ocaml
antkong_ has joined #ocaml
rpg has joined #ocaml
rpg has quit [Ping timeout: 260 seconds]
struk|desk2 is now known as struk|desk|away
fluter has quit [Ping timeout: 264 seconds]
antkong_ has quit [Quit: antkong_]
ryanartecona has joined #ocaml
jrslepak has joined #ocaml
jrslepak has quit [Remote host closed the connection]
mort___ has joined #ocaml
nchambers has quit [Remote host closed the connection]
govg has quit [Ping timeout: 265 seconds]
mort___ has quit [Quit: Leaving.]
ryanartecona has quit [Quit: ryanartecona]
rpg has joined #ocaml
lostman has joined #ocaml
<lostman> hi all. could somebody help with with js_of_ocaml? does it work with ppx? there seem to be some plugins in the source tree but I don't know what do I need to put in _tags to make it wor
<lostman> *work
tmtwd has joined #ocaml
rpg has quit [Ping timeout: 264 seconds]
xiaolin has quit [Ping timeout: 245 seconds]
xiaolin has joined #ocaml
govg has joined #ocaml
JacobEdelman has quit [Quit: Connection closed for inactivity]
teknozulu_ has joined #ocaml
teknozulu has quit [Ping timeout: 276 seconds]
pyon has quit [Quit: Loops are hard, let's GOTO shopping!]
pyon has joined #ocaml
Simn has joined #ocaml
cody` has quit [Quit: Connection closed for inactivity]
rpg has joined #ocaml
rpg has quit [Ping timeout: 240 seconds]
<sgronblo> anyone here who finished this french online ocaml course recently? with the klotski assignment at the end?
tane has joined #ocaml
teknozulu_ has quit [Ping timeout: 260 seconds]
tmtwd has quit [Ping timeout: 276 seconds]
kakadu has joined #ocaml
Bahman has quit [Read error: Connection reset by peer]
rpg has joined #ocaml
tmtwd has joined #ocaml
rpg has quit [Ping timeout: 250 seconds]
Stalkr_ has joined #ocaml
antkong has joined #ocaml
antkong has quit [Client Quit]
hay207__ has joined #ocaml
hay207_ has quit [Ping timeout: 265 seconds]
antkong_ has joined #ocaml
hay207 has joined #ocaml
hay207__ has quit [Ping timeout: 272 seconds]
tmtwd has quit [Ping timeout: 240 seconds]
hay207_ has joined #ocaml
hay207 has quit [Ping timeout: 240 seconds]
rpg has joined #ocaml
ggole has joined #ocaml
rpg has quit [Ping timeout: 240 seconds]
kakadu has quit [Remote host closed the connection]
fluter has joined #ocaml
kakadu has joined #ocaml
govg has quit [Ping timeout: 240 seconds]
govg has joined #ocaml
FreeBird_ has quit [Remote host closed the connection]
Stalkr_ has quit [Read error: Connection reset by peer]
rpg has joined #ocaml
rpg has quit [Ping timeout: 255 seconds]
lostman has quit [Quit: Connection closed for inactivity]
jgjl has joined #ocaml
lobo has joined #ocaml
antkong__ has joined #ocaml
antkong_ has quit [Ping timeout: 240 seconds]
rand_ has joined #ocaml
jgjl has quit [Quit: Textual IRC Client: www.textualapp.com]
lokien has joined #ocaml
rpg has joined #ocaml
<lokien> how do you name variables? with snake_case?
hay207_ has quit [Quit: Konversation terminated!]
rpg has quit [Read error: No route to host]
rpg_ has joined #ocaml
jonludlam has joined #ocaml
antkong__ has quit [Ping timeout: 276 seconds]
antkong has joined #ocaml
<ggole> lokien: FooCase for constructors and modules, snake_case for variables, UPPERCASE for module types
<lokien> ggole: thanks
ggole_ has joined #ocaml
ggole has quit [Ping timeout: 255 seconds]
antkong has quit [Ping timeout: 256 seconds]
rpg_ has quit [Quit: rpg_]
FreeBirdLjj has joined #ocaml
mac10688 has joined #ocaml
lokien_ has joined #ocaml
lokien has quit [Quit: Leaving]
jpdeplaix has quit [Quit: WeeChat 1.3]
jpdeplaix has joined #ocaml
NingaLeaf has joined #ocaml
<adrien> hey, any compiler commiter around?
<adrien> driver/ocamlcomp.sh.in has been left around in trunk; as far as I can tell it can be removed right away
<adrien> just git rm
pierpa has joined #ocaml
rpg has joined #ocaml
rand_ has quit [Remote host closed the connection]
rpg has quit [Ping timeout: 276 seconds]
<Algebr`> hmm, remove it and open easy PR?
sh0t has joined #ocaml
<sgronblo> pierpa: did you say there was something wrong with my implementation of final in klotski?
<adrien> Algebr`: will do ultimately, yeah, but it's so easy that an IRC poke ought to be enough :)
<adrien> (updating cross-compilation stuff for windows currently)
NingaLeaf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
govg has quit [Ping timeout: 276 seconds]
pyon has quit [Quit: Loops are hard, let's GOTO shopping!]
rpg has joined #ocaml
govg has joined #ocaml
NingaLeaf has joined #ocaml
rpg has quit [Ping timeout: 245 seconds]
NingaLeaf has quit [Ping timeout: 245 seconds]
Ravana has quit [Quit: Goodbye for now!]
Ravana has joined #ocaml
<pierpa> sgronblo: on a second thought, it is ok :)
larhat1 has joined #ocaml
psy_ has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
pyon has joined #ocaml
rpg has joined #ocaml
<gasche> mrvn: I saw a demand for advice on building-and-using-a-preprocessor using ocamlbuild in my logs
<gasche> not sure what became of it, but you might be interested in the corresponding part of batteries' logic, which does exactly this
<mrvn> thx
<Drup> gasche: there is also the cppo ocamlbuild plugin, which is rather minimal
<Drup> (and also, I dislike heavily batteries' idiom to use "mlv", because it annoys my emacs)
<gasche> one interesting thing about the batteries stuff (which may be replaced by cppo sooner than later) is that the rule both builds and uses the preprocessor
<gasche> and I think mrvn was asking for this aspect
<gasche> not sure whether cppo does this
<Drup> ah, right
<Drup> no, because cppo is not used inside cppo's code base :)
<mrvn> yeah, I want to write my own preprocessor, build it and use it.
<gasche> adrien: just send a pul request for your ocamlcomp.sh.in stuff
rpg has quit [Ping timeout: 246 seconds]
<adrien> yeah, will do, but later, i.e. once I get the cross-compiler to work
<adrien> currently I get a cross-compiled compiler, which is not at all what I need
Stalkr_ has joined #ocaml
<kakadu> fellas, when I describe compiler in opam file can I specify some local path to get sources?
<kakadu> like pinning
<Drup> No, you need to create a local personal opam repository with your compiler
<kakadu> And can I specify some local path in the .comp file?
<Drup> yes
<Drup> but you might be interested by opam compiler-conf
* mrvn wants direct support for c++ in oasis
Accidus has joined #ocaml
<adrien> oh.... I think I get the thing with cross-compilation: I can use my native ocamlrun to handle the "cross" ocamlopt
<adrien> which means no ocamlopt.opt support
<adrien> but at least for now it shouldn't be an issue
<adrien> and it seems elegant enough
<kakadu> Drup: Gasche's one?
<Drup> yes
octachron has joined #ocaml
jgjl has joined #ocaml
<sigjuice> It is possible to display images in the toplevel in Emacs?
<ggole_> You could program that (GUI emacs has image support, if suitably compiled)
<ggole_> On the other hand, you would have to program that.
<sigjuice> Here is a screenshot of my Emacs doing this with racket. http://i.imgur.com/fwCUUZI.png
<ggole_> Nice, I didn't know racket's emacs mode was that capable.
<sigjuice> I have also seen the same thing done for Common Lisp in SLIME
<Drup> you can do that in the ocaml notebooks pretty easily, but I doubt that interests you :D
<Algebr`> I wonder why ocamlbuild doesn't just use the _oasis file.
<sigjuice> Drup: yes, that does not interest me :-)
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
struk|desk|away is now known as struk|desk2
rpg has joined #ocaml
<adrien> has there been a change in the file lookup for #use directives over the past couple years?
sgnb` has quit [Remote host closed the connection]
Haudegen has quit [Ping timeout: 250 seconds]
<Drup> gasche: is there a legend for the tags in the github issues ?
ygrek has joined #ocaml
Haudegen has joined #ocaml
<Drup> (actually it's just "caml-weekly-news" that I'm confused about)
govg has quit [Remote host closed the connection]
groovy2shoes has quit [Quit: Leaving]
<gasche> Drup: can we insert a legend somewhere on github?
<gasche> I'd be glad to write that information somewhere durable
<Drup> The wiki ? :/
<gasche> Drup: you mean CONTRIBUTING.md, or something else?
<Drup> no, the actual github wiki
<gasche> it's not enabled on ocaml/ocaml, right?
<Drup> At least, that was my first idea on where to look
<Drup> no it's not
<gasche> ok
<gasche> I'm not convinced by wikis personally
<Drup> I would probably have never found it if it was in CONTRIBUTING.md
<Drup> I'm not either, but I have no better idea
<gasche> in StackOverflow one can add a description to tags
<gasche> well
<gasche> to answer your questoin
<gasche> caml-weekly-news are issues tagged to be mentioned in the Caml Weekly News
<gasche> currently I'm the only one adding these tags, and it's not completely clear what the ownership model for it is, but suggestions of PRs to tag are certainly welcome
<gasche> (and if you don't know what Caml Weekly News is, shame on you!)
<adrien> gasche: looks like it's not something very quick to look at; I need to finish something first and I'll look at it after, hopefully in less than one hour but feel free to ping me if it looks like I have forgotten
<Drup> gasche: I know what it is, but I never read it because I read all the content already
<Drup> what is the goal with this ?
ygrek has quit [Ping timeout: 255 seconds]
<Drup> encourage review ? highly new small but nice features ?
<gasche> neither I think
<Drup> highlight*
<gasche> the typical person reading CWN is someone a bit more remote from the OCaml community evolution than the usual github/ocaml/ocaml crowd
<Drup> clearly
<gasche> so they probably won't provide more reviews (or those that would already follow and do)
<gasche> the idea is more to give some visibility to a subset of the contribution activity
<gasche> that includes "small but nice features", but also "large and nice features"
<Drup> but github PRs discussions are usually either technical or involved bikesheding, I'm not sure what external readers will get from reading them
<gasche> my personal algorithm to tag PRs is ill-defined, but that would be like: "is this noteworthy to the non-hardcore-expert?"
<gasche> I don't expect people to read them, rather to glimpse other then and maybe get a sense of where things are heading
<Drup> ok
<gasche> one similar example would be the status of RFCs in Rust Weekly News
<gasche> or patchset sent for review in LLVM weekly news
<gasche> if you're an open-minded Haskeller/Clojurer/cool-langer that doesn't follow OCaml in depth but want to stay in touch, what would you like to see mentioned?
<Drup> In this case, I guess a well described first post is a strong requirement ?
<Drup> (You could argue it should be a requirement for PRs, period, but that's not always the case)
<gasche> I probably haven't respected this requirement in the past
<gasche> but it probably should, yes
<gasche> (both for CWN-PRs and for all PRs)
<gasche> in fact
<gasche> "there is no clear description of what this is" is the number one reason for maintainers to ignore a PR
<gasche> so not having a well-described first post is a losing PR strategy
jmasseo has joined #ocaml
<Drup> Sure, it's significantly better on this front now anyway
<gasche> something amusing about github PRs I noticed after the last development meeting mid-November
<gasche> is that the proportion of PRs sent by the loosely defined "core team" has risen drastically
<Drup> Oh yes, that was very clear
<gasche> it's probably related to the github move, but I think it's mostly a release schedule thing
<Drup> (And they do write the motivation text in the PR too ! :p)
jgjl has joined #ocaml
BitPuffin|osx has joined #ocaml
smondet has quit [Ping timeout: 276 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
nuuit has joined #ocaml
Stalkr_ has quit [Ping timeout: 272 seconds]
rpg has quit [Quit: rpg]
lokien_ has quit [Quit: Connection closed for inactivity]
jgjl has joined #ocaml
struk|desk2 is now known as struk|desk|away
smondet has joined #ocaml
NingaLeaf has joined #ocaml
teknozulu has joined #ocaml
rpg has joined #ocaml
rpg has quit [Ping timeout: 240 seconds]
ggole_ has quit []
<adrien> so... it seems that almost everything is there to cross-compile to windows easily enough
<adrien> haven't tested much so far but my program starts and does its job
<adrien> (:
tyrokroketa is now known as the_original_man
the_original_man is now known as true_mandragore
true_mandragore is now known as yiannis_t
yiannis_t is now known as Guest60597
Guest60597 is now known as Guest60598
Guest60598 is now known as tyrokroketa
octachron has quit [Quit: Leaving]
arj has joined #ocaml
arj has quit [Client Quit]
NingaLeaf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
NingaLeaf has joined #ocaml
darkf has quit [Quit: Leaving]
Algebr` has quit [Ping timeout: 250 seconds]
rpg has joined #ocaml
tyrokroketa is now known as elayianipuse
<adrien> <3
teknozulu has quit [Ping timeout: 255 seconds]
elayianipuse has left #ocaml [#ocaml]
MercurialAlchemi has joined #ocaml
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
lokien_ has joined #ocaml
struk|desk|away has quit [Remote host closed the connection]
larhat1 has quit [Quit: Leaving.]
<adrien> gasche: I think the "authors" list for ocamlbuild needs to be updated a bit :D
lokien_ is now known as lokien_away
lokien_away is now known as lokien_
tmtwd has joined #ocaml
egbarron has joined #ocaml
egbarron has left #ocaml ["Textual IRC Client: www.textualapp.com"]
sh0t has quit [Ping timeout: 256 seconds]
Stalkr_ has joined #ocaml
nullcatxxx_ has joined #ocaml
Stalkr_ has quit [Read error: Connection reset by peer]
Stalkr_ has joined #ocaml
zpe has joined #ocaml
<nullcatxxx_> using menhir on ocaml 1.00 parser.mly gives me 102 shift/reduce conflicts...
flux has quit [Read error: Connection reset by peer]
flux has joined #ocaml
<adrien> but why are you doing that? :P
<please_help> "do_something arg1 arg2" can be interpreted as (do_something arg1) arg2 or (do_something arg1 arg2) or do_something (arg1 arg2) and an order is implicitly assumed (reduce I think?)
<please_help> probably what it comes from.
<mrvn> does menhir have operator priorities?
tmtwd has quit [Ping timeout: 260 seconds]
<gasche> please_help: I think the OCaml grammar uses precedences to specify this case
<gasche> mrvn: yes (of course?)
MercurialAlchemi has quit [Ping timeout: 260 seconds]
<gasche> (the precedence/priorities system of yacc, that ocamlyacc and menhir inherit, is kind of flaky but works ok in practice; Dypgen has a nicer priority specification language)
<please_help> mrvn: the tokens listed with an assoc rules are in reverse precedence order
<mrvn> please_help: I was asking about * having priority over +
<mrvn> if you don't have priorities fopr those then you need to split them into separate rules by priority and the grammar gets messy
<please_help> mrvn: yes that's what I'm saying. E.g. %left PLUS\n%left MULT would give + priority over *.
<nullcatxxx_> oh gasche is here
<gasche> mrvn: there is a funny trick to play when you force yourself to split them into separate rules
<gasche> you get a parenthesis pretty-printer for free: http://gallium.inria.fr/blog/a-toy-type-language-1/
<nullcatxxx_> don't see you often. can you give some opinions on why I got 102 shift/reduce conflicts?
<mrvn> please_help: the important part is how recursion is handled there or you get those shift/reduce conflicts
<mrvn> nullcatxxx_: because your grammar is not LR(1)
<gasche> nullcatxxx_: what's your reason for working on the *1.00* grammar?
<gasche> I would try working on the 4.02 grammar
<nullcatxxx_> i want to write out typing/ independently for ocaml. 4.02 seems to hard for me
<gasche> oh
<nullcatxxx_> i'd like to write it out as an exercise in hope of understanding typing/
<gasche> one reason I was asking is that I have a menhir grammar for 4.02
<gasche> have you read oleg's piece?
<nullcatxxx_> yeah i saw that PR
<nullcatxxx_> yeah, but i think actually implementing one would be better
<gasche> of course
<nullcatxxx_> his example is quite simple
<gasche> I don't know how to answer your question, having never worked with the 1.00 grammar myself
<gasche> I would first look at whether those conflicts are also present in the ocamlyacc version
<gasche> if they are, well, blame it on the way the grammar is written
<nullcatxxx_> ocamlyacc, menhir --lalr all show 102 shift/reduce conflicts...
<nullcatxxx_> also, I wonder how one can understand everything in typing/ . I am willing to spend lots of time, but it seems that reading Oleg's article only gives me a very basic idea
<gasche> I don't know, I don't understand much of typing/ myself
<gasche> not that I have really tried either
<gasche> I think it grows out of habit when you happen to hack on the typer (I don't)
rand_ has joined #ocaml
<nullcatxxx_> i see..
<lokien_> Where do I look for useful ocaml functions? Something like clojure docs
tautologico has quit [Quit: Connection closed for inactivity]
<gasche> nullcatxxx_: you may be interested in Llama Light, a slightly refreshed implementation of Caml Special Light that was proposed as an experimentation vehicle a few years ago
<companion_cube> too bad it doesn't index every lib on opam -_-
<nullcatxxx_> let me see
<companion_cube> btw gasche: adrien told me that Guarrigue was no fan of markup languages for files, and I don't think he reviewed the PR about asciidoc
<nullcatxxx_> can't find it
<lokien_> Thanks gasche fds
<nullcatxxx_> 404 File Not Found ......
<nullcatxxx_> ok
<gasche> that said
<gasche> I think that Llama reimplements the typer in a way that is different from OCaml's
antkong_ has joined #ocaml
<nullcatxxx_> oh ok..
Stalkr^ has joined #ocaml
<nullcatxxx_> it seems it's very different from ocaml
Stalkr_ has quit [Read error: Connection reset by peer]
<nullcatxxx_> not really. let me see......
<fds> nullcatxxx_: I hope you're going to write something up about your explorations into typing/!
<nullcatxxx_> that's what I said to jacques garrigue, leo white, jeremy yallop, etc...
<nullcatxxx_> but, you see...
<nullcatxxx_> see GHC commentary : https://ghc.haskell.org/trac/ghc/wiki/Commentary
<gasche> linking to Oleg's piece in case some are interested: http://okmij.org/ftp/ML/generalization.html
<fds> gasche: Yeah, I'm trying to read that at the moment. :-)
<nullcatxxx_> anyway, my 102 shift/reduce conflicts parser is working
<fds> nullcatxxx_: I'm trying to start investigating OCaml internals too, although I've not even looked at typing/ yet.
<mrvn> nullcatxxx_: sometimes you leave shift/reduce conflicts because the grammar is easier to read and the automatic resolution does what you want anyway.
<nullcatxxx_> i'm glad mark and pierre added lots of comments when they develop middle_end/
<nullcatxxx_> yeah, I think Menhir just resolved them arbitrarily..
<mrvn> doesn't it always shift or always reduce?
<gasche> Menhir has a nice conflict explanation feature if you want to massage the grammar into a better state
<gasche> (to eliminate conflicts)
<gasche> that said, fine-grained understanding of conflicts in the OCaml parser is probably *not* what you are looking for
<nullcatxxx_> yeah, i use --explain, and i'm just too lazy to fix 102 conflicts...
<nullcatxxx_> yes
<nullcatxxx_> not
struk|desk has joined #ocaml
<gasche> re. GHC commentary: it's a commendable idea, but it doesn't actually document much of the type-checker implementation
<gasche> (which is nice in GHC)
<gasche> it's easier to document intermediate languages
<gasche> (GHC has the luck of having a proper typed intermediate language)
<gasche> but type inference itself is not documented anywhere I can see in the commentary
<gasche> so on this front it's not much better than OCaml's
<nullcatxxx_> i see. i think it is also hard for them to document typing...
<nullcatxxx_> gasche: by the way, it would be good to see you often on IRC.
<nullcatxxx_> (although I do follow you on reddit)
<gasche> it is not good for me to be often on IRC
<fds> Heh
<gasche> also I think that IRC is not a very good communication channel
<gasche> line-sized pieces of messages that have poor structure and poor archival
zpe has quit [Remote host closed the connection]
<gasche> I often go back to mailing-list discussions that happened years ago and find interesting comments in them
<nullcatxxx_> i agree.
<gasche> it happens approximately never for my IRC logs
<gasche> (although I do find them very useful to keep in touch with what problems people have been discussing in the recent days)
<nullcatxxx_> also, it would be good to have a better interface for people to search mail archive. as you noticed recently, people on mailing list are redirected to my script to download a local copy of all mails...
<nullcatxxx_> yeah..
<nullcatxxx_> as you may notice*
<gasche> you should send an email to Xavier to ask for the full archives
<gasche> ( this is ocaml/ocaml.org#704 )
<nullcatxxx_> yes.
<nullcatxxx_> let me see if I can find some good frontend framework to allow easy searching
<nullcatxxx_> oh wait, ocaml.org is a static website?..
<gasche> if you have a nice dynamic frontend to propose, there may be options to host it
<gasche> but I think the necessary first step is to get good data
<nullcatxxx_> i'll talk to xavier...
<companion_cube> nullcatxxx_: you want to work on a search engine for ocaml's mailing list?
<nullcatxxx_> i am not an expert on website frontend, but I'd like to ...
<nullcatxxx_> if someone would like really to work on this, I'd like to join
<nullcatxxx_> gonna dig some JavaScript. I honestly don't know where such framework is..
tane has quit [Quit: Verlassend]
<gasche> it may be a simple matter of configuring the current mailing-list software better to support full-text search
ncthom91 has joined #ocaml
<nullcatxxx_> yeah, that's better.
rpg has quit [Quit: rpg]
<Drup> nullcatxxx_: why don't you take the whole of parsing/ from stock ocaml and just fail on Parsetree constructs you don't want to support ?
<nullcatxxx_> you're right...
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<nullcatxxx_> let me try 1.00 first, parsetree.mli just looks much simpler. writing lots of "failwith" looks ugly..
<Drup> or just translate the parsetree to your own simpler ast
struk|desk is now known as struk|desk|away
<Drup> but trying to massage the old ocaml parser seems like a waste of time to me :)
<nullcatxxx_> 102 shift/reduce conflicts.. whatever
<nullcatxxx_> yeah translate into simpler ast. that should be my backup plan
<nullcatxxx_> thx
rand_ has quit [Quit: leaving]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
groovy2shoes has joined #ocaml