tautologico has quit [Quit: Connection closed for inactivity]
silver has quit [Ping timeout: 256 seconds]
FreeBirdLjj has joined #ocaml
cbot has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 264 seconds]
neatonk has joined #ocaml
gtrak has quit [Ping timeout: 248 seconds]
silver_ has quit [Read error: Connection reset by peer]
keep_learning has joined #ocaml
halogenandtoast has joined #ocaml
pierpal has joined #ocaml
halogenandtoast has quit [Ping timeout: 256 seconds]
pierpal has quit [Ping timeout: 240 seconds]
halogenandtoast has joined #ocaml
mfp has quit [Ping timeout: 245 seconds]
mfp has joined #ocaml
tormen_ has joined #ocaml
tormen has quit [Ping timeout: 260 seconds]
mfp has quit [Ping timeout: 264 seconds]
pierpa has quit [Quit: Page closed]
al-damiri has quit [Quit: Connection closed for inactivity]
gtrak has joined #ocaml
pierpal has joined #ocaml
pierpal has quit [Client Quit]
pierpal has joined #ocaml
halogenandtoast has quit [Ping timeout: 265 seconds]
gtrak has quit [Ping timeout: 268 seconds]
shw has joined #ocaml
FreeBirdLjj has joined #ocaml
jao has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
dreamer_ has joined #ocaml
jbrown has quit [Ping timeout: 260 seconds]
<dreamer_>
Hey, why can't ocamlfind find tsdl-image, tsdl-ttf and tsdl-mixer when it can find tsdl fine ?
<dreamer_>
al packages were installed with opam
<dreamer_>
and I did do eval $(opam config env)
<dreamer_>
and they are all in the output of opam list.. I don't get it
halogenandtoast has joined #ocaml
<xvilka>
Hi! I perform a heavy operation of binary patterns search in a big strings, taking substrings recursively, can I do operation of taking a "slice" (String.sub) without copying?
<xvilka>
to improve the speed
caltelt_ has joined #ocaml
<Enjolras>
xvilka: check Astring or Containers String module
<Enjolras>
also keep in mind it's only worth it if your slices are larger than 24 bytes.
dreamer__ has joined #ocaml
<Enjolras>
else you are just adding indirection for same allocation
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
dreamer__ has quit [Quit: Page closed]
<dreamer_>
oops
<dreamer_>
seriously does no one know ? :'(
MercurialAlchemi has joined #ocaml
<xvilka>
Enjolras: ok, thanks!
keep_learning has quit [Remote host closed the connection]
caltelt_ has quit [Ping timeout: 256 seconds]
cbot has quit [Quit: Leaving]
wklm has joined #ocaml
<Enjolras>
dreamer_: did you check the META file ? maybe those sublibs have different names
<Enjolras>
like tsdl.image or something
<dreamer_>
oh !
<dreamer_>
there's no META file on the github
M_[m][m] has joined #ocaml
<Enjolras>
it's probably generated by build system
<Enjolras>
check ~/.opam/<switch>/lib/tsdl-image/META or something
<Enjolras>
easier option, ocamlfind list | grep tsdl
noitakomentaja has quit [Ping timeout: 250 seconds]
M_[m][m] is now known as h11
h11 has quit [Changing host]
h11 has joined #ocaml
h11 has joined #ocaml
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cobreadmonster has quit [Quit: Connection closed for inactivity]
dreamer_ has quit [Ping timeout: 260 seconds]
tarptaeya has joined #ocaml
argent_smith has joined #ocaml
Haudegen has joined #ocaml
tarptaeya has quit [Quit: Konversation terminated!]
kvda has joined #ocaml
dakk has joined #ocaml
mk9 has joined #ocaml
monstasat has joined #ocaml
mk9 has quit [Quit: mk9]
<ZirconiumX>
So today I just fixed five security bugs in an OCaml PNG decoder.
unyu has quit [Ping timeout: 256 seconds]
<kvda>
I'm getting unbound module Base in fresh install of Ocaml.. any thoughts?
<ZirconiumX>
kvda: Base isn't part of OCaml, you have to install it separately
<kvda>
Opam says it's installed..
<ZirconiumX>
What are you building with?
<kvda>
opamopt
<kvda>
*ocamlopt
unyu has joined #ocaml
<Armael>
ZirconiumX: which one?
<ZirconiumX>
Armael: ocaml-imagelib
<Leonidas>
kvda: then you must let ocamlopt know where to look for base
<Enjolras>
kvda: do you invoke ocamlopt directly ? it's like invoking "gcc" you need to give some path
<Enjolras>
you can use the wrapper ocamlfind ocamlopt -package base -linkpkg foo.ml
<ZirconiumX>
kvda: you should consider a better build system than calling ocamlopt directly, but Leonidas and Enjolras are correct
<Enjolras>
(or better use a build system like jbuilder)
<Enjolras>
dune*
<ZirconiumX>
Ninja'd
<Leonidas>
seconded dune
<kvda>
Leonidas Enjolras that's probably the problem. I'm guessing I should use ocamlfind before ocamlopt?
<Enjolras>
yes, if you want an original 90's building experience
<kvda>
Jbuilder is the lisp-y looking one?
<Leonidas>
kvda: you can, but then you're basically halfway reinventing a build system
<ZirconiumX>
That still needs you to specify the package
<kvda>
Leonidas gotcha
<Enjolras>
kvda: yes
<Leonidas>
talking about dune, how can I make `jbuilder build` build my binary but not install?
<ZirconiumX>
Doesn't it do that by default?
<Leonidas>
I can give it a public_name then it builds it, but I don't actually want it installed
<ZirconiumX>
`jbuilder build foo.exe`
<Leonidas>
ZirconiumX: yes, that's what I am doing, but I fear for bitrot so I'd rather have `jbuilder build` build all source
<kvda>
Dune is a much better name than Jbuilder
* Enjolras
also wishes dune would use a simple format like toml and not sexp but well
<Leonidas>
also I am dumb, so I ran `jbuilder build` and then the binary and didn't realize I didn't rebuild it :)
<Leonidas>
Enjolras: TOML is not exactly simple.
<kvda>
hah TOML has .ini file style headings
<Leonidas>
it seems to suffer from hidden complexity. not as bad as YAML but still
<Enjolras>
Leonidas: it's much much easier to edit.
<ZirconiumX>
True, but complexity comes on both sides of the field
<Leonidas>
Enjolras: Possibly. I like sexp but also I used to be a Clojure/Schemer :)
<Enjolras>
i'm still using oasis because dune format annoys me :>
<kvda>
Interesting, there's a library that parses s-exps then just for the config purpose?
<kvda>
ZirconiumX got it
<Leonidas>
yes, a sexp parser is very easy to implement
<ZirconiumX>
S-exp is used as a serialisation format, kvda
<kvda>
(thumbs up)
<Enjolras>
Leonidas: yeah, it's definitely not perfect.
keep_learning has joined #ocaml
<kvda>
What is the main difference between jbuilder and ocamlbuild i wonder
<Enjolras>
dune has more documentation, better parallelism, other tricks to speed up compilation when using ppx. It also has nicer output, and it is actively developped
<Leonidas>
kvda: ocamlbuild is on its way out.
<Enjolras>
ocamlbuild is older, as a plus side it's more flexible for now as it's easier to write custom rules with good documentation on how to do it
<Leonidas>
it used to be part of ocaml but was uncoupled
<kvda>
Ahh thanks fellas. So it makes sense RWC uses jbuilder
<Enjolras>
also the _tags file is finer grained
<Leonidas>
Real World C?
<kvda>
Leonidas yes
<kvda>
haha I mean RWO
<kvda>
The Original C
<Leonidas>
well, RWO uses jbuilder because jbuilder was made by Jane Street and one of the authors works at Jane Street.
<kvda>
Where does the name OCaml come from? I can guess the ML part
<Leonidas>
kvda: the O is from object extensions
<kvda>
Minsky?
<Leonidas>
kvda: yes.
<ZirconiumX>
Objective Categorical Abstract Meta Language
<ZirconiumX>
OCaml is shorter
<kvda>
Powerful name
<Leonidas>
probably more like OBJECTIVE CATEGORICAL ABSTRACT META LANGUAGE :D
<Leonidas>
ok, so I ended up piggybacking on the @install alias. not great but oh well
<kvda>
To test you further, why is the C capitalised? :P
<Leonidas>
kvda: Because Caml is its own language
<kvda>
Ah that makes sense
<ZirconiumX>
Before OCaml there was Caml Light
<Leonidas>
Caml was implemented by Caml Heavy (in Lisp) and Caml Light (in C)
<Leonidas>
And it looks like OCaml was derived from Caml Special Light
<kvda>
Ah i c
<ZirconiumX>
Leonidas: saying Minsky "works at" Jane Street is like saying Xavier Leroy "works on" OCaml
wklm_ has joined #ocaml
<Enjolras>
well a CTO is an employee
<Leonidas>
Is he CTO? I actually never knew his role at JS
<Enjolras>
i assumed. I don't know exactly
<Leonidas>
On linkedin it says "Software Developer" so I'd assume no.
<Leonidas>
Wouldn't want to be CTO either, too much fun cameling
<Enjolras>
ok. Externally he does a lot of things a CTO would do though :)
wklm has quit [Ping timeout: 245 seconds]
wklm_ has quit [Ping timeout: 260 seconds]
wklm has joined #ocaml
jao has joined #ocaml
<reynir>
xavier leroy *does* work on OCaml
<ZirconiumX>
reynir: of course he does, but that's somewhat underestimating his role
zolk3ri has joined #ocaml
<ZirconiumX>
*understating
<reynir>
:)
<discord3>
<Christophe> I've read also that Minsk is CTO
<discord3>
<mseri> Leonidas, to avoid bitrot you can make it build as part of the tests or create a new alias and make it build as part of CI
mfp has joined #ocaml
<rgr[m]>
Enjolras: the config format wars are unwinnable. The reason people want us to use json, while the mirage people want yaml.
<rgr[m]>
Sexp satisfies nobody so it's the best :P
<rgr[m]>
Leonidas: you should consider a workflow when you're using $ jbuilder exec binary.exe
<Armael>
"the mirage people want yaml" really? I thought everybody agreed that it's an insane markup language
<rgr[m]>
thomas and anil like it apparently
<Armael>
I remember anil saying that he wrote bindings for yaml because he had to, but that it is really an insane language
<Armael>
so I'm surprised
<rgr[m]>
$ jbuilder build is entirely equivalent to $ jbuilder build @install so I fear that the only way for you to piggy back on $ jbuilder build is to make the binary installable or add it to the install alias manually. Something like (alias ((name install) (deps (foobar.exe)))
<rgr[m]>
Leonidas: i don't really recommend that however
<rgr[m]>
Armael: they're using it as a config language for irmin at a minimum i think
<Armael>
ok
<rgr[m]>
and yeah, being able to parse yaml from time to time seems useful :)
<reynir>
I think I've heard anil say yaml is insane :)
<rgr[m]>
doesn't mean he hates it :P
wklm has quit [Ping timeout: 264 seconds]
<Drup>
rgr[m]: does that means toml has a chance to win ? :D
<rgr[m]>
Hmm, I don't think so. At least not without complicating it a whole lot
<rgr[m]>
dune relies on quite a bit of nesting for some of its advanced features
<rgr[m]>
What we have seriously considered is allowing people to experiment with this stuff by letting them write in a custom format and then translating things to sexps behind the scenes. Make the errors good with this approach is quite hard however.
<Drup>
rgr[m]: You could allow to dynlink a plugin that provides a parsing function to a fixed location-annotated AST
<Leonidas>
rgr[m]: why would you recommend against it?
<Drup>
Parsing errors are up to the parser, everything else is up to jbuilder's interpretation of the AST
<rgr[m]>
Yup. It could work in theory.
<steenuil>
as long as the AST has source location wouldn't it be good enough?
<Drup>
(I think it's a bad idea, and everyone should use the same syntax, but everyone seem so stingy about syntax ...)
<rgr[m]>
Leonidas: if you publish your package on opam, every user would have to build more than they need to install the package.
<steenuil>
since ReasonML exists and its purpose is to bikeshed over the syntax of the language I figure the build system might as well let you bikeshed over the config language
<Leonidas>
rgr[m]: it is an internal package that is not being published, so if that's the main concern I can live with it :-)
<Leonidas>
I can also make a different alias and add it in the makefile.
<Drup>
steenuil: that's a surprisingly sound argument
<kvda>
steenuil ReasonML seems mostly pointless to me too
<rgr[m]>
okay :) then you can do as you wish with the @install alias.
<Leonidas>
rgr[m]: thanks for your support!
<rgr[m]>
Build systems are the gift that keeps on giving, aren't they?
<Leonidas>
doesn't jbuilder/dune support ocaml? I heard it has an ocaml interface
<Leonidas>
that will solve the syntax problem once and for all!!1!
<rgr[m]>
i look forward to the new ways they will let us bike shed over things :)
<Leonidas>
flux[m]: yeah, it resonated pretty heavily with me
_andre has joined #ocaml
<Leonidas>
for the life of me I can't remember any of its syntax ever
<flux[m]>
I think toml is nice as a configuration format, but the newer library iteration wasn't easier to use than the previous one :/. (it's been a while since I last touched the code that made use of it, though.)
<flux[m]>
Leonidas: it's a problem shared by many formats that are just "plain english text documents" but really aren't 😇
<Drup>
flux[m]: to.ml is not a good library
<Leonidas>
flux[m]: yep *looking-at-markdown*
<flux[m]>
exacly tlike markup. I always need to look up from the iterations of (a)[b] and [a](b) where a or b=url or description.
<Leonidas>
Drup: why?
<Drup>
last time I look, the API was just ... bad
<flux[m]>
funnily matrix interpreted part of that as markup but I guess it doesn't matter to you irc folks
<Leonidas>
flux[m]: yeah, or this clusterfuck you need to copypaste to get a linked CI image badge on github readmes.
<flux[m]>
I'm inclined to agree with drup but I don't recall really why ;-)
<Leonidas>
solution: use protobuf as configuration format *ducks*
<Leonidas>
no more issues with syntax!
<Leonidas>
easily processed with code :p
<flux[m]>
but in protobuf everything is optional, not a good fit to OCaml!
<Leonidas>
still better than msgpack
<Drup>
I considered implementing a yaml parser
<Drup>
I started looking at the specs and the existing implementations
<flux[m]>
you could also choose to use sqlite as your configuration format..
<Drup>
after like an hour, I had a headache and decide that I never wanted to use that shit ever
<Drup>
the spec is insane
<Drup>
Basically, anything is valid yaml, you might as well, write plain text, you'll have the same amount of syntactic garantees
argent_smith1 has joined #ocaml
<Drup>
Saying that you use "yaml" as configuration format is similar to saying you use english as your contract language.
<flux[m]>
must be a nice optimization when you can drop all error checking from the parser. also, think of the solved problem of not needing localized error messages!
<ZirconiumX>
Why not drop all parsing, too?
argent_smith1 has quit [Read error: Connection reset by peer]
argent_smith1 has joined #ocaml
argent_smith has quit [Ping timeout: 240 seconds]
<steenuil>
just dynlink the configuration
dhil has joined #ocaml
argent_smith has joined #ocaml
wklm has joined #ocaml
argent_smith1 has quit [Ping timeout: 240 seconds]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
malina has joined #ocaml
<rgr[m]>
Drup: what's fasionable now is to parse a subset of yaml - the sane part
Haudegen has quit [Remote host closed the connection]
<rgr[m]>
so use the spec as an inspiration
<rgr[m]>
This would be quite a useful library btw, as most people really only use a subset of yaml
<Drup>
Yeah, typical web tooling
<Drup>
post rationalization of sane things by saying "but that small part is midly less insane, and I use only that, so it's fine"
<Drup>
insane things*
<steenuil>
YAML: The Good Parts
argent_smith has quit [Read error: Connection reset by peer]
argent_smith has joined #ocaml
freyr has joined #ocaml
<rgr[m]>
it's not really rationalizing, you're just trying to make use of stuff that already exists or when you don't have a choice.
<rgr[m]>
I'm gonna rewrite docker-compose just because it uses yaml
<freyr>
is there any ppx or magic function for type introspection, in particular I need to retrieve a type's name: something like `'a -> string`
<rgr[m]>
*not
<ZirconiumX>
freyr: what are you trying to achieve?
<ZirconiumX>
Is this lisp-like AST manipulation?
<freyr>
I want to generate docstrings for my api
<freyr>
So I want to include some info about types
<freyr>
I could pass typename as an argument to my api constructor
<freyr>
But it would be convenient to use a macro in this case
<freyr>
or ppx, or compiler magic (like format string)
<Drup>
I stil don't understand what you are trying to do, except it sounds super sketchy. Do you want this function usable in ocaml or in a ppx ?
<freyr>
I need it in ocaml
<Drup>
Why do you need it in OCaml if you are generating docstrings for your own code ?
<freyr>
I have a function of type `(module T) list -> api` where each module has type t and serialization/deserialization functions
<Drup>
Ah, okay, *that* meaning of API
<freyr>
I want to construct a docstring including info about each module's type t
<Drup>
not an OCaml API
<Drup>
add a string to your module T
<freyr>
yeah, sorry for ambiguity
<ZirconiumX>
So T.name or something like it
<Drup>
it's the simplest, the most reliable and the one that'll take the less time
<freyr>
I could, but my modules are quite generic (serializers are regular to_string)
<Drup>
then take a list (name * module T)
<freyr>
so a bit of metaprogramming would be nice
<ZirconiumX>
I don't think metaprogramming for metaprogramming's sake is worth it
<Drup>
In any cases, trying to solve that with some fancy magic introspection is going to 1) take you more time 2) not work
<freyr>
In this case it looks appropriate
<Drup>
OCaml doesn't have reflection, it's not java :p
<freyr>
It could just generate strings in compile tyme
<freyr>
time*
<ZirconiumX>
And it's not C++ either
<freyr>
like lisp
engil has quit [Ping timeout: 268 seconds]
<ZirconiumX>
Sure, if you want to write a PPX
<Drup>
A ppx wouldn't work, actually
engil has joined #ocaml
<freyr>
Why is that?
<Drup>
PPx are syntactic, they don't have access to typing informations
<bartholin>
embed type in a firstclass module containing the type and a dummy value reifying the type
<ZirconiumX>
Even though ocamlp4 is deprecated for a very good reason, is this feasible with it?
<Drup>
ZirconiumX: camlp4 is also syntactic
<ZirconiumX>
Fair enough
<ZirconiumX>
I have never used it, so I was curious
<ZirconiumX>
I think the type signature I'm looking for is roughly: ('a, 'b) result -> ('a -> ('c, 'd) result) -> ('c, [sum of states of 'b and 'd]) result
<ZirconiumX>
It's essentially a bind operator
<reynir>
'b and 'd are not polymorphic variants
<ZirconiumX>
Mmm, I know
<ZirconiumX>
I don't know how to express that as a type restraint
<ZirconiumX>
While still keeping the code generic
<reynir>
I don't know, sorry
<octachron>
The union of types is not a type in OCaml. You should just have 'b = 'd
wklm_ has joined #ocaml
Haudegen has joined #ocaml
<octachron>
Then for polymorphic variants, ``Error `A >>= (fun _ -> Error `B)`` will yield ``b = [> `A|`B]``
wklm has quit [Ping timeout: 240 seconds]
monstasat has quit [Quit: Ухожу я от вас]
wklm_ has quit [Ping timeout: 256 seconds]
wklm has joined #ocaml
<Leonidas>
heh, caml/misc.h compiles _MSC_VER on Linux and -Wundef warns about it
<theblatte>
octachron: woah, TIL how to write ``code with `backticks``, great :D
sgnb has quit [Remote host closed the connection]
dhil has quit [Ping timeout: 245 seconds]
jao has quit [Ping timeout: 265 seconds]
flodin1 has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
ziyourenxiang has joined #ocaml
loli has joined #ocaml
gtrak has joined #ocaml
jbrown has joined #ocaml
mk9 has joined #ocaml
gtrak has quit [Ping timeout: 240 seconds]
pierpal has quit [Ping timeout: 264 seconds]
MercurialAlchemi has quit [Ping timeout: 256 seconds]
dhil has joined #ocaml
spew has joined #ocaml
wklm has quit [Ping timeout: 268 seconds]
Haudegen has quit [Remote host closed the connection]
wklm has joined #ocaml
malina has joined #ocaml
Haudegen has joined #ocaml
gtrak has joined #ocaml
<xvilka>
why Bytes. or String. doesn't have map/iter/fold?
<xvilka>
even in Core/Base library
<Drup>
String has map and iter
<Drup>
(not fold, though)
<xvilka>
apparently it has foldi
<xvilka>
and fold
<xvilka>
the one from Base or Core
<Drup>
not in the stdlib
<xvilka>
yeah, most of people use Base or Core probably
<xvilka>
because of RWO
<Drup>
and OCaml is only used to make Coq, surely
FreeBirdLjj has joined #ocaml
<Drup>
(/s, in case that was unclear)
TheLemonMan has joined #ocaml
halogenandtoast has quit [Ping timeout: 260 seconds]
jao has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
shinnya has quit [Ping timeout: 264 seconds]
pierpal has joined #ocaml
lokydor has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
lokydor has joined #ocaml
weird_error has joined #ocaml
Haudegen has quit [Remote host closed the connection]
dhil has quit [Ping timeout: 256 seconds]
malina has quit [Ping timeout: 265 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
neatonk has quit [Quit: neatonk]
al-damiri has joined #ocaml
neatonk has joined #ocaml
ziyourenxiang has quit [Ping timeout: 276 seconds]
neatonk has quit [Ping timeout: 265 seconds]
freyr has quit [Remote host closed the connection]
Haudegen has joined #ocaml
dakk has quit [Remote host closed the connection]
neatonk has joined #ocaml
dhil has joined #ocaml
dedgrant has joined #ocaml
okeuday_bak has joined #ocaml
<okeuday_bak>
Hi, why does a native compiled ocaml executable open its file while it is executing?
<ZirconiumX>
What do you mean?
<okeuday_bak>
ZirconiumX: An ocaml executable that has been compiled with the native compiler, after it is executing it, while it is executing, I am unable to replace the file on the filesystem and get the error "Text file busy", then when I check lsof it shows it has opened its executable file
<ZirconiumX>
Which OCaml version?
<okeuday_bak>
ZirconiumX: 4.05.0
<ZirconiumX>
I can't reproduce it on 4.06.1, so I was wondering
<okeuday_bak>
ZirconiumX: ok, perhaps it is something that no longer occurs, just was curious about what it was doing, trying to make sure the binary isn't trying to achieve consciousness or something
<ZirconiumX>
If it's trying to achieve consciousness, its executable being open is the least of your worries
<okeuday_bak>
true :-)
mk9 has quit [Quit: mk9]
dhil has quit [Ping timeout: 240 seconds]
halogenandtoast has joined #ocaml
halogenandtoast has quit [Ping timeout: 248 seconds]
fwx has joined #ocaml
neatonk has quit [Ping timeout: 240 seconds]
fwx has quit [Client Quit]
jnavila has joined #ocaml
roygbiv has joined #ocaml
neatonk has joined #ocaml
jrslepak has quit [Remote host closed the connection]
jack5638 has quit [Ping timeout: 264 seconds]
larhat has joined #ocaml
jack5638 has joined #ocaml
rostero_ has joined #ocaml
Jesin has joined #ocaml
roygbiv has quit [Quit: ™]
Haudegen has quit [Remote host closed the connection]
<bartholin>
Is it possible to do something like type t = [> `A | `B]? It does not seem to work.
<octachron>
type 'a t = [> `A | `B ] as 'a
<def`>
or type t = private [> `A | `B ] (* depending on what you are trying to express *)
ygrek has joined #ocaml
<bartholin>
More precisely, what I want to do is like type t = [ `A ] type t' = [ `A | `B ] let foo (x : t') : int = 0 let x : t = `A let _ = foo x
<bartholin>
By contravariance of the domain, it should work, but it don't.
<def`>
let foo (x : [>t']) : int = 0
<def`>
coercion is explicit otherwise, you could write let _ = foo (x : t :> t')
<bartholin>
oh
pierpal has quit [Quit: Poof]
<def`>
(erf I realize it won't work :))
pierpal has joined #ocaml
<bartholin>
let _ = foo (x :> t') works
jnavila has quit [Ping timeout: 240 seconds]
pierpa has joined #ocaml
Haudegen has joined #ocaml
jnavila has joined #ocaml
jnavila has quit [Remote host closed the connection]
<bartholin>
Is there a way to make the explicit coercion somewhat implicit?
<bartholin>
my question is stupid
mengu has joined #ocaml
larhat has quit [Quit: Leaving.]
wklm has quit [Ping timeout: 265 seconds]
<bartholin>
I tried to mix phantom types with subtyping, but I am quite unsatisfied because it is very verbose https://p.teknik.io/KKU1j
<bartholin>
(I have to explicitely cast the argument before calling the function)
Anarchos has joined #ocaml
<Anarchos>
How to debug errors in vim due to merlin execution ?
al-damiri has quit [Quit: Connection closed for inactivity]
<copy`>
`:messages` and `:MerlinDebugEnable`
<octachron>
bartholin, you should probably have `val read: [<readable] file -> string`
<Anarchos>
copy` they appear just when i launch vim
<bartholin>
YES
<bartholin>
thanks octachron
<bartholin>
it werks
<copy`>
Anything interesting in `:messages`?
<Anarchos>
E492: Not an editor command: MerlinDebugEnable
<Anarchos>
copy` u'invalid arguments'
<copy`>
Looks like you can also set `let g:merlin_debug=1` in your vimrc and it'll record everything to view in `MerlinDebugEnable` later
mal``` has joined #ocaml
tormen_ has quit [Ping timeout: 268 seconds]
ZirconiumY has joined #ocaml
<Anarchos>
copy` i have no «MerlinDebugEnable» command
<octachron>
bartholin, note that you can also reverse the variance of 'a file to -'a file and use directly the property `R, `W: having a contravariant phantom type means that you can drop property rather than add them
companion_square has joined #ocaml
tormen has joined #ocaml
mal`` has quit [Quit: Leaving]
ZirconiumX has quit [Ping timeout: 256 seconds]
companion_cube has quit [Ping timeout: 256 seconds]
wklm has joined #ocaml
companion_square is now known as companion_cube
ZirconiumY is now known as ZirconiumX
weird_error has quit [Quit: weird_error]
neatonk has quit [Ping timeout: 245 seconds]
<Anarchos>
copy` i finally manage to get merlin working !
<Anarchos>
copy` i forgot to use separate sharedir and vimdir on my exotic OS
rostero_ has quit [Quit: Connection closed for inactivity]
roygbiv has joined #ocaml
weird_error has joined #ocaml
weird_error has quit [Client Quit]
freyr has joined #ocaml
_andre has quit [Ping timeout: 256 seconds]
_andre has joined #ocaml
gtrak has quit [Ping timeout: 260 seconds]
freyr has quit [Remote host closed the connection]
kamog has joined #ocaml
_andre has quit [Quit: leaving]
Anarchos has quit [Quit: Vision[0.10.2]: i've been blurred!]
CcxWrk has quit [Ping timeout: 256 seconds]
CcxWrk has joined #ocaml
halogenandtoast has joined #ocaml
Haudegen has quit [Remote host closed the connection]
shinnya has joined #ocaml
halogenandtoast has quit [Ping timeout: 268 seconds]
mk9 has joined #ocaml
okeuday_bak has quit [Quit: Leaving.]
kvda has joined #ocaml
caltelt_ has joined #ocaml
mengu has quit [Remote host closed the connection]
pierpal has quit [Ping timeout: 276 seconds]
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
argent_smith has quit [Quit: Leaving.]
kvda has joined #ocaml
roygbiv has quit [Quit: ™]
cbot has joined #ocaml
wklm has quit [Ping timeout: 265 seconds]
kamog has quit [Remote host closed the connection]