companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | 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
kakadu_ has quit [Remote host closed the connection]
infinity0 has quit [Ping timeout: 245 seconds]
infinity0_ has joined #ocaml
infinity0_ has quit [Changing host]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
pete_8 has joined #ocaml
pete_8 has quit [Ping timeout: 255 seconds]
silver has quit [Read error: Connection reset by peer]
enterprisey has joined #ocaml
enterprisey has quit [Remote host closed the connection]
hashpuppy has quit [Quit: Connection closed for inactivity]
mfp_ has quit [Ping timeout: 260 seconds]
enterprisey has joined #ocaml
Simn has quit [Read error: Connection reset by peer]
pierpa has joined #ocaml
enterprisey has quit [Ping timeout: 246 seconds]
enterprisey has joined #ocaml
enterprisey has quit [Ping timeout: 240 seconds]
pierpa has quit [Ping timeout: 260 seconds]
Soni has quit [Ping timeout: 255 seconds]
Soni has joined #ocaml
samrat has joined #ocaml
sgronblo has quit [Ping timeout: 260 seconds]
segmond has joined #ocaml
_whitelogger has joined #ocaml
cggong has joined #ocaml
ygrek_ has quit [Ping timeout: 246 seconds]
cggong has quit [Quit: cggong]
ziyourenxiang has quit [Ping timeout: 255 seconds]
MercurialAlchemi has joined #ocaml
olibjerd has joined #ocaml
cggong has joined #ocaml
andreas_ has quit [Quit: Connection closed for inactivity]
ziyourenxiang has joined #ocaml
cggong has quit [Quit: cggong]
sgronblo has joined #ocaml
cggong has joined #ocaml
cggong has quit [Quit: cggong]
segmond has quit [Quit: l8r]
MercurialAlchemi has quit [Ping timeout: 246 seconds]
<sgronblo> hello, trying to use MParser, tried to create a `let whitespace = blank <|> newline` but getting this compilation error: "Error: The type of this expression, (char, '_a) MParser.t, contains type variables that cannot be generalized"
MercurialAlchemi has joined #ocaml
samrat has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
raphaelss has joined #ocaml
samrat has joined #ocaml
DunsScotus has joined #ocaml
philtor has quit [Ping timeout: 240 seconds]
<flux> sgronblo, do you need to provide your code to other modules to use?
<flux> sgronblo, if not: touch yourmodulename.mli
<flux> the key here is that that kind of expression has a "weakly" polymorphic variable, that is bound at its first use. this works fine when it's local or within a module, but doesn't if it's exported to other modules
<sgronblo> so if i dont have a .mli file that implicitly makes it private its considered to be public and cannot be generalized?
jack5638 has quit [Ping timeout: 240 seconds]
samrat has quit [Ping timeout: 255 seconds]
<sgronblo> flux: thanks, i was able to proceed to the next problem
<octachron> sgronblo, another solution would be to eta-expand whitespace to "let whitespace state = (blank<|>newline) state"
jack5638 has joined #ocaml
aegray_ has joined #ocaml
aegray has quit [Ping timeout: 268 seconds]
<flux> sgronblo, correct, lack of mli means "expose everything"
<sgronblo> i still dont really get why it couldnt just keep the type generic for that case though?
<sgronblo> but humm, maybe its actually the same problem
DunsScotus has quit [Read error: Connection reset by peer]
DunsScotus has joined #ocaml
<flux> sgronblo, so it's a case in some way similar to this: let a = ref None
FreeBirdLjj has joined #ocaml
<flux> sgronblo, if the type of a would be 'a option, one module could set a value of any type to it, and another module could could read a value of any (other) type from it
<flux> seems like the same problem applies regarding get/set_user_state
raphaelss has quit [Ping timeout: 260 seconds]
DunsScotus has quit [Quit: Mutter: www.mutterirc.com]
<flux> well, maybe not, because the let whitespace.. doesn't actually contain any state :). but the simple rules aren't able to see that.
<octachron> flux, this is mainly an instance of the fact that pointfree-style does not work that well in OCaml combined with the fact that "('a,'s) M.parser = 's state -> …"
<octachron> so all definition of combinators need to be eta-expanded in order to be kept generic
<sgronblo> was it possible to somehow easily unwrap a variant's constructor without using an explict pattern matching expression?
<sgronblo> and just have the program fail for the unhandled constructors
_whitelogger has joined #ocaml
<sgronblo> hmm ok, seems like let Success blah = something worked but it would be nice if I could say I don't care about the Failed case
keyjoo_ has joined #ocaml
raphaelss has joined #ocaml
picolino has quit [Ping timeout: 246 seconds]
picolino has joined #ocaml
<flux> have a function do it for you
<flux> let blah = imbettingitsasuccess @@ something
jnavila has joined #ocaml
<sgronblo> was it not possible to pass a value constructor as a mapping function to List.map?
<flux> correct
pete_8 has joined #ocaml
jnavila has quit [Ping timeout: 240 seconds]
samrat has joined #ocaml
jlam_ has joined #ocaml
jlam__ has quit [Ping timeout: 240 seconds]
<sgronblo> trying to figure out how to create some sort of reasonable makefile for my project
<flux> you're doomed :)
<flux> use OCamlMakefile, or some other build system
kakadu has joined #ocaml
<sgronblo> what do i need to do to get Str to work? add something to .merlin?
kakadu_ has joined #ocaml
kakadu has quit [Ping timeout: 255 seconds]
<companion_cube> PKG str in .merlin, + sth similar in your build system
<sgronblo> yeah i remembered about the _tags file after a while
<sgronblo> does ocamlmakefile work nicely with ocamlbuild?
<sgronblo> or can i avoid makefiles by using ocamlbuild?
chinglish has joined #ocaml
<chinglish> how to define a string with ucs2 as the internal encode?
mrvn has joined #ocaml
<sgronblo> I dont understand why Merlin is whining about this? `let query_string = Sys.argv.(0) in`
dwillems has joined #ocaml
<sgronblo> trying to build a kind of main function
<octachron> sgronblo, first note that Sys.argv.(0) is the name of the executable called not its first argument
sgronblo has quit [Ping timeout: 268 seconds]
govg has joined #ocaml
sgronblo has joined #ocaml
kakadu_ has quit [Remote host closed the connection]
samrat has quit [Ping timeout: 260 seconds]
kakadu has joined #ocaml
sgronblo has quit [Read error: Connection reset by peer]
kakadu_ has joined #ocaml
kakadu has quit [Ping timeout: 255 seconds]
jnavila has joined #ocaml
sh0t has joined #ocaml
sgronblo has joined #ocaml
kakadu_ has quit [Ping timeout: 240 seconds]
kakadu_ has joined #ocaml
jnavila has quit [Ping timeout: 255 seconds]
zpe has joined #ocaml
zpe has quit [Remote host closed the connection]
<reynir> Happy weekend everyone!
<kakadu_> you too
zpe has joined #ocaml
argent_smith has joined #ocaml
dwillems has quit [Ping timeout: 258 seconds]
_whitelogger has joined #ocaml
average has quit [Ping timeout: 245 seconds]
pete_8 has joined #ocaml
cggong has joined #ocaml
mfp_ has joined #ocaml
<apache2> octachron: technically it's the first argument. that the first argument coincides with the exectuable is calling convention rather than a hard guarantee
<companion_cube> in particular you need to be careful with symlinks to executables
<apache2> I don't know of a good way to get the executable in unix. in linux you can, barring race conditions, do readlink on /proc/self/exe
<companion_cube> (busybox has one binary and lots of symlinks; the binary behaves differently based on Sys.argv.(0))
richi235 has quit [Ping timeout: 240 seconds]
<apache2> tmu xa
<apache2> oops.
zpe has quit [Remote host closed the connection]
<apache2> chinglish: there are no native string types in ocaml
<apache2> or well, none that implement the concept of character encoding, anyway
<companion_cube> rather, the buitin type is a bytestring
<apache2> is ucs2 compatible iwth utf16?
kakadu_ has quit [Ping timeout: 260 seconds]
kakadu_ has joined #ocaml
richi235 has joined #ocaml
cggong has quit [Quit: cggong]
<mrvn> Under AmigaOS the first argument is not set when a binary is invoked from the gui, only when invoked from the console.
jlam_ has quit [Ping timeout: 240 seconds]
<mrvn> That way the binary knows when to use the GUI API to e.g. get all the icons that where droped on a binary.
<mrvn> but generally the consensus is that using argv.(0) to change behaviour of a binary is a bad idea.
<companion_cube> except for busybox, again :p
<companion_cube> (oh, also bash disguising as sh)
<mrvn> companion_cube: and zcat and zless and ... Still generally a bad idea
Mercuria1Alchemi has joined #ocaml
cggong has joined #ocaml
agravier has joined #ocaml
neodymium has joined #ocaml
Merv_ has quit [Remote host closed the connection]
jlam_ has joined #ocaml
sgronblo has quit [Ping timeout: 260 seconds]
cggong has quit [Quit: cggong]
olibjerd has quit [Quit: olibjerd]
slash^ has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
neodymium has quit [Quit: Page closed]
FreeBirdLjj has joined #ocaml
kakadu_ has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
spew has joined #ocaml
fraggle_ has quit [Read error: Connection reset by peer]
samrat has joined #ocaml
FreeBirdLjj has joined #ocaml
sh0t has quit [Remote host closed the connection]
fraggle_ has joined #ocaml
sgronblo has joined #ocaml
<orbitz> openbsd uses this trick quite a bit as as well.
average has joined #ocaml
jack5638 has quit [Ping timeout: 246 seconds]
jack5638 has joined #ocaml
sh0t has joined #ocaml
olibjerd has joined #ocaml
madroach_ has quit [Read error: Connection reset by peer]
madroach has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
samrat has quit [Ping timeout: 268 seconds]
<flux> mrvn, zcat and zless don't use the trick, though
zpe has joined #ocaml
_whitelogger has joined #ocaml
andreas_ has quit [Quit: Connection closed for inactivity]
Algebr has joined #ocaml
FreeBirdLjj has joined #ocaml
barcabuona has joined #ocaml
boojinks has joined #ocaml
spew has quit [Ping timeout: 255 seconds]
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 240 seconds]
sepp2k has joined #ocaml
<orbitz> probably depends on platform
<orbitz> On FreeBSD, at least, zless is a shell script.
<flux> I think it doesn't.. I mean, less is the same on all platforms, no?
cggong has joined #ocaml
samrat has joined #ocaml
ontologiae_ has joined #ocaml
boojinks has quit [Quit: Lost terminal]
spew has joined #ocaml
argent_smith has quit [Quit: Leaving.]
jlam_ has joined #ocaml
jlam__ has quit [Ping timeout: 240 seconds]
keyjoo_ has quit [Ping timeout: 240 seconds]
segmond has joined #ocaml
silver has joined #ocaml
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 240 seconds]
sh0t has quit [Ping timeout: 260 seconds]
segmond has left #ocaml [#ocaml]
jlam_ has joined #ocaml
jlam__ has quit [Ping timeout: 260 seconds]
sh0t has joined #ocaml
ryanartecona has joined #ocaml
groovy2shoes has quit [Remote host closed the connection]
lostman has joined #ocaml
P4Titan has joined #ocaml
ziyourenxiang has quit [Ping timeout: 240 seconds]
<P4Titan> Hi all. I have a lwt server implementation. I want to implement another thread that waits for user input (in particular: quit) that somehow sets a flag which all of the other threads check to see if they should terminate
<P4Titan> Is there some sort of signalling functionality in LWT?
pete_8 has quit [Ping timeout: 246 seconds]
shinnya has quit [Ping timeout: 255 seconds]
raphaelss has quit [Ping timeout: 246 seconds]
Merv_ has joined #ocaml
<orbitz> P4Titan: I believe LWT has condition variables as well as events
DunsScotus has joined #ocaml
spew has quit [Ping timeout: 246 seconds]
lizzin has joined #ocaml
DunsScotus has quit [Client Quit]
<lizzin> utop has #show_val, which will show a values signature. but is there a way to get a written desciption plus examples. many repls for other langs have this feature, just wondering how i can get this info for ocaml
<P4Titan> orbitz: Condition causes a thread to block until there's a broadcast signal
<P4Titan> I want to have my thread run continuously, but periodically check to see if it should exit
<companion_cube> you can share a reference and check it regularly?
<P4Titan> but that's a global variable, which isn't amazing practice
<orbitz> P4Titan: it doesn't have to be global, you just pass the same reference into multiple functions that do something
<companion_cube> ^ using closures
samrat has quit [Ping timeout: 255 seconds]
zpe has quit [Ping timeout: 240 seconds]
Merv_ has quit [Ping timeout: 240 seconds]
pete_8 has joined #ocaml
ryanartecona has quit [Quit: ryanartecona]
chat__ has joined #ocaml
jlam__ has joined #ocaml
jlam_ has quit [Ping timeout: 240 seconds]
chat_ has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 268 seconds]
raphaelss has joined #ocaml
andreas_ has joined #ocaml
keyjoo_ has joined #ocaml
zpe has joined #ocaml
\Mike has joined #ocaml
<P4Titan> companion_cube: What do you mean by "clusures"? How would I use them for this case?
<companion_cube> let r = ref false in let t1 = (* thread using r *) and t2 = (* thread using r *) in Lwt.join [t1; t2]
<companion_cube> this way r is available in both threads but is not global
<P4Titan> ic yes
<P4Titan> thanks!
Merv_ has joined #ocaml
Merv_ has quit [Remote host closed the connection]
Merv_ has joined #ocaml
ontologiae_ has quit [Ping timeout: 255 seconds]
<\Mike> Hi, beginner here, working on https://ocaml.org/learn/tutorials/structure_of_ocaml_programs.html When I do the test programs there, grtest1 and grtest2, and close the resulting window, I always get in the terminal window
<\Mike> Fatal error: exception Graphics.Graphic_failure("fatal I/O error")
<\Mike> ```
<\Mike> ./grtest2
<\Mike> ```
<\Mike> The window with the graphics does open, so I guess it "mostly" works, but I don't know if I ought to be concerned about the fatal error at the end...
<\Mike> System: Linux Fedora 24, ocaml 4.04.1
<companion_cube> the readline must fail, I guess?
dinosaure has quit [Ping timeout: 240 seconds]
<\Mike> Oh, I'm supposed to hit enter, rather than clicking 'close'
<\Mike> Thanks, that helped
<companion_cube> :)
chinglish has quit [Ping timeout: 240 seconds]
chat__ has quit [K-Lined]
raphaelss has quit [Ping timeout: 240 seconds]
argent_smith has joined #ocaml
\Mike has quit [Ping timeout: 240 seconds]
dwillems has joined #ocaml
zv has quit [Ping timeout: 246 seconds]
TheLemonMan has joined #ocaml
groovy2shoes has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
dwillems has quit [Ping timeout: 240 seconds]
kakadu has joined #ocaml
shinnya has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
zv has joined #ocaml
neodymium has joined #ocaml
dwillems has joined #ocaml
jlam_ has joined #ocaml
jlam__ has quit [Ping timeout: 268 seconds]
<flashmozg> Hello, what is the proper way to refer to an inner struct/record of the type when pattern matching? I'm looking for something like as pattern
<flashmozg> for example to do something like this in patter match clause: | Cons c@{value = v; next = n} -> c.value <- 42
<companion_cube> ({value=v; _} as c}
<flashmozg> companion_cube: thanks, I was sure there was something like that built-in!
<companion_cube> :)
<flashmozg> companion_cuve: is there any convenient way to probe the value for being a specific type without writing helper functions? Like `while (let (Some x) = opt) do ...`, instead of introducing some ref bool condiiton or doing matching twice (once in while isSome and also when trying to get the value).
madroach has quit [Read error: Connection reset by peer]
<companion_cube> not really
<companion_cube> you should try to change your control flow graph
<companion_cube> (more match = better, usually)
<mrvn> why match twice?
<flashmozg> well, once in a while condition and second time to extract some value
<mrvn> let rec while_some fn = function None -> () | Some x -> fn x; while_some fn
<mrvn> pseudo code
<mrvn> don't use while basically
<flashmozg> well, yeah, emulating loops via a recursion is an option too, but that's just introducing second helper function just to do a simple iteration over struct.
olibjerd has quit [Quit: olibjerd]
madroach has joined #ocaml
<companion_cube> while is fine with imperative structures…
<mrvn> exception End try List.iter (function Some x -> ... | None -> raise End) opt_list with End -> () is also an option
<mrvn> Using an exception to end an iteration always looks dirty to me though
<companion_cube> nah, it's fine ;)
<companion_cube> just do it locally in a lib, not all over the place
<flashmozg> Well, that's jsut a bit more convoluted way of doing while with exit ref bool condition
<flashmozg> (convoluted - more in a using microscope as a hammer way, not the number of lines of code way)
<octachron> companion cube, or even better use one of the shiny new local exception to break the loop
<companion_cube> octachron: is it a thing?
<companion_cube> let local exception Foo in … ?
<octachron> yep, since 4.04
<companion_cube> (sadly I write old OCaml, for compat :p)
<companion_cube> heh
ontologiae_ has joined #ocaml
<mrvn> If you do the recursion yoursel you don't need the exception.
<flashmozg> yeah, btw why is there no ocaml apt packages newer than 4.02.3? (I think i saw 4.03 for the latest ubuntu though, but no 4.04.*)
<companion_cube> but if you use an iter function, you need the exception
zv has quit [Ping timeout: 246 seconds]
<flashmozg> also, is tail recursion guranteed to be always eliminated?
<Drup> yes
<Drup> which is why using recursion for loop is perfectly fine, given the capabilities of the language
ontologiae_ has quit [Ping timeout: 240 seconds]
<Drup> (it's actually much nicer, usually)
<Drup> (and the same perf profile, if you keep within tail recursion)
<flashmozg> well, it's just not convinient to create a helepr function for every loop you might need, especially if it needs 4+ args.
<Drup> you can make local functions, it's fine
<octachron> flashmozg, usually iter, map and fold functions cover a lot of the use cases of loops
<Drup> (and usually, you can make generic functions, as octachron said)
<flashmozg> but yeah, I guess it can't be helped). ALthough having something like Rust's `if let` and `while let` (https://rustbyexample.com/flow_control/while_let.html) would certainly be nice.
<P4Titan> Hi all. I have a `lwt_unix.accept` call that waits for incoming connections. If I have another thread that wait for the user to type "quit" and sets a ref indicating so, how would it be possible to exit the sleeping nature of `accept`?
<flashmozg> ocachron: they cover them for buil-in list/array structs. When you need to iterate over your own, they are not that helpful.
<Drup> flashmozg: you can (and should) write iter functions for your datastructures
<Drup> (not that I would dislike having `if let`)
zv has joined #ocaml
<mrvn> Drup: if let is just match
<flashmozg> mrvn, `if let` is just a small syntatic sugar over match but `while let` is not though. It can't be easily replicated in OCaml without breakable loops.
<mrvn> but while needs a boolen and that is usualy not usefull for the let. So I would rather have "forever match ... with None -> break | Some x -> ...
<mrvn> easy enough to write a recursive function though
<flashmozg> mrvn, not `while let`. Here the let basically acts as "try to desctructure the value with the following pattern, if successful - got to "then clause", else to "else clause" (and break loop for while let).
<Drup> flashmozg: that's also very easy to write with a recursive function
<flashmozg> Liek the act of succesful "pattern amtch" is a "boolean condition" on itself
<flashmozg> like*
<mrvn> That would make inxhaustive matches valid
<mrvn> +e
<flashmozg> everythin van be written with a recursive function. The point of syntatic sugar is to make things easier and unnecessary to write, rather than introducing some completely unique and new concept =).
<flashmozg> mrvn: How so? it's just like writing | _ -> () if there is no else clause.
<mrvn> flashmozg: yes. but not like writing | E -> break and it then fails when the constructor F is added
<Drup> mrvn: "if let $p = $e then $e1 else $e2" ≡ "match $e with $p -> $e1 | _ -> $e2"
<mrvn> Having a "failed" pattern match abort sounds verry bad. You want more control over when it break and when it continues
<mrvn> Drup: try (match $e with $p -> $1) with MatchFailure -> $e2
<Drup> What ? that's just a crappier version of what I wrote
<mrvn> Drup: but it's what was suggested
<Drup> No it's not, it's what you interpreted. What I wrote is the usual definition of "if let", that's it.
<apache2> is there a way to make opam list what currently depends on a library?
<Drup> apache2: "opam list --depends-on FOO"
<apache2> thanks!
<apache2> I'm trying to find an example of using functions exposed by minios-xen in mirage
<apache2> oh, mirage-platform does! thx!
<Drup> isn't minios-xen some base package that implement runtimes and stuff for mirage on xen ? It's probably not meant to be used directly
<apache2> yes @ low-level runtimes and stuff
<apache2> well if the stuff I needed was exposed anywhere else I wouldn't have to dig throug layer upon layer of weird stuff, so that would indeed be nice
<Drup> what are you looking for ?
<Drup> (I don't really know much about the lower layers, though)
<apache2> virt_to_mfn() for converting virtual page addresses to xen machine frame numbers
<apache2> but I can't find that anywhere
<Drup> ok, yeah, I have no idea whatsoever
<apache2> being able to read the frame number from gnttab_table[ref] would also work as ref is exposed
flashmozg has left #ocaml [#ocaml]
argent_smith has quit [Quit: Leaving.]
madroach has quit [Read error: Connection reset by peer]
madroach has joined #ocaml
sh0t has quit [Ping timeout: 240 seconds]
flashmozg has joined #ocaml
<flashmozg> Is there a way to see how ocaml compiler sees the program?
<flashmozg> I get "Warning 8: this pattern-matching is not exhaustive." even though I handle all possible cases and even add '| _ -> ()' case. And it's a big match with inner matches across many lines, but it looks like ocaml sees it as a one-line.
<flashmozg> (line 15, characters 2-416:)
MercurialAlchemi has quit [Ping timeout: 240 seconds]
<flashmozg> I think I found it - '-dsource'.
<flashmozg> For some reason my matches are not interpreted correctly. I.e. the cases that supposed to be part of the outer match a merged into inner match. Wtf and how do I fix it? I use 2 space indentation.
<flashmozg> all my matches are aligned with their respective verticle lines |
ollehar1 has joined #ocaml
<flashmozg> Even enclosing the whole inner match in the () still doesn't help! Wtf?!!
<def`> flashmozg: syntax is not whitespace sensitive, so spaces are not going to change anything
<def`> you can write either (expr) or begin expr end
<flashmozg> how do I end a match?
<def`> putting ( ) works for sure, I guess either you didn't put them at the right place or there was more than one case needing parens
<flashmozg> I have `match e with | Case1 -> ... | Case2 x -> match x with ... | Case3 y ->` and Case3 is merged into inner match of case2 (I ommited all newlines and indentation)
P4Titan has quit [Ping timeout: 255 seconds]
ryanartecona has joined #ocaml
<def`> yes, that's a common mistake
<flashmozg> I did. I surrounded inner match with () and it still the same ouput!
<def`> | Case2 x -> (match x with ...)
<def`> do you mind sharing the code?
<flashmozg> def`: I'll try to reduce it to a minimal repro first
<apache2> iSys_error("/home/user/.opam/4.04.0/packages.dev/xen-gnt/deleting v2.2.3.tar.gz: No such file or directory")
<apache2> haha
<apache2> fix: $ touch '/home/user/.opam/4.04.0/packages.dev/xen-gnt/deleting v2.2.3.tar.gz'
<def`> D
<def`> :D
<apache2> Sys_error("/home/user/.opam/4.04.0/packages.dev/xen-gnt/deleting deleting v2.2.3.tar.gz: No such file or directory")
<apache2> or not :P
<flashmozg> def`: nvm, I've dun goofed xD I've copied my code to another file to test it more thoroughly but I was changing the original file xD adding () helped, but it looks less pretty now)
<def`> :)
jlam_ has quit [Ping timeout: 240 seconds]
zaquest has quit [Ping timeout: 260 seconds]
zaquest has joined #ocaml
ontologiae_ has joined #ocaml
ontologiae_ has quit [Ping timeout: 240 seconds]
sepp2k has quit [Quit: Leaving.]
pete_8 has quit [Ping timeout: 240 seconds]
cggong has quit [Quit: cggong]
flashmozg has left #ocaml [#ocaml]
neodymium has quit [Ping timeout: 260 seconds]
Mercuria1Alchemi has quit [Ping timeout: 268 seconds]
keyjoo_ has quit [Ping timeout: 255 seconds]
ryanartecona has quit [Quit: ryanartecona]
chat_ has joined #ocaml
ryanartecona has joined #ocaml
<rgrinberg> def`: is it possible to convert the parsetree I obtained by parsing with Pparse into a particular version with omp?
kakadu has quit [Remote host closed the connection]
ollehar1 has quit [Quit: ollehar1]
ziyourenxiang has joined #ocaml
dwillems has quit [Ping timeout: 255 seconds]
cggong has joined #ocaml
copy` has joined #ocaml
average has quit [Ping timeout: 245 seconds]
average has joined #ocaml