<companion_cube>
oasis is worth it for such a large project
<seangrove>
Does oasis replace ocamlbuild?
<Drup>
it uses ocamlbuild
<seangrove>
Ok, good to know
<toolslive>
an lwt question: if I create a server socket, strace tells me there are some automagic fcntl calls that happen on that socket just after creation. who's doing that?
<flux>
lwt probably sets it to non-blocking mode
<toolslive>
where ?
<flux>
in its source codes.. :)
<toolslive>
I grepped the source code, and there's not that many fcntl calls there.
<seangrove>
Hrm, and there's no standard way of having a e.g. deps.ml file that I can use to do "git clone my project; opam install all-deps deps.ml"?
<flux>
well, you could make an opam package of that as well, but perhaps it's not the generally best way for applications
larhat has joined #ocaml
<flux>
stick the opam install line to your README.md ;)
<toolslive>
or create a dummy makefile that does it when they type make
<seangrove>
flux: Yeah, I'm doing that, but you know.. meh :P
axiles has joined #ocaml
<seangrove>
toolslive: Interesting idea
<toolslive>
nobody reads README.md if they can avoid it
jwatzman2 has joined #ocaml
<seangrove>
toolslive: Cool, went that route, `make install-deps` seems like a ncie way of abstracting it away
<toolslive>
I tend to wrap the ocamlbuild ... incantations in a Makefile for automation purposes (for example debian packaging likes it that way)
<reynir>
I usually skim the README to see if I can avoid reading it :D
dsheets has quit [Remote host closed the connection]
dario1 has joined #ocaml
jwatzman|work has quit [*.net *.split]
dhil has quit [*.net *.split]
dsheets has joined #ocaml
jbrown has joined #ocaml
<dario1>
Hey Drup! Are you about?
<dario1>
I've ran into a problem with the Tyxml master.
|jbrown| has quit [Remote host closed the connection]
dhil has joined #ocaml
<Drup>
dario1: what problems ?
<dario1>
In the toplevel, after #require "tyxml", doing "module M = Html_sigs;;" returns a reference to undefined global.
<dario1>
Has hte module's location changed?
<dario1>
s/hte/the/
<dario1>
I though the only change was the Html5 -> Html renaming...
<Drup>
Html_sigs is a module type
<Drup>
you could never write that
<dario1>
Hmm, it's listed under "modules" in the API docs.
<dario1>
I though the module type was Html_sigs.T
<Drup>
Could you do that before ?
<dario1>
Probably not. I was just exploring the new API in the toplevel, and since Html_sigs is listed under "modules" I thought I could alias it directly.
<dario1>
So basically besides the Html5->Html renaming, nothing has changed concerning the module structure?
<seangrove>
Any easy way to get nice color output on test failure in OUnit? And/or junit xml output (so I can run this on CircleCI)?
<seangrove>
dario1: I'm sorry, I actually was just missing it from the BuildDepends of another Executable entry, and `make` builds everything by default
<seangrove>
Sorry for the newb distraction
<dario1>
seangrove: No problem. We're all newbs at something or other...
<seangrove>
Can _oasis generate .merlin files? I'm doing double-bookkeeping on dependencies there
<seangrove>
Ok, so now I've added core into the mix, and getting, `ocamlfind: Error from package `threads': Missing -thread or -vmthread switch` - I probably need to pass that somehow from Oasis...
A19774941 has joined #ocaml
<seangrove>
dario1: Ah, ogen looks like what I needed ~1 hour ago :)
A1977494 has quit [Ping timeout: 252 seconds]
<Drup>
seangrove: in BuildDepends ...
<seangrove>
Drup: BuildDepends: -tag thread?
<seangrove>
I think I know what I want, just unclear how to express it in Oasis
<Drup>
just "threads"
<seangrove>
Bizarre
<seangrove>
Thanks though, that did the trick.
<Drup>
not really, it's just a package
_2can has joined #ocaml
jwatzman2 has quit [Quit: jwatzman2]
seangrove has quit [Ping timeout: 264 seconds]
jrslepak_ is now known as jrslepak
seangrove has joined #ocaml
jwatzman|work has joined #ocaml
bba has joined #ocaml
dsheets has quit [Remote host closed the connection]
dario1 has quit [Quit: Konversation terminated!]
cross_ has quit [Ping timeout: 244 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
cross has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
seangrove has quit [Remote host closed the connection]
seangrove has joined #ocaml
seangrove has quit [Remote host closed the connection]
seangrove has joined #ocaml
dsheets has joined #ocaml
nicholasf has quit [Remote host closed the connection]
ggole__ has joined #ocaml
ggole_ has quit [Ping timeout: 264 seconds]
Kakadu has quit [Quit: Page closed]
nicholasf has joined #ocaml
dhil has quit [Ping timeout: 250 seconds]
<toolslive>
how deterministic is the compiler ? If I have module X = struct type t = A | B | C end and module Y = struct type t = A | B | C end, can I always use Obj.magic to go from X.t to Y.t and back ?
<companion_cube>
do not use Obj.magic
<companion_cube>
✔
<Drup>
toolslive: just declare them equals ...
<mrvn>
module Y = struct type t = X.t end
chindy has joined #ocaml
<mrvn>
or module Y = struct type t = X.t = A | B | C end
<toolslive>
can I get to the internals too then ?
<flux>
you try to get access to a constructor that is for an abstract type?
<mrvn>
toolslive: no, only whats in the mli file
<flux>
you should guess that the next question is: "WHY" :)
<toolslive>
basically, I need to manipulate some field in Lwt_unix.file_descr but the Lwt_unix.mli hides it from me.
jwatzman2 has joined #ocaml
<mrvn>
Unix hides it because it differs between unix and windows
chindy has quit [Ping timeout: 264 seconds]
cross has quit [Ping timeout: 264 seconds]
jwatzman|work has quit [Ping timeout: 264 seconds]
A19774941 has quit [Ping timeout: 264 seconds]
A1977494 has joined #ocaml
<toolslive>
I'm teaching lwt to handle rsockets so I route the calls in to rsocket's rselect, but sometimes I need to change the state of some internals.
<toolslive>
but the API is closed. the alternative is to patch Lwt to expose the set_state call.
cross has joined #ocaml
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<Drup>
hum, you are making a new lwt engine right ? Lwt_engine is much lower than Lwt_unix.file_descr and the likes
<toolslive>
I'm trying to use the same upper layers.
nicholasf has quit [Remote host closed the connection]
octachron has joined #ocaml
<Drup>
but once you implement a new Lwt_engine, the upper layers use it naturally, you don't have to change them. Am I misunderstanding something ?
BitPuffin has joined #ocaml
<toolslive>
yes. I have resources that look like file descriptors that can be used by the upper layers as is they were file descriptors, but are treated differently by the api inside the engie
bba has joined #ocaml
<toolslive>
but for example, a Lwt_unix.close needs to be a little bit different. (I need to clean up my resource)
chindy has joined #ocaml
<Drup>
I see
<toolslive>
without a race condition.
<Drup>
Sounds like you need to make either Lwt_engine or some other layers a bit more general
<Drup>
I think you should discuss with diml on the bug tracker
dsheets has quit [Remote host closed the connection]
<mfp>
but still, configuration management on windows being the way it is (install shit and cross fingers hoping they won't break), the cross-compìler is likely to be more robust (ha!)
<Algebr`>
darn
<mfp>
building windows executables without as much as touching windows with a 10-meter pole, what could possibly be better? :)
sh0t has quit [Ping timeout: 244 seconds]
monod has quit [Read error: Connection reset by peer]
silver has joined #ocaml
nicholasf has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 244 seconds]
leyyin has quit [Ping timeout: 276 seconds]
Stalkr_ has quit [Quit: Leaving...]
octachron has quit [Quit: Leaving]
zpe has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
zpe has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
<hcarty1>
Algebr`: I'm leaving so can't offer much advice, but using whitequark's setup allowed me to avoid Windows for Windows development on at least one project
<hcarty1>
Algebr`: So in my experience it's a worthwhile choice
<Algebr`>
hcarty1: awesome! then I will defintely try it now
<hcarty1>
Good luck!
zpe has quit [Ping timeout: 244 seconds]
Stalkr_ has joined #ocaml
Stalkr_ has quit [Read error: Connection reset by peer]
sh0t has joined #ocaml
hcarty1 has quit [Ping timeout: 276 seconds]
bba has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
yegods has joined #ocaml
sh0t has quit [Ping timeout: 264 seconds]
sh0t has joined #ocaml
iosys has quit [Ping timeout: 244 seconds]
fs4lv1n1 has quit [Ping timeout: 244 seconds]
tumdum has quit [Ping timeout: 244 seconds]
fs4lv1n1 has joined #ocaml
fraggle_ has quit [Ping timeout: 244 seconds]
tumdum has joined #ocaml
tumdum has quit [Changing host]
tumdum has joined #ocaml
iosys has joined #ocaml
infinity0 has joined #ocaml
dr_toboggan has quit [Ping timeout: 260 seconds]
fraggle_ has joined #ocaml
dr_toboggan has joined #ocaml
dhil has quit [Ping timeout: 260 seconds]
<Algebr`>
bah, why can't Set.Make(type t = string let compare = Pervasives.compare).of_list ["Hello"] work, i get syntax errors and extra parens don't help
<Drup>
you need to bind the module
tane has quit [Quit: Verlassend]
<Drup>
hum, actually, you don't, you just need the struct end ...
<Drup>
actually, you do also need to bind the module :p
zaquest has quit [Read error: Connection reset by peer]
<Algebr`>
bah, eyes are tired.
<Algebr`>
Why does it need to be binded anywa
<Drup>
to be able to resolve names to a module path
<Algebr`>
why does that matter here, its not corresponding to a file
<Anarchos>
Algebr` you must enclose your type.... compare... by struct /end to make an anonymous module
<Algebr`>
yes that was a typo, fixed that but trying this in utop does not compile: Set.Make(type t = string let compare = Pervasives.compare end).of_list ["Hello"];;
<Algebr`>
ahhh typos
<mrvn>
Algebr`: still no struct/end
<Algebr`>
Set.Make(struct type t = string let compare = Pervasives.compare end).of_list ["hello"];;
<Algebr`>
does not work
<Algebr`>
wanted to do items |> Set.Make(...).of_list
<mrvn>
Algebr`: still not binding it
<Algebr`>
i see that, i was not understanding why I had to, Drup said was because it needed to know module path
<Algebr`>
but I don't understand why that matters
<mrvn>
I would say that's just how it works but there is probably some deeper reason
zaquest has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
silver has quit [Quit: rakede]
Anarchos has quit [Read error: Connection reset by peer]