adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml MOOC http://1149.fr/ocaml-mooc | OCaml 4.02.3 announced http://ocaml.org/releases/4.02.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
damason has quit [Ping timeout: 264 seconds]
ceryo has joined #ocaml
damason has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
ceryo has quit [Quit: Textual IRC Client: www.textualapp.com]
ollehar has quit [Quit: ollehar]
mfp has joined #ocaml
madroach has quit [Ping timeout: 260 seconds]
madroach has joined #ocaml
<Maelan> i would like to know better how to manage doc with ocaml-related stuff
<Maelan> i am using opam
<Maelan> but apparently opam packages do not come with their documentation
<Maelan> so how am i supposed to obtain it, and where do i put it?
<Drup> a good amount of packages install their .mli, which usually contains the documentation
<Drup> other than that .. for now, it's on a per-package basis, there is a "doc" field in the opam package for a url
<Maelan> for the first point, currently for doc i really want i just « git clone ; make doc ; rm -r project » (which looks really dumb to me since opam installs and compiles the whole stuff by itself, then i download and compile it again just to pick the doc)
<Drup> some package defines instruction to compile the doc, but it's very rare
<Drup> It will all be better when codoc arrives, but it's making itself desired :p
<Maelan> *coming soon*
<Maelan> is this intended to replace ocamldoc, or is it something else, a « doc manager » or something?
<Drup> both
<Maelan> so you would have the doc associated with your versions of your (opam) packages in your current switch?
<Drup> yes
<Maelan> sounds like utopia ^^
ontologiae has quit [Ping timeout: 264 seconds]
<Maelan> (i guess it has compatibility with ocamldoc, for all the existing material?)
<Drup> yeah
<Maelan> in the meantime, i still have to figure out where to put all those html files and man pages :<
BitPuffin|osx has quit [Ping timeout: 272 seconds]
<Maelan> i am tempted to put them all in ~/.opam/switch/{man,doc/package}/
<Drup> that's .. actually where you are supposed to put them
<Maelan> yes, but it does not sound good since those files are not handled by opam
<Drup> just interogate the right opam variable
<Drup> sure it is
<Drup> opam will just nuke */<package> when your package is removed
<Maelan> they are not updated when packages are upgraded or deleted
BitPuffin|osx has joined #ocaml
<Maelan> Drup, really? i often see opam warning that it will not remove a directory because it is not empty (and i always wonder if this is normal or if this is because of a file i added myself at some point)
<Drup> I think so
Guest49066 has quit [Ping timeout: 244 seconds]
trix has joined #ocaml
trix is now known as Guest98790
Guest38 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nullcatxxx_ has joined #ocaml
manud has joined #ocaml
NingaLeaf has joined #ocaml
djellemah has quit [Ping timeout: 265 seconds]
rpg has joined #ocaml
rpg has quit [Client Quit]
lobo has quit [Quit: leaving]
manud has quit [Quit: manud]
FreeBirdLjj has joined #ocaml
shinnya has joined #ocaml
seangrove has joined #ocaml
shinnya has quit [Ping timeout: 276 seconds]
teknozulu has quit [Ping timeout: 244 seconds]
igoroliveira has quit [Quit: Connection closed for inactivity]
<seangrove> Hey all, I'm trying to get a custom utop going, and hitting an error: "$ ocamlfind ocamlc -linkpkg src/mytop_main.ml -package threads,utop -o myutop -thread" - Reference to undefined global `Topfind'
pyx has joined #ocaml
pyx has quit [Client Quit]
<seangrove> Hrm, I thought adding the findlib package might take care of it, but doesn't seem to help
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
manud has joined #ocaml
systmkor has quit [Ping timeout: 272 seconds]
JacobEdelman has quit [Quit: Connection closed for inactivity]
nullcatxxx_ has joined #ocaml
seangrove has quit [Ping timeout: 272 seconds]
damason has quit [Ping timeout: 240 seconds]
BitPuffin|osx has quit [Ping timeout: 272 seconds]
damason has joined #ocaml
aaronelkins has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
nchambers is now known as dtscode
nullcatx_ has joined #ocaml
kushal has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 240 seconds]
manud has quit [Quit: manud]
ygrek has quit [Ping timeout: 252 seconds]
Bahman has joined #ocaml
seangrove has joined #ocaml
tmtwd has joined #ocaml
seangrove has quit [Ping timeout: 272 seconds]
mac10688 has quit [Ping timeout: 255 seconds]
JacobEdelman has joined #ocaml
Sorella has quit [Quit: Connection closed for inactivity]
ygrek has joined #ocaml
ygrek has quit [Ping timeout: 276 seconds]
djellemah has joined #ocaml
darkf has joined #ocaml
MercurialAlchemi has joined #ocaml
ygrek has joined #ocaml
NingaLeaf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
seangrove has joined #ocaml
seangrove has quit [Ping timeout: 264 seconds]
MercurialAlchemi has quit [Ping timeout: 250 seconds]
sz0` is now known as sz0
tmtwd has quit [Ping timeout: 240 seconds]
badon_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
demonimin has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
demonimin has joined #ocaml
MercurialAlchemi has joined #ocaml
psy_ has quit [Remote host closed the connection]
damason has quit [Ping timeout: 250 seconds]
Haudegen has quit [Ping timeout: 264 seconds]
<Gvidon> Hi. I have another stupid basic question. Let's assume I have two record types with identical fields, how do I create an instance a given type? All this type inference thing is great, but what if I need to specify the type manually?
<fds> let (x : foo) = ...
<fds> Manual type annotations like that
<fds> For example: type foo = {a : int} ;; type bar = {a : int} ;; let (x : foo) = {a = 3} ;;
<Gvidon> Thanks!
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
Haudegen has joined #ocaml
ontologiae has joined #ocaml
teknozulu has joined #ocaml
nullcatx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
manud has joined #ocaml
hamilto-nyan is now known as nyan-category
seangrove has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
seangrove has quit [Ping timeout: 250 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
orbifx2 has joined #ocaml
MercurialAlchemi has joined #ocaml
orbifx has quit [Ping timeout: 240 seconds]
Simn has joined #ocaml
seangrove has joined #ocaml
Bahman has quit [Read error: Connection reset by peer]
<reynir> Maelan: FWIW opam install has --build-doc, but I don't think it's used by many packages
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
agumonkey has joined #ocaml
teknozulu has quit [Ping timeout: 255 seconds]
coody has quit [Quit: Connection closed for inactivity]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
<flux> this seems interesting way to construct database queries :-o : https://www.vincit.fi/blog/nested-eager-loading-and-inserts-with-objection-js/ [full disclosure: I work there]
zpe has joined #ocaml
<flux> seems like it might be a bit daunting to express that with static typing in ocaml
<MercurialAlchemi> flux: good query builders are hard work in any language, but typesafe query builders, that's even worse
<MercurialAlchemi> (and by "good" I mean "powerful and composable")
<flux> mercurialalchemi, and "safe"
<companion_cube> looks like an ORM
<flux> if you don't need safety, then it is just as easy (if not more verbose) as in dynamic ones?-)
<companion_cube> aren't those quite limited in expressiveness?
<MercurialAlchemi> query builders are not ORMs
<MercurialAlchemi> it's just a system to build a query
<companion_cube> flux: did you look at https://github.com/mfp/ocaml-sqlexpr ?
<MercurialAlchemi> because string concatenation sucks and composes badly
<flux> companion_cube, yes, I've seen it
<flux> it's nice but doesn't target other than sqlite yet?
<companion_cube> in OCaml, I'm not sure anyone targets multiple DBs
<MercurialAlchemi> it's just easy to end up with a system where you can't map the builder calls to the underlying SQL or where you can't write your query because the builder is not expressive enough
<companion_cube> well it's hard to do this properly as a DSL, you need a way to express arbitrary binders, etc.
<MercurialAlchemi> companion_cube: that looks terrible :(
<companion_cube> really?
<MercurialAlchemi> doesn't compose
<flux> let's say I have a web page that display a list of fields
<flux> but the user is able to add or remove fields from a given list, or set the sorting ascending/descending per any field
<companion_cube> I still have no idea how you can compose SQL queries
<companion_cube> like, with a sub-query?
<flux> you have table, and you want to extract some fields from it. but the fields you want are dynamically selected.
<flux> or perhaps you sometimes want to join it with another table, sometimes not
<flux> depending on search criteria
<MercurialAlchemi> companion_cube: http://docs.sqlalchemy.org/en/latest/orm/query.html
<flux> or you build a query that can find the data the user has access to. but then you get an additional criteria, that you want to limit that to messages that starts with "a".
<companion_cube> MercurialAlchemi: my little experience with ORM was in django, and the expressiveness was more limited than with proper SQL
kandu has quit [Ping timeout: 255 seconds]
<flux> the sql query you end up is going to be humongous that needs to consider each alternative, instead of just adding clauses to the where programmatically how you see fit
<companion_cube> but I suppose ocaml-sqlexpr could return some kind of AST (rather than a query string)
<companion_cube> a bit like what Re does for regex
kandu has joined #ocaml
<MercurialAlchemi> companion_cube: SQLAlchemy lets you do more or less everything you can do in raw SQL
kandu is now known as Guest20058
<MercurialAlchemi> but that's what I was saying, building a good query builder is hard even in dynamic languages
<MercurialAlchemi> http://squeryl.org/introduction.html - that's a Scala query builder
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
<MercurialAlchemi> http://squeryl.org/introduction.html - that's a Scala query builder
<flux> actually my example wasn't even that bad, this is perhaps a nicer one: http://git.modeemi.fi/flux/murmelo/blob/fa6966063040d5e5a1c499c99b563f060221460f/murmelopage.ml#L294
<flux> notice how the basically same query is there twice to the benefit of PGSQL.. :)
<MercurialAlchemi> hm, tasty
<MercurialAlchemi> when it gets fun is when you need to conditionally join additional tables
<flux> yes, an irc url database must be one of the simplest databases
<MercurialAlchemi> pretty much
<flux> though I did my best to complicate it with the tagging and public/semipublic/private view systems.. :)
agumonkey has quit [Ping timeout: 272 seconds]
<MercurialAlchemi> when you have a small schema with 20-30 tables and somebody says "let's implement the 'advanced search' screen", the real fun starts
<flux> many moons ago I implemented one in perl, there were of course much fewer pages
ismaelga has joined #ocaml
<MercurialAlchemi> yeah, but you feel less bad doing dirty things in Perl
<MercurialAlchemi> but that's why solutions where the only goal is "build a syntactically correct query" and do not incorporate composability aren't worth considering
<MercurialAlchemi> (especially if you only target a single database...)
<flux> well, I think if you win the statical guarantees it's still worth considering I think
freehck has joined #ocaml
<flux> it's just so nice to use PGSQL and get compilation errors from your SQL queries, even when it has its limits
<flux> if PGSQL just had compile-time string concatenation (macros), you could reduce a lot of duplication in the queries and get the same guarantees
<MercurialAlchemi> no doubt, but not if it costs the ability to compose your queries at runtime
<flux> of course as PGSQL is camlp4-based, the time might get pass it.. with ocaml-sqlexpr perhaps coming to the rescue, but I don't think it has similar functionality at all?
darkf_ has joined #ocaml
darkf has quit [Disconnected by services]
darkf_ is now known as darkf
orbifx2 has quit [Quit: AtomicIRC: The nuclear option.]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
kushal has quit [Quit: Leaving]
<mfp> flux: it has "early runtime" checks (which can be used in the unit tests and as sanity check on application startup). That is, it collects all the SQL statements and generates functions that validate them, catching syntax errors and schema inconsistencies.
<MercurialAlchemi> mfp: WHAT DOES?
<flux> mfp, right, forgot about that. yes, that's a nice feature.
<MercurialAlchemi> M
<MercurialAlchemi> grmbl
<mfp> MercurialAlchemi: ocaml-sqlexpr
<MercurialAlchemi> sorry about the accidental capslock
<flux> mercurial got excited :)
Haudegen has quit [Ping timeout: 255 seconds]
<flux> mfp, in principle, there's no particular reason that ocaml-sqlexpr wouldn't work with other dbms, other than the code isn't there yet?
<mfp> right, it's called sqlexpr and not sqlitexpr or something because there's no reason why there couldn't be other backends
<mfp> however, the idea at the core or ocaml-sqlexpr is to give up on trying to represent relational algebra (I did it once and it was restrictive and a PITA to implement), and just use as little typing magic (and runtime support) as possible to make use of "raw SQL" palatable
rand_ has joined #ocaml
<mfp> so it won't have "one stmt targets any DB" unless the SQL expression happens to be meaningful in all the DBs you target (no attempt to understand the statements, so no SQL dialect compensation)
<mfp> if you want composability, there's macaque
ely-se has joined #ocaml
<MercurialAlchemi> yeah, haven't tried dthat
rand_ has quit [Remote host closed the connection]
ismaelga has quit []
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
Haudegen has joined #ocaml
JacobEdelman has quit [Quit: Connection closed for inactivity]
arquebus has joined #ocaml
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
ahf has quit [Ping timeout: 272 seconds]
<flux> I seem to recall trying to use macaque for something real, didn't get too far. but I don't recall what the issue was I was facing :/.
Madars has quit [Ping timeout: 272 seconds]
<flux> perhaps simply just INSERT INTO.. RETURNING.
MercurialAlchemi has quit [Read error: Connection reset by peer]
Haudegen has joined #ocaml
ahf has joined #ocaml
zol has quit [Ping timeout: 272 seconds]
arquebus has left #ocaml [#ocaml]
MercurialAlchemi has joined #ocaml
zol has joined #ocaml
<flux> no temporary tables either. needs quite a bit of love before it's the solution.
Nahra has quit [Ping timeout: 246 seconds]
Madars has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
jonludlam has joined #ocaml
larhat has quit [Quit: Leaving.]
jonludlam has quit [Ping timeout: 260 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
manud has quit [Quit: manud]
jonludlam has joined #ocaml
Nahra has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
yegods has joined #ocaml
jludlam_ has joined #ocaml
yegods has quit [Remote host closed the connection]
rand_ has joined #ocaml
jonludlam has quit [Ping timeout: 255 seconds]
yegods has joined #ocaml
ely-se has quit [Quit: leaving]
MercurialAlchemi has quit [Read error: Connection reset by peer]
charpi has joined #ocaml
MercurialAlchemi has joined #ocaml
python476 has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
Nahra has quit [Ping timeout: 272 seconds]
seangrove has quit [Ping timeout: 246 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
orbifx has joined #ocaml
Sorella has joined #ocaml
kushal has joined #ocaml
jludlam_ has quit [Ping timeout: 240 seconds]
yegods has quit [Remote host closed the connection]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
jludlam_ has joined #ocaml
rossberg has quit [Ping timeout: 240 seconds]
kushal has quit [Quit: Leaving]
rossberg has joined #ocaml
pierpa has joined #ocaml
yegods has joined #ocaml
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
<madroach> I'm implementing a zlib wrapper. Now I'm wondering whether to use Gc.finalize or a custom block to trigger freeing of C heap data structures. When should I use which of them?
<def`> I would choose the custom block
<def`> This is the correct way to deal with foreign data structures.
<def`> Gc.finalize is for OCaml blocks.
<def`> (Note that foreign pointers in OCaml heap, not wrapped in a custom block are not recommended)
<flux> madroach, zlib wrapper by itself is certainly nice in itself, but are you aware of decompress, a pure-ocaml zlib implementation?
<flux> I suppose zlib is going to be faster, though
<def`> flux: there already are zlib wrappes, I assume madroach as specific needs
<flux> def`, which package has those?
<def`> camlzip
<flux> right, forgot about that
<def`> (also my stb_* bindings include a zlib implementation, but it is not exposed to OCaml world)
sepp2k has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
<madroach> I want a wrapper that calls caml_release_runtime_system() so it can run in seperate thread in parallel to the ocaml world.
MercurialAlchemi has joined #ocaml
<def`> makes sense
ely-se has joined #ocaml
<def`> if you release the runtime, be aware that your finalizer might run while you are in C-code
<def`> you expose your code to race conditions.
Haudegen has quit [Ping timeout: 255 seconds]
<madroach> Not if hold onto the custom block via CAMLparamX() ?
NingaLeaf has joined #ocaml
<def`> True.
<madroach> So I'm safe?
<def`> It seems yes.
<def`> (you ocaml code can still run other operations on the same context)
<def`> your*
<madroach> the same context?
<def`> (but that's obvious when doing parallel stuff)
<madroach> What do you mean by context?
<def`> Another OCaml thread manipulating the same block
<def`> By context, I referred to all zlib managed data
<def`> input output buffers and codec context
aaronelkins has quit [Ping timeout: 260 seconds]
Guest20058 is now known as kandu
<Drup> MercurialAlchemi: well, you can make it compose
<Drup> see macaque
dt3k has joined #ocaml
dt3k has left #ocaml ["Leaving"]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
yegods has quit [Remote host closed the connection]
orbifx has quit [Quit: WeeChat 1.3]
aaronelkins has joined #ocaml
yegods has joined #ocaml
aaronelkins has quit [Ping timeout: 260 seconds]
yegods has quit [Remote host closed the connection]
MercurialAlchemi has quit [Read error: Connection reset by peer]
Haudegen has joined #ocaml
MercurialAlchemi has joined #ocaml
yegods has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
seangrove has joined #ocaml
Haudegen has quit [Ping timeout: 276 seconds]
yegods has quit [Remote host closed the connection]
seangrove has quit [Ping timeout: 264 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
yegods has joined #ocaml
sepp2k has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
dario1 has joined #ocaml
<dario1> Hallo everyone! Quick question: does flambda obsolete all "%identity" hacks?
<Drup> I don't have knowledge of any %identity hack that was ever useful
<dario1> They may have been just a placebo, but you can find them in many codebases...
<dario1> Should someone write a "%identity considered harmful"?
<flux> many modules seem to use them, per a grep in my .opam directory
<flux> ie. ocisgenserver..
<flux> oh, but that was mostly useless, external id : 'a -> 'a = "%identity", but still maybe faster than let id a = a ?
<dario1> I've used them in the past, also. I think some OCaml tutorial advised in favour of them.
<Drup> well, except that you can trigger a segfault, or something even more surprising, if you give the wrong type
<flux> so I guess the question is relevant :)
<Drup> just to get a non measurable improvement in performances
<flux> other uses: uCoreLib.mli: external code : t -> int = "%identity" batInt.mli: external of_int : int -> t = "%identity"
<flux> but whatever immeasuramble improvement, is that obsoleted by flambda?
<Drup> I guess ? it will be inlined
<def`> the hack is useful only for bytecode backend
<Drup> (pretty sure it was inlined anyway ...)
<def`> native backend already inlines that as Drup said
yegods has quit [Remote host closed the connection]
<Drup> and jsoo would inline that too
<def`> and bytecode backend doesn't benefit from flambda so... statu quo
<dario1> Alright, thanks for the info. I guess the message must get out that "%identity" is not worth it!
<Drup> well, it's equally worth it than Obj.magic
<Drup> :D
<flux> well, I suppose nobody reaally cares that much about bytecode performance, so it's really obsolete to begin with
<dario1> Btw, is 4.03 still scheduled for this year?
<def`> yes
<flux> with multicore? no?-((((
<flux> ;)
<dario1> Great! I have lots of code that relies heavily on functors. I'm curious to see the speedup.
MercurialAlchemi has quit [Read error: Connection reset by peer]
<flux> just checked a few days back the branches.. some activity there!
<flux> dario1, the branch is easily available already if you use opam
<flux> so if you have an itch to compare.. ;)
<dario1> Yes, but is it stable and usable?
MercurialAlchemi has joined #ocaml
<flux> well stable enough for performance testing?
<flux> if not for daily use (though it might even be that stable)
<dario1> I'd rather wait for 4.03-beta1 to start testing...
Kakadu has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
itPuffinB has joined #ocaml
itPuffinB has quit [Ping timeout: 276 seconds]
itPuffinB has joined #ocaml
itPuffinB is now known as BitPuffin
orbifx has joined #ocaml
seangrove has joined #ocaml
freehck has quit [Ping timeout: 240 seconds]
seangrove has quit [Ping timeout: 260 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
aaronelkins has joined #ocaml
MercurialAlchemi has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
igoroliveira has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
dario1 has quit [Quit: Konversation terminated!]
mort___ has joined #ocaml
Nahra has joined #ocaml
seangrove has joined #ocaml
yegods has joined #ocaml
kolko has quit [Quit: ZNC - http://znc.in]
yegods has quit [Ping timeout: 250 seconds]
kolko has joined #ocaml
aaronelkins has left #ocaml [#ocaml]
freehck has joined #ocaml
Nahra has quit [Ping timeout: 250 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
rpg has joined #ocaml
MercurialAlchemi has joined #ocaml
Gvidon has quit [Quit: Leaving.]
kushal has joined #ocaml
bibou has joined #ocaml
freehck has quit [Ping timeout: 240 seconds]
ncthom91 has joined #ocaml
<bibou> Hi! is there any way to run an executable via a makefile flag (different from test) with oasis?
<bibou> e.g., make benchmarks that will run benchmarks
mort___ has quit [Ping timeout: 246 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
mort___ has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
shinnya has joined #ocaml
MercurialAlchemi has joined #ocaml
mort___ has quit [Client Quit]
hcarty has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
freehck has joined #ocaml
bibou has quit [Remote host closed the connection]
ceryo has joined #ocaml
pierpa has quit [Ping timeout: 246 seconds]
Mercuria1Alchemi has joined #ocaml
Haudegen has quit [Ping timeout: 250 seconds]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Nahra has joined #ocaml
ely-se has quit [Quit: leaving]
Haudegen has joined #ocaml
coody has joined #ocaml
Denommus has quit [Ping timeout: 260 seconds]
Guest38 has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
JacobEdelman has joined #ocaml
yegods has joined #ocaml
MercurialAlchemi has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
zpe has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
mort___ has joined #ocaml
sepp2k has joined #ocaml
kushal has quit [Ping timeout: 276 seconds]
M-Illandan has joined #ocaml
Nahra has quit [Ping timeout: 244 seconds]
ontologiae has quit [Ping timeout: 260 seconds]
<j0sh> Drup: i've added location annotations to ppx_sqlexpr everywhere i can and am still getting error-locations saying 'File "__none__", line 1'
ncthom91 has joined #ocaml
<Drup> j0sh: you are missing the metaquot stuff
<Drup> [%expr ... ]
<Drup> in order to add a location for those, the best is probably to do it like that: [%expr ...] [@metaloc myloc]
<j0sh> ah, didn't realize we could add locs to those. let's see
yegods has quit [Read error: Connection reset by peer]
Nahra has joined #ocaml
yegods has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
<rks`> you can also just add [@@@metaloc loc] at the toplevel
<rks`> (and then you don't need the [@metaloc ...] everywhere, iiuc)
<j0sh> rks`: noticed that in the docs, but haven't been able to do that with a file (not in the toplevel)
slash^ has joined #ocaml
Haudegen has quit [Ping timeout: 260 seconds]
orbifx has quit [Quit: WeeChat 1.3]
<j0sh> Drup: should I add metalocs to every [%expr ...] or just the one(s) that fix the error messages?
<j0sh> doing it to all of them seems messy
<j0sh> and does't always seem necessary
<Drup> you should do it for all of them
<Drup> Having pieces of parsetree without locations is a good method to confuse the compiler and the tooling
<j0sh> there are dozens of them, it'd be pretty noisy (maybe that says more about how i'm using ppx)
shinnya has quit [Ping timeout: 240 seconds]
yegods has quit [Read error: Connection reset by peer]
mort___ has quit [Quit: Leaving.]
Haudegen has joined #ocaml
yegods has joined #ocaml
Bahman has joined #ocaml
nullcatxxx_ has joined #ocaml
python476 has quit [Ping timeout: 246 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
python476 has joined #ocaml
agumonkey has joined #ocaml
yegods has quit [Read error: Connection reset by peer]
yegods has joined #ocaml
<zozozo> quick question: what would be the syntax to declare a function f of type "(forall 'a. 'a -> 'a) -> unit" ?
<Drup> let f _ = () :D
agumonkey has quit [Ping timeout: 255 seconds]
ollehar has joined #ocaml
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<zozozo> not exaclty, with your defintion, f will accept anything
<Drup> it can, in particular, have the type you mentionned
<thizanne> I don't think you can with the forall inside the parentheses
<def`> yep, you'll have to wrap in a record or an object
<zozozo> ok, thanks
agumonkey has joined #ocaml
<Drup> type t = { f : 'a . 'a -> 'a } ;;
<Drup> let foo { f } = let _ = f () in () ;;
<Drup> that's the syntax
<zozozo> Drup: thx
jludlam_ has quit [Ping timeout: 272 seconds]
mort___ has joined #ocaml
agumonkey has quit [Ping timeout: 246 seconds]
Haudegen has quit [Ping timeout: 264 seconds]
yegods has quit [Read error: Connection reset by peer]
agumonkey has joined #ocaml
<NingaLeaf> Does utop work on OSX? Fatal error: cannot load shared library dlllwt-unix_stubs.
darkf has quit [Quit: Leaving]
manizzle has quit [Ping timeout: 250 seconds]
pierpa has joined #ocaml
Nahra has quit [Ping timeout: 272 seconds]
<j0sh> Drup: found a nice solution: Ast_helper.with_default_loc
<j0sh> removes the need for sprinkling metalocs everywhere, and Ast_convenience can used as well (since most of the convenience functions do not take location information)
<Drup> yeah
<Drup> I consider that an anti pattern, when ppx are concerned
<Drup> you should be explicit about your locations, they are important
<j0sh> really? even when explicitly scoping the global location with with_default_loc ?
<Drup> Usually, yes
<Drup> for a local scope, inside a function, it's okay
teknozulu has joined #ocaml
<Drup> but it's still a reference that you will forget you set, so meh
<j0sh> in this case, the location isn't changing at all, so I don't see the harm... set it once and forget
<Drup> right, you treat your big sql string as non divisible.
yegods has joined #ocaml
Haudegen has joined #ocaml
mort___ has left #ocaml [#ocaml]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
agumonkey has quit [Ping timeout: 250 seconds]
MercurialAlchemi has joined #ocaml
seangrove has quit [Ping timeout: 240 seconds]
^elyse^ has joined #ocaml
zpe has joined #ocaml
manizzle has joined #ocaml
shinnya has joined #ocaml
zozozo has quit [Ping timeout: 240 seconds]
fluter has quit [Ping timeout: 240 seconds]
zozozo has joined #ocaml
zpe has quit [Remote host closed the connection]
yegods has quit [Read error: Connection reset by peer]
ontologiae has joined #ocaml
nullcatxxx_ has joined #ocaml
seangrove has joined #ocaml
ygrek has joined #ocaml
ontologiae has quit [Ping timeout: 255 seconds]
fluter has joined #ocaml
yegods has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 276 seconds]
nullcatxxx_ has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
orbifx has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
yegods has quit [Read error: Connection reset by peer]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
Kakadu has quit [Quit: Page closed]
yegods has joined #ocaml
<Maelan> is there a means of making utop more quiet?
<Maelan> i already changed the prompt, now i would like to customize or disable the greeting messages (the big coloured framed title and the greeting from topfind)
manizzle has quit [Ping timeout: 250 seconds]
orbifx2 has joined #ocaml
orbifx has quit [Read error: Connection reset by peer]
orbifx has joined #ocaml
BitPuffin has quit [Ping timeout: 244 seconds]
orbifx2 has quit [Ping timeout: 260 seconds]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rpg has quit [Quit: rpg]
manizzle has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
jludlam_ has joined #ocaml
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
manud has joined #ocaml
manud has quit [Client Quit]
tane has joined #ocaml
<tane> hej there
<tane> is there some way to make Oasis produce a makefile that actually depends on it's own setup.ml in each target, so that oasis setup is run before executing a target to reflect recent changes in the _oasis file?
<tane> (similar to what CMake does)
<Maelan> annex question: is it possible to tell the default repl not to read utop-related stuff in .ocamlinit (an #if directive or something)?
<Maelan> that would avoid getting errors because of unknown module UTop or directive #utop_prompt_*
<flux> maelan, maybe ocaml -init ~/.ocamlinit.really.for.ocaml ;-)
manud has joined #ocaml
<Maelan> ^^
<tane> this begs the question.. is there any kind of "magic file" that can actually see who's reading it and respond accordingly? :)
<mrvn> fuse
<flux> can fuse see the client process id?
MercurialAlchemi has quit [Read error: Connection reset by peer]
<tane> well, then: use fuse to "simulate" an .ocamlinit
<mrvn> flux: on open and read at least. If writes are cached you loose the pid there
MercurialAlchemi has joined #ocaml
<tane> so using the pid one can question /proc/<pid>/cmdline :)
yegods has quit [Read error: Connection reset by peer]
yegods has joined #ocaml
<edwin> Unix.getppid
MercurialAlchemi has quit [Read error: Connection reset by peer]
<edwin> and Unix.getpid
<edwin> but you have Sys.argv, can't you use that?
<tane> take the easy high road :)
MercurialAlchemi has joined #ocaml
<tane> edwin, yep, this works
orbifx2 has joined #ocaml
orbifx3 has joined #ocaml
orbifx has quit [Ping timeout: 265 seconds]
Kakadu has joined #ocaml
orbifx3 has quit [Client Quit]
orbifx2 has quit [Ping timeout: 260 seconds]
jludlam_ has quit [Ping timeout: 260 seconds]
rpg has joined #ocaml
badon_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
ousado_sun has joined #ocaml
ousado_sun has left #ocaml [#ocaml]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
rpg has quit [Quit: rpg]
tane has quit [Quit: Verlassend]
teknozulu has quit [Ping timeout: 255 seconds]
<Maelan> the problem with Sys.argv.(0) is that it comes from the OCaml language
<Maelan> so i cannot run a #directive conditionally with that
<Maelan> nor evaluate an conditionally an expression with module UTop (since it would report the unbound module anyway)
rpg has joined #ocaml
rpg_ has joined #ocaml
<Maelan> but maybe i can programmatically (does this word exist?) exit the processing of the current file (not with ‘exit’, it stops everything :-()?
rpg has quit [Ping timeout: 244 seconds]
ontologiae has joined #ocaml
ontologiae has quit [Ping timeout: 265 seconds]
zpe has joined #ocaml
rpg_ has quit [Quit: rpg_]
mfp has quit [Read error: Connection reset by peer]
moei has quit [Quit: Leaving...]
zpe has quit [Remote host closed the connection]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
manizzle has quit [Ping timeout: 246 seconds]
sepp2k has quit [Quit: Leaving.]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
Mercuria1Alchemi has quit [Ping timeout: 276 seconds]
yegods has quit [Read error: Connection reset by peer]
<edwin> Maelan: can you put the utop specific directives in a separate file and create a shell alias to run utop -init ~/.utopinit?
teknozulu has joined #ocaml
freehck has quit [Remote host closed the connection]
<edwin> also if its implemented this might be useful https://github.com/diml/utop/issues/144
yegods has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
lobo has joined #ocaml
manizzle has joined #ocaml
<Maelan> edwin, yes i can
<Maelan> this is probably what i will end up with
jludlam_ has joined #ocaml
yegods_ has joined #ocaml
yegods has quit [Read error: Connection reset by peer]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
rpg has joined #ocaml
hcarty has quit [Ping timeout: 250 seconds]
ollehar has quit [Quit: ollehar]
Bahman has quit [Quit: Ave atque vale]
nullcatxxx_ has joined #ocaml
larhat has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
johnf has quit [Read error: Connection reset by peer]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
johnf has joined #ocaml
seangrove has quit [Ping timeout: 246 seconds]
badon_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
rand_ has quit [Quit: leaving]
^elyse^ has quit [Quit: Leaving]
^elyse^ has joined #ocaml
Guest38 has quit [Read error: Connection reset by peer]
mac10688 has joined #ocaml
yegods_ has quit [Ping timeout: 260 seconds]
ygrek has quit [Ping timeout: 265 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
yegods has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
ddosia has quit [Quit: Connection closed for inactivity]
MercurialAlchemi has joined #ocaml
ceryo has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rpg has quit [Quit: rpg]
yegods has quit [Remote host closed the connection]
teknozulu has quit [Ping timeout: 255 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]
ohama has quit [Ping timeout: 240 seconds]
MercurialAlchemi has joined #ocaml
ygrek has joined #ocaml
jludlam_ has quit [Ping timeout: 265 seconds]
ohama has joined #ocaml
Simn has quit [Quit: Leaving]
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
yegods has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
ontologiae has joined #ocaml
jludlam_ has joined #ocaml
yegods has quit [Read error: Connection reset by peer]
ncthom91 has joined #ocaml
ncthom91 has quit [Client Quit]
yegods has joined #ocaml
MercurialAlchemi has quit [Read error: Connection reset by peer]
MercurialAlchemi has joined #ocaml
yegods has quit [Read error: Connection reset by peer]
Kakadu has quit [Remote host closed the connection]
^elyse^ has quit [Quit: Leaving...]
jludlam_ has quit [Ping timeout: 260 seconds]
MercurialAlchemi has quit [Read error: Connection reset by peer]