Denommus has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
AltGr has joined #ocaml
cesar_ has joined #ocaml
cesar_ is now known as Guest30037
jonludlam has quit [Ping timeout: 264 seconds]
Guest30037 has quit [Ping timeout: 265 seconds]
<seangrove>
I'm trying to compile some js_of_ocaml with syntax extensions, but can't quite figure out the correct flags
<whitequark>
ppx or camlp4?
<seangrove>
Ah, nevermind, I see - I have to give the syntax flag to ocamldep as well
<seangrove>
whitequark: I'll keep poking at it for now, but camlp4
<Drup>
js_of_ocaml ppx is not even out ! :D
* Drup
is hacking on it right now.
jwatzman|work has quit [Quit: jwatzman|work]
reem has joined #ocaml
badkins has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
rgrinberg has quit [Ping timeout: 255 seconds]
madroach has joined #ocaml
boogie has quit [Remote host closed the connection]
claudiuc has quit [Ping timeout: 246 seconds]
rgrinberg has joined #ocaml
<seangrove>
Is there a way to download the js_of_ocaml api reference?
pyon-ography is now known as ephemerally-pyon
<Drup>
you can build it locally
<Drup>
(get the source with "opam source" and make doc
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
struktured has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<seangrove>
Wow, that's really slick
<seangrove>
Where does it go though?
<seangrove>
I don't see where it output the docs to
<Drup>
doc/api/html
<Drup>
it will not be as pretty as the one in ocsigen.org, but it should do the job
<Drup>
(other solution is to curl the whole website, obviously)
<seangrove>
Great, thank you Drup
seangrove has quit [Remote host closed the connection]
seangrove has joined #ocaml
dsheets has quit [Ping timeout: 265 seconds]
seangrove has quit [Ping timeout: 256 seconds]
destrius has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
<rgrinberg>
IMO html doc has become pretty useless now that merlin will just jump to the mli for you
<rgrinberg>
it does need a little more polish though
<yminsky>
But automated docs will become useful again when you can pull them up in Merlin for the function under your cursor....
<yminsky>
(I agree that HTML docs aren't all that useful when you have jump-to-definition. We've had it internally for years now, and it's lovely.)
<Drup>
rgrinberg: it's very unreliable with random-library-in-the-wild.
<rgrinberg>
yeah, browsers aren't that great for navigating docs
<Drup>
(not even mentioning the camlp4 aspect of jsoo code)
<rgrinberg>
Drup: that's usually the random library's fault though. In which case I don't expect them to have online docs at all :/
<Drup>
does it even works out of the box with the stdlib ?
<rgrinberg>
Drup: works for me :D
<Drup>
it used not to work for me
<Drup>
(well, I don't even have merlin now anyway, cppo + metaquot + 4.03, and he's dead)
shinnya has quit [Ping timeout: 265 seconds]
<rgrinberg>
yep, that's merlin's kryptonite for now
<Drup>
well, ppx were working quite reliably until I switched to 4.03
<Drup>
4.03 alone is ok too
<Drup>
(cppo is a killer though)
kdef has joined #ocaml
badkins has quit []
swgillespie has joined #ocaml
Algebr has joined #ocaml
<raphaelss>
what's your usual approach when dealing with a possibly infinitely recursive function?
<raphaelss>
supposing something like a trivial factorial function that will loop forever when given a negative number
<raphaelss>
what's the most idiomatic approach in ocaml? let it loop forever or use a option type?
<Drup>
give the correct base cases so that it doesn't appen
<Drup>
oh, right, what to return
<Drup>
it depends
<Drup>
either the option times for non-exceptional errors, or exceptions for exceptional errors
kdef has quit [Remote host closed the connection]
<Drup>
in particular, Invalid_argument
<Drup>
s/times/types/
<raphaelss>
his is just a trivial example, but my actual function is also mathematical in context
<raphaelss>
this*
<raphaelss>
and I'm moving from lisp to typed functional on my main coding work and I'm not sure if I'm exagerating on the whole "encode the possible situations in the types"
darkf has joined #ocaml
<raphaelss>
is the case of a function that is only defined on a subset of integers (or else it will loop forever) appropriate (as in the usual approach) for an option type?
<Drup>
I will raise Invalid_argument
<Drup>
for such a function
<raphaelss>
I see
<raphaelss>
thank you for the input
<Drup>
raphaelss: unless it's really easy to hit the set of undefined input
<Drup>
for factorial, it's not easy, and giving a negative int is really just bullshit :p
<raphaelss>
like defined only on powers of two?
<Drup>
do you expect the user to often give undefined input ?
<raphaelss>
on the usual code path, it's supposed to be impossible
<raphaelss>
given an implementation free of bugs, that is
<raphaelss>
but there's a plugin system planned and I'm not responsible for what comes through that
<Drup>
yeah, invalid_argument
<raphaelss>
having said that - plugin code should be wrapped in try-with anyways
<raphaelss>
yeah, I thought so
<Drup>
if you plan to catch it, custom exception
<Drup>
catching Invalid_argument is ... rather bad style :p
<raphaelss>
the problem with coming to grips with types is that you always feel like you need more of them
<Drup>
And suddenly :dependent types:
<raphaelss>
that's a good tip - thank you
<raphaelss>
yes - exactly
<raphaelss>
well - thank you. You have been very helpful
tianon has quit [Read error: Connection reset by peer]
cesar_ has joined #ocaml
tianon has joined #ocaml
cesar_ is now known as Guest13439
Guest13439 has quit [Ping timeout: 256 seconds]
rgrinberg1 has joined #ocaml
rgrinberg has quit [Ping timeout: 252 seconds]
kdef has joined #ocaml
rgrinberg1 is now known as rgrinberg
idegen has quit [Remote host closed the connection]
reem has quit [Remote host closed the connection]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
reem has joined #ocaml
reem has quit [Remote host closed the connection]
idegen has joined #ocaml
<Algebr>
Trying to clear up some history, ocamlfind is not actually released by iniria, but is some 3rd party stuff that introduces the findlib stuff and META files. Godi was the previous package manager that used this schema and then went away and was replaced by opam which continued to use findlib?
ghostpl_ has quit [Remote host closed the connection]
reem has joined #ocaml
yomimono has quit [Ping timeout: 245 seconds]
MrScout has quit [Ping timeout: 265 seconds]
<Drup>
opam doesn't know anything about findlib
<Drup>
(the rest is correct)
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
JuggleTux has quit [Ping timeout: 256 seconds]
reem has quit [Remote host closed the connection]
reem has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
JuggleTux has joined #ocaml
oriba has left #ocaml [#ocaml]
<nicoo>
AFAIK, Godi didn't specifically know about findlib either, right ?
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
idegen has quit [Ping timeout: 272 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
psy_ has joined #ocaml
<struktured>
why did Godi end up losing steam ?
siddharthv_away is now known as siddharthv
<rgrinberg>
struktured: the UI was awful first of all
<rgrinberg>
think of some half baked ncurses app
<rgrinberg>
littered with modal prompts everywhere
<rgrinberg>
half the stuff wouldn't build because you'd have to mess around with random flags all the time
<rgrinberg>
the creator, gerd stolpmann, while a fine programmer also seems to hate github and love svn
<rgrinberg>
at least he made findlib for us
* Algebr
was reading old ocaml mailing lists, popcorn in hand.
<rgrinberg>
Algebr: findlib and godi were always independent (thank god)
tianon has quit [Read error: Connection reset by peer]
iZsh has joined #ocaml
tianon has joined #ocaml
cesar_ has joined #ocaml
<Algebr>
heh.
cesar_ is now known as Guest78650
<Algebr>
What is the canonical way to kick off Async? is it just ...your code...; Scheduler.go ()?
<rgrinberg>
Algebr:
<rgrinberg>
yes, unless you're using Command
<struktured>
rgrinberg: sounds like cmake, but worse..
Guest78650 has quit [Ping timeout: 265 seconds]
<nicoo>
struktured: Also, figuring out how to write a package (or fix a bug in a package) for GODI was daunting-looking (at least, I found it so)
<rgrinberg>
the best analogy i can think of is some piece of shit janky ass ncurses linux distro installer from the 90's
<rgrinberg>
except for ocaml packages
<struktured>
not switching to git was definitely a way to lose market share
<Algebr>
okay, now you're being mean.
<rgrinberg>
haha, to be fair godi worked 50% of the time for me
<struktured>
I know some very smart people who loathed git, prefering svn and I failed to ever convince them otherwise. They fell into either a "linear development" is more efficient camp or they really disliked git's arcane api
<rgrinberg>
which was better than nothing
<Algebr>
I didn't like git at first too, coming from cvs, from the power that git has is insane.
<rgrinberg>
struktured: yeah, although it's still not a reason to not switch to github
<Algebr>
but the power*
<rgrinberg>
you can use svn with github
<struktured>
I still think git's api is a mess but its so badass underneath
ggole has joined #ocaml
<rgrinberg>
yeah git isn't perfect but what's even less perfect is passing patches around on a mailing list
boogie has joined #ocaml
<Algebr>
rgrinberg: why don't you like call_with_request
swgillespie has joined #ocaml
<rgrinberg>
"with" is just filler IMO
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
<Algebr>
don't_wait_for is a real function. the ' threw me off for a second
<rgrinberg>
Algebr: they just added that function to mess with shitty syntax highlighters :D
<Algebr>
heh
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<rgrinberg>
Algebr: btw, did you switch to async from lwt?
<Algebr>
not really switch, gonna have to use both...
<Algebr>
rgrinberg: I don't understand the signatures in cohttp_async.mli. The mli for say call gives back (Response.t * Body.t) Deferred.t, but the corresponding .ml doesn't suggest that
<Algebr>
I'm still lost. I can't get this to compile because I'm getting this as the return (Response.t * [> `Pipe of bytes Async.Std.Pipe.Reader.t ]) IO.t
<rgrinberg>
so chop the first line in your function
<Algebr>
rgrinberg: oh, so the >>= was wrapping it in deferred.t?
kdef has quit [Quit: Leaving]
<rgrinberg>
>>= "unwraps" a deferred
<rgrinberg>
which makes the compiler assume the LHS is a deferred
<Algebr>
right, that's what I meant
<Algebr>
heh
<Algebr>
and now it compiled, yay.
Bhavya has joined #ocaml
<rgrinberg>
is it possible to unread/pushback bytes in Lwt_io channels
<rgrinberg>
?
<rgrinberg>
I'd like to process an input channel by reading until some chosen delimter
reem has quit [Remote host closed the connection]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
reem has joined #ocaml
swgillespie has joined #ocaml
struk|desk has joined #ocaml
<Algebr>
utop keeps complaining about an unbound module in the current directory even though I've done #use on the .ml and it loaded it into memory, also used #load. Is there another directive I need to use?
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
<rgrinberg>
what's the unbound module it's complaining about?
<Algebr>
some local .ml that I made
struk|desk2 has quit [Ping timeout: 265 seconds]
<rgrinberg>
hmm would have to see what's the exact situation/error
<rgrinberg>
what are you trying to do? just test your function?
<Algebr>
Okay, I figured it out. I thought that since #use compiled and put the code into memory that it would have the module available, but what I had to do is actually compile it via ocamlc and THEN do #load "foo.cmo";;
<rgrinberg>
oh ok
<Algebr>
major lame on utop.
<ggole>
#use just includes the text of the file as if you had typed it
<ggole>
Including directives
<Algebr>
#use actually compiles the code and puts it into memory, at least that's what docs implied to me.
<ggole>
You probably want #mod_use.
<ggole>
(Or to build a custom toplevel with a build tool, which is what I usually do.)
<ggole>
Well, #use *will* do that, but it won't create a module
<ggole>
Instead everything will be smushed into the namespace of the toplevel (which isn't great - you can easily reference stale definitions by mistake)
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Algebr>
rgrinberg: I'm not familiar with async yet, but I'm getting an exception from a monitor.ml saying Failure "SSL unsupported". Is that Async yelling at me? or cohttp? or cohttp bubbling up via async?
<Algebr>
actually I think its cause i didn't have async_ssl installed...which I'm doing now and its the mother of recompiles...its recompiling literally everything.
<rgrinberg>
Algebr: sounds like you're on the right track
<Algebr>
I wonder, does async_ssl/lwt_ssl use the underlying openssl or that TLS implementation via mirage
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mort___ has quit [Client Quit]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
<rgrinberg>
async_ssl is ctypes based so it uses openssl
<rgrinberg>
and lwt_ssl depends on ssl which is an older binding to openssl
boogie has quit [Remote host closed the connection]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
MercurialAlchemi has joined #ocaml
swgillespie has joined #ocaml
reem has quit [Remote host closed the connection]
mearnsh has quit [Ping timeout: 272 seconds]
mearnsh has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
AlexRussia has quit [Ping timeout: 264 seconds]
govg has quit [Quit: leaving]
swgillespie has joined #ocaml
siddharthv is now known as siddharthv_away
reem has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Simn has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
reem has quit [Remote host closed the connection]
swgillespie has joined #ocaml
reem has joined #ocaml
swgillespie has quit [Client Quit]
swgillespie has joined #ocaml
ericwa has quit [Quit: Leaving...]
oscar_toro has quit [Ping timeout: 244 seconds]
rgrinberg has quit [Ping timeout: 250 seconds]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
freling has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
cesar_ has joined #ocaml
cesar_ is now known as Guest60305
Guest60305 has quit [Ping timeout: 265 seconds]
ephemerally-pyon is now known as whimsical-pyon
xificurC has joined #ocaml
avsm has joined #ocaml
milosn_ has joined #ocaml
Bhavya has quit [Read error: Connection reset by peer]
milosn has quit [Read error: Connection reset by peer]
Bhavya has joined #ocaml
milosn_ is now known as milosn
Haudegen has quit [Ping timeout: 256 seconds]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
Submarine has joined #ocaml
Submarine has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
Haudegen has joined #ocaml
reem has quit [Remote host closed the connection]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
rgrinberg has joined #ocaml
thomasga has joined #ocaml
freling has quit [Quit: Leaving.]
reem has joined #ocaml
freling has joined #ocaml
rgrinberg has quit [Ping timeout: 252 seconds]
ia0 has quit [Quit: leaving]
reem has quit [Remote host closed the connection]
reem has joined #ocaml
siddharthv_away is now known as siddharthv
testcocoon has quit [Ping timeout: 246 seconds]
<NhanH>
I know that Ocaml didn't have `return` keyword, but it used to be valid to use in pattern matching and just got remove lately, right? I just update my compiler to 4.02 and it seems like a whole bunch of code I copied from Stackoverflow doesn't work
siddharthv is now known as siddharthv_away
siddharthv_away is now known as siddharthv
<adrien>
show the code?
robink has quit [Remote host closed the connection]
<xificurC>
I launched utop from an emacs .ml buffer. I expected utop to auto-eval the buffer contents, which it didn't, so I went ahead and called utop-eval-buffer, which resulted in utop saying "Error: Unbound module Lwt"
<xificurC>
I have a _tags file for ocamlbuild, a .merlin file for merlin, do I need yet another one for utop?
rgrinberg has joined #ocaml
<Leonidas>
xificurC: have you tried to #require lwt before?
raphaelss has left #ocaml [#ocaml]
<xificurC>
Leonidas: do I have to require all packages by hand?
rgrinberg has quit [Ping timeout: 244 seconds]
oscar_toro has quit [Ping timeout: 255 seconds]
<Leonidas>
in a regular utop session yes (unless you define .ocamlinit), no idea about utop in emacs, I don't use emacs.
tianon has quit [Read error: Connection reset by peer]
oscar_toro has joined #ocaml
tianon has joined #ocaml
<xificurC>
Leonidas: so if you have a project you are working on and wish to load it in utop and tinker with it you always require your packages first?
ghostpl_ has joined #ocaml
oscar_toro has quit [Ping timeout: 246 seconds]
<ousado>
xificurC: what could "unless you define .ocamlinit" possibly mean?
gautam__ has joined #ocaml
<xificurC>
ousado: can that be local as well? It's my first time creating something so I don't know. I couldn't find anything in the ocaml docs
<ousado>
it would be a file in your project root in this case
ghostpl_ has quit [Read error: Connection reset by peer]
ghostpl_ has joined #ocaml
reem has joined #ocaml
<Drup>
bernardofpc: ocp-indent + manual indentation for client/server sections
contempt has quit [Ping timeout: 252 seconds]
reem has quit [Ping timeout: 244 seconds]
contempt has joined #ocaml
RossJH has joined #ocaml
cesar_ has joined #ocaml
cesar_ is now known as Guest19900
Guest19900 has quit [Ping timeout: 265 seconds]
badkins_ has joined #ocaml
badkins has quit [Disconnected by services]
badkins_ is now known as badkins
<gautam__>
Leonidas: I was able to build ocaml-re, there was some inconsitancy between base ocaml packages, ocaml packages from this ocaml repo http://xenbits.xen.org/djs/centos-ocaml-4.01/
<gautam__>
Leonidas: I had to disable base repo in mock configuration and it worked :)
idegen has joined #ocaml
contempt has quit [Remote host closed the connection]
ollehar has quit [Remote host closed the connection]
ollehar has joined #ocaml
Bhavya has quit [Quit: Quit the channel]
lordkryss has quit [Quit: Connection closed for inactivity]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
contempt has joined #ocaml
oriba has joined #ocaml
boogie has joined #ocaml
Algebr has joined #ocaml
boogie has quit [Ping timeout: 256 seconds]
rgrinberg has joined #ocaml
<Leonidas>
good to hear that
jonludlam has joined #ocaml
rgrinberg has quit [Ping timeout: 264 seconds]
<xificurC>
`let card_of_string s = let rank = match String.sub s 0 1 with ...` compiled as bytes -> ... , any reason why?
<xificurC>
if I write "hello" somewhere, is it of string or bytes?
<Drup>
it is both if you don't had any compiler option
<Drup>
string = bytes
<Drup>
unless you add the option -safe-string
<Drup>
then string are immutable and bytes are mutable
<xificurC>
Drup: is it recommended to use that flag? If it's not enabled by default then I sure didn't use it
<companion_cube>
it will become the default at some point in the future
<xificurC>
if I try to call `card_of_string "2h"` I get an exception - Invalid argument "String.sub / Bytes.sub"
psy_ has quit [Ping timeout: 246 seconds]
tianon has quit [Read error: Connection reset by peer]
<seangrove>
Let me see if camomile will do the trick in js_of_ocaml...
<Drup>
no camomile in js_of_ocaml
<seangrove>
Well, that answers that :)
ptc has joined #ocaml
<Drup>
(because it includes the whole utf8 database)
<Drup>
(and you *don't* want that in your js file)
<seangrove>
Heh, that definitely makes sense - I was a bit concerned at the 1.4MB payload I already have
<companion_cube>
you shouldn't need a UTF8 database to reverse a string though? unless some codepoints are combined or something
<Drup>
yeah, bunzli's stuff is enough
<Drup>
but in fact, you don't even need that, using js_string
shinnya has joined #ocaml
<seangrove>
Drup: Are you suggesting using charAt?
<Drup>
I'm affraid so, yes
<seangrove>
I guess that's fine, I'm just a bit sad I have to bifurcate my OCaml code already
<Drup>
(check that it behaves correctly before)
<Drup>
(but it should)
<seangrove>
I'll give it a try now
<Drup>
seangrove: the other solution is one of the uu** libraries
<seangrove>
I can probably use sintrg.split.reverse.join as well
<Drup>
seangrove: there is also a version of zed that does not depends on camomille
<Drup>
but it's a hack and I would not really advise it
Algebr has quit [Ping timeout: 252 seconds]
cesar_ has joined #ocaml
cesar_ is now known as Guest54637
paradoja has joined #ocaml
Guest54637 has quit [Ping timeout: 256 seconds]
Algebr has joined #ocaml
hugomg has quit [Ping timeout: 272 seconds]
gautam__ has quit [Quit: Leaving]
thomasga has joined #ocaml
darkf has quit [Quit: Leaving]
mengu has quit [Remote host closed the connection]
oriba has quit [Quit: oriba]
mengu has joined #ocaml
ygrek has quit [Ping timeout: 255 seconds]
<Algebr>
Is it the case that labeled arguments can't be the last argument?
<companion_cube>
no, that's ok
<companion_cube>
it's for optional arguments that being last has problems
<Leonidas>
which is kinda understandable since it is ambiguous.
<companion_cube>
exactly
sepp2k has joined #ocaml
BitPuffin has joined #ocaml
rgrinberg has joined #ocaml
WraithM has joined #ocaml
rgrinberg has quit [Ping timeout: 250 seconds]
rand000 has joined #ocaml
olauzon has joined #ocaml
ollehar has quit [Quit: ollehar]
ollehar has joined #ocaml
seangrove has quit [Ping timeout: 246 seconds]
AlexRussia has quit [Ping timeout: 256 seconds]
govg has joined #ocaml
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
slash^ has joined #ocaml
<Algebr>
I keep forgetting, what exactly does the warning "Foo...it is not visible in the current scope and will not be selected if the type becomes unknown"
<Algebr>
mean
rand000 has quit [Quit: leaving]
ptc has joined #ocaml
<ggole>
You should qualify or open a module
avsm has joined #ocaml
boogie has joined #ocaml
AlexRussia has joined #ocaml
mengu has quit [Remote host closed the connection]
avsm has quit [Quit: Leaving.]
thomasga1 has joined #ocaml
<Algebr>
that fixed it yes, but then why didn't it crash/not compile instead of just a warning via merlin
<ggole>
It's just a warning, not an error
thomasga has quit [Ping timeout: 265 seconds]
oscar_toro has joined #ocaml
ollehar1 has joined #ocaml
rgrinberg has joined #ocaml
lordkryss has joined #ocaml
toolslive has joined #ocaml
<toolslive>
"""Error: This expression has type unit Lwt.t
<toolslive>
but an expression was expected of type unit Lwt.t
<toolslive>
This instance of unit is ambiguous:
<toolslive>
it would escape the scope of its equation"""
jwatzman|work has joined #ocaml
<toolslive>
gadts are not my friend.
<companion_cube>
:D
avsm has joined #ocaml
<toolslive>
50 shades of unit....
<whitequark>
lol what
cesar_ has joined #ocaml
cesar_ is now known as Guest41573
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
MrScout has joined #ocaml
MrScout has quit [Remote host closed the connection]
MrScout has joined #ocaml
<toolslive>
let's see if I can extract a miniature example
boadie has joined #ocaml
Guest41573 has quit [Ping timeout: 256 seconds]
Anarchos has joined #ocaml
<reynir>
i've seen errors like that in Coq. It's usually implicit arguments causing the funny-looking error
* reynir
doesn't really know anything about GADTs in OCaml :/
<ggole>
Wow, that's a good one
tianon has quit [Read error: Connection reset by peer]
larhat has quit [Ping timeout: 264 seconds]
freling has quit [Quit: Leaving.]
tianon has joined #ocaml
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Drup>
toolslive: are you sure you didn't redefined unit ? :D
ptc has joined #ocaml
<toolslive>
no. and of course the compiler is right. I'm trying to wrap the inner workings of the gadt's type into a unit -> unit Lwt.t do be executed in a space and time far away.
<toolslive>
ha! I got it to compile.....
dario_ has joined #ocaml
<toolslive>
it's actually pretty evil: let execute_update: type req res. ...... buffer: 'a Lwt_buffer.t -> .....
<toolslive>
if I replace the 'a with a concrete type then it compiles.
<toolslive>
in retrospect pretty obvious, but I wasted more than 1 hour on this.
rgrinberg has quit [Ping timeout: 256 seconds]
<dario_>
Hallo everyone! Quick OASIS question:
<dario_>
OASIS complains if a flag has the same name of an executable
avsm has quit [Ping timeout: 264 seconds]
<dario_>
s/of/as/
<dario_>
Is this is known issue and is there a way around it?
seangrove has joined #ocaml
rgrinberg has joined #ocaml
boadie has quit [Remote host closed the connection]
srcerer has quit [Quit: ChatZilla 0.9.91.1 [Firefox 36.0.1/20150305021524]]
<Algebr>
Ocaml string are by default encoded in utf-8 right?
<whitequark>
no
<whitequark>
OCaml strings do not have encoding
<whitequark>
they're octet streams
<Algebr>
does that mean they are binary data?
<whitequark>
essentially
<whitequark>
however, by convention utf-8 is almost always used
<smondet>
the string/byte types are byte-arrays, if you file is encoded in utf-8 and you write a string literal "bla → » œ ç" then the byte array will be representing an UTF-8 string, but it would be your convention
<smondet>
s/you file/your file/
avsm has joined #ocaml
avsm1 has joined #ocaml
avsm has quit [Read error: Connection reset by peer]
<Algebr>
appreciated. So if your file was all ASCII, then you would have an ASCII string, but only on the face of it, right
paradoja has quit [Remote host closed the connection]
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
dario_ has quit [Remote host closed the connection]
<Anarchos>
Algebr don't forget you have a varying number of null characters at the end of an OCaml string
<Algebr>
So what is a good way to explicity encode a string as utf8? I found CamomileLibraryDefault.Camomile.UPervasives.escaped_utf8
<companion_cube>
there are several unicode libraries
boadie has joined #ocaml
ptc has joined #ocaml
<Algebr>
Is there any easy one that looks like string -> string (But encoded as utf8)
<companion_cube>
what would the input string be encoded in?
<Algebr>
as the octet stream string
<companion_cube>
well that's no encoding
<flux>
let utf8_of_utf8 a = a ;)
tianon has quit [Read error: Connection reset by peer]
<toolslive>
well, if you look at it as utf-8, then String.length has some bugs ;)
tianon has joined #ocaml
boadie has quit [Read error: Connection reset by peer]
boadie has joined #ocaml
<Algebr>
Batteries seems to have the simpliest thing of what I want
<companion_cube>
there's uutf, too
<Algebr>
I was looking at that, encoding_of_string, but it gave me back None for "hello". Does that mean its literally looking for stuf like "\x123\x312" or whatnot
<companion_cube>
encoding "hello" to utf8 should be the identity
seangrove has quit [Remote host closed the connection]
kakadu has quit [Quit: Page closed]
ollehar1 has quit [Quit: ollehar1]
yomimono has quit [Ping timeout: 244 seconds]
boadie has quit [Remote host closed the connection]
<Algebr>
I wonder why iniria decided to make strings as octet streams
<Algebr>
is it just the simpliest solution?
boadie has joined #ocaml
<companion_cube>
yes, it was the simplest 20 years ago
<companion_cube>
and the focus of the creators of OCaml was writing compilers and theorem provers, not much deal with text
<companion_cube>
non-english text*
jonludlam has quit [Ping timeout: 252 seconds]
Denommus has joined #ocaml
<ggole>
They're used for I/O, too
<ggole>
Although that choice may have been secondary
* Anarchos
dreams of a world with char16bits....
tianon has quit [Read error: Connection reset by peer]
<companion_cube>
16 bits chars would solve nothing
tianon has joined #ocaml
<Anarchos>
companion_cube you could do utf16 natively
cesar_ has joined #ocaml
aubergines has quit [Remote host closed the connection]
<Algebr>
OKay, I don't understand this. Why can't I make this string literal? let a = "\316\272\341\275\271\317\203\316\274\316\265"
<Algebr>
I get Error: Failure: "invalid char token"
cesar_ is now known as Guest6596
ghostpl_ has quit [Remote host closed the connection]
<companion_cube>
utf16 is worthless
srcerer has joined #ocaml
Haudegen has quit [Ping timeout: 250 seconds]
Guest6596 has quit [Ping timeout: 246 seconds]
<Drup>
except it's used in js, unfortunatly
<Drup>
(the unfortunatly is both valid about utf16 and js)
<Leonidas>
I think in Java too
ggole has quit []
larhat has joined #ocaml
Haudegen has joined #ocaml
<whitequark>
ucs-2
<whitequark>
which is even worse
TheLemonMan has joined #ocaml
monod has quit [Quit: Sto andando via]
<reynir>
I found this script that converts an sms to unicode. By unicode they mean ucs-2 I found out by reading the source
<smondet>
Algebr: "\316" seems too big for a single byte, it goes up to \255
<reynir>
from 2009
<reynir>
smondet: I think maybe it's octal
dhil has joined #ocaml
psy_ has joined #ocaml
BitPuffin has quit [Ping timeout: 250 seconds]
larhat has quit [Quit: Leaving.]
rgrinberg has quit [Ping timeout: 256 seconds]
zozozo has joined #ocaml
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
struk|work has quit [Quit: Page closed]
ptc has joined #ocaml
Haudegen has quit [Ping timeout: 252 seconds]
toolslive has quit [Quit: Leaving]
Algebr has quit [Remote host closed the connection]
<smondet>
reynir: no, i tried in the toplevel :) \255 works \256 doesn
<smondet>
*doesn't
kakadu has joined #ocaml
thomasga1 has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
Haudegen has joined #ocaml
virtualeyes has quit [Ping timeout: 252 seconds]
boadie has quit [Remote host closed the connection]
jonludlam has joined #ocaml
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
thomasga has joined #ocaml
jonludlam has quit [Ping timeout: 244 seconds]
oriba has joined #ocaml
boadie has joined #ocaml
yomimono has joined #ocaml
boadie has quit [Remote host closed the connection]
whimsical-pyon is now known as invisible-pyon
matason has quit [Ping timeout: 264 seconds]
slash^ has quit [Read error: Connection reset by peer]
ptc has joined #ocaml
<reynir>
oh, sorry then :)
ollehar1 has joined #ocaml
claudiuc has joined #ocaml
Submarine has quit [Quit: Leaving]
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ptc has joined #ocaml
cesar_ has joined #ocaml
cesar_ is now known as Guest59570
mengu has joined #ocaml
boadie has joined #ocaml
pgomes has joined #ocaml
boadie has quit [Client Quit]
Guest59570 has quit [Ping timeout: 265 seconds]
thomasga has quit [Quit: Leaving.]
ericwa has joined #ocaml
thomasga has joined #ocaml
avsm1 has quit [Quit: Leaving.]
keen__________ has joined #ocaml
ollehar1 has quit [Ping timeout: 255 seconds]
keen_________ has quit [Ping timeout: 244 seconds]
mengu has quit [Remote host closed the connection]
myst has quit [Read error: Connection reset by peer]
mengu has joined #ocaml
jonludlam has joined #ocaml
mengu has quit [Client Quit]
keen__________ has quit [Read error: Connection reset by peer]
Anarchos has quit [Quit: reboot]
lordkryss has quit [Quit: Connection closed for inactivity]
keen___________ has joined #ocaml
myyst has joined #ocaml
myyst is now known as myst
ptc has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
keen___________ has quit [Ping timeout: 246 seconds]
Anarchos has joined #ocaml
keen___________ has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
_andre has quit [Quit: leaving]
thomasga has quit [Quit: Leaving.]
keen___________ has quit [Read error: Connection reset by peer]
keen___________ has joined #ocaml
keen____________ has joined #ocaml
keen___________ has quit [Ping timeout: 264 seconds]
keen___________0 has joined #ocaml
keen____________ has quit [Ping timeout: 256 seconds]
keen___________1 has joined #ocaml
reem has joined #ocaml
keen___________0 has quit [Ping timeout: 244 seconds]
keen___________2 has joined #ocaml
keen___________1 has quit [Ping timeout: 246 seconds]
keen___________3 has joined #ocaml
keen___________2 has quit [Ping timeout: 244 seconds]
gbluma has joined #ocaml
keen___________3 has quit [Ping timeout: 264 seconds]
keen___________3 has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
keen___________4 has joined #ocaml
ghostpl_ has joined #ocaml
avsm has joined #ocaml
keen___________3 has quit [Ping timeout: 244 seconds]
Haudegen has quit [Ping timeout: 245 seconds]
keen___________4 has quit [Ping timeout: 246 seconds]
keen___________4 has joined #ocaml
Simn has quit [Quit: Leaving]
invisible-pyon is now known as approximate-pyon
keen___________5 has joined #ocaml
keen___________4 has quit [Ping timeout: 272 seconds]
gbluma has quit [Ping timeout: 244 seconds]
<kakadu>
Hey, folks
Haudegen has joined #ocaml
<kakadu>
Should we write in .merlin 'PKG name1,name2' or 'PKG name1 name2'?
<kakadu>
Experience says that 1st variant works and second doesn't but merlin wiki recommends the 2nd one
<companion_cube>
I write one PKG per line
keen___________5 has quit [Ping timeout: 250 seconds]
ghostpl has quit [*.net *.split]
frawgie has quit [*.net *.split]
gperetin has quit [*.net *.split]
abbe has quit [*.net *.split]
<kakadu>
that works too
ghostpl has joined #ocaml
frawgie has joined #ocaml
gperetin has joined #ocaml
abbe has joined #ocaml
ghostpl has quit [Max SendQ exceeded]
keen___________7 has joined #ocaml
ghostpl has joined #ocaml
keen___________7 has quit [Read error: Connection reset by peer]
keen___________7 has joined #ocaml
<Anarchos>
:execute "helptags " . g:opamshare . "/merlin/vim/doc" ====>answers /merlin/vim/doc is not a directory.
gbluma has joined #ocaml
keen___________8 has joined #ocaml
keen___________7 has quit [Read error: Connection reset by peer]
keen___________9 has joined #ocaml
keen___________8 has quit [Ping timeout: 256 seconds]
keen___________9 has quit [Read error: Connection reset by peer]
cesar_ has joined #ocaml
cesar_ is now known as Guest18686
gbluma has quit []
keen___________9 has joined #ocaml
Guest18686 has quit [Ping timeout: 265 seconds]
keen___________9 has quit [Ping timeout: 248 seconds]
keen___________9 has joined #ocaml
<Anarchos>
companion_cube is there an error in the merlin isntall file ?
keen__________10 has joined #ocaml
keen___________9 has quit [Ping timeout: 256 seconds]
keen__________10 has quit [Read error: Connection reset by peer]
keen__________10 has joined #ocaml
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
keen__________11 has joined #ocaml
keen__________10 has quit [Read error: Connection reset by peer]
MercurialAlchemi has quit [Ping timeout: 255 seconds]
MrScout has quit [Ping timeout: 265 seconds]
kakadu has quit [Remote host closed the connection]
keen__________12 has joined #ocaml
keen__________11 has quit [Ping timeout: 264 seconds]
keen__________13 has joined #ocaml
keen__________12 has quit [Ping timeout: 256 seconds]
seangrove has joined #ocaml
MrScout has joined #ocaml
TheLemonMan has quit [Quit: leaving]
<bernardofpc>
Drup: thanks for ocp-indent
pobivan has quit [Quit: pobivan]
<bernardofpc>
it does not mess {unit{ and {client{ as much as default tuareg
<bernardofpc>
on the other hand, I quite like aligning the second argument under the first in some cases, and I did not find it in the --help)
<Drup>
look at the default .ocp-indent
keen__________13 has quit [Read error: Connection reset by peer]
seangrove has quit [Ping timeout: 255 seconds]
dhil has quit [Quit: Leaving]
keen__________13 has joined #ocaml
swgillespie has joined #ocaml
rgrinberg has quit [Ping timeout: 250 seconds]
<bernardofpc>
Drup: I could not find it :/
<bernardofpc>
neither find -iname "*.ocp-indent*" in .opam, nor in .ocp/ocp-indent
<Drup>
huum
<bernardofpc>
github does have it
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
freling has joined #ocaml
keen__________13 has quit [Ping timeout: 255 seconds]
keen__________13 has joined #ocaml
keen__________14 has joined #ocaml
<bernardofpc>
the .ocp-indent still does not show how to do
<bernardofpc>
fun_long_name arg1 arg2
<bernardofpc>
arg3 arg4
avsm has quit [Quit: Leaving.]
avsm has joined #ocaml
freling has quit [Client Quit]
avsm has quit [Client Quit]
<Drup>
align_ops = false
<Drup>
(or true, depends)
<Drup>
(I hate it, so I put it to false)
<Drup>
hum, no, align_params, not align_ops
keen__________13 has quit [Ping timeout: 265 seconds]
boogie has quit [Remote host closed the connection]
keen__________15 has joined #ocaml
keen__________14 has quit [Ping timeout: 252 seconds]
rgrinberg has joined #ocaml
<bernardofpc>
Drup: it is not align_params anyway
<Drup>
?
<Drup>
then I don't understand what you want
<bernardofpc>
I want further args to my function to be aligned under the first one
<bernardofpc>
in all these settins, it gets indented 2 spaces after the beginning of the name of the function
<bernardofpc>
but maybe this style is not much encouraged in OCaml...
<Drup>
pretty sure align_params will do that.
keen__________16 has joined #ocaml
keen__________15 has quit [Ping timeout: 245 seconds]
<Anarchos>
# (max_int+1)<0;; - : bool = true # 1/0;; Exception: Division_by_zero. Lack of coherence in dealing with exceptions ?
dav has joined #ocaml
<Anarchos>
i would expect Exception : Overflow.
<Drup>
there is no Nan for ints, 1/0 is not representable -> exception
ghostpl_ has quit [Remote host closed the connection]
<Drup>
the wrapping behavior of overlows is documented and if you don't want it, use Zarith.
<Drup>
overflows*
<bernardofpc>
Drup: didn't manage to
keen__________17 has joined #ocaml
<Drup>
bernardofpc: weird, I'm sure the setting exist
<Anarchos>
Drup i speak of ocaml though.
<Drup>
Anarchos: me too :)
keen__________16 has quit [Ping timeout: 246 seconds]
<Anarchos>
Drup oh i see. But for beginners it can be source of errors not easily tracked !
<bernardofpc>
Drup: the setting exists indeed, but it does nothing on a trivial example like abouve
<Drup>
I think the fact that int overflow is the first thing everyone learns when starting to code ...
<bernardofpc>
all three settings will produce the same file (from a single expression big_fun_name arg1 arg2 \n arg3 arg4)
tane has quit [Quit: Verlassend]
<Anarchos>
Drup yes, but when you generate index in a loop, you can forget it can overflow when reaching 2^31, which can rarely happens