adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | Current MOOC: https://huit.re/ocamlmooc | OCaml 4.04.0 release notes: http://ocaml.org/releases/4.04.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
freusque has quit [Quit: WeeChat 1.4]
agarwal1975 has quit [Quit: agarwal1975]
sh0t has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Ping timeout: 250 seconds]
al-damiri has quit [Quit: Connection closed for inactivity]
noddy has quit [Ping timeout: 240 seconds]
smondet has quit [Ping timeout: 240 seconds]
balod has quit [Ping timeout: 240 seconds]
_whitelogger_ has joined #ocaml
balod has joined #ocaml
mehdib has quit [*.net *.split]
na9da[m] has quit [*.net *.split]
diamaths[m] has quit [*.net *.split]
thizanne has quit [*.net *.split]
jeroud has quit [*.net *.split]
na9da[m] has joined #ocaml
thizanne has joined #ocaml
jeroud has joined #ocaml
diamaths[m] has joined #ocaml
mehdib has joined #ocaml
noddy has joined #ocaml
silver has quit [Quit: rakede]
moei has quit [Quit: Leaving...]
moei has joined #ocaml
infinity0 has quit [Remote host closed the connection]
lambda_foo has quit [Quit: Connection closed for inactivity]
infinity0 has joined #ocaml
octachron has quit [Quit: Leaving]
WhiskyRyan has joined #ocaml
<WhiskyRyan> Can I make GUI desktop applications with OCaml?
<Algebr`> yes
zirman has joined #ocaml
<dmbaturin> WhiskyRyan: There are lablgtk and lablqt, and something for wxwidgets too.
<dmbaturin> I've never looked into the wxwidgets one.
wu_ng has joined #ocaml
<WhiskyRyan> I am am pretty new to programming... been using python for about a year now and have made a lot of small programs for data processing, automation, and hardware control at work. My job is not as a programmer so I get to use whatever I want to at work ... lately I have been wanting to try something new though... I used Haskell for a few weeks and really started to love functional programming. I want something more general purpose
<WhiskyRyan> that I can use to do what I use python for now, but in a functional way when possible. Does OCaml seem like a good match for me? I've been looking at Scala, Clojure, OCaml, etc. and am still deciding what to invest some time into.
* dmbaturin goes into a rant about oracle killing Swing widget toolkit as he hears about clojure
sillyotter has joined #ocaml
<Algebr`> WhiskyRyan: ya, you can. You don't even have to compile OCaml, you could treat it like a shell program
<dmbaturin> WhiskyRyan: Well, you should try, after haskell you already know most of the type system (but not module system, which is excellent and I wish haskell had it).
<WhiskyRyan> Any recommendations on tutorials or books out there?
<dmbaturin> You may do with tutorials from ocaml.org (it also has a list of books, of which I like OCaml From The Very Beginning). And then there's Real World OCaml with free Core.Std conspiracy. ;)
<Algebr`> ocaml.org, ocaml unix programming book, people's blogs
<WhiskyRyan> Thanks for the comments. Off to go play with some OCaml now.
<dmbaturin> WhiskyRyan: Install utop first.
FreeBirdLjj has quit [Remote host closed the connection]
<dmbaturin> Or, well, install opam first, then install utop. The default REPL hates humanity.
<WhiskyRyan> Will do. Thanks for the tip. It is just an improved REPL?
sillyotter has quit [Quit: WeeChat 1.4]
<Algebr`> basically
fluter has quit [Quit: WeeChat 1.5]
fluter has joined #ocaml
FreeBirdLjj has joined #ocaml
noddy has quit [Ping timeout: 250 seconds]
smondet has joined #ocaml
ryanartecona has joined #ocaml
zirman has quit [Remote host closed the connection]
unbalancedparen has quit [Read error: Connection reset by peer]
unbalancedparen has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
tmtwd has joined #ocaml
mfp has quit [Ping timeout: 245 seconds]
jackweirdy has joined #ocaml
WhiskyRyan has quit [Quit: Textual IRC Client: www.textualapp.com]
infinity0 has quit [Ping timeout: 248 seconds]
jackweirdy has quit [Ping timeout: 258 seconds]
jackweirdy has joined #ocaml
infinity0 has joined #ocaml
WhiskyRyan has joined #ocaml
zirman has joined #ocaml
zirman has quit [Ping timeout: 258 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 252 seconds]
nomicflux has joined #ocaml
AlexRussia has quit [Ping timeout: 260 seconds]
jackweirdy has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
ryanartecona has quit [Quit: ryanartecona]
nomicflux has quit [Quit: nomicflux]
ygrek_ has joined #ocaml
MercurialAlchemi has quit [Remote host closed the connection]
WhiskyRyan has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
f[x] has quit [Ping timeout: 250 seconds]
ygrek_ has quit [Ping timeout: 258 seconds]
WhiskyRyan has joined #ocaml
AlexRussia has joined #ocaml
wu_ng has quit [Read error: Connection reset by peer]
wu_ng has joined #ocaml
jao has quit [Ping timeout: 245 seconds]
maattdd has joined #ocaml
djellemah has quit [Ping timeout: 248 seconds]
djellemah has joined #ocaml
djellemah has quit [Max SendQ exceeded]
djellemah has joined #ocaml
maattdd has quit [Ping timeout: 260 seconds]
jmiven has quit [Quit: co'o]
WhiskyRyan has quit [Quit: Textual IRC Client: www.textualapp.com]
jmiven has joined #ocaml
rgrinberg has quit [Ping timeout: 256 seconds]
WhiskyRyan has joined #ocaml
WhiskyRyan has quit [Client Quit]
WhiskyRyan has joined #ocaml
Simn has joined #ocaml
WhiskyRyan has quit [Client Quit]
ygrek_ has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 265 seconds]
nopf has quit [Remote host closed the connection]
pierpa has quit [Ping timeout: 250 seconds]
tmtwd has quit [Ping timeout: 245 seconds]
ryanartecona has joined #ocaml
tmtwd has joined #ocaml
zirman has joined #ocaml
Hetu has joined #ocaml
zirman has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 264 seconds]
nahra has quit [Ping timeout: 250 seconds]
ryanartecona has quit [Quit: ryanartecona]
ziyourenxiang has joined #ocaml
dmi3y has joined #ocaml
Flerex has joined #ocaml
AltGr has joined #ocaml
AlexRussia has quit [Ping timeout: 256 seconds]
zirman has joined #ocaml
zirman has quit [Ping timeout: 258 seconds]
tmtwd has quit [Ping timeout: 258 seconds]
Algebr` has quit [Ping timeout: 250 seconds]
dmi3y has quit [Quit: dmi3y]
AlexRussia has joined #ocaml
nahra has joined #ocaml
dmi3y has joined #ocaml
zirman has joined #ocaml
grayswandyr has joined #ocaml
balod is now known as Balod
dmi3y has quit [Quit: dmi3y]
zirman has quit [Ping timeout: 248 seconds]
FreeBirdLjj has joined #ocaml
larhat has joined #ocaml
grayswandyr has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
FreeBirdLjj has quit [Ping timeout: 252 seconds]
AlexRussia has quit [Ping timeout: 250 seconds]
freusque has joined #ocaml
dmi3y has joined #ocaml
raphinou has joined #ocaml
sh0t has joined #ocaml
<raphinou> If someone has the time, I'll take any advice to improve the code of this lwt socket client: http://pastebin.com/PNL02yhw
avn has quit [Ping timeout: 265 seconds]
avn has joined #ocaml
nopf has joined #ocaml
_whitelogger has joined #ocaml
kakadu has joined #ocaml
ygrek_ has quit [Ping timeout: 268 seconds]
Hetu has quit [Ping timeout: 250 seconds]
maattdd has joined #ocaml
zirman has joined #ocaml
zirman has quit [Ping timeout: 248 seconds]
Hetu has joined #ocaml
johnelse is now known as johnel_away
sepp2k has joined #ocaml
johnel_away is now known as johnelse
d0nn1e has quit [Ping timeout: 250 seconds]
_andre has joined #ocaml
d0nn1e has joined #ocaml
wu_ng has quit [Read error: Connection reset by peer]
sepp2k has quit [Ping timeout: 258 seconds]
mfp has joined #ocaml
larhat has quit [Quit: Leaving.]
larhat has joined #ocaml
sepp2k has joined #ocaml
AlexRussia has joined #ocaml
zirman has joined #ocaml
zirman has quit [Ping timeout: 260 seconds]
nore has quit [Ping timeout: 258 seconds]
silver has joined #ocaml
noddy has joined #ocaml
dhil has joined #ocaml
nore has joined #ocaml
zirman has joined #ocaml
zirman has quit [Ping timeout: 258 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 256 seconds]
AlexRussia has quit [Ping timeout: 265 seconds]
larhat has quit [Quit: Leaving.]
jao has joined #ocaml
Hetu has quit [Remote host closed the connection]
raphinou has quit [Quit: WeeChat 1.4]
larhat has joined #ocaml
AlexRussia has joined #ocaml
zirman has joined #ocaml
zirman has quit [Ping timeout: 265 seconds]
avn has quit [Remote host closed the connection]
AlexRussia has quit [Ping timeout: 265 seconds]
zirman has joined #ocaml
zirman has quit [Remote host closed the connection]
zirman has joined #ocaml
zirman has quit [Changing host]
zirman has joined #ocaml
dhil has quit [Ping timeout: 246 seconds]
groovy2shoes has quit [Quit: Leaving]
dmi3y has quit [Quit: dmi3y]
AlexRussia has joined #ocaml
yomimono has joined #ocaml
dhil has joined #ocaml
dmi3y has joined #ocaml
dmi3y has quit [Client Quit]
dmi3y has joined #ocaml
rgrinberg has joined #ocaml
jao has quit [Ping timeout: 258 seconds]
ryanartecona has joined #ocaml
jao has joined #ocaml
<reynir> ra4king: in the first function it seems the 'all' argument is unused
dmi3y has quit [Quit: dmi3y]
dmi3y has joined #ocaml
shinnya has joined #ocaml
fraggle-boate_ has joined #ocaml
dmi3y has quit [Quit: dmi3y]
fraggle-boate has quit [Ping timeout: 250 seconds]
dhil has quit [Ping timeout: 252 seconds]
Flerex has quit [Quit: Textual IRC Client: www.textualapp.com]
dmi3y has joined #ocaml
dhil has joined #ocaml
al-damiri has joined #ocaml
agarwal1975 has joined #ocaml
dmi3y has quit [Quit: dmi3y]
nomicflux has joined #ocaml
dmi3y has joined #ocaml
FreeBirdLjj has joined #ocaml
pyon has quit [Quit: Goddammit, Emacs, what the hell is wrong with you?]
nicoo has quit [Ping timeout: 250 seconds]
pyon has joined #ocaml
larhat has quit [Quit: Leaving.]
tvynr has quit [Ping timeout: 258 seconds]
dmi3y has quit [Quit: dmi3y]
demonimin has quit [Ping timeout: 256 seconds]
nicoo has joined #ocaml
noddy has quit [Ping timeout: 250 seconds]
nicoo has quit [Ping timeout: 250 seconds]
nicoo has joined #ocaml
noddy has joined #ocaml
dmi3y has joined #ocaml
shinnya has quit [Ping timeout: 268 seconds]
trepta has joined #ocaml
jnavila has joined #ocaml
nomicflux has quit [Quit: nomicflux]
zirman has quit [Remote host closed the connection]
maattdd has quit [Ping timeout: 246 seconds]
ziyourenxiang has quit [Quit: Leaving]
larhat has joined #ocaml
atsampson has quit [Ping timeout: 250 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
maattdd has joined #ocaml
FreeBirdLjj has joined #ocaml
noddy has quit [Ping timeout: 265 seconds]
ygrek_ has joined #ocaml
atsampson has joined #ocaml
smondet has quit [Ping timeout: 245 seconds]
dmi3y has quit [Quit: dmi3y]
zirman has joined #ocaml
sepp2k has quit [Quit: Leaving.]
jnavila has quit [Ping timeout: 260 seconds]
jnavila has joined #ocaml
noddy has joined #ocaml
dmi3y has joined #ocaml
michbad has joined #ocaml
smondet has joined #ocaml
jnavila has quit [Ping timeout: 256 seconds]
ygrek_ has quit [Ping timeout: 250 seconds]
sepp2k has joined #ocaml
dhil has quit [Quit: Quit]
zirman has quit [Remote host closed the connection]
dhil has joined #ocaml
zirman has joined #ocaml
zirman has joined #ocaml
zirman has quit [Changing host]
maattdd has quit [Ping timeout: 264 seconds]
sepp2k has quit [Quit: Leaving.]
dhil has quit [Ping timeout: 248 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
atsampson has quit [Quit: let's see if updating the BFQ patch fixes that hang...]
ryanartecona has quit [Quit: ryanartecona]
Algebr` has joined #ocaml
atsampson has joined #ocaml
dhil has joined #ocaml
pierpa has joined #ocaml
ygrek_ has joined #ocaml
djellemah has quit [Quit: Leaving]
isd has joined #ocaml
sepp2k has joined #ocaml
kakadu_ has joined #ocaml
nomicflux has joined #ocaml
ryanartecona has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
nomicflux has quit [Quit: nomicflux]
_andre has quit [Quit: leaving]
dmi3y has quit [Quit: dmi3y]
djellemah has joined #ocaml
demonimin has joined #ocaml
vicfred has quit [Quit: Leaving]
yomimono has quit [Ping timeout: 268 seconds]
AltGr has left #ocaml [#ocaml]
nomicflux has joined #ocaml
jmasseo has quit [Ping timeout: 256 seconds]
<aantron> lwt 2.7.0 is releasing at the beginning of january, so if you have (reasonably small) fixes you'd like included, please report them :) https://github.com/ocsigen/lwt/issues/305
FreeBirdLjj has quit [Remote host closed the connection]
nomicflux has quit [Quit: nomicflux]
<Algebr`> aantron: this is fantastic
<Algebr`> it looks like docker is finding tons of bugs simply from stressing lwt
<dmbaturin> Docker uses lwt now? How?
<aantron> Algebr`: yeah, it is a good proportion of the contribution
<aantron> dmbaturin: they have a few public ocaml repos, e.g. https://github.com/docker/vpnkit uses lwt. maybe some non-public code as well
sdml[m] has joined #ocaml
zirmann has joined #ocaml
<dmbaturin> Interesting!
zirman has quit [Ping timeout: 268 seconds]
zirmann has quit [Ping timeout: 248 seconds]
<dmbaturin> To be fair, it's a bit bizzare to see same (?) people use go and ocaml at the same time. ;)
sdml[m] has left #ocaml ["User left"]
<aantron> dmbaturin: i think the ocaml code is being written mostly by the team at docker that originates from ocamllabs, and they generally aren't working on go code that much. but this is only speculation
yomimono has joined #ocaml
demonimin has quit [Remote host closed the connection]
jimt_ has joined #ocaml
FreeBirdLjj has joined #ocaml
jimt has quit [Ping timeout: 250 seconds]
demonimin has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 256 seconds]
<dmbaturin> aantron: By the way, in lwt, what's the best practice for making the log level configurable?
<dmbaturin> Also, what do functions from Lwt_log do when the template is invalid?
<aantron> dmbaturin: for configuring, there is the LWT_LOG environment variable (which i think might be a bad idea): http://ocsigen.org/lwt/dev/api/Lwt_log_core#TYPEsection . you can use load_rules (http://ocsigen.org/lwt/dev/api/Lwt_log_core#VALload_rules) to take a string from the command line instead, for example
<dmbaturin> aantron: So, minimally, Lwt_log_core.load_rules "* -> debug" or similar?
<aantron> as for invalid templates, i assume this code gets triggered: https://github.com/ocsigen/lwt/blob/master/src/logger/lwt_log_core.ml#L272 havent tested it
<aantron> yes
<aantron> so it raises Invalid_argument
<aantron> noting this question for the manual.. :)
<aantron> these* questions*
<dmbaturin> I'm seriously thinking about writing an "Lwt for dummies" tutorial due to amount of head scratching and source reading it already caused me. :)
<aantron> go for it. i am writing a manual with a tutorial as well, ETA feb. 1. if you want to contribute a tutorial, or send me a list of things that are annoying to make sure i cover them, it would be very helpful
<dmbaturin> Where do you keep it?
<aantron> there is a lot missing for sure, it's hard for me to be aware of it all, and it would be very helpful if you took notes for example
<aantron> right now locally
<dmbaturin> Contributing is sure better than writing from scratch.
<aantron> if you just write a little note when you hit a snag like this, and send those to me later, that would be a very useful contribution. you're welcome to write Lwt for dummies as well, if you wish :)
<Algebr`> I too wanted to write an Lwt book but as a bigger OCaml book
<aantron> +1 had this type of thought as well
<dmbaturin> aantron: It would be nice to have the grammar of log rules in the docs.
<aantron> (noted in list, thanks)
zirman has joined #ocaml
zirman has quit [Changing host]
zirman has joined #ocaml
pyon has quit [Quit: Goddammit, Emacs... Again?]
pyon has joined #ocaml
agarwal1975 has quit [Quit: agarwal1975]
pyon has quit [Client Quit]
<dmbaturin> aantron: I'm likely going to extend this thing: http://baturin.org/code/lwt-counter-server/ and take it up to 11, so to speak. Then make a pull request against ocaml.org tutorials section.
<aantron> +1 :)
pyon has joined #ocaml
<dmbaturin> Maybe make it a poor IRC server to demonstrate communication between threads too.
FreeBirdLjj has joined #ocaml
yomimono has quit [Ping timeout: 250 seconds]
jrslepak has quit [Ping timeout: 256 seconds]
lambda_foo has joined #ocaml
pon1980 has quit [Quit: WeeChat 1.6]
larhat has quit [Quit: Leaving.]
moei has quit [Quit: Leaving...]
freusque has quit [Ping timeout: 250 seconds]
moei has joined #ocaml
sepp2k has quit [Quit: Leaving.]
<mfp> dmbaturin, aatron: IIRC the whole "Docker for windows" network stack is based on Mirage's, which uses Lwt
<dmbaturin> mfp: Wait. How does docker work on windows? What does it use for containers there?
<mfp> Hyper-V
<mfp> they build at minimal custom Linux distro atop alpine linux
<mfp> then run containers in it
<mfp> using the native hypervisor
<dmbaturin> LXC containers inside a fully virtualized hyper-v guest?
<mfp> that's what it amounts to
<dmbaturin> Why not just run normal docker inside that VM? :)
<mfp> well it's normal docker inside the VM (with docker ~~~ LXC)
<dmbaturin> What's that network stack for then?
<mfp> they have some stuff in the edge to let containers bind to ports in the host etc.
<mfp> read some slides/watched a talk somewhere, there was some claim this was an improvement on e.g. the network stack when you had a virtualbox VM
<mfp> don't remember exactly what, but it allowed them to integrate better somehow
<mfp> oh it's this actually https://github.com/docker/vpnkit
<mfp> 'VPNKit, part of HyperKit attempts to work nicely with VPN software by intercepting the VM traffic at the Ethernet level, parsing and understanding protocols like NTP, DNS, UDP, TCP and doing the "right thing" with respect to the host's VPN configuration. VPNKit operates by reconstructing Ethernet traffic from the VM and translating it into the relevant socket API calls on OSX or Windows. This allows the host application to generate traffic without requiring low-le
<mfp> vel Ethernet bridging support.'
<mfp> so there you go, it's for doing networking in the VM without bridging, so that it doesn't interfere with the host network config
ryanartecona has quit [Quit: ryanartecona]
<mfp> so they use mirage's user-level TCP/etc and map to host socket API
<mfp> they don't even need it to be very fast because nobody's going to use docker atop OSX in production, it's only for development
<dmbaturin> I can see how vpnkit can be useful, but I'll need to read about it to see how it works with docker there.
<dmbaturin> I hope they rewrite docker itself in a language that think downcast to void is an alternative to polymorphism though. ;)
<dmbaturin> * that doesn't
kakadu_ has quit [Remote host closed the connection]
<mfp> a few weeks ago I was using hugo and it was crashing quite often
<dmbaturin> What's hugo?
<mfp> it also allocated like 7 GB on a 8-GB machine..
<mfp> a static site generator written in go
<mfp> quite popular
<dmbaturin> Ah, I see. I tried to choose from available website generators but failed and made my own with mpp.
<dmbaturin> There are so many of them that making new one seems to be the most popular option anyway.
<mfp> at any rate, since it's one rather prominent example of end-user sw. written in Go, it crashing all the time didn't contribute to my having a good opinion on Go
<mfp> https://www.staticgen.com/ Hugo only second to Jekyll (but growing much faster since more recent AFAIK)
<dmbaturin> For the fun of it I did a microbenchmark lately, https://gist.github.com/dmbaturin/befaadf5981fe0f2f65a778b4938c2e8
<mfp> by github stars, the ultimate measure of success TM
<mfp> if you make it faster than hugo somebody will cry
<mfp> they take huge pride in it being very fast because "go"
<dmbaturin> There are some things I'd like to add to mine, like "breadcrumbs", but it sounds like making the whole thing programmable. Which sounds like Scheme and macros. :)
<aantron> im writing a simple generator as part of the lwt manual work :p its programmable. in ocaml
<dmbaturin> aantron: Allows ocaml embedded in templates?
<aantron> oh no. maybe when its released this can be a PR
yomimono has joined #ocaml
<aantron> it's programmable in that you can write a pass that receives the whole set of documents, which are a bunch of DOMs that you can traverse with CSS and perform arbitrary mutations on
<dmbaturin> What do you use for DOM manipulation?
<dmbaturin> * and representation, for that matter
<dmbaturin> It's like beautiful soup, with lambdas?
<aantron> yep :p
<aantron> the hypothetical public release will have some --pass command line argument, where you can specify an .ml file to be compiled and linked with the generator library, and inserted into the processing sequence..
<aantron> right now the generator takes markdown + ocamldoc and, especially for ocamldoc, restructures all the html so that it's semantic
<aantron> then subsequent passes add global cross-referencing, tables of contents, etc.
<aantron> all implemented using lambda soup :p
<dmbaturin> You should add infix operators for ambition, distraction, uglification, and derision.
<aantron> lol
Simn has quit [Quit: Leaving]
<aantron> not sure what is meant by that though
<dmbaturin> Another reference to the mock turtle chapter.
<aantron> ah
yomimono has quit [Quit: Leaving]
ryanartecona has joined #ocaml
average has quit [Quit: leaving]
<dmbaturin> Well, looks like configurable logs work as they should, more or less.
<dmbaturin> aantron: It would be nice if load_rules failed, or could be made to fail if the rule is invalid, apart from logging it.
<dmbaturin> Like an optional argument that would make it raise an exception.
<dmbaturin> I can make a pull request about it if you don't object to this idea.
<aantron> that would be nice, i agree that it's better to report. in fact, i think lwt should never log anything on its own anyway
<aantron> however, while an optional exception is backwards compatible
<aantron> i think maybe it is better to change the result type to Pervasives.result and force people to actually deal with this potential error, or choose to ignore it..
<dmbaturin> Maybe add another function that is result instead of unit, in the same vein as read_line and read_line_opt?
michbad has quit [Ping timeout: 246 seconds]
<aantron> that is possible, we can then deprecate load_rules and mention the other function in the message. btw i actually think the whole log module needs a good thorough look so it's a bit difficult to decide this in isolation for me right now. if you have global ideas about the log module, you are welcome to propose thorough changes :)