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
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
AlexRussia has quit [Ping timeout: 248 seconds]
ollehar has quit [Read error: Connection reset by peer]
ollehar1 has joined #ocaml
AltGr has joined #ocaml
<AltGr> github still under attack... that's crazy...
<struktured> so far haven't suffered from that yet
<Denommus> neither have I
<Denommus> what is the usual approach for dynamic dispatch? A record field that stores the function? Objects? Some sort of module sorcery?
<Drup> objects
<Drup> but give details.
tianon has quit [Read error: Connection reset by peer]
AlexRussia has joined #ocaml
tianon has joined #ocaml
myst has quit [Read error: Connection reset by peer]
<Denommus> I have a value that has a single "method" that produces a new value of the same type
det has joined #ocaml
<Drup> it doesn't seem to be a very interesting value if you have only that
det has left #ocaml ["Leaving"]
<Denommus> yeah, I guess I'm overly complicating things
<Drup> what do you want to actually do ?
<oriba> Drup, I mixed Bytes and string, became messages like I should not use Bytes.copy. I removed bytes.copy and had Bugs because of mutable strings.... so I decided to use Bytes.copy and accept the message from the compiler but have working code...
<Denommus> remember my AFRP library?
<Denommus> so, I need to step somehow, and I'm thinking of the best approach for that
<Drup> oriba: you added -safe-string ?
<Denommus> but maybe I should just step the signal functions themselves, passing the current POSIX Time and the current wire value
<Drup> Denommus: define "to step"
<Denommus> Drup: let's call the signal functions "wires" to simplify things
<Denommus> Drup: I need to produce a new wire from the previous wire every iteration
<oriba> Drup, no.
<Drup> oriba: then Bytes = String
<Drup> except you will have various deprecation warnings
jwatzman|work has quit [Quit: jwatzman|work]
<Drup> try to add -safe-string and figure things out
<Drup> Denommus: hum, really ?
<oriba> Drup, aha. But why then this warning? It should only occur with "-safe-string" then, I think. otherwise it's confusing
<Drup> orbitz: no, the point is to encourage people to use -safe-string
<Drup> by giving them a warning if they use string in a mutable way
<Denommus> Drup: so, I'm thinking if I should provide steppers that do this kind of step in different strategies, like fixed time step or variable time step
cdidd has quit [Ping timeout: 255 seconds]
<oriba> hmhh, not convincing.
<Drup> Denommus: link to netwire's API ?
<oriba> if something onlky works, if the code AND some compile-switches are used, then it's IMHO bad.
<Denommus> Drup: the specific stepping part is here: http://hackage.haskell.org/package/netwire-5.0.1/docs/Control-Wire-Session.html
<oriba> Drup, if something onlky works, if the code AND some compile-switches are used, then it's IMHO bad.
<Drup> oriba: don't overstate things, those are deprecation warnings
<Drup> it works, you are just warned
<oriba> Drup, hmhh... a warning means, something might be wrong. But this is rather a recommendation, and also means, that when follwoing it, it can break code.
<oriba> The warnbing did not mention -safe-strings
<oriba> as far as I remember
<Drup> sure it can break code, that's why it's not already by default.
<Drup> (which it will be, at some point)
<oriba> But then -safe-string should be daefault to (or built-in and not possiuble to change)
<Drup> if -safe-string is the default, half the ocaml ecosystem breaks overnight
<oriba> you see...
<Drup> I see that you are not really reading what I'm writing :)
<oriba> if its not default, but you follow the 2warnings", code also breaks
<oriba> All in all, it means: ignore warnings...
<Drup> Denommus: it's not very arrow-y.
<Drup> oriba: or fix your damn code to stop using string mutably.
<Drup> other people did it
<Denommus> Drup: what part is not arrow-y?
<Drup> Denommus: Session
<oriba> Drup, maybe later. I will just use String.copy and anything works fine.
<Drup> "data Wire s e m a b" /me type variable overflow
<Drup> serious, more letters, it was hard ? gree
<Drup> Denommus: ok, I got it
<Drup> state exception monad input output
<Drup> why do you need dynamic dispatch ?
<Denommus> Drup: lazy evaluation has its shortcommings. The "s" is the type that defines the stepping, the "e" is the type for inhibition (I'm not sure why this needed to be exposed), the "m" is a monad to "force" evaluation every iteration, and then input and output
<Drup> inhibition ?
<Denommus> Drup: different stepping strategies, I guess
<Denommus> Drup: inhibition is the term for when a wire isn't outputting a value
<Drup> error then.
<Drup> :D
<Denommus> Drup: well, I'm just using the terminology of the documentation
<Drup> not sure why it's hardcoded in the type, seem to be it could be an overlay
<Drup> to me*
<Drup> anyway.
<Drup> do you have a start in OCaml ?
<Denommus> Drup: not yet, I'm just scratching. I literally started today XD
<Drup> well, you could already have a sketch
<Denommus> *sketching
<Denommus> I started and erased five times as of now
<Drup> sign It's progressing the, what does the last iteration look like ?
<Drup> then*
<Denommus> I was implementing the wires as functions from signal to signal and thought "no, wait, this is stupid", and started from scratch all over again
ghostpl_ has joined #ocaml
<Drup> seem to me we could take the same constructor than Wire
<Denommus> type 'a signal = float -> 'a;; type ('a, 'b) sf = 'a signal -> 'b signal
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
<Denommus> Drup: hm. I guess I should really start from Wire instead of hitting my head against step, indeed
<Denommus> Drup: I can probably work out through step later
<Drup> the implementation of stepWire is not even complicated
<Denommus> Drup: no. It's really not
<Drup> Denommus: what is 's' in general ?
<Denommus> Drup: the session
<Drup> that doesn't tell me much of what it means, semantically
<Denommus> Drup: it's something that generates the delta time
yminsky has joined #ocaml
<yminsky> Does anyone know how to understand why OPAM won't upgrade a set of files?
<Drup> -v ?
<yminsky> Doesn't really help.
<Drup> what is the exact issue ?
<yminsky> Well, it says "The following would require downgrades or uninstalls, but you may upgrade them explicitely"
<yminsky> but I don't know which downgrades would be required, or why.
<Drup> well, it will show you if you do :p
<yminsky> I'm guessing there's some package that I have installed that's incompatible with newer version of Core. But I don't know which.
<Drup> (it asks confirmation before proceeding anyway)
<yminsky> Hah, yeah, agreed.
<yminsky> How do I force it?
<Drup> "opam install async_extra.112.24.00" should do it
ghostpl_ has quit [Ping timeout: 250 seconds]
<Drup> (or eopam update async_extra", maybe)
<Drup> upgrade*
<yminsky> That gives me more information...
<Drup> yminsky: core_bench, it seems.
<yminsky> I guess. What about the zarith downgrade? From asn1-combinators!?!
<Drup> huuum
<Drup> yminsky: do you have aspcud installed ?
<Drup> :D
<yminsky> yup.
<Drup> arg !
<Drup> yminsky: output of "opam config report" ?
<Drup> (the "external-solver" field, in particular)
<yminsky> aspcud
<Drup> I have no idea.
<Drup> AltGr: help ?
<AltGr> Hi
<AltGr> [catching up]
<Drup> I'm totally your opam hazard alarm :D
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<yminsky> (tech support for opam on IRC is so good....)
<AltGr> :)
<yminsky> On an unrelated note, it's amusing to see my post on GADTs rise on Hacker News.
<yminsky> Many reads, no comments. No one actually knows what to say about GADTs....
<AltGr> currently, I think the best I can offer is to try to install them explicitely and see the conflict messages
<yminsky> But they sound so interesting.
<yminsky> Btw: explicitly, not explicitely. The typo is in the OPAM error message too!
<Drup> AltGr: that's the second gist
<yminsky> "The following would require downgrades or uninstalls, but you may upgrade them explicitely:"
<AltGr> ah, sorry, false friend! Thanks, I'll fix it
<Drup> yminsky: next time you know, you will preach for linear dependents type for performances :>
nullcat has joined #ocaml
<yminsky> Drup: Linear types are totally about performance, so yeah.
<Drup> I know
<yminsky> AltGr: so, should I do anything other than what Drup already told me to do (and I did, in the gist above)?
<Denommus> Drup: would there be any difference between WGen and WPure in OCaml? I'm guessing not
<Drup> It was a semi-joke on ATS's practicality.
<AltGr> there is one removal in the actions, so that must be the conflict
<Drup> AltGr: but zarith's downgrade is non-sensical
<Denommus> Drup: I'm guessing I can completely ignore the existence of the parameter m
<AltGr> try installing it together with async_extra.112.24.00
<yminsky> Right. Linear types: impractical. GADTs, totally practical.
<Drup> I didn't say linear types in general, just ATS.
<yminsky> Drup: fair enough.
<yminsky> AltGr: try installing what together with async_extra.112.24.00?
<AltGr> there is a closely related issue at https://github.com/ocaml/opam/issues/2058
<yminsky> Denommus: that's my post.
<yminsky> AltGr: that would be lovely.
<yminsky> Always happy for better error messages.
<AltGr> `opam install async_extra.112.24.00 core_bench` should give (some) explanation
<AltGr> also, this has been already improved since 1.2.1
<Drup> Denommus: for now, I think you can, then
<AltGr> (there will likely be a 1.2.2)
<Drup> There is the Lwt matter
<Drup> but we can bother about it later
<yminsky> Ah, got it! when I tried zarith and async_extra, it said it wanted to uninstall bignum. So I did, and it now works.
<Drup> uninstall bignum ? o_o
<yminsky> Different bignum. This is a core-flavored wrapper for Zarith.
<Drup> oh !
<Drup> right.
<Drup> and it depends on zarith 1.2 namely, apparently
<Drup> right.
<yminsky> And there was an issue where it had bad constraints that tied it to Zarith1.2. I thought that had been fixed.
<Drup> explains everything
<yminsky> Sortof. Still don't know why core_bench was implicated.
<Drup> well
<Drup> core (>= 112.17.00 & < 112.18.00)
<Drup> (in core_bench)
<Drup> yminsky: core_bench isn't up to date with the other core packages
<yminsky> How can you tell that core_bench is the guilty one?
<yminsky> (we don't export a new version of a package if it hasn't changed, so the fact that the version is older doesn't really mean anything.)
tianon has quit [Read error: Connection reset by peer]
<Drup> yminsky: "opam show core_bench"
<Drup> then look at the dependencies
tianon has joined #ocaml
<Drup> (or what AltGr did using the dev version)
<yminsky> I see. These constraints do look crazy: core >= 112.17.00 & < 112.18.00
<Drup> all the core constraints are like that
<Drup> at least it stresses the solver :]
<AltGr> actually, core_bench 112.06.0 can't be installed, according to this table: http://ows.irill.org/report-2015-03-31-01-11-08/table.html
oriba has quit [Quit: oriba]
<yminsky> Do you think we're generating our constraints in the wrong way?
ericwa has quit [Quit: Leaving...]
<AltGr> (We are in the process of adding such info to the automated tests, so that you can get such information at PR time)
<Drup> yminsky: hard to say, but it's rather convoluted
<AltGr> (e.g. "Your PR is OK but it will make package xxx uninstallable")
<Drup> and in the haskell community, they tend to use very tight constraints like, and the result was ... annoying.
hugomg has joined #ocaml
hugomg has quit [Client Quit]
<Drup> like that*
<yminsky> Is there some simpler way of handling it? I suppose we could re-release all of our packages every time, locking them to each other in version-space. I'm not sure if that would be better or worse.
<Drup> yminsky: another solution is to switch to semantic versioning and use that for version constraints (not sure what's your versioning scheme is currently)
<AltGr> Drup: the issue with loose constraints is that it very quickly becomes impossible to test and verify that they indeed work
<yminsky> Semantic versioning is not really an option for us.
<Drup> ok
<yminsky> We develop these packages together, in a tightly coupled mono-repo.
<Drup> yes, but you do know when you break compat, don't you ?
<yminsky> The version numbers are our internal version numbers, and it's just hard to imagine how we'd backfit a semantic versioning scheme on top.
<AltGr> (I have some plans to attempt to test min/max allowed versions though)
<yminsky> It looks like what we do in practice is widen out the constraints when new versions come up. We must have missed core_bench last time somehow.
<Drup> yes
<AltGr> so the tests I'm planning would have helped in that case, good to know
ygrek_ has joined #ocaml
<AltGr> yminsky, I think a new version of core_bench was added then removed from the repo for some reason ?
<yminsky> I don't know why. I reported it on github
cesar_ has joined #ocaml
s1n4 has joined #ocaml
cesar_ is now known as Guest64238
shinnya has quit [Ping timeout: 252 seconds]
<Drup> Denommus: I'm not sure we really need the s
kdef has quit [Ping timeout: 264 seconds]
<Drup> in Wire, the s seem to be a state used to retrieve the current time
badon has quit [Ping timeout: 246 seconds]
<Denommus> Drup: could we just accept a float, or a function from unit to float?
Guest64238 has quit [Ping timeout: 265 seconds]
<Drup> Denommus: is the s is really used with different instanciations or is it in practice almost always the same thing ?
<Denommus> Drup: in practice it's mostly the Session type
<Drup> Denommus: the session type is itself parametrized by an s
<Drup> so, huh, not helping.
<Denommus> Drup: that's because stepSession generates a new Session of the same type
<Denommus> Drup: wait a moment
<Denommus> Drup: Ctrl+F stepSession
<Denommus> Drup: wait, I'm wrong. s is not Session
<Denommus> Drup: both Session and Wire use s, though. Hmm...
<Drup> yes
Sorella has quit [Quit: Connection closed for inactivity]
<Drup> it's the same s
<Drup> and it's the state of which you get the time
<Drup> (by the HasTime classtype)
<Denommus> Drup: well, each generator uses a different s
<Drup> really ?
<Denommus> Drup: clockSession :: MonadIO m => Session m (s -> Timed NominalDiffTime s)
<Denommus> clockSession_ :: (Applicative m, MonadIO m) => Session m (Timed NominalDiffTime ())
<Drup> I must say I have trouble seeing how this is useful.
<Denommus> countSession Source :: Applicative m => t -> Session m (s -> Timed t s)
<Denommus> Drup: indeed. So have I
<Denommus> Drup: I think I'll just use float for now. Or maybe (unit -> float)
<Drup> the issue is "where to put the parametrization"
tianon has quit [Read error: Connection reset by peer]
<Drup> in haskell, the parametrization is type directed using the typeclass
<Drup> (you instantiate s when it matters, it pops the right dtime function)
tianon has joined #ocaml
<Drup> we can't do that in OCaml
<Denommus> Drup: I could just choose to ignore the reasoning behind s for now until it proves itself useful
<Drup> well, I think choosing the unit -> float function is important
<Denommus> ok
<Drup> or rather, it's important that it is possible. But most user don't care
<Drup> maybe a judicious functor
<Denommus> right now I'm having a problem with matching a GADT
<Denommus> Drup: WConst and WId are givin me an error because they don't fit in the type signature
<Denommus> Drup: ah!
<Denommus> Drup: ok, thanks
<Drup> I don't think you need the 'e
<Drup> if your thing doesn't update all the time, put it in the type.
<Drup> (_, int option, int) wire
<Drup> no need to hardcode the Result
<Drup> I think.
<Denommus> Drup: it actually makes sense
<Drup> (not sure why they did in the haskell version)
<Drup> (maybe you could ask them)
<Denommus> Drup: you were not the first to point that out, I guess it's a valid complaint
<Denommus> Drup: but the reason is probably so that some of their built-in switches work better. But I can probably just replace them by ones with the types explicit
darkf has joined #ocaml
<Drup> maybe
<Drup> "The type signatures in Netwire are known to be scary. =) But like most of the library the underlying meaning is actually very simple." <- I stop counting how many I heard that about haskell libraries :D
<Denommus> "simple" is an overloaded term, hence the problem XD
badkins has quit []
ghostpl_ has joined #ocaml
tnguyen has joined #ocaml
ghostpl_ has quit [Ping timeout: 245 seconds]
<Drup> Denommus: yeah, the only nice solution for having a flexible 's parameter is a functor, which wouldn't be so nice
MrScout has quit [Ping timeout: 265 seconds]
<Denommus> Drup: I gotta go home
<Denommus> Drup: the initial scratch is already on GitHub: https://github.com/Denommus/NetwireOCaml
<Denommus> good bye
Denommus has quit [Quit: going home]
swgillespie has joined #ocaml
JuggleTux has quit [Remote host closed the connection]
The_Mad_Pirate has joined #ocaml
badon has joined #ocaml
claudiuc has quit [Remote host closed the connection]
claudiuc has joined #ocaml
claudiuc has quit [Ping timeout: 256 seconds]
nullcat has quit [Ping timeout: 252 seconds]
nullcat has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
peterbb has quit [Ping timeout: 250 seconds]
peterbb has joined #ocaml
swgillespie has joined #ocaml
cesar_ has joined #ocaml
cesar_ is now known as Guest31015
Guest31015 has quit [Ping timeout: 265 seconds]
kdef has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 256 seconds]
larhat has quit [Ping timeout: 250 seconds]
keen__________30 has quit [Ping timeout: 264 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
siddharthv_away is now known as siddharthv
ggole has joined #ocaml
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
AlexRussia has quit [Ping timeout: 272 seconds]
struk|desk has quit [Ping timeout: 265 seconds]
struk|desk has joined #ocaml
ghostpl_ has joined #ocaml
ghostpl_ has quit [Ping timeout: 246 seconds]
nullcat_ has joined #ocaml
AlexRussia has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
Submarine has joined #ocaml
Submarine has joined #ocaml
cesar_ has joined #ocaml
cesar_ is now known as Guest62182
Guest62182 has quit [Ping timeout: 256 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
AlexRussia has quit [Ping timeout: 248 seconds]
AlexRussia has joined #ocaml
ygrek_ has quit [Ping timeout: 252 seconds]
tianon has quit [Read error: Connection reset by peer]
testcocoon has quit [Quit: Coyote finally caught me]
tianon has joined #ocaml
testcocoon has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
ghostpl_ has joined #ocaml
testcocoon has joined #ocaml
ghostpl_ has quit [Ping timeout: 250 seconds]
kdef has quit [Quit: Leaving]
freling has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
cdidd has joined #ocaml
MercurialAlchemi has joined #ocaml
_obad_ has quit [Ping timeout: 265 seconds]
ygrek_ has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
larhat has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
cesar_ has joined #ocaml
cesar_ is now known as Guest55149
freling has quit [Quit: Leaving.]
larhat has quit [Quit: Leaving.]
testcocoon has joined #ocaml
Guest55149 has quit [Ping timeout: 245 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
_obad_ has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
testcocoon has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
dsheets has quit [Ping timeout: 265 seconds]
darnuria has quit [Ping timeout: 252 seconds]
myyst has joined #ocaml
myyst is now known as myst
testcocoon has quit [Quit: Coyote finally caught me]
ghostpl_ has joined #ocaml
darnuria has joined #ocaml
badon has quit [Disconnected by services]
badon_ has joined #ocaml
badon_ is now known as badon
testcocoon has joined #ocaml
badon has quit [Excess Flood]
ghostpl_ has quit [Ping timeout: 256 seconds]
badon has joined #ocaml
The_Mad_Pirate has quit [Ping timeout: 256 seconds]
Simn has joined #ocaml
Submarine has quit [Remote host closed the connection]
mort___ has joined #ocaml
larhat has joined #ocaml
testcocoon has quit [Quit: Coyote finally caught me]
testcocoon has joined #ocaml
The_Mad_Pirate has joined #ocaml
snikkers has quit [Quit: Lost terminal]
dsheets has joined #ocaml
mengu has joined #ocaml
dav has quit [Read error: Connection reset by peer]
testcocoon has quit [Quit: Coyote finally caught me]
Guest41125 has joined #ocaml
lordkryss has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
testcocoon has joined #ocaml
govg has joined #ocaml
ghostpl_ has joined #ocaml
milosn has quit [Ping timeout: 264 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
cesar_ has joined #ocaml
cesar_ is now known as Guest66443
mengu has quit [Read error: Connection timed out]
ghostpl_ has quit [Ping timeout: 255 seconds]
mengu has joined #ocaml
Haudegen has quit [Ping timeout: 256 seconds]
Guest66443 has quit [Ping timeout: 265 seconds]
mengu has quit [Remote host closed the connection]
ghostpl_ has joined #ocaml
ghostpl_ has quit [Ping timeout: 256 seconds]
AlexRussia has quit [Ping timeout: 244 seconds]
johnelse has joined #ocaml
johnelse is now known as Guest99512
Haudegen has joined #ocaml
_obad_ has quit [Ping timeout: 265 seconds]
_obad_ has joined #ocaml
kakadu has joined #ocaml
Guest99512 is now known as johnelse
toolslive has joined #ocaml
AlexRussia has joined #ocaml
<toolslive> anybody succeeded in befriending OUnit and Cmdliner?
ghostpl_ has joined #ocaml
lewis1711 has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
lewis1711 has quit [Client Quit]
psy_ has quit [Ping timeout: 250 seconds]
Hannibal_Smith has joined #ocaml
milosn has joined #ocaml
badon has quit [Ping timeout: 252 seconds]
psy_ has joined #ocaml
badon has joined #ocaml
<bernardofpc> Drup> ollehar1: why are http://ocsigen.org/tuto/4.2/manual/application not good ? -> well, it lacks a bit of examples about "what would be the nice ocsigen way of doing <foo>"
tianon has quit [Read error: Connection reset by peer]
milosn has quit [Read error: Connection reset by peer]
<bernardofpc> for example, I had to suffer a lot to discover that I needed a POST service in a button and could not put a POST in a link, even if a link would be more practical
tianon has joined #ocaml
badon_ has joined #ocaml
milosn has joined #ocaml
<bernardofpc> on the other side, sometimes OCsigen (or Eliom, not sure exactly which) got into the way of functionnal stuff, like say I have a POST service with some 5 arguments (ugly defined as a ** b ** c ** d ** e type) and in some cases I'd like to use a form with just 3 out of the 5 and pass the two others by currying... I did not find how to doi it, and from docs I just noticed preapply that's only good for GET
psy_ has quit [Ping timeout: 252 seconds]
psy_ has joined #ocaml
badon has quit [Ping timeout: 252 seconds]
badon_ is now known as badon
Haudegen has quit [Ping timeout: 250 seconds]
jonludlam has joined #ocaml
Hannibal_Smith has quit [Ping timeout: 248 seconds]
paolooo has joined #ocaml
govg has quit [Remote host closed the connection]
Haudegen has joined #ocaml
paolooo has quit [Quit: Page closed]
sdothum has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
ghostpl_ has quit [Remote host closed the connection]
Hannibal_Smith has joined #ocaml
tianon has joined #ocaml
ghostpl_ has joined #ocaml
toolslive has quit [Ping timeout: 252 seconds]
cesar_ has joined #ocaml
cesar_ is now known as Guest31173
Guest31173 has quit [Ping timeout: 265 seconds]
toolslive has joined #ocaml
toolslive has quit [Remote host closed the connection]
<bernardofpc> Drup> try to add -safe-string and figure things out -> is there a _tags for that ?
_andre has joined #ocaml
milosn has quit [Ping timeout: 245 seconds]
milosn has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
TheLemonMan has joined #ocaml
Hannibal_Smith has quit [Quit: Leaving]
kushal has quit [Ping timeout: 256 seconds]
ygrek_ has quit [Ping timeout: 256 seconds]
kushal has joined #ocaml
ygrek_ has joined #ocaml
octachron has joined #ocaml
<Drup> "I did not find how to doi it, and from docs I just noticed preapply that's only good for GET" hum, that would deserve a bug report
<Drup> bernardofpc: _tags, yes, "safe_string"
ontologiae has joined #ocaml
<reynir> My ocaml/solaris adventure: http://lpaste.net/129908
siddharthv is now known as siddharthv_away
siddharthv_away is now known as siddharthv
<adrien_znc> reynir: have the configure output?
<adrien_znc> also, what are the possible values for xarch?
<reynir> No, what configure output?
<adrien_znc> ocaml's
<reynir> there's v9, v9a and v9b (and others)
milosn has quit [Ping timeout: 252 seconds]
<reynir> It's the ocaml in the package repository
<adrien_znc> ah
<adrien_znc> when was the package last rebuilt?
<reynir> the packaging date is 27. sep. 2011 11.34.05
<reynir> (btw it seems to work fine despite the warning)
<adrien_znc> it probably only needs a rebuild
ontologiae has quit [Ping timeout: 252 seconds]
govg has joined #ocaml
Gama11 has joined #ocaml
milosn has joined #ocaml
lewis1711 has joined #ocaml
<lewis1711> is there anyway to make two functions mutually recursive in ocaml? like define them in terms of one another
<lewis1711> oh n/m googled the wrong thing, that's why i didn't find it. sorry
tashjash has joined #ocaml
siddharthv is now known as siddharthv_away
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
<lewis1711> anything wrong with my attempts at a mutually recursive function definition on lines 26? https://gist.github.com/anonymous/a4fe9117ef302300cfe8
<Drup> they are not functions ? :D
<lewis1711> sure they are. they just take zero arguments
<adrien_znc> so they're not functions :)
<adrien_znc> if you want "no argument", you should use one which is "()"
<lewis1711> that's an argument though, isn't it? Unit
<lewis1711> anyway, is there anyway to do what I am doing?
<ggole> Unfortunately you're gonna run into let rec restrictions with that approach
<ggole> Function calls with the recursive identifiers as arguments are disallowed
<lewis1711> bummer. i guess the obvious solution is to use mutable hashtables
<ggole> I'd probably just make that field mutable and assign it after the fact.
<ggole> (Which is what let rec does under the hood anyway.)
<cmtptr> use an auxillery function that takes as an argument the function to recurse to
cesar_ has joined #ocaml
<Drup> cmtptr: you're just moving the problem to the instanciation point
<cmtptr> oh, yeah.
cesar_ is now known as Guest25383
<cmtptr> err, no
<cmtptr> define a "b_aux next" that calls next, then rec "a ()" that calls "b_aux a", then a "b ()" that does nothing but call "b_aux a"
Guest25383 has quit [Ping timeout: 244 seconds]
ygrek_ has quit [Remote host closed the connection]
ygrek has joined #ocaml
AltGr has left #ocaml [#ocaml]
freling has joined #ocaml
freling has quit [Client Quit]
tnguyen has quit [Ping timeout: 244 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
freling has joined #ocaml
milosn has quit [Ping timeout: 250 seconds]
Haudegen has quit [Ping timeout: 264 seconds]
xificurC has joined #ocaml
Hannibal_Smith has joined #ocaml
idegen has joined #ocaml
milosn has joined #ocaml
jonludlam has quit [Ping timeout: 264 seconds]
dsheets has quit [Ping timeout: 248 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
jonludlam has joined #ocaml
milosn has quit [Ping timeout: 252 seconds]
BitPuffin has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
ygrek has quit [Ping timeout: 265 seconds]
mcclurmc has joined #ocaml
Fullma has joined #ocaml
Haudegen has joined #ocaml
jonludlam has quit [Ping timeout: 264 seconds]
mcclurmc has quit [Remote host closed the connection]
idegen has left #ocaml [#ocaml]
mcclurmc has joined #ocaml
idegen has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
govg has quit [Ping timeout: 252 seconds]
Haudegen has quit [Ping timeout: 246 seconds]
tianon has joined #ocaml
jonludlam has joined #ocaml
tashjash has quit [Quit: Leaving]
tashjash has joined #ocaml
AlexRussia has quit [Ping timeout: 256 seconds]
kaustuv has joined #ocaml
<kaustuv> Anyone have a good method of writing formatters with optional arguments while remaining compatible with %a?
mcclurmc has quit [Remote host closed the connection]
struktured has quit [Ping timeout: 256 seconds]
idegen has left #ocaml [#ocaml]
mcclurmc has joined #ocaml
<companion_cube> it's quite annoying
govg has joined #ocaml
<companion_cube> let print_foo fmt ?x ?y z = ........
<companion_cube> Format.sprintf "foo is %a" (print_foo ?x:None ?y:None) z
AlexRussia has joined #ocaml
Haudegen has joined #ocaml
<ia0> I also see people do eta-expansion (fun z -> print_foo z) although I prefer companion_cube's version
<kaustuv> I'm doing something like that now with: let print_foo ?x ?y () fmt z = ... so I can invoke with (print_foo ())
itPuffinB has joined #ocaml
<companion_cube> ia0: oh, interesting
<companion_cube> kaustuv: that also works
dsheets has joined #ocaml
<kaustuv> But it looks and more importantly feels ugly
BitPuffin has quit [Ping timeout: 248 seconds]
<kaustuv> Hmm. Maybe let ( !$ ) f = f () is an option so I can invoke with !$print_foo
badkins has joined #ocaml
<Drup> that's not going to work for partial application, wrong priority
<Drup> "!$ f ~x" is "(f ()) ~x"
<haesbaert> am I right to assume that every Lwt_io.eprintf is executed in a different system thread ? Since the fd is by default blocking
govg has quit [Quit: leaving]
milosn has joined #ocaml
itPuffinB is now known as BitPuffin
AlexRussia has quit [Ping timeout: 248 seconds]
<kaustuv> Drup: yeah, that will have to be written !$(f ~x), but that still saves one character over (f ~x ())
mort___ has quit [Ping timeout: 256 seconds]
<Drup> kaustuv: the character being space
<Drup> is it really worth it ?
<kaustuv> Not having parentheses in the common case is worth it. Whitespace I am too worried about
moei has quit [Read error: Connection reset by peer]
<kaustuv> But type inference should just DWIM
<Drup> dwim ?
<kaustuv> do what I mean
moei has joined #ocaml
<flux> ia0, the eta expansion version works when more optional arguments are added
AlexRussia has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
<companion_cube> kaustuv: you can also have print_full ?x ?y ?z fmt w
<companion_cube> and print fmt w
tianon has joined #ocaml
<companion_cube> that calls print_full with the default arguments
milosn has quit [Ping timeout: 256 seconds]
mort___ has joined #ocaml
Hannibal_Smith has quit [Remote host closed the connection]
mcclurmc has quit [Remote host closed the connection]
oscar_toro has joined #ocaml
<kaustuv> Yes, I suppose that's also a possibility
mcclurmc has joined #ocaml
<ia0> flux: right, it has to be taken into account
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
kaustuv has left #ocaml ["ERC Version 5.3 (IRC client for Emacs)"]
govg has joined #ocaml
Haudegen has quit [Ping timeout: 250 seconds]
ygrek has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
<smondet> haesbaert: Lwt_io.eprintf will return a `unit Lwt.t` so it's not a sys-thread, it's in the epoll/select/whatever loop
mcclurmc has quit [Remote host closed the connection]
<haesbaert> but when a call is done using the async method, doesn't it also return a unit Lwt ?
<Drup> smondet: technically, it could hop through Lwt_preemptive
<Drup> and still return unit Lwt.t
ptc has joined #ocaml
<smondet> Drup: right
mcclurmc has joined #ocaml
tane has joined #ocaml
<haesbaert> from what I could read, the eprintf ends up in a Lwt_bytes.write -> and if it is blocking, does a run_job()
<flux> hmm, so Lwt_preemptive would be the way to use the multicore branch of ocaml with Lwt I suppose?
<flux> but I wonder how easy would it be in practice.
<Drup> it's not for multicore
<Drup> oh, hum, I see what you mean
<Drup> you could do that, I guess
Haudegen has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
<flux> what do I see here, do I smell some kind of release coming soonish? http://www.cl.cam.ac.uk/projects/ocamllabs/tasks/compiler.html#Multicore says Mar 2013-Apr 2015 for the project.
<flux> I guess native version will have to wait :)
tianon has quit [Read error: Connection reset by peer]
<haesbaert> it seems I could avoid that by setting stderr to nonblocking
<Drup> haesbaert: if you have a blocking issue, just use Lwt_preemptive
<Drup> (in general)
tianon has joined #ocaml
<Drup> (don't know about stderr specifically)
<adrien_znc> if you set something to non-blocking you must be prepared to handle EAGAIN and EWOULDBLOCK
<haesbaert> I don't actually, I'm just curious to see how this works internaly
<haesbaert> from my readings, any write operation on a fd that is blocking in lwt, goes trough the async method
<haesbaert> adrien_znc: lwt handles that if the fd is nonblocking
kdef has joined #ocaml
<haesbaert> it's just awkward that you do a eprintf, and that spawns a system thread
<haesbaert> especially since when you're doing eprintf, you might be dealing with some resource starvation, so the last thing you want, is to do more work
<adrien_znc> run_job() spawns a system thread?
<haesbaert> well that's what I still didn't get it
<haesbaert> I might be totally misreading this, mind you
<adrien_znc> I'd be surprised lwt would do thart
<adrien_znc> that*
<adrien_znc> in any case, if you want to write to stderr and maybe block, you can still use Printf's fprintf/eprintf
<haesbaert> according to the documentation, it invokes the async method on things that would block, (to get a nonblocking) behavour
<haesbaert> adrien_znc: ack, I was trying to be nice and use all lwt things.
<adrien_znc> well, if you want the "regular" behaviour and not lwt's...
<haesbaert> ack, to be honest I end up binding all my eprintfs
<haesbaert> which would give me the blocking behaviour, more or less
emaczen has joined #ocaml
mcclurmc has joined #ocaml
milosn has joined #ocaml
larhat has quit [Quit: Leaving.]
larhat has joined #ocaml
tashjash has quit [Quit: Leaving]
tashjash has joined #ocaml
tashjash has quit [Max SendQ exceeded]
tashjash has joined #ocaml
emaczen has quit [Remote host closed the connection]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
ollehar has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
darkf has quit [Quit: Leaving]
mcclurmc has joined #ocaml
<Drup> ping dsheets ?
<dsheets> hellpo
ghostpl_ has quit [Remote host closed the connection]
<Drup> what are you using tower for ?
<dsheets> Drup, will be static site gen applications like ocamllabs web site
<dsheets> the template system will probably be broken out
<dsheets> why?
ghostpl_ has joined #ocaml
MrScout has joined #ocaml
<Drup> because the template system is precisely the part I didn't do when I first did my first mirage-blog generator revamp :>
<dsheets> what's that?
<Drup> cowabloga*
<dsheets> oh, hmm that project is... odd
<Drup> I know
<haesbaert> btw, I've confirmed, an eprintf in lwt will be run as an async job in another thread
<Drup> I kinda rewrote it
<haesbaert> system thread it is
<dsheets> basically the template system is similar to the one used in opam2web right now
<Drup> right
<Drup> you're starting to have too many pieces-of-static-website-generator around.
<Drup> it's hard to track what goes with what
<dsheets> yeah, the goal is eventual consolidation
kakadu has quit [Ping timeout: 246 seconds]
octachron has quit [Quit: Leaving]
<dsheets> anyway, i'll probably get to it later this week
<Drup> basic question about tower: where are the hole's values taken from ?
<dsheets> i'm clearing a backlog of work that i put off for the last month while driving a paper
<Drup> I know the feeling.
<smondet> haesbaert: but Lwt uses a pool of threads already started there (like with `Lwt_preemptive`) or a Thread.create?
<dsheets> the holes are bound with a Blueprint.bindings value which is a Generator function, a Map or a Table
<Drup> dsheets: no syntax then ?
<dsheets> dunno about the design of that type right now but that's the basic idea
<dsheets> what do you mean? there is a super light template xml vocab
<dsheets> which will have binders eventually but right now just has variables
<dsheets> and we need to decide on the non-xml binder syntax :-/
<Drup> I mean that you can rewrite a set of files to fill the holes, but can't give the values of the holes by cli :p
slash^ has joined #ocaml
<dsheets> there is also no user interface to directly supply bindings, no
<Drup> right
<Drup> I vote toml
<dsheets> why do you want to bind on the command-line?
<Drup> or in a file
<dsheets> yeah, hmm... toml is a bit crap, tbh
<Drup> not compared to yaml.
mcclurmc has quit [Remote host closed the connection]
<dsheets> well, yaml is right out -- no parser
<Drup> even if there was a parser >_>
<Drup> this file format is insane
<dsheets> yeah... it's got buy-in from the jekyll-heads already, though which is why it would be considered
<Drup> dsheets: by "toml" is a bit crap, you mean the file format or the OCaml library ?
<dsheets> the file format
<Drup> because the file format is very similar to the opam one.
<Drup> which is .. not terrible
<dsheets> except dates are first-class wtf
<dsheets> and the people in charge are... questionable
mcclurmc has joined #ocaml
<Drup> no opinion on that
<haesbaert> smondet: a pool of threads, so only one extra thread, but from reading the code, it only creates system threads if the current ones are busy
<haesbaert> smondet: if I set stderr to nonblocking, the system threads are never created, which gives a nicer behaviour imho.
<haesbaert> just confirmed
<Drup> anyway, as long as it's simple k/v binding without too much syntactic overhead, I don't really care.
<dsheets> also, i am considering using the templating in codoc
<Drup> dsheets: yeah
<dsheets> and removing the cow dep
<Drup> Yes.
<Drup> :D
<dsheets> so now camlp4 and no xml trees... should be much faster
mort___ has quit [Quit: Leaving.]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
<smondet> haesbaert: how did you effectively put stderr in non-blocking mode? I heard that non-blocking non-socket FDs on Linux were a joke (I think Jeremi dimino said that on some mailinglist)
<haesbaert> I've used the Lwt_unix.set_blocking, which I assume it's just a wrapper for fcntl
<smondet> then the question is, are they really non-blocking? (do they ever return "I'm not ready")
mort___ has joined #ocaml
<adrien_znc> non-blocking FDs on linux definitely work
<Drup> dsheets: do you plan to take back on cowabloga for the website part or a new thing from scratch ?
<adrien_znc> for FDs on block devices it might be slightly special
<adrien_znc> but that's pretty much it
<Drup> the whole blog/wiki/tickets/rss feed is well cleaned up in my fork, so there is that
<adrien_znc> smondet: stderr returning EAGAIN/EWOULDBLOCK is trivial
<adrien_znc> 2>/dev/null
<adrien_znc> err
<adrien_znc> 2>/dev/zero
<haesbaert> smondet: well it makes lwt behaves differently because it checks the flag, I'd doubt _very_ hard if the fd was not set to nonblocking though, I can't see why would it be hard to implement (linux-wise)
<adrien_znc> (actually that's maybe the wrong error but redirect to anything that will be slow)
<smondet> can't find the email any more …
<haesbaert> now there is one behaviour I don't know how to explain:
shinnya has joined #ocaml
<dsheets> Drup, i'm not sure what you mean?
<haesbaert> this is vanilla, not fiddling with anything, that's all the code does.
<haesbaert> what screws my head is that the EPRINTF is only printed _after_ the 10 seconds.
<haesbaert> how ?
<Drup> dsheets: tower is a piece of the puzzle, you need other parts for a complete static blog generator :p
<tashjash> haesbaert, why not ?
<smondet> haesbaert: add a "%!"
<haesbaert> you're thinking about the flush ?
<smondet> yes buffering
<haesbaert> what is a %! ?
<haesbaert> stderr is unbuffered by default
<Drup> flush.
<smondet> it's a the format that says "flush"
<smondet> printf "bouh\n%!"
<haesbaert> ack it is the flush.
<haesbaert> now I'm confused
<haesbaert> 1 - stderr is unbuffered by default, 2 - the newline should flush in a linebuffered mode
<tashjash> <haesbaert> stderr is unbuffered by default >> since when?
<haesbaert> since 1969
<smondet> no, that's C conventions
<haesbaert> 1s
<haesbaert> oh shit, sorry, I'm stupid.
<haesbaert> I keep forgetting that is a property of stdio, not the file descriptor itself
<dsheets> Drup, yeah, the goal is to have those components depend on tower to offer a single interface/interop
tashjash has quit [Quit: Leaving]
<haesbaert> blocking/unblocking is a property of the filedescriptor
<Drup> dsheets: yes, my questions was about your plans for the other components
<dsheets> Drup, no decision yet... the interface still needs to be settled. we want a simple blog and the opam2web functionality
<dsheets> and codoc and river
<adrien_znc> haesbaert: ocaml channels are not libc FILE *
<Drup> river ?
<adrien_znc> iirc the buffering is inside ocaml's runtime
<haesbaert> adrien_znc: indeed, I messed up
<haesbaert> but I stand correct on the thread creation regarding stderr on nonblocking/blocking
Haudegen has quit [Ping timeout: 256 seconds]
oriba has joined #ocaml
kakadu has joined #ocaml
<Drup> right, not really for the static website generator part :p
<dsheets> it would be an extension
MrScout has quit [Remote host closed the connection]
<Drup> dsheets: if/when you have time, take a look at what I did and tell me what parts are not satisfactory.
<dsheets> ok, i'll put it in my todo for tower. thanks!
<Drup> (well, I guess you don't want tyxml, but that's a very minor detail tbh)
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
Haudegen has joined #ocaml
AlexRussia has quit [Ping timeout: 272 seconds]
AlexRussia has joined #ocaml
ptc has quit [Ping timeout: 250 seconds]
mort___1 has joined #ocaml
dsheets has quit [Ping timeout: 252 seconds]
mort___1 has quit [Client Quit]
mort___ has quit [Ping timeout: 255 seconds]
AlexRussia has quit [Ping timeout: 256 seconds]
thomasga has joined #ocaml
gbluma has quit [Quit: leaving]
AlexRussia has joined #ocaml
jwatzman|work has joined #ocaml
MrScout has joined #ocaml
ptc has joined #ocaml
Algebr has quit [Remote host closed the connection]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
ollehar has quit [Ping timeout: 256 seconds]
ollehar has joined #ocaml
<haesbaert> ahmm, why does Lwt_log.syslog tries to manually connect (as in, look for the syslog sock in the filesystem)
<haesbaert> it tries to look for each possible path and connect manually to the socket
<haesbaert> well os x has the socket in a different, possibly weird path.
ghostpl_ has quit [Remote host closed the connection]
lordkryss has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
ggole has quit []
octachron has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
mxv has joined #ocaml
Anarchos has joined #ocaml
nullcat_ has joined #ocaml
freling has quit [Quit: Leaving.]
javamonn has joined #ocaml
Submarine has joined #ocaml
Submarine has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
kakadu has quit [Quit: Page closed]
jonludlam has quit [Ping timeout: 264 seconds]
Hannibal_Smith has joined #ocaml
Haudegen has quit [Ping timeout: 255 seconds]
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ptc has joined #ocaml
oscar_toro has quit [Ping timeout: 244 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
ontologiae has joined #ocaml
WraithM has joined #ocaml
badon has quit [Disconnected by services]
badon_ has joined #ocaml
badon_ is now known as badon
Haudegen has joined #ocaml
mort___ has joined #ocaml
mcclurmc has joined #ocaml
freling has joined #ocaml
boogie has joined #ocaml
javamonn has quit [Remote host closed the connection]
octachron has quit [Quit: Leaving]
ontologiae has quit [Ping timeout: 252 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
ptc has quit [Ping timeout: 245 seconds]
ptc has joined #ocaml
jonludlam has joined #ocaml
TheLemonMan has joined #ocaml
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
BitPuffin has quit [Ping timeout: 256 seconds]
Denommus has joined #ocaml
nullcat_ has joined #ocaml
mort___ has left #ocaml [#ocaml]
kakadu has joined #ocaml
MrScout has quit [Remote host closed the connection]
s1n4 has quit [Ping timeout: 252 seconds]
tianon has quit [Read error: Connection reset by peer]
<Denommus> Drup: Netwire's creator explained to me why he used Either e a in the wires
nullcat_ has quit [Ping timeout: 252 seconds]
tianon has joined #ocaml
javamonn has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
olauzon has joined #ocaml
kushal has quit [Quit: Leaving]
struk|work has joined #ocaml
ingsoc has joined #ocaml
ericwa has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
Algebr has joined #ocaml
<Algebr> Drup: around?
badon has quit [Quit: Leaving]
ptc has quit [Ping timeout: 264 seconds]
ptc has joined #ocaml
nullcat_ has joined #ocaml
oscar_toro has joined #ocaml
<Algebr> In opam, what happens if someone forks a project on github and then they both try to upload to opam?
seanmcl has joined #ocaml
<companion_cube> I guess it's the opam-repo maintainer that has to decide
<companion_cube> if both the original andthe fork compete for the same nam
<smondet> nothing forbids to use different version strings
<smondet> *forbids from using
<smondet> but it would be messy
<companion_cube> I don't think that's good
bugabinga has quit [Remote host closed the connection]
badon has joined #ocaml
bugabinga has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
nullcat_ has quit [Ping timeout: 250 seconds]
tianon has joined #ocaml
MrScout has joined #ocaml
ollehar has quit [Ping timeout: 250 seconds]
nullcat has joined #ocaml
larhat has quit [Quit: Leaving.]
badon has quit [Quit: Leaving]
<lpaste> Anarchos pasted “module mess” at http://lpaste.net/129925
<Anarchos> i included companion_cube modules in http://lpaste.net/129925 But i want to put TermeMultiSet out of MultiEquation. Any advice ? (i removed the types and values, only keep the module/functor architecture)
<Drup> Algebr: I would tend to propose a blade duel, at midday, in the middle street.
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
_andre has quit [Quit: leaving]
ollehar has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
ghostpl_ has joined #ocaml
nullcat__ has joined #ocaml
<nullcat__> I am writing a project and get warning 40 from the compiler. I googled for similar problem but the answer from SO is not clear for my case. https://github.com/marklrh/otter
<nullcat__> "Warning 40: token was selected from type Oauth_client.Client.temporary_credentials.
<nullcat__> It is not visible in the current scope, and will not
<nullcat__> be selected if the type becomes unknown."
psy_ has quit [Ping timeout: 250 seconds]
<companion_cube> it means you have a record r:Oauth_client.temporary_credentials
<nullcat__> yes
<companion_cube> and you're accessing a field without qualifying it with the module nam
<companion_cube> e
nullcat has quit [Ping timeout: 264 seconds]
<nullcat__> https://github.com/marklrh/otter/blob/master/lib/otter.ml#L15 This is the place I got the warning
ghostpl_ has quit [Ping timeout: 256 seconds]
<nullcat__> it seems there is no way I can specify the module name there, if I understand your meaning correctly
<companion_cube> try resp.Client.token
<Algebr> Drup: heh. I changed the hostname on my machine and now ocsigen craps out. How is ocsigen figuring out the hostname, via /etc/hostname or like echo $HOST?
<companion_cube> or something along this
<Algebr> I think Galois died midday in a duel
<nullcat__> companion_cube: Thank you! I never know that
<Algebr> Also, can ocaml talk to c++/vice versa?
<nullcat__> Is it explained in the official document somewhere?
<companion_cube> probably in the manual
<nullcat__> good...
<nullcat__> thank you
<companion_cube> no pb
<Drup> Algebr: literally no idea
<Drup> but tbh, if ocsigen craps out, it's probably not going to be the only one on the system, and you have other problem
<Drup> (and who changes it's hostname ?! That's one of the "NOPE DON'T" in linux)
<Drup> Algebr: OCaml doesn't have a different FFI to C++, you need to go through C
<Drup> Denommus: I read the answer
<Anarchos> Algebr yes it can : i already did it
javamonn has quit [Remote host closed the connection]
<Drup> Denommus: not sure I get the whole interval deal
javamonn has joined #ocaml
<mrvn> could be fun to teach ctypes about c++ name mangling and classes
<Denommus> Drup: he was referring to the fact that a Netwire user usually creates a wire that emits between two events, and inhibits otherwise, instead of directly dealing with events
<Drup> I see
Hannibal_Smith has quit [Remote host closed the connection]
<Denommus> Drup: for instance, a wire that emits between mouse down and mouse up, to create a "mouse pressed" stream
<Drup> I see
<Denommus> he calls those wires intervals
<Denommus> that won't stop us from experimenting with ever-emitting wires, though
psy_ has joined #ocaml
thomasga has quit [Quit: Leaving.]
<nullcat__> companion_cube: and then I tried this case, why does OCaml decide "r" has type "P.s"?
<Denommus> Drup: I'll focus more on the project by Friday, when my vacations begin
<Drup> have fun :p
MrScout has quit [Remote host closed the connection]
<Drup> for the fun, and before doing too much stuff, look at how to encode the base combinators with React ;)
<Denommus> ok
<Denommus> thanks
<Drup> Denommus: also, about React, you may be interested by rtime
MrScout has joined #ocaml
ptc has quit [Ping timeout: 245 seconds]
<Anarchos> companion_cube may i ask you to look at my module architecture problem ?
<Denommus> Drup: I'll check it
freling has quit [Quit: Leaving.]
ptc has joined #ocaml
javamonn has quit [Remote host closed the connection]
javamonn has joined #ocaml
<nullcat__> companion_cube: it's in section 6.3 in the manual
Gama11 has quit [Read error: Connection reset by peer]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
Muzer has quit [Remote host closed the connection]
Simn has quit [Read error: Connection reset by peer]
xificurC has quit [Ping timeout: 250 seconds]
ptc has quit [Ping timeout: 250 seconds]
ptc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 256 seconds]
Muzer has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
nicoo has quit [Quit: Bye bye (Changing server)]
nicoo has joined #ocaml
nullcat__ has quit [Read error: Connection reset by peer]
kakadu has quit [Remote host closed the connection]
ontologiae has joined #ocaml
MrScout has quit [Ping timeout: 256 seconds]
seanmcl_ has joined #ocaml
seanmcl has quit [Ping timeout: 248 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
tane has quit [Quit: Verlassend]
seanmcl_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
MrScout has joined #ocaml
mxv has quit [Remote host closed the connection]
mcclurmc has quit [Remote host closed the connection]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
olauzon has quit [Quit: olauzon]
Anarchos has quit [Quit: o vont da kousk emaon.]
mcclurmc has joined #ocaml
<Algebr> Drup: Does the ocsigen site not autogenerate off of the code base?
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
larhat has joined #ocaml
<Drup> it does
<Drup> why ?
<Algebr> inconsisten things on the site from the codebase, occasionally.
<Drup> the API is
<Algebr> also, I get this error, Error: Unbound module Eliom_tools.HTML5_TOOLS. Is this a separate package/
<Drup> but unfortunatly, the tutorials are not
<Algebr> I'm using it for the head function, I want to call a javascript script
<Drup> that's a module type
<Drup> not a module
<Drup> F and D are the modules with this signature
<Algebr> how do you know its a module type, because its all caps?
<Drup> module type HTML5_TOOLS = sig..end
<Algebr> So what's the easiest way to just call a javscript script
<Drup> F and D implements HTML5_TOOLS
<Drup> just use that if that's what you want to use
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
javamonn has quit [Remote host closed the connection]
seanmcl has joined #ocaml
WraithM has quit [Quit: leaving]
<Denommus> is the "standard" for naming module types to use all caps?
<Drup> It is a unfortunate convention, yes
<cmtptr> disgusting
<Drup> I don't disagree :p
c355E3B has joined #ocaml
<cmtptr> even so, I'm going to think less of you for it
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
<Algebr> Drup: Why does each service need to be matched up with a Eliom_registration/
<Drup> instead of ?
<Algebr> I don't know
<Drup> basically, you first declare the access path
<Drup> and then you say "hey, this access path trigger this function"
larhat has quit [Quit: Leaving.]
<Drup> you declare them before registering them because it allows you to call them by name, instead of repeating the path every where you want to do a link, avoiding dead link and stuff
<Drup> does that answer the question ?
<Algebr> yes
ontologiae has quit [Ping timeout: 256 seconds]
<Algebr> Drup: ocsigen's usage of post/gets termingology confuses me, I keep thinking they should be reversed
ollehar has quit [Quit: ollehar]
badkins_ has joined #ocaml
ingsoc has quit [Quit: Leaving.]
destrius has quit [Ping timeout: 250 seconds]
badkins has quit [Ping timeout: 264 seconds]
struktured has joined #ocaml
<Drup> why O_o
ontologiae has joined #ocaml
<Drup> they exactly map to the web terminology
<Algebr> Drup: for Eliom_registration.String.register, what is the meaning of the second of that (string * string ) tuple?
ontologiae has quit [Ping timeout: 252 seconds]
<Drup> The doc says: "Eliom service registration for services that returns "byte"-string contents. The page content is a pair (raw_content, content_type)."
mcclurmc has quit [Remote host closed the connection]
madroach has quit [Ping timeout: 264 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
madroach has joined #ocaml
nullcat_ has joined #ocaml
seanmcl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Algebr> Is there a self contined example showing how to get a string out of Lwt_io.open_file?
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]