companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.05.0 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.05/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 260 seconds]
dreadedfrog has joined #ocaml
shepard has quit [Quit: Page closed]
dreadedfrog has quit [Ping timeout: 260 seconds]
KeyJoo has quit [Ping timeout: 240 seconds]
ziyourenxiang has joined #ocaml
sam_ has joined #ocaml
dreadedfrog has joined #ocaml
sam_ has quit [Ping timeout: 260 seconds]
dreadedfrog has quit [Ping timeout: 240 seconds]
sapristi has quit [Quit: Leaving]
deep-book-gk_ has joined #ocaml
deep-book-gk_ has left #ocaml [#ocaml]
al-damiri has quit [Quit: Connection closed for inactivity]
enterprisey has quit [Ping timeout: 260 seconds]
sh0t has joined #ocaml
dreadedfrog has joined #ocaml
sh0t has quit [Remote host closed the connection]
dreadedfrog has quit [Ping timeout: 268 seconds]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
mbuf has joined #ocaml
<mbuf> OCaml can be used for parallel and concurrent programming?
copy_ has quit [Quit: Connection closed for inactivity]
silver_ has quit [Read error: Connection reset by peer]
deep-book-gk_ has joined #ocaml
jao has quit [Ping timeout: 260 seconds]
deep-book-gk_ has left #ocaml [#ocaml]
pierpa has quit [Quit: Page closed]
mbuf has quit [Quit: Leaving]
mfp__ has quit [Ping timeout: 240 seconds]
sam_ has joined #ocaml
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 240 seconds]
sam_ has quit [Ping timeout: 240 seconds]
swalk has joined #ocaml
malina has quit [Ping timeout: 240 seconds]
sam_ has joined #ocaml
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
jlongster has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rostero has quit [Quit: Connection closed for inactivity]
hoppfull has quit [Remote host closed the connection]
swalk has quit [Quit: swalk]
BitPuffin|osx has quit [Ping timeout: 260 seconds]
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 240 seconds]
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 240 seconds]
_whitelogger has joined #ocaml
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
raphaelss has joined #ocaml
_whitelogger has joined #ocaml
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 240 seconds]
govg has quit [Ping timeout: 240 seconds]
TheLemonMan has joined #ocaml
MercurialAlchemi has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
sam_ has joined #ocaml
dreadedfrog has joined #ocaml
KeyJoo has joined #ocaml
dreadedfrog has quit [Ping timeout: 276 seconds]
<companion_cube> concurrent, yes (using some promise library such as lwt,typically); coarsed-grain parallel computing is doable with multiprocess (e.g. `parmap`)
sam_ has quit [Ping timeout: 240 seconds]
samrat_ has joined #ocaml
govg has joined #ocaml
kakadu has joined #ocaml
Simn has joined #ocaml
kakadu has quit [Ping timeout: 246 seconds]
kakadu has joined #ocaml
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 260 seconds]
dreadedfrog has joined #ocaml
dreadedfrog has quit [Ping timeout: 240 seconds]
ziyourenxiang has quit [Quit: Leaving]
andreas_ has joined #ocaml
dreadedfrog has joined #ocaml
dakk has joined #ocaml
samrat_ has quit [Ping timeout: 240 seconds]
dreadedfrog has quit [Ping timeout: 268 seconds]
peterpp__ has joined #ocaml
mfp__ has joined #ocaml
dreadedfrog has joined #ocaml
slash^ has joined #ocaml
sam_ has joined #ocaml
malina has joined #ocaml
kakadu has quit [Remote host closed the connection]
argent_smith has joined #ocaml
kakadu has joined #ocaml
freusque has joined #ocaml
malina has quit [Ping timeout: 240 seconds]
sam_ has quit [Ping timeout: 260 seconds]
Simn has quit [Read error: Connection reset by peer]
keyjoo_ has joined #ocaml
KeyJoo has quit [Ping timeout: 276 seconds]
dreadedfrog has quit [Ping timeout: 240 seconds]
Simn has joined #ocaml
malina has joined #ocaml
freusque has quit [Quit: WeeChat 1.9]
dakk has quit [Ping timeout: 240 seconds]
dakk has joined #ocaml
sam_ has joined #ocaml
peterpp__ has quit [Ping timeout: 240 seconds]
Algebr has joined #ocaml
fraggle-boate has quit [Remote host closed the connection]
Algebr has quit [Remote host closed the connection]
dreadedfrog has joined #ocaml
fraggle-boate has joined #ocaml
copy_ has joined #ocaml
ziyourenxiang has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
sapristi has joined #ocaml
Algebr has joined #ocaml
swalk has joined #ocaml
keyjoo_ has quit [Ping timeout: 246 seconds]
sam_ has joined #ocaml
<rixed_> Apparently « {x with foo=1} » is typed by looking everywhere for a record with a label named foo; while it must always be of the same type as x, which is known. This result in many disambiguation warnings that are irrelevant as far as I understand. HAs it ever been considered to type «{x with whatever}» with x?
<rixed_> mbuf: OCaml has a giant lock in its runtime. You can therefore fork or create kernel threads in C that would run concurrently, but that's it; for now.
swalk has quit [Quit: swalk]
<mrvn> rixed_: why would it be know: {x with foo=1} says nothing about the type of x
<mrvn> rixed_: typing goes from bottom up afaik
ollehar has joined #ocaml
<mrvn> rixed_: you would have to do multiple passes to first infer all the obvious types and then another pass to infer ambiguities like records to know what x is before you type the record.
struktured has joined #ocaml
malina has quit [Ping timeout: 260 seconds]
kakadu has quit [Remote host closed the connection]
<mrvn> rixed_: you can also create threads in ocaml and if they call a C function that releases the lock (anything that takes time should) other ocaml threads run.
<mrvn> +mbuf:
BitPuffin|osx has joined #ocaml
BitPuffin|osx has quit [Remote host closed the connection]
BitPuffin|osx has joined #ocaml
<rixed_> mrvn: I was assuming that the type of x was known because just after the type of the record is found with the help of that label, then it is checked against the type of x, or so that's what I had pictured after having looked at the sources.
Enamex has joined #ocaml
sam_ has quit [Ping timeout: 255 seconds]
sam_ has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
slash^ has quit [Read error: Connection reset by peer]
slash^ has joined #ocaml
jlongster has joined #ocaml
fraggle_ has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
jlongster has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jeroud has joined #ocaml
sh0t has joined #ocaml
ncthom91 has joined #ocaml
jlongster has joined #ocaml
jlongster has quit [Client Quit]
jlam_ has joined #ocaml
Algebr` has joined #ocaml
jlam has quit [Ping timeout: 255 seconds]
struk|desk has joined #ocaml
Algebr has quit [Ping timeout: 260 seconds]
<lapinot> to complete my rant against rust i started yesterday, i must add that they are re-discovering the usefullness of abstract types, something that is trivial with the ML module system: you may want to define a function that returns an object that only implements a given interface (ie trait, ie typeclass, ie module type) eg an iterator, but currently you can only do it with either (1) "trait objects" that are fat
<lapinot> pointers with dynamic dispatch or (2) `impl SomeTrait` objects which are crypto-absract types (they are reinventing it but it seems overly complicated because it does not fit their (bad) module system)
<lapinot> (crypto in the sense "covertly")
ncthom91 has quit [Quit: Textual IRC Client: www.textualapp.com]
argent_smith has quit [Quit: Leaving.]
struktured has quit [Ping timeout: 255 seconds]
samrat_ has joined #ocaml
peterpp__ has joined #ocaml
dreadedfrog has quit [Ping timeout: 240 seconds]
jmiven has quit [Quit: co'o]
jmiven has joined #ocaml
tane has joined #ocaml
samrat_ has quit [Ping timeout: 260 seconds]
g0d355__ has quit [Ping timeout: 248 seconds]
malina has joined #ocaml
sh0t has quit [Read error: No route to host]
sh0t has joined #ocaml
andreas_ has quit [Quit: Connection closed for inactivity]
dreadedfrog has joined #ocaml
<rixed_> lapinot: how are trait objects fatter than any boxed abstract value?
aniou_ is now known as aniou
sam_ has joined #ocaml
malina has quit [Ping timeout: 260 seconds]
sam_ has quit [Ping timeout: 276 seconds]
_berke_ has joined #ocaml
<peterpp__> are there really no built-in unsigned int types?
peterpp__ is now known as peterppp
<rixed_> peterppp: I use stdint lib for that. I think there is a PR to enlarge the set of build-in integers as well.
<peterppp> rixed_, ah ok, thanks
<rixed_> peterppp: there you goes: https://github.com/ocaml/ocaml/pull/1201
<rixed_> But stdint lib is also fine and has uint8/int to uint128/int128
<rixed_> Not as efficient as having them buildint, though.
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
<peterppp> efficient in terms of what?
<rixed_> all int of size >= 32 are custom blocks so that's less efficient than buildin integers.
<companion_cube> lapinot: otoh rust has traits, and module+traits is still a hot reserach topic
<rixed_> now answering the actual question: both in terms of cpu and ram :)
<companion_cube> you should compare rust's module system to C and C++, not OCaml
<peterppp> seems like a weird omission to me for a programming language not to have unsigned types
<companion_cube> lots of languages don't have unsigned types
<companion_cube> look at python or java
ollehar has left #ocaml [#ocaml]
<hannes> peterppp: as rixed_ pointed out, reading through https://github.com/ocaml/ocaml/pull/1201 migh be insightful. and there may be builtin unsigned numeric types in some future OCaml version :)
<hannes> btw, is there a reason why compare is 'a -> 'a -> int, and doesn't result in a variant type (Smaller | Bigger | Equal)?
<companion_cube> history?
<companion_cube> (it's probably easier for C stubs, also)
Algebr` has quit [Ping timeout: 240 seconds]
jnavila has joined #ocaml
sh0t has quit [Ping timeout: 240 seconds]
malina has joined #ocaml
peterppp has quit [Ping timeout: 240 seconds]
argent_smith has joined #ocaml
peterppp has joined #ocaml
jnavila has quit [Ping timeout: 240 seconds]
<lapinot> rixed_: they are not, it's just that rust has no need to box them afaik (boxing mostly comes from the fact that ocaml has a GC no?)
<companion_cube> it does
<companion_cube> I thought the point of `impl Trait` was that it was statically dispatched, but easier to write
<lapinot> yeah indeed, but it boils down to an abstract type with a trait bound
<lapinot> (something that could probably be more clean in the ocaml's module system)
<lapinot> (i find `impl Trait` ugly because it's where the return type should be but it isn't a type, it's a type type!)
ziyourenxiang has quit [Ping timeout: 240 seconds]
<lapinot> on module+trait: it is, but is the path of modular implicits still not stabilized on the theoretical part? Agda "instance arguments" and i think it's exactely the same as implicit functors
malina has quit [Ping timeout: 240 seconds]
<lapinot> i/has
malc_ has joined #ocaml
<lapinot> s/boils down/is conceptually the same/
peterppp has quit [Ping timeout: 240 seconds]
maarhart__ has joined #ocaml
maarhart__ has quit [Client Quit]
sh0t has joined #ocaml
malina has joined #ocaml
Mercuria1Alchemi has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 260 seconds]
freusque has joined #ocaml
letaris has joined #ocaml
<rixed_> peterppp: BTW, why do you need unsigned ints? Because AFAICT you can manipulate the signed int32 and int64 as if they were unsigned (including: 0xffffffffl is a valid "signed" int32...
swalk has joined #ocaml
swalk has quit [Quit: swalk]
jlongster has joined #ocaml
Anarchos has joined #ocaml
rostero has joined #ocaml
sapristi has quit [Remote host closed the connection]
sapristi has joined #ocaml
sapristi has quit [Remote host closed the connection]
sapristi has joined #ocaml
SpiceGuid has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
jlongster has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<dxtr> I noticed that pgocaml is hashing the queries before it stores them in a Hashtbl (To see which queries are already prepared and not)
<dxtr> Is that really necessary?
<dxtr> I am assuming here that the base library will hash the key already
<dxtr> En second thought; maybe it isn't?
<dxtr> On second even
<dxtr> It seems like it is: "A hash table that is created with ~random:false uses a fixed hash function"
<rixed_> dxtr: Also it seems that name is send to postgres (https://github.com/darioteixeira/pgocaml/blob/cc0208b935190239d3c3bd589285c5a00eb1e37d/src/PGOCaml_generic.ml#L1150). so maybe that's also a way to limit the predictability and length of what's sent?
struktured has joined #ocaml
<dxtr> Oh yeah, didn't think about that part. I don't think it's about limiting the predicability - i just think that's the easiest way to convert the query to a name that postgresql understands
<dxtr> Thanks, rixed_ :)
kakadu has joined #ocaml
kakadu_ has joined #ocaml
kakadu has quit [Ping timeout: 260 seconds]
struktured has quit [Quit: Konversation terminated!]
copy_ has quit [Quit: Connection closed for inactivity]
<mrvn> dxtr: They probably want a different hash than the default. But then you can just use the functor.
<mrvn> rixed_: don't forget that signed overflow is undefined and multiplication and comparison differs.
slash^ has quit [Read error: Connection reset by peer]
sapristi has quit [Read error: Connection reset by peer]
sapristi has joined #ocaml
jlongster has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
dreadedfrog has quit [Ping timeout: 240 seconds]
peterppp has joined #ocaml
malina has quit [Ping timeout: 260 seconds]
BitPuffin has joined #ocaml
SpiceGuid has quit [Quit: ChatZilla 0.9.93 [SeaMonkey 2.46/20161213183751]]
govg has quit [Ping timeout: 240 seconds]
swalk has joined #ocaml
jlongster has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
keyjoo_ has joined #ocaml
kakadu_ has quit [Remote host closed the connection]
kakadu_ has joined #ocaml
FreeBirdLjj has joined #ocaml
infinity0_ has joined #ocaml
infinity0 has quit [Ping timeout: 246 seconds]
infinity0_ has quit [Changing host]
infinity0 has joined #ocaml
malc_ has quit [Remote host closed the connection]
keyjoo_ has quit [Quit: Good luck! Have a nice Day!]
jao has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
\h has quit [Ping timeout: 260 seconds]
jlongster has joined #ocaml
Anarchos has joined #ocaml
swalk has quit [Quit: swalk]
enterprisey has joined #ocaml
sapristi has quit [Remote host closed the connection]
sapristi has joined #ocaml
Anarchos has quit [Quit: Vision[0.10.1]: i've been blurred!]
\h has joined #ocaml
tane has quit [Quit: Leaving]
djellemah__ has joined #ocaml
ollehar2 has joined #ocaml
whoma1 has joined #ocaml
whoman has quit [Ping timeout: 248 seconds]
djellemah_ has quit [Ping timeout: 276 seconds]
ollehar2 has quit [Client Quit]
ollehar1 has joined #ocaml
ollehar1 has quit [Client Quit]
pierpa has joined #ocaml
malina has joined #ocaml
argent_smith has quit [Quit: Leaving.]
Mercuria1Alchemi has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 276 seconds]
jlongster has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
swalk has joined #ocaml
swalk has quit [Quit: swalk]
peterppp has quit [Ping timeout: 240 seconds]
jao has quit [Ping timeout: 260 seconds]
kakadu_ has quit [Remote host closed the connection]
Simn has quit [Quit: Leaving]
jao has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
deep-book-gk_ has joined #ocaml
deep-book-gk_ has left #ocaml [#ocaml]
sapristi has quit [Remote host closed the connection]
sapristi has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 240 seconds]
enterprisey has quit [Read error: Connection reset by peer]
vicfred has joined #ocaml
struk|desk has quit [Quit: Konversation terminated!]
al-damiri has joined #ocaml