ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.1 announcement at http://ocaml.org/releases/4.02.html | Public channel logs at http://irclog.whitequark.org/ocaml
<Drup> rgrinberg: also, I think you could already do that with "type t = private int"
<Drup> (not sure, need to check)
<sgeisenh> struktured: I guess I'll just try to start writing code. Hopefully everything will become clear before I dig too deep of a hole! Thanks for your help.
<struktured> sgeisenh: think of monads as concurent computations ran eventually on queue
<rgrinberg> struktured: that's almost as bad as monads being burritos :P
<struktured> lol
<sgeisenh> monad metaphors are the worst
<sgeisenh> I'll figure it out. Thanks again.
<rgrinberg> sgeisenh: me and companion_cube wrote a bencode parsing lib in ocaml
<rgrinberg> might be useful
<rgrinberg> sgeisenh: you can also try your hand at libtorrent bindings
<rgrinberg> but where's the fun in that :P
<rgrinberg> sgeisenh: finally, RWO has a good introduction to async and monadic concurrency in general
<Drup> struktured: please read that: http://blog.jle.im/entry/io-monad-considered-harmful
<rgrinberg> sgeisenh: oh and i almost forgot. mldonkey has a full torrent implementation in it
<rgrinberg> but it's really ugly stuff
<sgeisenh> rgrinberg: Yeah, I wanted to try to roll my own for the most part. I used menhir to write a super simple bencode library.
<rgrinberg> Drup: i should write an article called "the unreasonable effectiveness of the io monad"
<sgeisenh> rgrinberg: Yeah, I read through a bit of the source code of mldonkey and ocaml-bt but I think it did more harm than good...
<Drup> rgrinberg: did you read anything else than the title ? :3
<struktured> ok I stepped on a land mine terminology wise, I get it. I know that monads != io
<Drup> struktured: that's not the point, just read it really :)
<rgrinberg> Drup: how did we start talking about the io monad again?
<Drup> rgrinberg: when struktured tried to resume Lwt.t as the fact that it's a monad
<Drup> summarize*
<rgrinberg> Drup: hmm i read the article. i can see how naming everything monads isn't always helpful
<rgrinberg> but it's still useful to state that something is a monad to learn it faster
<rgrinberg> (of course you have to understand monads first)
<sgeisenh> I have to run, thanks for the suggestions. I hope I didn't spur too much of a tussle.
<Drup> nah, don't worry :
<Drup> :p
sgeisenh has quit [Quit: Page closed]
tinhead has quit [Remote host closed the connection]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tinhead has joined #ocaml
BitPuffin|osx has joined #ocaml
jeffmo has quit [Quit: jeffmo]
<struktured> Drup: I actually read that post a while ago.. I thought it came off a little ranty
<struktured> reread now, still feels ranty
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<apache2> 22:37 < Drup> but you don't watch subs when you are 10 years old
<apache2> what, that's like matter-of-factly stating that only retired people read books
<apache2> 6-year olds read subtitles; it's easier than understanding a spoken foreign language
<struktured> I think sub is always considered more hipster than dub
jeffmo has joined #ocaml
tinhead has quit [Remote host closed the connection]
leafac has joined #ocaml
ncthom91 has joined #ocaml
jeffmo has quit [Ping timeout: 272 seconds]
<Drup> apache2: except we were talking about dubs in my main language
jeffmo has joined #ocaml
agarwal1975 has quit [Quit: Connection closed for inactivity]
jeffmo has quit [Client Quit]
jwatzman|work has quit [Quit: jwatzman|work]
rgrinberg has quit [Ping timeout: 255 seconds]
nullcat_ has joined #ocaml
leafac has quit [Quit: Leaving.]
bitbckt has quit [Ping timeout: 265 seconds]
ntaylor has quit [Ping timeout: 255 seconds]
j0sh has quit [Ping timeout: 272 seconds]
rgrinberg has joined #ocaml
grossman has joined #ocaml
manizzle has quit [Ping timeout: 276 seconds]
jabesed has quit [Ping timeout: 244 seconds]
xificurC has quit [Remote host closed the connection]
xificurC has joined #ocaml
rgrinberg has quit [Ping timeout: 264 seconds]
shinnya has quit [Ping timeout: 246 seconds]
ncthom91 has quit [Quit: Textual IRC Client: www.textualapp.com]
rgrinberg has joined #ocaml
darkf has joined #ocaml
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nullcat_ has joined #ocaml
manizzle has joined #ocaml
rgrinberg has quit [Ping timeout: 244 seconds]
rgrinberg has joined #ocaml
keen___________3 has joined #ocaml
keen___________2 has quit [Ping timeout: 244 seconds]
<nullcat_> rgrinberg: ping!
AlexRussia has joined #ocaml
idegen has quit [Quit: Leaving.]
grossman has quit [Quit: Page closed]
robink_ has quit [Ping timeout: 255 seconds]
robink_ has joined #ocaml
<rgrinberg> nullcat_: hi
<nullcat_> the otter..
<nullcat_> the timeout design...
<rgrinberg> nullcat_: oh yes
<rgrinberg> will read right now :)
<nullcat_> i have no good idea of coming up a really satisfactory design
<rgrinberg> :)
<nullcat_> let me c..
<nullcat_> oh i think i'll love this
darryn has joined #ocaml
<darryn> Am I able to make windows executables with ocaml?
<rgrinberg> darryn: sure
<rgrinberg> nullcat_: can you send me a link for the twitter ratelimit/timeout docs
<darryn> I want to make a program that can run on my linux-box, that will also run on a windows-box.
<rgrinberg> nullcat_: ok so the desirable behavior for us is to make requests until twitter gives us a budget of 0
<rgrinberg> and then we wait for how long they tell us to wait
<nullcat_> yes
<nullcat_> we can examine if budget is 0 by checking if "x-rate-limit-remaining" reaches 0
<nullcat_> "x-rate-limit-remaining" in header
ygrek has quit [Ping timeout: 276 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
badon has quit [Disconnected by services]
badon_ has joined #ocaml
<nullcat_> sign.. that plugin does not work with mac os gui version of vim
badon_ is now known as badon
<nullcat_> sigh*
<rgrinberg> nullcat_: hmm i don't think it's so bad. some things need better naming though. i don't think state_update buys you anything
<nullcat_> (* suggested by Drup *) (run away)
<nullcat_> the thing is that it looks bad at first glance, but if you want to fix it, it's hard to come up a better design...
<nullcat_> by a better design, i mean better abstraction
<rgrinberg> nullcat_: the ugliest thing is how you have to maintain state manually between iterations
<rgrinberg> i think that's just a deficciency of Lwt_stream though
<rgrinberg> for example batteries has Enum.unfold
<rgrinberg> that makes something like this much simpler
<nullcat_> unfold
<nullcat_> yeah
<nullcat_> c_cube told me that
<nullcat_> in this container
<nullcat_> which is really good
<struktured> I don't know why but ocaml has made me better at shell scripting
<struktured> (bash)
<rgrinberg> nullcat_: personally state_update is messy to me. I understand the pattern, i.e. it's inspired from Lwt_stream.create
<rgrinberg> but i don't think it scales well to more state
<rgrinberg> nullcat_: imo it would be cleaner to wrap the whole state in an object instead
<nullcat_> yes
<rgrinberg> nullcat_: don't know how you feel about that
<nullcat_> i need to what other state variables could be
<nullcat_> need to know*
<rgrinberg> nullcat_: IMO what makes the code more unreadable is some of the names :P
<nullcat_> naming!
<nullcat_> naming is hard =_=
<nullcat_> toughest
<nullcat_> for me
<rgrinberg> small improvement
<nullcat_> ok thanks!
<rgrinberg> nullcat_: but important b/c less nesting
darryn has left #ocaml [#ocaml]
<rgrinberg> code with nesting is hard to read -_-
<nullcat_> le tme see
<nullcat_> (* i am still struggling with that plugin *)
<rgrinberg> and also use the ocp-indent :P
<nullcat_> i use it, but..
<nullcat_> but it indents weirdly sometimes
<rgrinberg> nullcat_: what does :set indentexpr? say in your vim?
<nullcat_> indentexpr=ocpindent#OcpIndentLine()
<nullcat_> shows up
kdef has quit [Quit: Leaving]
<rgrinberg> hmm that's correct
<nullcat_> and it indeed indents automatically
<nullcat_> maybe.. maybe at some place, i think it's not good enough so i don't follow it
<rgrinberg> do you reindent often? E.g. with =ip for example
<rgrinberg> or =ap
<nullcat_> oh i don't know that..
<rgrinberg> nullcat_: the way i do it is write write write
<rgrinberg> then =ap
<rgrinberg> and then gi if i want to go back to editing
<nullcat_> what's gi?
<rgrinberg> :h gi
<rgrinberg> goes to your last editing position and enters insert mode
<nullcat_> i see..
<nullcat_> vim guru
<rgrinberg> ^_^
<rgrinberg> there's a lot better than me
<nullcat_> still can't use that trailing white space plugin in mvim...
<nullcat_> well, you linux users don't care gui version of vim...
<rgrinberg> nullcat_: i use OSX but only command line vim :P
<nullcat_> good..
<rgrinberg> nullcat_: but honestly you don't need that plugin
<rgrinberg> command! LeadingSpace execute '/\s\+$'
<rgrinberg> command! FixLeadingSpace execute '%s/\s\+$'
<rgrinberg> add those to your vimrc
<rgrinberg> :LeadingSpace <- highlight all leading space
<rgrinberg> :FixLeadingSpace <- delete it
<nullcat_> thanks!
<nullcat_> let me check it out
<rgrinberg> nullcat_: this is also useful
<rgrinberg> set list!
<rgrinberg> set listchars=trail:·,precedes:«,extends:»,eol:↲,tab:»·
<rgrinberg> to show trailing white space and tabs
<nullcat_> ok cool
<nullcat_> um, i tried. it works pretty well! thanks!
slash^ has joined #ocaml
<rgrinberg> nullcat_: indenting or whitespace?
<nullcat_> whitespace..
<nullcat_> indenting... i'll apply your suggestion when writing code
jeffmo has joined #ocaml
<rgrinberg> nullcat_: ok there's my attempt to refactor using objects
<rgrinberg> not sure if it's cleaner
<nullcat_> wait.. object !?
<rgrinberg> and the object is only there b/c we are too lazy to define 1 record -_-
<nullcat_> the o in ocaml?
<rgrinberg> nullcat_: many people use objects b/c they're too lazy to define records sometimes
<rgrinberg> just don't use classes!
<nullcat_> ok..
<rgrinberg> well don't use classes until you know you should
<rgrinberg> anyway check it out, i'm actually not sure if this is a big improvement
<nullcat_> ok thanks!
<nullcat_> i remember i jumped over class/object section when reading manual
<nullcat_> lol
<nullcat_> skipped over i mean...
<rgrinberg> nullcat_: the way a lot of people use it you don't need to read a lot
<rgrinberg> objects are to records are what polymorphic variants are to variants :P
<nullcat_> kind of get understand your analogy
<nullcat_> <del>get</del>
BitPuffin|osx has quit [Ping timeout: 264 seconds]
<nullcat_> wow, i have to say object is really useful
<struktured> so if aspcud ism
<struktured> sorry, so if aspcud isn't an option, what are my choices that don't suck?
jeffmo has quit [Quit: jeffmo]
slash^ has quit [Read error: Connection reset by peer]
slash^ has joined #ocaml
willy_ has joined #ocaml
<rgrinberg> struktured: what's the context?
<struktured> rgrinberg: solaris, although i was considering cygwin in the future if I feel generous
<rgrinberg> struktured: i mean is this for opam?
<struktured> y
<struktured> without aspcud opam goes a little crazy sometimes
<rgrinberg> struktured: have you tried ocamlpro's cloud solver gimmick thingy
<struktured> rgrinberg: that sounds difficult to integrate into my company's existing servers
willy__ has quit [Ping timeout: 252 seconds]
<struktured> but maybe not..don't know anything about it really
<struktured> oh cool..a proxy ?
<rgrinberg> was announced here
<rgrinberg> i never used it tbh
<struktured> interesting, I would need to hit from my datacenters possibly
<struktured> but will look into that. solaris is sort of a nice to have..but would be pretty sweet win
<struktured> I have other problems besides aspcud anyhow w/solaris
<rgrinberg> struktured: a word of wisdom though (from someone not particularly wise)
<rgrinberg> you want to lock the versions of all dependencies for devs
<struktured> oh yeah..of course
<rgrinberg> so you might not want them running off with the solver
<struktured> my boss will get rigid on versioning eventually, just not really there yet.
<struktured> I just want ocaml to work easily at this point on almost any arch
<rgrinberg> struktured: it could be possible to setup your own solver form on linux probably btw
<rgrinberg> sounds like a pain though
<struktured> yeah
<rgrinberg> struktured: but then again people who use solaris like self inflicting it ;)
<struktured> eh I'm in good shape, got a magic script which installs ocaml with no root priveledges (with a couple rare exceptions) on redhat,ubuntu,and macos
<struktured> requires almost nothing beyond regular unix. I bet its close to working on cygwin too
<struktured> and seems like opam-user-setup covers the editor situation...almost. gaps seem to be requiring vim plugin, having syntastic installed, maybe some other stuff I forgot about
<struktured> and I also have a away to auto pin repos and auto install a set of packages, so can reprofile a box with no trouble. Time to invade ocaml into my datacenters :)
<rgrinberg> struktured: fighting the good fight :P
MercurialAlchemi has joined #ocaml
<struktured> I always threw most of this stuff onto github today, but I gotta clean it up still before I advertise it.
<struktured> hopefully I can get back do doing more data engineering or analysis soon, not ocaml infra
<struktured> *to doing
* rgrinberg will be laughing once struktured is forced to write oracle bindings or similar shit
<struktured> rgrinberg: you mean crap like this? https://github.com/gaiustech/ociml/compare/master...struktured:master
<struktured> i was wondering I can release stuff on opam which depend son proprietary oracle libraries
<rgrinberg> lol....
<rgrinberg> i swear i didn't kow about that
<struktured> lol
<struktured> well I basically mastered that library now. it's mine, unless the author wakes up after I actually submit a PR
<struktured> next is the coherence bindings, which is c++. I'm very afraid of that one
<rgrinberg> struktured: looks like the same dude made cohml
<rgrinberg> you should probably shoot him an email
<struktured> yeah he work[s|ed] at orace
<struktured> *oracle
<rgrinberg> its likely that he has github nofitications off
<struktured> not a bad idea.
<rgrinberg> polite take over - followed by releasing on opam :D
<struktured> yeah like I said though..how does that work?
<struktured> it requires native oracle client libs, which is proprietary (but freely available)
<rgrinberg> struktured: depext should cover it if those libs are packaged properly
<rgrinberg> i dont think that they're proprietary matters
gabemc has joined #ocaml
<rgrinberg> struktured: you can also ping the guy on twitter
<rgrinberg> he's relatively active
<struktured> cool..so then I just have to search for the oracle include dir (seems to be all over the place, unfortunately), and that's it more or less.
<struktured> I seem to be following him already
<struktured> I guess he didn't take the hint
hay207 has joined #ocaml
ski has joined #ocaml
<hay207> hi guys, what is "val" that is used in modules for example?
<struktured> a value definition, which can be a function and often is
<struktured> "val add : int -> int -> int" defines a function in the module signature called "add" which takes 2 ints and returns another int
<struktured> val x : int defines a value of type int as part of the modular signature
<hay207> ok
<hay207> thanks
freling has joined #ocaml
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
rom1504 has quit [Remote host closed the connection]
willy_ has left #ocaml ["Leaving"]
ygrek has joined #ocaml
gabemc has quit [Ping timeout: 252 seconds]
inr has quit [Ping timeout: 272 seconds]
ygrek has quit [Ping timeout: 264 seconds]
A1977494 has joined #ocaml
fraggle-boate_ has joined #ocaml
A1977494 has quit [Quit: Leaving.]
fraggle-boate has quit [Ping timeout: 264 seconds]
Gama11 has joined #ocaml
rom1504 has joined #ocaml
tane has joined #ocaml
freling1 has joined #ocaml
freling has quit [Read error: Connection reset by peer]
freling1 has quit [Client Quit]
rgrinberg has quit [Ping timeout: 252 seconds]
Cyanure has joined #ocaml
ggole has joined #ocaml
fraggle-boate__ has joined #ocaml
Snark has quit [Quit: leaving]
Snark has joined #ocaml
fraggle-boate_ has quit [Ping timeout: 264 seconds]
psy_ has quit [Ping timeout: 264 seconds]
psy_ has joined #ocaml
<reynir> what's not working?
<reynir> oh I was scrolled up
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
Kakadu has joined #ocaml
rgrinberg has quit [Ping timeout: 246 seconds]
amnn has joined #ocaml
pminten has joined #ocaml
gargaml has joined #ocaml
pminten has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
seanmcl has joined #ocaml
bitbckt has joined #ocaml
seanmcl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
milosn has quit [Quit: leaving]
shinnya has joined #ocaml
rgrinberg has joined #ocaml
mort___ has quit [Ping timeout: 244 seconds]
postulance is now known as postulonce
TheLemonMan has joined #ocaml
sdothum has joined #ocaml
rgrinberg has quit [Ping timeout: 265 seconds]
jbrown has quit [Remote host closed the connection]
jabesed has joined #ocaml
everyonemines has joined #ocaml
Haudegen has quit [Ping timeout: 246 seconds]
everyonemines has quit [Ping timeout: 265 seconds]
everyonemines has joined #ocaml
jbrown has joined #ocaml
jbrown has quit [Remote host closed the connection]
inr has joined #ocaml
Haudegen has joined #ocaml
shinnya has quit [Ping timeout: 272 seconds]
jbrown has joined #ocaml
Cyanure has quit [Read error: Connection reset by peer]
djellemah has joined #ocaml
Cyanure has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 255 seconds]
rand000 has joined #ocaml
<hay207> hi guys, can i type "val" into my code,
<hay207> when i do, it fails to execute
<ggole> val goes in signatures. Elsewhere it isn't acceptable.
<ggole> Well, and objects.
Anarchos has joined #ocaml
<dmbaturin> hay207: Where did you want to use it?
rgrinberg has joined #ocaml
<hay207> i'm learning
<hay207> the language, for just one program that i love :)
<ggole> hay207: are you trying to use it to ascribe types?
<hay207> i'm learning it's use,
<dmbaturin> module type Foo = sig val hello : unit -> unit end ;;
<dmbaturin> module Foo : Foo = struct let hello () = print_endline "hello" end ;;
<dmbaturin> hay207: Also, which program?
rgrinberg has quit [Ping timeout: 276 seconds]
<hay207> don't say i'm advertising the program
<hay207> freetennis.sourceforge.net
octachron has joined #ocaml
<reynir> never heard of it
<dmbaturin> Looks like it indeed could use some modules. :)
<dmbaturin> $ wc -l ./freetennis.ml
<dmbaturin> 9033 ./freetennis.ml
idegen has joined #ocaml
<cmtptr> omfg that main function
Algebr has joined #ocaml
<Algebr> Is there a way to use something like ldd (or otool since I'm on OSX) on .cmo?
<craptain-hochet> ocamlobjinfo?
<Algebr> okay, never heard of that
<Algebr> but is there a way to know what dlls a .cmo depends on?
Anarchos has quit [Remote host closed the connection]
BitPuffin|osx has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Ping timeout: 258 seconds]
Anarchos has joined #ocaml
idegen has quit [Quit: Leaving.]
badon has quit [Ping timeout: 258 seconds]
leafac has joined #ocaml
ygrek has joined #ocaml
badon has joined #ocaml
shinnya has joined #ocaml
milosn has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
psy_ has quit [Ping timeout: 272 seconds]
Algebr has quit [Remote host closed the connection]
everyonemines has quit [Quit: everyonemines]
t4nk739 has joined #ocaml
kang- has joined #ocaml
<kang-> hi
t4nk739 has quit [Client Quit]
kang- has quit [Quit: Using Circe, the loveliest of all IRC clients]
michael_lee has joined #ocaml
octachron has quit [Quit: Leaving]
freling has joined #ocaml
amnn has quit [Ping timeout: 240 seconds]
amnn has joined #ocaml
michael_lee has quit [Quit: Ex-Chat]
fraggle_ has quit [Read error: Connection reset by peer]
jeffmo has joined #ocaml
jeffmo has quit [Client Quit]
leafac has quit [Ping timeout: 240 seconds]
jeffmo has joined #ocaml
fraggle_ has joined #ocaml
rgrinberg has joined #ocaml
darkf has quit [Quit: Leaving]
rgrinberg has quit [Ping timeout: 252 seconds]
freling has quit [Quit: Leaving.]
hay207 has quit [Ping timeout: 264 seconds]
psy_ has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
struktured has quit [Ping timeout: 265 seconds]
Hannibal_Smith has joined #ocaml
Cyanure has quit [Ping timeout: 252 seconds]
leafac has joined #ocaml
dsabanin has joined #ocaml
fraggle_laptop has joined #ocaml
rgrinberg has joined #ocaml
<dsabanin> salut to the smart ones! :)
Cyanure has joined #ocaml
struktured has joined #ocaml
bjorkintosh has quit [Read error: Connection reset by peer]
<zozozo> say I define a type 'a foo = { x : 'a }, and bar = { x: int }, I'd like to think a 'bar' and an 'int foo' will have the same representation in memory, but is is the case ? furthermore, if I have some opaque type id (which is actually an int, but not publicly), would a valueof type bar and one of type 'id foo' have the same representation in memory or not ?
<ggole> zozozo: in general, no. For most types, yes.
<ggole> Arrays and records where every field is a (concrete) float have a specialised rerepsenation.
<ggole> Records with polymorphic fields where those fields happen to be a float don't have this representation.
<ggole> As for abstract types, abstractness has no effect on representation. There's no wrapper: all the hiding happens at the type level.
<zozozo> ok, thx
<zozozo> in the end it does not chaneg much, but now I can shuffle some type definitions
<ggole> Are you worried about the performance hit of introducing indirections?
<zozozo> I was
rgrinberg has quit [Ping timeout: 240 seconds]
<dsabanin> I too have a question. Trying to get into OCaml. I have this function: let upload_files ?(port=21) ~host ~files = printf "Uploading %s to %s:%d\n" files host port;; When I executed it like upload_files ~host:"localhost" ~files:"a,b,c";; I don't see the output, but rather get a partially applied function: ?port:int -> unit = <fun>
<dsabanin> what am I doing wrong
<dsabanin> I'm going through Real World OCaml book and it doesn't mention anything tricky about optional arguments
<ggole> Oh, that's an annoying wrinkle
<ggole> In short, you fix it by adding a () argument at the end
rgrinberg has joined #ocaml
<dsabanin> for some reason that didn't work: upload_files ~host:"localhost" ~files:"a,b,c" ()
<dsabanin> Error: The function applied to this argument has type ?port:int -> unit This argument cannot be applied without label
<dsabanin> thanks for the link, I'll go read
<ggole> let upload_files ?(port=21) ~host ~files () = printf "Uploading %s to %s:%d\n" files host port;;
<dsabanin> :)
<ggole> And then upload_files ~host:"localhost" ~files:"a,b,c" ();;
<dsabanin> ahh
<ggole> Basically you need one non-labelled, non-optional argument after the optional arguments
<dsabanin> got it, thank you!
<dsabanin> that helped :)
<ggole> I regularly forget this and run into it :/
rand000 has quit [Quit: leaving]
Hannibal_Smith has quit [Ping timeout: 246 seconds]
Algebr has joined #ocaml
<struktured> anyone know how to opam pin a tag? with a branch I do opam pin add -k git project git@github.com:user/project#name_of_branch and it works fine
<Drup> exactly the same way.
<struktured> hmm not working for me...let me double check
<struktured> ah yes I'm an idiot. spelled something wrong. thanks. I think in the past I had a different problem where both a tag and branch existed of the same name, which opam pinning (rightly) rejects
leafac has quit [Quit: Leaving.]
leafac has joined #ocaml
rgrinberg has quit [Ping timeout: 264 seconds]
<zozozo> if I have type t = privat int, and I compare two values of type t using Pervasives.compare, will the compiler call the int comparison, or the polymorphic comparison ?
<ggole> int, I think
<ggole> While fully abstract types will use the polymorphic compare (eg, you can change the implementation without recompiling)
jgjl has joined #ocaml
<ggole> Yep. (Just checked.)
<zozozo> thanks
Hannibal_Smith has joined #ocaml
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
leafac has quit [Quit: Leaving.]
amnn has joined #ocaml
Anarchos has joined #ocaml
rgrinberg has joined #ocaml
robink_ has quit [Ping timeout: 248 seconds]
robink_ has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 265 seconds]
Hannibal_Smith has quit [Quit: Leaving]
Hannibal_Smith has joined #ocaml
tinhead has joined #ocaml
Algebr has quit [Ping timeout: 255 seconds]
Submarine has joined #ocaml
Submarine has joined #ocaml
Haudegen has quit [Ping timeout: 244 seconds]
manizzle has quit [Ping timeout: 240 seconds]
zaquest has quit [Read error: Connection reset by peer]
thomasga has joined #ocaml
tinhead has quit [Remote host closed the connection]
tinhead has joined #ocaml
tinhead has quit [Changing host]
tinhead has joined #ocaml
jeffmo has quit [Quit: jeffmo]
lobo has joined #ocaml
tinhead has quit [Remote host closed the connection]
yomimono has joined #ocaml
Hannibal_Smith has quit [Quit: Leaving]
Haudegen has joined #ocaml
Hannibal_Smith has joined #ocaml
zaquest has joined #ocaml
defun_ has joined #ocaml
struktured has quit [Ping timeout: 255 seconds]
yomimono has quit [Ping timeout: 252 seconds]
struktured has joined #ocaml
robink_ is now known as robink
thomasga has quit [Quit: Leaving.]
defun_ has quit [Remote host closed the connection]
leafac has joined #ocaml
rgrinberg has quit [Ping timeout: 255 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
hay207 has joined #ocaml
dsabanin has quit [Quit: Leaving...]
struktured has quit [Ping timeout: 256 seconds]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
dsabanin has joined #ocaml
hay207 has quit [Ping timeout: 252 seconds]
struktured has joined #ocaml
dsabanin has quit [Client Quit]
hay207 has joined #ocaml
tmtwd has quit [Ping timeout: 256 seconds]
bjorkintosh has joined #ocaml
fraggle_laptop has quit [Ping timeout: 276 seconds]
Haudegen has quit [Ping timeout: 264 seconds]
bjorkintosh has quit [Quit: Leaving]
Hannibal_Smith has quit [Quit: Leaving]
hsuh_ has quit [Ping timeout: 252 seconds]
hsuh has joined #ocaml
nullcat has joined #ocaml
rgrinberg has joined #ocaml
milosn has quit [Ping timeout: 265 seconds]
rgrinberg has quit [Ping timeout: 265 seconds]
Haudegen has joined #ocaml
jgjl has joined #ocaml
milosn has joined #ocaml
BitPuffin|osx has joined #ocaml
struktured has quit [Ping timeout: 256 seconds]
rgrinberg has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
jeffmo has joined #ocaml
ggole has quit []
<rgrinberg> vbmithr_: i should show you my WIP for making cohttp allocate less :P
thomasga has joined #ocaml
<rgrinberg> vbmithr_: i tried to do 0 copy but from what i can tell, the only way to do 0 copy reading in async is using read_one_chunk_at_a_time
<rgrinberg> vbmithr_: which unfortunately seems too damn awkward
<rgrinberg> vbmithr_: PS have you looked at https://github.com/ocsigen/lwt/pull/154/
thomasga has quit [Quit: Leaving.]
<nullcat> rgrinberg: i replied https://github.com/marklrh/otter/issues/17
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<vbmithr_> rgrinberg: good evening
<hay207> hello, how to create a module interface file "mli"?
<vbmithr_> touch whatever.mli ? :)
<vbmithr_> Ah, I guess, create from a .ml file ?
<hay207> yes
<vbmithr_> ocamlc -i <... other options ...> file.ml
<rgrinberg> nullcat: I see. pct_encode has a ?scheme parameter htat could be useful for this
<rgrinberg> but perhaps it's not worth it
_2can has quit [Ping timeout: 272 seconds]
<rgrinberg> hay207: you may also use ocamlbuild for that ocamlbuild file.inferred.mli
<rgrinberg> and then look in _build/
_2can has joined #ocaml
<hay207> ok, how to edit an interface file,
<hay207> inorder to restrict it
peterbb_ has quit [Ping timeout: 272 seconds]
peterbb has joined #ocaml
jgjl has joined #ocaml
<rgrinberg> hay207: $ vi file.mli ?
<hay207> not an empty interface, a one generated from ml
<hay207> i hope i'm speaking logic
<hay207> :)
dsabanin has joined #ocaml
<vbmithr_> once you generated it, you edit it by hand
<vbmithr_> generating it is just a fast way to get started
dsabanin has quit [Client Quit]
<hay207> a basic question, how to generate it?
leafac has quit [Quit: Leaving.]
<vbmithr_> you have to use the same line as if you want to compile it
<vbmithr_> just add the -i option
<vbmithr_> what I do, I just compile my project with ocamlbuild or whatever
<vbmithr_> and then I look at the line used to compile the .ml
<vbmithr_> So for example, if you compile a .ml file with:
<vbmithr_> ocamlfind ocamlc -c -g -bin-annot -safe-string -thread -package containers -package ppx_deriving.std -package ppx_deriving_yojson -package cohttp.async -package mt -I lib -o lib/bittrex.cmo lib/bittrex.ml
<vbmithr_> You just add a "-i" option to this line, and this will produce the .mli file corresponding to lib/bittrex.ml instead of generating lib/bittrex.cmo
<hay207> yes, the result is displayed, but no mli file generated
<zozozo> hay207: juste pipe the result into the .mli file
<hay207> ok thanks
gargaml has quit [Quit: WeeChat 1.2]
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ollehar has joined #ocaml
dsabanin has joined #ocaml
dsabanin has quit [Quit: Leaving...]
swgillespie has joined #ocaml
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jgjl has joined #ocaml
hay207 has quit [Quit: Leaving]
jonludlam has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
idegen has joined #ocaml
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tane has quit [Quit: Verlassend]
amnn has joined #ocaml
bjorkintosh has joined #ocaml
Algebr has joined #ocaml
dsabanin has joined #ocaml
<Algebr> I have a situation where I can compile and link a package correctly when creating an executable for either ocamlc or ocamlopt but I get a DL load error when trying to use my package through utop's #require. I suspect I wrote something wrong in the META file. Do I have to do something special in a META file to say use this dynamic library? I'm already using linkopts
badon_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
<craptain-hochet> you're loading a cma, not a cmo right ?
<Algebr> hmm, I might have messed that up, will try now
<Algebr> hmm, I don't actually get a cma during compliation.
<craptain-hochet> it's minimal makefile for linking against a lib
<craptain-hochet> cmo is only ocamlbytecode
<craptain-hochet> cma is many cmos + linking instruction, which is what you want
Submarine has quit [Remote host closed the connection]
badon has quit [Ping timeout: 256 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Algebr> sigh, not working...most likely need to keep tinkering.
Algebr has quit [Ping timeout: 256 seconds]
tinhead has joined #ocaml
rgrinberg has quit [Ping timeout: 256 seconds]
tinhead has quit [Ping timeout: 272 seconds]
Kakadu has quit [Remote host closed the connection]
ollehar has quit [Remote host closed the connection]
fraggle_laptop has joined #ocaml
tmtwd has joined #ocaml
leafac has joined #ocaml
Gama11 has quit [Remote host closed the connection]
lobo has quit [Quit: leaving]
leafac has quit [Quit: Leaving.]
tinhead has joined #ocaml
nullcat_ has joined #ocaml
tinhead has quit [Ping timeout: 272 seconds]
rgrinberg has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
dsabanin has quit [Quit: Leaving...]
darryn has joined #ocaml
darryn has left #ocaml [#ocaml]
darryn has joined #ocaml
<nullcat_> rgrinberg: i'd like to build unikernel program for otter now, to make sure i am on the right path (no os dependency)
sjrct has left #ocaml ["WeeChat 1.1.1"]
<darryn> What would i be missing choosing ocaml over common lisp?
bjorkintosh has quit [Quit: Leaving]
dubosec has joined #ocaml
leafac has joined #ocaml
leafac has quit [Client Quit]
<dmbaturin> darryn: Macros as a natural part of development process.
<darryn> I just want a fast multi-purpose language, that isn't c++
leafac has joined #ocaml
leafac has quit [Client Quit]