<tautologico>
anyone having trouble with tuareg-mode in recent versions of emacs (I'm also using emacs-prelude, don't know if it's the problem)
mattrepl has quit [Quit: mattrepl]
ftrvxmtrx has joined #ocaml
mattrepl has joined #ocaml
travisbrady has joined #ocaml
madroach_ has quit [Ping timeout: 255 seconds]
madroach has joined #ocaml
mattrepl has quit [Quit: mattrepl]
silkwood has joined #ocaml
travisbrady has quit [Quit: travisbrady]
adotbrown has joined #ocaml
adotbrown has quit [Ping timeout: 264 seconds]
wagle_ has joined #ocaml
adrien_ has joined #ocaml
adrien has quit [Ping timeout: 256 seconds]
wagle has quit [Read error: Connection reset by peer]
jknick has quit [Ping timeout: 256 seconds]
julm has quit [Ping timeout: 256 seconds]
reynir has quit [Ping timeout: 256 seconds]
jknick has joined #ocaml
julm has joined #ocaml
Yoric has joined #ocaml
tongcx has left #ocaml []
Yoric has quit [Ping timeout: 252 seconds]
tac has joined #ocaml
tac has quit [Ping timeout: 245 seconds]
tac has joined #ocaml
yacks has joined #ocaml
ulfdoz has joined #ocaml
Yoric has joined #ocaml
andreypopp has joined #ocaml
tautologico has quit [Quit: tautologico]
tac has quit [Ping timeout: 245 seconds]
mye has joined #ocaml
andreypopp has quit [Quit: sleep]
<orbitz>
ugh i feel like namespaces would make my life way better
silkwood has quit [Quit: Ex-Chat]
CoverSlide has quit [Ping timeout: 255 seconds]
CoverSlide has joined #ocaml
hkBst has joined #ocaml
<yezariaely>
thelema: Maybe you can explain: Why is there only a print function in a BatSet instance which needs a string_of function for its elements again? Why is it not already provided to the Make functor of BatSet?
<yezariaely>
Any reason? Because during debugging I have to write printers all the time...
<yezariaely>
Maybe I a m using them wrongly?
milosn has quit [Ping timeout: 260 seconds]
LeNsTR is now known as lenstr
ulfdoz has quit [Ping timeout: 264 seconds]
adotbrown has joined #ocaml
Cyanure has joined #ocaml
adotbrown has quit [Ping timeout: 252 seconds]
hkBst has quit [Remote host closed the connection]
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
<flux>
yezariaely, probably to maintain backwards compatibility
<flux>
yezariaely, if it were in the functor, you would need to provide a printer for any value you use, and if you just put assert false there, later on it might lead to a runtime crash :)
<flux>
..not sure if that's a great reason, though..
<flux>
I wonder what would be the best way to address that. two variants of set, one with printer in functor and one without, doesn't seem that great alternative either
<yezariaely>
flux: Maybe you are right, but what is the problem with requiring a string_of function for any value? There never was a case where I did not need it.
<yezariaely>
The runtime crash would be bad, sure. But any assert false leads to a runtime crash, eventually.
<yezariaely>
Mmh maybe two variants would be nice...
<flux>
yezariaely, let's say you have file_descr
<flux>
yezariaely, how do you make a reasonable string of that..
caligula_ has joined #ocaml
<flux>
(although you can just Obj.magic it into an integer, but that's nasty - done it sometimes for debugging purposes though..)
TaXules has quit [Ping timeout: 260 seconds]
<yezariaely>
I didn't think of such values, hmm. Artificial strings for non-printable objects are bad… although this problem could easily be solved by the two functor solution.
TaXules has joined #ocaml
hkBst has quit [Ping timeout: 272 seconds]
hkBst has joined #ocaml
caligula__ has quit [Ping timeout: 260 seconds]
Cyanure has quit [Remote host closed the connection]
andreypopp has joined #ocaml
<yezariaely>
Does anyone know if it is possible to set the global log level in BatLogger somehow? e.g. I want to set all levels of all loggers to DEBUG without setting it for each.
AltGr has joined #ocaml
djcoin has joined #ocaml
cago has joined #ocaml
ttamttam has joined #ocaml
thomasga has joined #ocaml
ttamttam has quit [Quit: ttamttam]
ttamttam has joined #ocaml
ttamttam has quit [Client Quit]
ahokaomaeha has quit [Quit: When I come back, please tell me in what new ways you have decided to be completely wrong.]
ahokaomaeha has joined #ocaml
ftrvxmtrx_ has joined #ocaml
hkBst has quit [Ping timeout: 272 seconds]
milosn has joined #ocaml
gour has joined #ocaml
Snark has joined #ocaml
ontologiae has joined #ocaml
hkBst has joined #ocaml
anderse has joined #ocaml
Yoric has quit [Ping timeout: 252 seconds]
hkBst has quit [Ping timeout: 272 seconds]
hkBst_ has joined #ocaml
hkBst_ has quit [Changing host]
hkBst_ has joined #ocaml
cago has quit [Ping timeout: 245 seconds]
adrien_o1w is now known as adrien_ow
adrien_ow is now known as adrien_oww
hkBst_ has quit [Ping timeout: 240 seconds]
hkBst_ has joined #ocaml
hkBst_ has quit [Changing host]
hkBst_ has joined #ocaml
_andre has joined #ocaml
hkBst_ has quit [Ping timeout: 276 seconds]
ttamttam has joined #ocaml
<gour>
TK bindings for ocaml are old/obsolete?
cago has joined #ocaml
ttamttam has quit [Quit: ttamttam]
<pippijn>
gour: better use gtk
<gour>
pippijn: gtk is practically the only choice for writing GUI apps in ocaml?
ttamttam has joined #ocaml
<flux>
as far as I know, yes
<gour>
ok...just to eliminate other possbilities :-)
mcclurmc has quit [Ping timeout: 248 seconds]
yacks has quit [Remote host closed the connection]
<flux>
probably pretty spot on. I've never done anything significant with lablgtk2 in ocaml, but otherwise gui programming is tedious
<pippijn>
O(n^2) doesn't actually happen
<orbitz>
flux: Justlearningvclcoks
<pippijn>
if your UI has anywhere near that pattern, chances are that it's a usability nightmare
<orbitz>
flux: it has all the functions it needs, cn you do anything else with vclocks?
<adrien_oww>
yes?
<flux>
orbitz, possibly not, I have only read an article on them a long time ago. maybe it is just organized quite differently with different names.
<adrien_oww>
at oups, I jokingly said that I'd make a talk about doing lablgtk2 stuff, something along the lines of "lablgtk2 explained"
<adrien_oww>
I was surprised to see positive reaction so I guess I'll have to do it
<adrien_oww>
at some point in march I guess
<adrien_oww>
lablgtk2 is very simple to use
<adrien_oww>
provided you know a couple things
<adrien_oww>
however you have to keep in mind that if you create 100 inputs which influence 100 outputs, you get a combinatorial number of relations if you don't take care
<adrien_oww>
if you route all inputs through a single function that will be the central place to influence the outputs, you'll be a lot safer
<adrien_oww>
pippijn: I wouldn't say "usability nightmare" but it definitely won't be simple
<adrien_oww>
sometimes you need that many inputs
<pippijn>
100 inputs on a single form?
mye has quit [Quit: mye]
<orbitz>
flux: i'm working on my ocaml-pastry implementation so that might have a usefor vclocks later on
<adrien_oww>
in rwmj's screenshot, there are tabs: it could be 100 inputs spread on 5 tabs
<orbitz>
flux: but doesn't do anything and will change
<orbitz>
mostly just setting up APIs
<adrien_oww>
pippijn: not really
<flux>
orbitz, yeah, google found that but it tells very little about itself :)
<adrien_oww>
pippijn: that's not how it is in the API and that's not very handy to do it in code
<pippijn>
ok
<pippijn>
I don't know lablgtk
<adrien_oww>
pippijn: if you want a clear separation, use pages (like a wizard)
<orbitz>
flux: indeed, hopefully in thenext few months i can flush it out
<pippijn>
I've used Qt quite a bit
<adrien_oww>
GTK has a *very* annoying notebook/tabs API
<pippijn>
and when I get complex forms, I create functional widgets
<pippijn>
input -> widget -> output
<flux>
pippijn, qt with ocaml? or with c++ and qml?
<pippijn>
C++ and no qml
<pippijn>
I have a dead project about binding Qt to ocaml
Kakadu has quit [Ping timeout: 245 seconds]
<orbitz>
Qrntz is working on qt to ocaml
<pippijn>
how?
<flux>
it seems to be the destination of all qt ocaml bindings :(
<pippijn>
where?
<orbitz>
Err maybe I misudnerstodo, Qrntz is working on ocaml bindings for qt
<adrien_oww>
"dead"
<pippijn>
flux: I might revive it someday
<pippijn>
I used.. something
<adrien_oww>
I still believe the biggest issue is inheritance; until you don't have a clear and nice way to use Qt's timers, I'd say you're not ready to extend the API
<pippijn>
the same thing used by Perl's bindings
<pippijn>
something with a generic non-descriptive name
mye has joined #ocaml
<pippijn>
ah, Smoke
<pippijn>
I was thinking "sludge"
<flux>
I wonder if metaocaml could help with qt bindings.
<pippijn>
is metaocaml about RTTI?
<flux>
or the new compiler AST filter stuff
<pippijn>
I think my problem was marshalling
yacks has joined #ocaml
<adrien_oww>
flux: imho, one big issue is that you sometimes need to touche the vtable of C++ objects
<flux>
adrien_oww, I was thinking if you could create the required c++ code during compile time
<flux>
is ocaml too dynamic for that?-)
<pippijn>
oh
<pippijn>
I had that all solved
<pippijn>
overriding C++ methods from ocaml worked fine
<adrien_oww>
in the general case?
<pippijn>
method lookup in ocaml goes by string (hash)
<adrien_oww>
meaning you can override an override?
<pippijn>
sure
<adrien_oww>
so to access the Qt timers (which you get through a virtual protected method in one of the first layer of hierarchy)
<adrien_oww>
in the C++ side of stubs, you define a class for each and every possible object?
<adrien_oww>
and that class is a wrapper around possible ocaml methods?
<pippijn>
another problem I had was that my Qt bindings were incredibly slow to compile and produced hundreds of MB of object code
<adrien_oww>
which default to super?
<pippijn>
because I put everything in classes
<adrien_oww>
yup, you solve the inheritance issue but you have the big drawback that you need lots and lots and lots of code
<pippijn>
adrien_oww: yes, every class needs a wrapper class
<pippijn>
on both sides
<pippijn>
both generated, though
<flux>
but in practice one application uses only very little of the qt api
<flux>
did the binaries balloon? did you put each class in its own .cmo?
<pippijn>
each class in its own .cmo
<pippijn>
but the cmos didn't blow up
<pippijn>
it was the native compiler that choked
thelema_ has joined #ocaml
<flux>
but shouldn't it, too, link in .cmx files actually used? (from the .cmxa)
<pippijn>
flux: there was something weird going on with module inclusion
<pippijn>
I used "include" to inherit static methods
<pippijn>
if I didn't do that, the entire bindings were like 6MB
<adrien_oww>
pippijn: the native ocaml compiler or the native c++ compiler?
<pippijn>
if I did it, they would be 500MB
<pippijn>
adrien_oww: ocaml
<adrien_oww>
hmm
<pippijn>
sorry, I don't remember the exact issue
<pippijn>
it was exactly one thing I did and if I didn't do that, it would be fine
<adrien_oww>
I wonder if some of the newer stuff in ocaml trunk could improve that
<pippijn>
it's too long ago
<adrien_oww>
also, that could be an interesting bug report
<pippijn>
I'll get back to it eventually
<adrien_oww>
hmmm, hmmm
<pippijn>
this year
<adrien_oww>
:)
thelema has quit [Ping timeout: 252 seconds]
ontologiae has quit [Ping timeout: 244 seconds]
<orbitz>
can you encode things like "this type forms a lattice" in ocaml's type system?
ttamttam has quit [Quit: ttamttam]
troydm has quit [Read error: Operation timed out]
troydm has joined #ocaml
mye has quit [Quit: mye]
ontologiae has joined #ocaml
anderse has quit [Quit: anderse]
mye has joined #ocaml
jamii has joined #ocaml
Yoric has quit [Remote host closed the connection]
Yoric has joined #ocaml
djcoin has joined #ocaml
Kakadu has joined #ocaml
yacks has quit [Ping timeout: 246 seconds]
yacks has joined #ocaml
ttamttam has joined #ocaml
mattrepl has joined #ocaml
tictactoc has joined #ocaml
tictactoc has left #ocaml []
hkBst_ has quit [Ping timeout: 272 seconds]
hkBst__ has joined #ocaml
hkBst__ has quit [Excess Flood]
hkBst__ has joined #ocaml
anderse has joined #ocaml
anderse_ has joined #ocaml
<_andre>
hi
anderse has quit [Ping timeout: 255 seconds]
anderse_ is now known as anderse
<_andre>
anyone ever tried to compile lwt with the ocaml memprof patch?
mcsquiggedy has quit [Remote host closed the connection]
yacks has joined #ocaml
mcsquiggedy has joined #ocaml
hkBst has joined #ocaml
hkBst__ has quit [Read error: Connection reset by peer]
tautologico has joined #ocaml
<Qrntz>
pippijn, I use Smoke, too
<pippijn>
oh
<pippijn>
we should join efforts, then
<Qrntz>
was using when I worked on my binding, anyway
<Qrntz>
probably
<Qrntz>
I tried to use GADTs to ensure type safety
<flux>
ooh, useful application for gadts?
<Qrntz>
(to encode method signatures so the integration to OCaml would be relatively seamless)
<Qrntz>
yep, it's not in too much of a useful state right now though
andreypopp has quit [Quit: sleep]
<Qrntz>
to encode method signatures, the best I could come up with initially was generating .ml files purely for typing but that didn't work out
<Qrntz>
then I was about to begin work on a compiler mod that'd allow type safety through querying Smoke at compilation time for existence and/or proper typing of methods but more important stuff called so I left it at that
<pippijn>
ah
<pippijn>
Qrntz: I did that
<pippijn>
generating classes from smoke rtti
djcoin has quit [Ping timeout: 252 seconds]
hkBst has quit [Quit: Konversation terminated!]
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
<gour>
someone also mentioned here (some months ago) reviving wx bindings, but that's also C++...
leoncamel has joined #ocaml
yacks has quit [Quit: Leaving]
tane has joined #ocaml
Kakadu has quit [Ping timeout: 245 seconds]
answer_42 has joined #ocaml
ontologiae has quit [Ping timeout: 264 seconds]
hkBst has quit [Ping timeout: 276 seconds]
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
mcsquiggedy has quit [Ping timeout: 256 seconds]
hkBst has quit [Ping timeout: 272 seconds]
hkBst_ has joined #ocaml
q66 has joined #ocaml
parlancho has joined #ocaml
mcsquiggedy has joined #ocaml
paolooo has joined #ocaml
djcoin has joined #ocaml
travisbrady has joined #ocaml
travisbrady has quit [Client Quit]
travisbrady has joined #ocaml
hkBst_ has quit [Ping timeout: 260 seconds]
hkBst_ has joined #ocaml
reynir has joined #ocaml
<reynir>
If I have a signature and a number of modules, how do I check all the modules satisfy the signature when I (for now) only want to use one of the modules?
<thizanne>
module A : YOUR_SIGNATURE = struct ...
<reynir>
Ah that makes so much sense
<mcsquiggedy>
if they're in separate .ml files, add "includes YOUR_SIGNATURE" to the .mli files
<reynir>
What if the module is defined in an external library?
<thizanne>
module My Module : MY_SIG = TheExternalModule