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
MrScout has quit [Ping timeout: 245 seconds]
lambdahands has quit [Ping timeout: 252 seconds]
badkins has joined #ocaml
rock_neurotiko has quit [Ping timeout: 252 seconds]
rock_neurotiko has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
madroach has quit [Ping timeout: 264 seconds]
jonludlam has quit [Quit: Coyote finally caught me]
madroach has joined #ocaml
jao has quit [Remote host closed the connection]
<enitiz> fds, its okay
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
deavid has quit [Ping timeout: 265 seconds]
nullcat has joined #ocaml
<pippijn> ousado: it's been rewritten once
<pippijn> ousado: it may need another iteration before it's really good
<pippijn> ousado: since it's using omake, it has some issues with information flowing from subdirectories up to a global information store
<pippijn> ousado: which is required for things like dependency discovery
<pippijn> ousado: which in turn is required for composability
<pippijn> jenga seems primitive
<pippijn> much more primitive than omake
<pippijn> omake has things like "get me everything recursively that this depends on"
lambdahands has joined #ocaml
<pippijn> Drup: combinators
<pippijn> Drup: that's the opposite of what I'm doing in C++
<ousado> pippijn: your performance requirements suggest a build server
<pippijn> ousado: no
<pippijn> absolutely not
<pippijn> I didn't make my requirements clear
<pippijn> I don't care about the initial build
<pippijn> building all my software takes about an hour
<pippijn> I'm fine with that
<pippijn> what I do care about is incremental build time
keen__________33 has joined #ocaml
<ousado> yes
<pippijn> with my build system, that works pretty well, because it has working filesystem notification
<pippijn> (omake doesn't have a working one, only a semi-working one)
<pippijn> incremental builds with my build system are instant
<pippijn> some milliseconds after I change a file, it's getting rebuilt
<pippijn> I need that
<ousado> yes
<pippijn> and I have it
<pippijn> so my build system does scale, but I don't like waiting 30 seconds for the initial build rule generation
keen__________32 has quit [Ping timeout: 245 seconds]
<pippijn> if omake could cache that, it would be great
<pippijn> I cache a bunch of things already, that's why it's 30 seconds instead of 1 minute or more
<pippijn> but I want to cache the generated rules, as well
<ousado> I see
<ousado> that's very good to hear
<pippijn> it should be easily possible
<pippijn> but I found omake's code a bit untransparent
<pippijn> it seems they reimplemented everything
<pippijn> their own hash table, their own marshalling, everything..
<pippijn> so it takes more time to get into the codebase than I was willing to spend
<pippijn> I even failed at figuring out where to fix the filesystem notification
<pippijn> inotify breaks down at symlinks
<pippijn> omake breaks down at symlinks
<pippijn> so I hacked something that monitors the symlink targets and updates the symlink's mtime whenever the target changes
<ousado> OK :)
<pippijn> ousado: where my build system performance becomes a problem is when I add a file
<pippijn> it will have to recompute many many rules (not all, but a lot of them)
<pippijn> because who knows, maybe one of them suddenly matches that new file
<pippijn> and then its dependent rules need to be updated yada yada
<pippijn> and this happens by interpreting omake DSL
<pippijn> which is slow :)
<ousado> I see
<pippijn> so I'm hoping that jenga is much faster at this, given that it's written in a compiled language
<pippijn> so the rule computation should theoretically be much faster
deavid has joined #ocaml
rock_neurotiko has quit [Remote host closed the connection]
rgrinberg has quit [Quit: Leaving.]
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<ousado> pippijn: where is the notification part implemented?
<pippijn> ousado: in remake or something
<pippijn> I think there is a general conceptual problem
<pippijn> in order to find out what dependencies something has, you need to look at the thing
<pippijn> and you start looking at the thing when you process its build description
<pippijn> at that point, you didn't yet process all other build descriptions, so you don't know whether something that this one depends on exists in the source tree
<pippijn> so you need to process the descriptions twice
<pippijn> once to find out what dependencies it has, and what build products you have, and another time to actually generate the rules with the dependencies
<ousado> yes
<pippijn> e.g. cooltool depends on libuseful, and libuseful may be found in the system (pkg-config libuseful, or ocamlfind libuseful), or it might be in the source tree
<pippijn> if it is in the source tree, you need to set up a dependency from all the build rules in cooltool on the build product(s) of libuseful
<pippijn> if it's not, you don't
<pippijn> the way this is solved in obuild (if I remember correctly) is that there is a simple program that scans the entire source tree and generates a global database that can later be queried by rule generators
<pippijn> for things like "is this binary built by us?"
<pippijn> "is this ocaml library built by us?"
<pippijn> "give me all the ocaml libraries built by us"
<pippijn> since I didn't want to replicate the omake parser (and the original is hard to understand), I wrote a simple scanner that skips most of the stuff in the omake files
<pippijn> I don't know if jenga can do this better
<ousado> that's a very interesting problem
enquora has quit [Quit: enquora]
<pippijn> I imagine it would be even harder with jenga
<ousado> and it sounds like it would be a ood job for haxe
<ousado> *good
<pippijn> seeing as it's a pure monadic way of describing it
<pippijn> ousado: why?
<pippijn> what does haxe do that enables this?
jwatzman|work has quit [Quit: jwatzman|work]
<ousado> I mean the system as a whole
<pippijn> the build system?
<ousado> haxe is good for DSLs that end up as compiled code
NSA360 has quit [Quit: Leaving]
<pippijn> do you think haxe would be a good language to write software with high security requirements?
<ousado> hmm haxe as a languae, yes
<pippijn> C++ isn't necessarily the right tool, but if you use the type system in a clever way, you can make extremely safe code
<pippijn> with compile time proven properties of your system
<ousado> well, in that regard there are superior alternatives, I'm afraid
badkins has quit [Remote host closed the connection]
<pippijn> I'm thinking about how to write this in ocaml
<pippijn> in ocaml, you have similar tools to create secure software
lambdahands has quit [Ping timeout: 264 seconds]
<ousado> unless you want to write the compile-time checks yourself
<pippijn> ousado: I already do that with C++
<pippijn> the compile time checks are done with templates
<pippijn> and types
<ousado> in that case haxe is probably the nicest way to do that :)
<pippijn> I generate the reading and writing functions from these types
<ousado> way superior to C++ metaprogramming
<ousado> I'd check out the macro system
BitPuffin has joined #ocaml
<ousado> respect :)
<ousado> sometimes C++ has a strange beauty
<ousado> but I'd never touch it again for these things
<ousado> in haxe you have a nice AST with types, generate new types and code as you need them, have the typed AST of everything that's already typed and compile after you're done generating whatever you need
rock_neurotiko has joined #ocaml
<ousado> errg, the fist AST is the untyped one, not one "with types" :/
<ousado> *first
<ousado> whatever, it's great for generating code, but the security requirements certainly extend to the runtimes as well, I'm not sure there is one that meets your requirements
liweijian has joined #ocaml
<pippijn> ousado: can you operate on typed code?
<ousado> yes
<pippijn> so you can choose?
<pippijn> typed or untyped?
<ousado> sure
<pippijn> nice
<pippijn> I've just installed haxe
<ousado> both
lambdahands has joined #ocaml
<ousado> you have access to the already typed AST while generating code
<ousado> well, not just AST, modules, types and all within
<ousado> and you can take an expression from the untyped AST, type it, and act on it
<ousado> or check whether the type unifies with some other you get from somewhere else
<ousado> and you can generate types as they're requested, there's a "type not found" callback you can act on
<pippijn> not bad
<pippijn> I think haxe may be a good language for my use case
<ousado> the quality of the runtimes might be an issue, as well as the std lib
<pippijn> in what way?
<ousado> well, haxe is quite in flux
<ousado> and it's not exactly as battle-tested as your C++ toolchain
AlexRussia has quit [Ping timeout: 244 seconds]
<ousado> so since you have high security demands, that must be said
<ousado> but even then, it's an incredibly nice code generation tool with type checker
AlexRussia has joined #ocaml
lambdahands has quit [Ping timeout: 246 seconds]
<pippijn> ousado: I will carefully examine the generated code, just as I do with my C++ code
<pippijn> ousado: if I find bugs that can lead to security issues, I will report them
<pippijn> ousado: provided that I find haxe to be the right tool
<pippijn> ousado: how is haxe with event based network IO?
<pippijn> ousado: or anyway network io
Rebelion has joined #ocaml
<ousado> the network API is well, problematic, I use a libevent wrapper
<pippijn> this is a network application
<pippijn> I was going to use Lwt
<ousado> it depends on the taret
<pippijn> in C++, I almost finished an Lwt-like thing
<ousado> *target
<ousado> you can target many languages, so you get what the respective runtime offers. The std networking API is not that good (mostly in terms of error reporting), but platform-native APIs are easy to use
<pippijn> okay
<pippijn> well, given that I've implemented this C++ wrapper for libev
<pippijn> I can do the same for haxe
<pippijn> how's haxe and functional programming?
<pippijn> monads?
<pippijn> how about error handling?
<pippijn> exceptions? partial functions?
<pippijn> I don't use exceptions in this C++ code
<pippijn> only partial functions
<ousado> exceptions, partial functions, ADTs, yes
<pippijn> can I get away with not using exceptions?
<pippijn> or do a lot of standard library things throw?
<pippijn> maybe I don't need to use standard library things, though
<ousado> yes, the std lib does
<pippijn> my library requirements are pretty simple
<ousado> riht
<pippijn> I need an array
<pippijn> that's basically it
<pippijn> array is the only data structure I need
<ousado> well, haxe has that :)
<pippijn> what does array index operator return?
<pippijn> how does haxe do with optimisation? does it do cross-module inlining?
<pippijn> what if I go out of bounds on an array?
<pippijn> exception?
<ousado> yes
<pippijn> ok, so I need to prevent that and return partial
<ousado> haxe as mostly a source-to-source compiler doesn't optimize everything itself
<pippijn> I'll need an array wrapper
<pippijn> okay
<pippijn> that's kind of nice
<pippijn> java can do cross-module inlining
<pippijn> C++ can kind of
<pippijn> alright
<pippijn> I'm convinced to give it a try
<ousado> inlining is supported anyway
<ousado> as long as the sources are available
<pippijn> that's not a problem
<pippijn> it's good that haxe is in flux
<pippijn> so is rust
rgrinberg has joined #ocaml
<pippijn> it means people care about it
<ousado> and macros make all kinds of explicit inlining very easy and flexible
<pippijn> it's alive, and if I find bugs, people will fix it
<ousado> definitely
<pippijn> do you know the compiler code?
<ousado> that'd be great if you'd use it
<pippijn> is it accessible?
<ousado> sure
<pippijn> I mean, readable
<pippijn> nice code?
<ousado> uhm, well
<pippijn> I heard it's ocaml
<pippijn> felix is a nice language with a compiler written in ocaml
<ousado> yes, it's ocaml
<pippijn> pretty bad ocaml
rgrinberg has quit [Client Quit]
<pippijn> and they made a huge mistake at some point
BitPuffin has quit [Ping timeout: 245 seconds]
<pippijn> where they figured "oh let's use dypgen and define all our parser actions in scheme"
<ousado> heh, OK, well, I dunno, it uses exceptions for control flow and has become quite a project, I haven't seen everything
<pippijn> and suddenly compilation became superduper slow
<pippijn> and then they optimised stuff and now it's a mess
<pippijn> ocaml uses exceptions for control flow
<ousado> yes
<pippijn> raise Exit
<pippijn> I don't usually do that :)
<ousado> I don't really like it
<pippijn> it's rarely useful
<pippijn> it's never necessary
<pippijn> and never faster
<pippijn> unless you're intentionally doing non-local jumps
<pippijn> in which case you're an idiot
<ousado> hehe, yes
<ousado> so, I dunno, I can't really comment on the quality of the overall code, but it's always being improved
<pippijn> ok
<pippijn> that's nice
<pippijn> "Furthermore, Haxe supports their generalized variant known as GADT."
<pippijn> interesting
<pippijn> enum Result {
<pippijn> looks like rust
rgrinberg has joined #ocaml
<ousado> and the flexibility of the whole thing suggests many good decisions have been made
<pippijn> made for the same target audience
<pippijn> curly braces and semicolons
<ousado> well.. yeah syntax, and no short lambdas
<pippijn> what do lambdas look like?
lambdahands has joined #ocaml
<ousado> JS-like
<ousado> function(a,b) return blarg(a,b)
shinnya_ has quit [Ping timeout: 265 seconds]
<ousado> there are array comprehensions
<ousado> map comprehensions
<ousado> a few people have implemented monads using the macro system
<ousado> and there's a branch with higher-kinded types somewhere
<ousado> and we're writing a C target now, if you like haxe but decide it needs an outstanding runtime you should come and help us :P
<pippijn> maybe
<pippijn> but if the codebase is a bit ugly
<pippijn> I don't want to touch it
<pippijn> because!
<pippijn> I know that if I touch dirty code, I don't care, and write dirty code
<pippijn> alternatively, I start rewriting everything in clean
<pippijn> I don't think that'd be appreciated
<ousado> uhm, not sure about that :)
<ousado> I'd highly appreciate it
<ousado> the target generators and the core compiler are nicely separated
<ousado> the C generator will to become a clean piece of code
<pippijn> how's editor support?
<pippijn> I don't care a lot about that, though
<pippijn> I've written ocaml code for 2 years without editor support
<ousado> hmm.. well, moderate I'd say
<pippijn> alright
<pippijn> it has xml output
<pippijn> that could be useful to editors
<ousado> there's code completion as a compiler service
<pippijn> I don't really use that
<ousado> and other stuff
kdef has joined #ocaml
<ousado> the compiler is very fast
<pippijn> I'd like to see the type of something under the cursor
<pippijn> I use that a lot in ocaml now
<ousado> type inference isn't comparable to ocamls
<ousado> so often you don't need that :)
<pippijn> why not?
<pippijn> it's like scala?
<ousado> well, it sometimes get's things wrong, it's pretty simple
<pippijn> why doesn't it use HM?
<ousado> top-down inference or something, I don't know the terms
<pippijn> HM is extremely simple to implement
<pippijn> here, have an implementation: https://github.com/pippijn/hm-infer/blob/master/hm/hm.ml
<pippijn> sorry
<pippijn> wrong file
<pippijn> there it is
<ousado> I'm not sure, but I don't usually miss stronger inference
<ousado> I like seeing types
<pippijn> ~250 lines
<pippijn> ok then
<pippijn> at least it's not a step down from C++
q66 has quit [Quit: Leaving]
<ousado> heh, definitely not
<ousado> there are also "abstracts", very useful for low-level stuff
<ousado> basically compile-time only types that you can wrap around other types, define functions, control unification etc.
<pippijn> sounds nice
<ousado> compile-time only as in that they have no physical counterpart, unlike classes, anons, etc.
<pippijn> no separate compilation?
<ousado> uhm, that requires a complicated answer
<ousado> not easily and out of the box
<pippijn> alright, is it embeddable?
darkf has joined #ocaml
<ousado> on some targets that easy and possible, yes
<pippijn> C++?
<pippijn> java probably yes
<pippijn> java is definitely a possible target
<ousado> I'm not sure about the C++ taret
<pippijn> might not be an issue
<pippijn> I can do IPC
badkins has joined #ocaml
scythe- has quit [Ping timeout: 264 seconds]
<pippijn> I need this
<pippijn> not really maintained
<pippijn> may not need to be
<ousado> I have no doubt you'll write one in no time
<pippijn> this page is missing one crucial piece of information
<pippijn> "what filename do I use to store this code in?"
<pippijn> I figured it should be HelloWorld.hx
<pippijn> because Error: Class name must start with uppercase character
<ousado> right
<pippijn> why a C runtime?
<ousado> well, C is not such a bad compilation target
<ousado> and interfacing with C libraries is great from C
<pippijn> interfacing with C++ libraries is absolutely horrible from C
<pippijn> interfacing with C from C++ is pretty ok, most of the time
<pippijn> /usr/include/c++/4.8/exception:37:28: fatal error: bits/c++config.h: No such file or directory
<pippijn> yay
<pippijn> it's not working
<ousado> try with -D HXCPP_M64
<pippijn> oh right
<pippijn> it does -m32
<pippijn> no that's fine, I'll install multilib
<pippijn> that's better
<pippijn> -rwx------ 1 pippijn pippijn 570K Jan 15 02:58 _target/HelloWorld*
<ousado> also, the C code we're generating can be made compilable by c++ compilers easily
<pippijn> nice
<pippijn> I'll use neko for prototyping
<pippijn> it's super fast
<ousado> neko is sweet
<pippijn> I like neko
<ousado> a weird little VM
<pippijn> yeah, I used to hack on it
<pippijn> many years ago
burper has joined #ocaml
burper has left #ocaml [#ocaml]
<ousado> oh wow
<pippijn> ok.. let's see :)
<pippijn> nice
<pippijn> I need.. automatic recompilation on change
* pippijn gets inotify-tools
<ousado> if that becomes too slow you can use the compilation server
<ousado> unlikely to happen, though
<pippijn> unlikely indeed
<pippijn> this is going to be a small project
<pippijn> intentionally so, because it needs to be very auditable and trivially correct
<ousado> haxe --help, --help--defines and --help-metas will be useful
<ousado> with -D dump and -D dump=pretty you can look at the AST, and you can also pretty-print it from within macros
chinglish has joined #ocaml
<ousado> and you have to check out http://api.haxe.org/haxe/macro/Context.html for macros
<pippijn> first, I want my type definition
<pippijn> compare to
<pippijn> ousado: where are the GADTs explained?
rgrinberg has quit [Quit: Leaving.]
araujo has quit [Ping timeout: 244 seconds]
araujo has joined #ocaml
<ousado> I don't know if they've been documented
rgrinberg has joined #ocaml
<pippijn> ok
<pippijn> that's nice
<pippijn> can I put integers in types?
<ousado> yes, but only if you handle them in a @:build macro
<pippijn> ok
<pippijn> not sure it's necessary
MotorMe has joined #ocaml
<pippijn> hm
<pippijn> there are 3 basic types
<ousado> that's the cross-platform subset
<pippijn> hey look
<pippijn> function pop():Null<T>
<pippijn> an option type :)
<pippijn> that's not an exception
<pippijn> very nice
<pippijn> ousado: what is the type of "hello"?
<ousado> String
<pippijn> hm
<pippijn> String is magic?
<ousado> in what sense?
<pippijn> I can't implement String myself
<pippijn> oh wow, charAt returns a String
<ousado> that's another reason for the C target
<pippijn> I really hope that gets optimised to char on java/c++?
nullcat has joined #ocaml
<pippijn> oh I see
<pippijn> C++ and java both support int32, char, etc.
<ousado> yes
<pippijn> is there a type I can use that is supported on both?
<ousado> current'y not
<ousado> that's on some TODO list
<ousado> you can use static extensions for adding operations to strings
<pippijn> hm
<pippijn> so basically you use haxe with a target
scythe- has joined #ocaml
<pippijn> if you want to be portable, you're going to be super inefficient
<ousado> well, haxe targets languages that don't know chars
<pippijn> like what?
<ousado> like JS
<ousado> PHP
<pippijn> those know ints
<pippijn> you can implement them as ints
nullcat has quit [Ping timeout: 246 seconds]
<ousado> sure, I mean primitives of different bit-widths
<pippijn> uint16 = uint32 & 0xffff
<pippijn> js_of_ocaml manages it (not necessarily very efficiently)
<ousado> yes
<ousado> it's on the list
<pippijn> ok
<ousado> you can create a few typedefs
<pippijn> ah there is charCodeAt
<pippijn> that's perhaps a bit better
<pippijn> ousado: what should I use to represent binary data?
<pippijn> Array<Int>?
<ousado> there's haxe.io.Bytes*
<pippijn> oh good
<pippijn> what is this and how do I get rid of it: Compiler error: No valid build file
<pippijn> in vim
<ousado> uhm
<ousado> is that some haxe mode?
<pippijn> yes
<ousado> it might look for a build.hxml in your project directory
<pippijn> ah
<ousado> the hxml is simply the commandline options
<pippijn> good, it works now
<ousado> tox4j, is that about Tox.im ?
<pippijn> yes
<ousado> Tox looks very interesting
<pippijn> it's not very secure :)
<pippijn> I mean, it's reasonably secure
<pippijn> not very anonymous
<pippijn> in fact, on the contrary
<pippijn> it's quite easy to recognise tox traffic
<pippijn> it's easy to see who is talking to whom
<ousado> in terms of IPs?
<ousado> or in terms of some user-specific identifier in clear text?
<pippijn> the former
<pippijn> if someone has their client running for a long time, it's also easy to track them
<pippijn> but I'll take care of that
<ousado> are you a Tox dev?
<pippijn> sort of
<pippijn> I intentioally don't work on the core code
<pippijn> I looked at it once, very briefly
<pippijn> and decided it's so bad, I won't touch it
<pippijn> yes
<pippijn> this irungentoo guy
<pippijn> well, let's not talk about people's ineptness behind their backs :)
<pippijn> he thinks he's linus torvalds
<pippijn> ousado: does Int have a minimum range?
<ousado> it's 43bit on all targets now
<pippijn> like, can it at least represent 32 bits without loss of precision?
<ousado> 32
<pippijn> good
<pippijn> ah
<pippijn> good
<ousado> neko had 31bit ints before
<ousado> fortunately that changed
<ousado> hm, yeah, TCP_server could use some abstraction here and there
<pippijn> that's not the bad part
<pippijn> there is one piece of code that encrypts some stuff and then throws it away
<pippijn> it doesn't send it, it doesn't do anything with it
<pippijn> just encrypts something and then nothing
<pippijn> no explanation
<pippijn> when I saw that, I decided this is bullshit code
<pippijn> another thing is that message ids can, under some circumstances, be equal for two different subsequent messages
<pippijn> which would mess up every client
<pippijn> oh yeah, tcp server
<pippijn> tcp server is trivial to murder
<ousado> all in all that's not some smallish code base
<pippijn> if you finish the tox crypto handshake in tcp mode, and then leave
<pippijn> do this a couple of times, and you'll get the node running a busy loop trying to accept new connections
<pippijn> ousado: it's reasonably small
<pippijn> the core part is a couple thousand lines
<pippijn> 26445 total
<pippijn> that's something I've written in 2 weeks or so
<pippijn> but it's pointlessly bloated
<pippijn> there is a lot of code in core that doesn't belong there
<pippijn> file transfers, text chats, group chats
<pippijn> all of that should be implemented on top of a small, correct core library
<ousado> the networking code look pretty raw
<ousado> all over the place
<pippijn> yes
<pippijn> it is
<ousado> and doesn't use libevent, or libev or libuv or whatever
<pippijn> irungentoo
<pippijn> suffers from NIH
<pippijn> my C++ reimplementation uses libev
jcloud has joined #ocaml
enitiz has quit [Ping timeout: 255 seconds]
<pippijn> ousado: he doesn't want any unnecessary dependencies
<pippijn> and apparently deems event loops unnecessary
<ousado> that un-word is very debatable in some cases :)
<pippijn> I'm not afraid of dependencies
enitiz has joined #ocaml
<pippijn> tox4j uses protobufs, boost, libev where appropriate
<pippijn> I guess he'd make the point that you would need to audit those completely if you want to do a security audit
<pippijn> a proper audit of toxcore would lead nowhere
<pippijn> auditors would just go "oh my god" and bail
<ousado> nowhere as in /dev/null ?
<pippijn> it would yield no useful result
<ousado> yes
<ousado> at least he's using third party crypto
<ousado> heh
<pippijn> yes
<pippijn> nacl
<pippijn> which is peer-reviewed
<pippijn> it's a good library
<pippijn> the function tox uses has a sound mathematical underpinning
<pippijn> the way tox uses it, not so sure yet :)
<pippijn> once every so often, someone with a bit of knowledge in the field comes and looks at the protocol and goes
<pippijn> "this is vulnerable, this is vulnerable, this is vulnerable"
<pippijn> then leaves disappointed
<pippijn> then the tox devs run around with their hair on fire for a while
<pippijn> and then decide to fix the problem in the easiest way possible
<pippijn> generally leading to not a very good solution
<pippijn> such as "oh, we can track users across IPs very easily"
<pippijn> => ephemeral keys
<pippijn> refreshed how often? once per client restart
<ousado> I see
<pippijn> nice for people on mobile phones who tend to never turn it off
<ousado> yeah
<pippijn> or people on desktops
<pippijn> who tend to do the same
<pippijn> it's a no-solution
<pippijn> but it makes people feel good
<pippijn> "look at how secure we are"
<pippijn> we've got EPHEMERAL KEYS
<pippijn> sounds fancy
<pippijn> must be good
<ousado> maybe that explains why I haven't heard about it
<pippijn> DHT traffic follows the pattern: [small 8 bit integer: 0|1|2|4][32 bytes that are always the same][24 byte monotonically increasing number][garbage]
<pippijn> super easy to filter
<pippijn> super easy to track
<pippijn> also, the increasing number sometimes skips numbers
<ousado> 32 bytes that are always the same??
<pippijn> ousado: that's the ephemeral key
<ousado> oh
<pippijn> it's stable across client restarts
<ousado> yeah
<pippijn> so you can identify a user with it
<ousado> what?
<pippijn> well, not directly
<pippijn> but you can track that one for the time the client is running
<pippijn> which may be weeks
<pippijn> that's enough to establish a pattern
<ousado> sure
<pippijn> IPs and approximate geolocations
<pippijn> the 24 byte number that is increasing..
<pippijn> it's the nonce
<ousado> lol, 42 byte number
<ousado> err 24
<ousado> that's a long way to go
<pippijn> you can see how often someone sends a packet somewhere else by subtracting the last nonce from the current one
<pippijn> so you can see how active a user currently is
<ousado> yeah
<pippijn> even without sitting in between the user and its target
<pippijn> just because that user sometimes sends pings to you
<pippijn> or node requests
<pippijn> because you happen to be on the tox network
<ousado> OK then, where's the good part about Tox?
<pippijn> well
<pippijn> all I was saying so far is: it's not anonymous
<pippijn> the good part is: it's secure
<pippijn> I can find out a lot about tox users
<pippijn> I can know who they talk to
<pippijn> and where they are
<pippijn> what they do
<pippijn> but not what they are talking about
<pippijn> because that part is done by NaCl
<pippijn> so basically it's a load of crap built around one sound primitive
<ousado> does it have perfect forward secrecy?
<pippijn> yes
<pippijn> not sure about perfect
<pippijn> but it does have forward secrecy to some extent at least
<pippijn> probably perfect, I haven't looked into it in detail
tnguyen has quit [Quit: tnguyen]
<ousado> did he document that protocol?
<pippijn> yes
<pippijn> poorly
<pippijn> sometimes incorrectl
<pippijn> y
<ousado> I see
<pippijn> I reverse engineered some from wireshark
<pippijn> because I don't want to look at the code
<ousado> heh
<pippijn> for two reasons
<pippijn> 1) it hurts
<pippijn> 2) I want to rewrite it, and I don't want anybody to claim it's a derived work
<ousado> ah right, GPL
<pippijn> yes
<ousado> nice
<pippijn> I support the EFF to get apple to calm its tits
<pippijn> but if they fail, I do want an iOS app at some point
<ousado> I see, interesting
<pippijn> impossible with GPL
<pippijn> because apple hates freedom
<ousado> maybe they've just not heard of it :D
<ousado> alright
<ousado> I have to sleep
<pippijn> good night
<pippijn> me too
<pippijn> it's 4:27
<ousado> I hope you fall in love with haxe
<ousado> see you later
araujo has quit [Ping timeout: 252 seconds]
badkins has quit [Remote host closed the connection]
araujo has joined #ocaml
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
chinglish has joined #ocaml
WraithM has quit [Ping timeout: 244 seconds]
WraithM has joined #ocaml
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
struktured has quit [Read error: Connection reset by peer]
zomg has joined #ocaml
<zomg> Hi there, I needed to install a more recent version of ocaml that's available in ubuntu, so I'm attempting to compile it from source
<zomg> However I'm getting strange errors from gcc in the `make world` step
<zomg> First, bng_amd64.c: Assembler messages:, and then it throws out a whole bunch of errors from it regarding different assembly commands being invalid
<zomg> Any suggestions?
<rgrinberg> zomg: why don't you use opam
<zomg> it gives the same errors
chinglish has joined #ocaml
<zomg> I tried it first thinking "oh nice, they've got a convenient tool" but not quite =)
struktured has joined #ocaml
<rgrinberg> zomg: what distro you're using?
<rgrinberg> avsm has some ppa's here https://launchpad.net/~avsm/+archive/ubuntu/ppa
<rgrinberg> i'm pretty sure there are some rpm's out there as well
<zomg> ubuntu 12 LTS
<zomg> hmm I'll give those a spin, thanks
<rgrinberg> zomg: NP if you don't get it to work definitely keep complaining
<rgrinberg> it's the only way anything gets improved ;D
araujo has quit [Ping timeout: 245 seconds]
<zomg> rgrinberg: cheers got it working from the ppa. Actually already had it set up, but wasn't able to get it working through it, but doing it manually with `dpkg -i ocaml...deb` worked
araujo has joined #ocaml
<zomg> too many bad memories from attempting to sidestep the main apt channels on debian so I always tend to just compile sources :p
marynate has joined #ocaml
lambdahands has quit [Ping timeout: 264 seconds]
AlexRussia has quit [Ping timeout: 244 seconds]
samrat has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
bugabinga has quit [Ping timeout: 264 seconds]
bugabinga has joined #ocaml
alkoma has joined #ocaml
enitiz has quit [Ping timeout: 255 seconds]
badkins has joined #ocaml
myyst has quit [Read error: Connection reset by peer]
hekmek has joined #ocaml
badkins has quit [Ping timeout: 252 seconds]
enitiz has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
vanila has joined #ocaml
MrScout_ has joined #ocaml
lambdahands has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
MrScout_ has quit [Remote host closed the connection]
lambdahands has quit [Ping timeout: 245 seconds]
Arsenik has joined #ocaml
ebzzry has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
ygrek has joined #ocaml
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
Arsenik has quit [Remote host closed the connection]
marynate has quit [Read error: Connection reset by peer]
marynate has joined #ocaml
enitiz has quit [Ping timeout: 276 seconds]
marynate has quit [Max SendQ exceeded]
marynate has joined #ocaml
kdef has quit [Remote host closed the connection]
MercurialAlchemi has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
zwer_f has joined #ocaml
Arahael has quit [Remote host closed the connection]
zwer has quit [Ping timeout: 250 seconds]
zwer_f is now known as zwer
larhat has joined #ocaml
regnat has joined #ocaml
Haudegen has quit [Ping timeout: 245 seconds]
Haudegen has joined #ocaml
hekmek has quit [Quit: Verlassend]
asmanur has joined #ocaml
zomg has left #ocaml [#ocaml]
alkoma` has joined #ocaml
regnat has quit [Quit: ZNC - http://znc.in]
regnat has joined #ocaml
regnat has quit [Client Quit]
alkoma has quit [Ping timeout: 264 seconds]
regnat has joined #ocaml
anemator has joined #ocaml
anemator has quit [Client Quit]
alkoma` has quit [Remote host closed the connection]
liweijian has quit [Remote host closed the connection]
Grayswandir has joined #ocaml
rock_neurotiko has quit [Ping timeout: 276 seconds]
<Grayswandir> Hi everyone. I have a project using Menhir. My build system relies on Oasis and Ocamlbuild. I am trying to split the Menhir .mly file in many files but then Ocamlbuild can't compile the project anymore. Searching the web, I found that I could create an .mlypack file, which I did, but Ocamlbuild doesn't work this way either. Should I modify the myocamlbuild.ml file? Or the _tags file? Is it possible to just modify the _oasis file? A
tautologico has quit [Quit: Connection closed for inactivity]
rgrinberg has quit [Quit: Leaving.]
lambdahands has joined #ocaml
rgrinberg has joined #ocaml
Kakadu has joined #ocaml
rock_neurotiko has joined #ocaml
lambdahands has quit [Ping timeout: 264 seconds]
jbalint has joined #ocaml
wwilly has joined #ocaml
rock_neurotiko has quit [Remote host closed the connection]
marynate has quit [Ping timeout: 252 seconds]
rock_neurotiko has joined #ocaml
ollehar has joined #ocaml
Grayswandir has quit [Quit: Page closed]
contempt has quit [Ping timeout: 245 seconds]
contempt has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
ygrek has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
lordkryss has joined #ocaml
jave has quit [Ping timeout: 245 seconds]
mort___ has joined #ocaml
dsheets has joined #ocaml
Simn has joined #ocaml
davine has joined #ocaml
Haudegen has quit [Ping timeout: 244 seconds]
_andre has joined #ocaml
Haudegen has joined #ocaml
ygrek has quit [Ping timeout: 246 seconds]
lambdahands has joined #ocaml
lambdahands has quit [Ping timeout: 264 seconds]
rock_neurotiko has quit [Ping timeout: 245 seconds]
jonludlam has joined #ocaml
myyst has joined #ocaml
pyon has quit [Ping timeout: 246 seconds]
araujo has quit [Ping timeout: 246 seconds]
Thooms has joined #ocaml
marynate has joined #ocaml
araujo has joined #ocaml
araujo has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
Thooms has joined #ocaml
hnrgrgr has quit [Ping timeout: 244 seconds]
ingsoc has joined #ocaml
bezirg has joined #ocaml
marynate has quit [Read error: Connection reset by peer]
hnrgrgr has joined #ocaml
jcloud has quit [Quit: Connection closed for inactivity]
govg has joined #ocaml
dsheets has quit [Ping timeout: 252 seconds]
unix_beard has quit [Quit: Konversation terminated!]
enitiz has joined #ocaml
lambdahands has joined #ocaml
lambdahands has quit [Ping timeout: 255 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
<Leonidas> A?
<ollehar> B!
_5kg has quit [Ping timeout: 255 seconds]
_5kg has joined #ocaml
frawgie_ has joined #ocaml
psy_ has quit [Ping timeout: 256 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
<cmtptr> 7
<cmtptr> oops
dsheets has joined #ocaml
_5kg has quit [Ping timeout: 245 seconds]
lambdahands has joined #ocaml
<nicoo> ingsoc: What do you think about OCaml, coming from Erlang ? :3 (I'm asking because I hate the Erlang runtime, but love the concurrency model the language provides)
<ingsoc> nicoo: re. Ocaml, much too early to tell but the main plus point I see atm is the static typing without the usual hurdles when from static typing in things like java/c#
Haudegen has quit [Ping timeout: 252 seconds]
<ingsoc> regarding the erlang runtime, well, operationally, the erlang VM is awesome
<ingsoc> I am not sure what it is about the runtime you don't like
<frawgie_> the tracing capabilities in erlang are amazing :)
<ingsoc> concurrency is like falling downhill
lambdahands has quit [Ping timeout: 240 seconds]
<frawgie_> hands down the most pleasent language to debug
<ingsoc> just awesome
<ingsoc> reliability
<ingsoc> awesome
<ingsoc> The sequential language of erlang is easy to grok, getting your head around the libraries and how to create production apps and OTP etc. is not so easy
psy_ has joined #ocaml
<ingsoc> and the tooling is not as advanced as more mainstream stuff but I guess its the same with Ocaml
Haudegen has joined #ocaml
<frawgie_> ingsoc: what's your experience with erlang btw? (i joined in the middle of the discussion)
<ingsoc> Ocaml still looks pretty foreign to me atm but it seems to be less foreign and easier on the eyes than erlang was when I first started using it
<ingsoc> frawgie_: """nicoo: ingsoc: What do you think about OCaml, coming from Erlang ? :3 (I'm asking because I hate the Erlang runtime, but love the concurrency model the language provides)"""
<ingsoc> it was just in response to that
<ingsoc> and erlang is my main server side language
<frawgie_> ah :)
<ingsoc> Ocaml seems like the core language is more elegant and it is obviously faster
<frawgie_> indeed, and a much better module system
<ingsoc> I would intend to drive it from erlang though
govg has quit [Ping timeout: 264 seconds]
<ingsoc> (erlang handles concurrency) and uses ocaml as a kind of driver for more spu intensive stuff
<ingsoc> cpu*
<ingsoc> frawgie_: you an erlanger too then ?
<frawgie_> yep, on and off for years since i'm @ Ericsson
<ingsoc> ah ok cool
<ingsoc> so Ocaml is used too then internally
<ingsoc> do you use it out of choice or just cos you have to
<ingsoc> :)
<ingsoc> (Ocaml)
<frawgie_> probably somewhere, but in my case I'm more interested in it off-work :)
<def`> out of choice :)
<frawgie_> people would probably throw bricks after me if i introduced another language in the code base :)
<ingsoc> ha
oscar_toro has joined #ocaml
<def`> (c for lowlevel stuff, ocaml for everything the size of a unix process… I don't have to deal with distributed and concurrent stuff at the moment, but I would consider something else than OCaml (… Erlang probably)).
<frawgie_> how is the multi core support coming along in ocaml? i read something about it a few weeks ago that they agreed on how to do it?
<frawgie_> (maybe it was an old article, can't remember)
<def`> "agreed" is maybe a bit strong, it looks nice and is going well, but you shouldn't expect a release in 6 month :'
<flux> cool, so a release has been promised at 2015-07-17! oh am I reading too much into that :)
badkins has joined #ocaml
<def`> :D
<frawgie_> :P
<flux> but I wish there were some updates. for external people it does look like the project has folded, just like the previous atttempts ;-).
<ingsoc> Is part of the reason why ocaml is so fast sequentially because of this "thread lock" and so going multicore will mean a performance loss for certain thigns
<Drup> ousado: you mean that a macro can output typed ast ?
<frawgie_> ingsoc: doesnt python have the same type of lock?
<ingsoc> yeah I had kind of thought from an outsider looking in that ocaml won;t have multicore any time soon
<ingsoc> yes it does
<ingsoc> the GIL
<frawgie_> and python ain't fast so that can't be it ^^
<ingsoc> (Global Interpreted Lock) it was put in place to simplify a lot of the execution internals
<Drup> actually, that's one of the reason
<flux> afaiu the first problem is that ocaml allocates a lot. so that needs to perform good in threaded environment.
<flux> the second problem, actually collecting garbage, I wonder if the goal was to not stop the world?
<ingsoc> I read Ocaml has incremental GC
<Drup> the main reason for the GIL is that implementing a concurent generational garbage collector is a nightmare and nobody wants to do it.
<ingsoc> to avoid potentially long pauses (relatively long) like say on teh JVM
<flux> I wonder if you could get working ocaml for multicore 'almost now' by just stopping the world for GC
<Drup> flux: and completely trash the sequential performances :D
<flux> or what other unsolved problems there are.. standard libraries were made re-entrant already, weren't they?
<flux> drup, yes :)
<whitequark> flux: C API is not reentrant
<ousado> Drup: not directly, but you can access the typed AST of previously generated types/expressions
<frawgie_> flux: I read something about that there is a lot of global state that needs to be resolved
<flux> so that would indeed waste a lot of performance
<frawgie_> flux: let me see if i can find the article :)
<Drup> ousado: and modify it ?
<flux> but were oc4mc folks doing better than that?
<flux> it sort of sounds too good to be true if each thread can semi-autonomously do gc ;-)
<flux> 'practical' solution would be stop the world but then have a multithreaded gc
<ousado> Drup: you can also generate new types/expressions based on that result, but everything you generate still has to be processed by the typer (again)
<Drup> ok
<Drup> that's reasonable.
<ousado> you can get an untyped representation from a typed AST
<Drup> I would like to have that for ocaml but the typechecker has some much state in it ...
<Drup> you can't simply "call the typer on an expression and get the typed expression back"
<ousado> well, you get the type
<Drup> I meant, you can't in ocaml :)
<ousado> yeah
<ousado> that's very unfortunate
<Drup> ousado: are names resolved in the ast ?
<ousado> in the untyped AST?
<Drup> yes
<ousado> not yet
<Drup> ok
<Drup> so it's mostly the same as OCaml
<ousado> there are easy ways to resolve all names that are valid in some context, though
<ousado> s/all/specific
<Drup> ?
<Drup> define "easy ways"
<ousado> e.g. if you want to resolve some not fully qualified type, you can type the expression and get the fully qualified type, which you can convert back into untyped representation
<Drup> so yes, by typing
<Drup> not my definition of "easy" ;)
<ousado> well, it's calling a function
<Drup> sure, but the function is doing complicated things
<ousado> yes
<ousado> fortunately it's all pretty fast
<ousado> and there are many tools in the macro std API to help with such things
<frawgie_> a little off topic, but this is how it feels to choose between OCaml and Haskell, https://www.youtube.com/watch?v=ZJ_LZ8luBsQ :/
<ousado> :D
_5kg has joined #ocaml
etehtsea has joined #ocaml
etehtsea has quit [Max SendQ exceeded]
enitiz has quit [Ping timeout: 265 seconds]
oscar_toro has quit [Ping timeout: 265 seconds]
oscar_toro has joined #ocaml
<frawgie_> hmm, speaking of multicore again. someone wanted to check the progres and there is in fact a multicore branch @ ocamllabs ocaml repo :)
<frawgie_> err, seems to be dead :/
Gertm has left #ocaml ["Leaving"]
<mahem1_> Hey all, just installed missinglib package with opam on ubuntu and get the error: Error: Reference to undefined global `Unix'
<mahem1_> Can I assume that this is just an outdated package? (Last real build was around 2005 I think)
<adrien_znc> missinglib is a bit old I think
<adrien_znc> you're getting that during the build?
<mahem1_> Sorry, I am getting that when using #require in the toplevel.
<Leonidas> mahem1_: that sounds like META file is incorrect, because Unix should get loaded
BitPuffin has joined #ocaml
ggole has joined #ocaml
<Leonidas> requires="str unix" maybe?
<Leonidas> missinglib_0.4.1 but version="0.0.1" -.-
<Leonidas> that could be fixed too, not that it matters
<mahem1_> How would I modify is I was installing it with opam? Download and install from opam locally?
<mahem1_> I really just want to use the ConfigParser module for parseing .ini type files. But I guess building for just that would be complex.
<Leonidas> mahem1_: you can patch the META file in the installed folder
<Leonidas> that looks slightly less incorrect
AlexRussia has joined #ocaml
<mahem1_> Leonidas: Cool, patching it with unix added worked. Thanks man.
<Leonidas> mahem1_: maybe it would make sense to patch that in OPAM
enitiz has joined #ocaml
rock_neurotiko has joined #ocaml
enitiz has quit [Read error: Connection reset by peer]
enitiz has joined #ocaml
<mahem1_> Leonidas: You mean push that pack back upstream?
<MercurialAlchemi> mahem1_: alternatively, you could use toml, if you're not tied to straight ini format
<mahem1_> MercurialAlchemi: Cool, that works too. Close enough to ini format to auto convert
araujo has quit [Ping timeout: 272 seconds]
<MercurialAlchemi> the current release is not quite feature-complete (no array of tables), but the next release will have it
wwilly has quit [Ping timeout: 246 seconds]
marynate has joined #ocaml
marynate has quit [Read error: Connection reset by peer]
demonimin_ has joined #ocaml
demonimin has quit [Ping timeout: 245 seconds]
wwilly has joined #ocaml
Hannibal_Smith has joined #ocaml
<Leonidas> mahem1_: well, at least add the patch to opam-repository
<Leonidas> currently working on this, but the patches do not seem to apply
MotorMe has quit [Ping timeout: 272 seconds]
bezirg has left #ocaml [#ocaml]
* mahem1_ is confused.
samrat has joined #ocaml
araujo has joined #ocaml
araujo has quit [Changing host]
araujo has joined #ocaml
fds has quit [Ping timeout: 265 seconds]
<Leonidas> mahem1_: yep
Hannibal_Smith has quit [Quit: Leaving]
Hannibal_Smith has joined #ocaml
araujo has quit [Ping timeout: 255 seconds]
abel_ has joined #ocaml
<mahem1_> Leonidas: Goodstuff.
<abel_> hi all ,i have just finish my very first "program" in caml, it's juste something who try to create a directory in the home directory of a user if it don't already exist. As i'm very new to this language, it will be very kind of any of you can spend a few min on it and tell me if there is a better way to do the thgin the prog is there :http://pastebin.com/t56FynQM
<ollehar> abel_: have `exit` command in "top" instead of in different places
<ollehar> let error propagate up in the stack, and at top level make decision if to exit
<ollehar> *call stack
<ollehar> maybe?
AlexRussia has quit [Ping timeout: 264 seconds]
<ollehar> why not use exceptions?
<ollehar> also, comment code according to ocamldoc
NSA360 has joined #ocaml
<Leonidas> mahem1_: will need to test it, because it seems a bit broken
<Leonidas> or maybe pining with patches is broken
<abel_> ok i have juste test it a few min ago but by pasting it in utop i'm gona compile it right know to see what is the trouble and i'm back ... and <ollehar> how can i exit in "top" ?
shinnya_ has joined #ocaml
<Drup> ollehar: stylistic points : you don't need parentheses in applications "f x", not "f(x)". Remove all the ";;" and add "let _ = dir_exist ..." at the end.
anemator has joined #ocaml
<Drup> not ollehar, abel_, sorry
araujo has joined #ocaml
slash^ has joined #ocaml
anemator has quit [Client Quit]
araujo has quit [Changing host]
araujo has joined #ocaml
NSA360 has quit [Quit: Leaving]
govg has joined #ocaml
frankjeager has joined #ocaml
larhat has quit [Quit: Leaving.]
larhat has joined #ocaml
larhat has quit [Client Quit]
larhat has joined #ocaml
larhat has quit [Client Quit]
ollehar has quit [Ping timeout: 276 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
lambdahands has joined #ocaml
samrat has joined #ocaml
govg has quit [Ping timeout: 256 seconds]
struk has quit [Ping timeout: 245 seconds]
struktured has quit [Ping timeout: 245 seconds]
pyon has joined #ocaml
struk has joined #ocaml
struk has quit [Read error: Connection reset by peer]
<tobiasBora> Hello !
<tobiasBora> I would like to know if it's possible with Lwt to wait for a givent number of second AND THEN GAVE BACK A UNIT RESULT
<tobiasBora> I tried something like Lwt_main.run (fun () -> Js_lwt.sleep 1.)
<tobiasBora> however Lwt_main doesn't exists in js_of_ocaml, so I can't use it...
<tobiasBora> (I want to run it with js_of_ocaml=
<tobiasBora> *)
enitiz has quit [Ping timeout: 272 seconds]
<MercurialAlchemi> you want a timeout?
<tobiasBora> MercurialAlchemi: Hum... The problem is that using timeout is that I need to run another function after and my code isn't really nice to deal with with this method.
<tobiasBora> I would like to create a function "update_view" that is called by the main code several times.
<tobiasBora> However if I don't wait the view is updated to fast and I can't see anything. That's why I would like that when the update_view function is called the program waits for 1 second
<tobiasBora> I tried to find an idea to write a js_sleep : unit -> unit function, but I don't see how to do that only with timeout and/or Lwt.
marynate has joined #ocaml
<MercurialAlchemi> I'm not familiar with js_of_ocaml, but aren't you always in Lwt anyway?
<MercurialAlchemi> why can't you just use Lwt_js.sleep ?
marynate has quit [Ping timeout: 244 seconds]
marynate has joined #ocaml
darkf has quit [Quit: Leaving]
<tobiasBora> MercurialAlchemi: This function is of type val sleep : float -> unit Lwt.t, and if I use it I need to change my whole code by using >>= to deal with a Lwt code
<tobiasBora> That's why I'd like to create a function val js_sleep : float -> unit
psy_ has quit [Remote host closed the connection]
<flux> I would hypothesize that it's not possible :-o
<flux> well, other than calling the direct javascript sleep function
<tobiasBora> Too bad...
<flux> and halting everything in the tab
<MercurialAlchemi> all js_of_ocaml examples that I can see use standard Lwt constructs (eg, Lwt.return)
<tobiasBora> flux: Well their isn't any javascript sleep function ^^
<flux> oh, right
<flux> well when they do neet do it, they just busyloop until the time is enough ;-)
<tobiasBora> Then I'll do that..
<tobiasBora> Thank you !
<flux> why do you need that one second sleep anyway? for debugging?
<MercurialAlchemi> flux: well, there is Lwt_js.sleep :)
<flux> mercurialalchemi, but it's not -> unit and it's pointless to create a new thread for running the sleep ;)
<tobiasBora> No, my code solve a labyrinthe and it sleep 1s between each solve.
<flux> well, using Lwt_js.sleep would be much nicer
<flux> is it too much work to make it work with lwt?
<MercurialAlchemi> flux: yes, of course
<flux> doesn't seem like the part where it sleeps between the solves shouldn't be too deep in the app
<flux> s/shouldn't/should/
<tobiasBora> Well I can (my code isn't huge), but it's a bit annoying to rewrite a whole code for that ^^ But anyway I will know that for the next time !
<tobiasBora> A question :
<tobiasBora> is the syntax lwt myvar = ...DDD"
<tobiasBora> *is the syntax "lwt myvar = ..." is going to be kept or removed with the arrival of ppx ?
<MercurialAlchemi> tobiasBora: ppx is already here
<flux> I believe it must be removed
<MercurialAlchemi> let%lwt
<tobiasBora> Ok thank you
<tobiasBora> And do you know if there is anything to add to accept the let%lwt syntax ?
<MercurialAlchemi> (you'll want the latest merlin if you use the ppx extension)
slash^ has quit [Read error: Connection reset by peer]
<MercurialAlchemi> lwt.ppx
rgrinberg has joined #ocaml
<tobiasBora> ok thank you
<MercurialAlchemi> I've been in your situation (moving from non-lwt code to lwt), it's a bit annoying, but well
<MercurialAlchemi> it's not the end of the world when your compiler is kind enough to insult you when your code doesn't work
jao has joined #ocaml
<tobiasBora> Hopefully Ocaml like insulting me :D
<MercurialAlchemi> it likes insulting people
<MercurialAlchemi> this must make OCaml users masochists
<MercurialAlchemi> since they seem to enjoy the abuse
clrnd has joined #ocaml
slash^ has joined #ocaml
<tobiasBora> Ahah ^^
<tobiasBora> In try%lwt
<tobiasBora> ...
<tobiasBora> with
<tobiasBora> ***
<tobiasBora> Sorry
<tobiasBora> in
marynate has quit [Quit: Leaving]
<tobiasBora> Should I use "match%lwt x with Some x -> x" or "match%lwt x with Some x -> Lwt.return x" ?
<def`> Lwt.return I guess
hekmek has joined #ocaml
<tobiasBora> Ok thank you
demonimin_ has quit [Read error: Connection reset by peer]
flux has quit [Ping timeout: 245 seconds]
flxx has quit [Ping timeout: 265 seconds]
slash^1 has joined #ocaml
demonimin has joined #ocaml
slash^ has quit [Ping timeout: 272 seconds]
<tobiasBora> I can't manage to compile the let%lwt extension, I've an error :
<tobiasBora> Parse error: "module" or "open" or [opt_rec] expected after "let" (in [expr])
<tobiasBora> I tryied lot's of syntax like eliomc -ppx lwt.ppx -package lwt.ppx -c TBLabyrinthe.eliom
araujo has quit [Ping timeout: 276 seconds]
<MercurialAlchemi> hmm
<def`> tobiasBora: mixing camlp4 and ppx is not allowed, I think
flux has joined #ocaml
<tobiasBora> grrrr
<MercurialAlchemi> true, I haven't tried ppx with js_of_ocaml
<MercurialAlchemi> works fine with standard ocaml projects
<tobiasBora> And js_of_ocaml always use ppx ?
<tobiasBora> *camlp4
araujo has joined #ocaml
flxx has joined #ocaml
olauzon has joined #ocaml
wwilly has left #ocaml ["Leaving"]
chinglish has joined #ocaml
lambdahands has quit [Ping timeout: 265 seconds]
slash^1 has quit [Read error: Connection reset by peer]
slash^ has joined #ocaml
lambdahands has joined #ocaml
martintrojer has quit [Ping timeout: 256 seconds]
slash^ has quit [Read error: Connection reset by peer]
govg has joined #ocaml
jbrown has quit [Remote host closed the connection]
slash^ has joined #ocaml
mort___ has quit [Quit: Leaving.]
martintrojer has joined #ocaml
<Drup> tobiasBora: the correct answer is to lwt-ise your code
<Drup> and you should do that
<tobiasBora> That's what I did.
<tobiasBora> But I have strange with that :
<Drup> don't do a busy loop and use lwt_js.sleep.
lambdahands has quit [Ping timeout: 265 seconds]
<MercurialAlchemi> tobiasBora: I guess so, it's a non-optional dependency in opam
<tobiasBora> Drup: For example when an error occur, The error is displayed, but text continues to be written during several seconds
<MercurialAlchemi> (for camlp4)
jbrown has joined #ocaml
<MercurialAlchemi> it's a bit unfortunate...
<Drup> yes, jsoo's ppx is not there yet
<Drup> next ocaml version
<Drup> I need another piece of syntax =')
<tobiasBora> Which is ?
<Drup> ##
jwatzman|work has joined #ocaml
<tobiasBora> It's camlp4 for the moment ?
vfoley has quit [Remote host closed the connection]
<Drup> yes
q66 has joined #ocaml
BitPuffin has quit [Ping timeout: 276 seconds]
ygrek has joined #ocaml
hekmek has quit [Quit: Verlassend]
WraithM_ has joined #ocaml
jonludlam has quit [Ping timeout: 265 seconds]
MercurialAlchemi has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
ygrek_ has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
ygrek_ has quit [Remote host closed the connection]
contempt has quit [Remote host closed the connection]
dsheets has quit [Ping timeout: 256 seconds]
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
sh1ken has joined #ocaml
MrScout has joined #ocaml
unix_beard has joined #ocaml
contempt has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
rock_neurotiko has quit [Ping timeout: 265 seconds]
rock_neurotiko has joined #ocaml
mearnsh has quit [Ping timeout: 272 seconds]
mearnsh has joined #ocaml
contempt has quit [Remote host closed the connection]
<tobiasBora> I can't manage to solve this error : http://pastebin.com/HiwPgJKn
<tobiasBora> step:React.step -> case -> unit is not compatible with type case -> unit
<tobiasBora> Bad copy sorry :
<tobiasBora> Type ?step:React.step -> case -> unit is not compatible with type case -> unit
<tobiasBora> ?step is optionnal no ?
contempt has joined #ocaml
jao has quit [Ping timeout: 245 seconds]
<companion_cube> it is if you apply the function
<companion_cube> but the type isn't equivalent to case -> unit
<companion_cube> here, "f" isn't the same as "fun c -> f c"
clrnd has left #ocaml [#ocaml]
<tobiasBora> Hum indeed you are right.
<tobiasBora> Thank you !
MrScout has quit [Remote host closed the connection]
_andre has quit [Quit: leaving]
lambdahands has joined #ocaml
MrScout has joined #ocaml
MrScout has quit [Remote host closed the connection]
MrScout has joined #ocaml
AlexRussia has joined #ocaml
psy_ has joined #ocaml
samrat has quit [Ping timeout: 245 seconds]
samrat has joined #ocaml
Haudegen has quit [Ping timeout: 255 seconds]
Haudegen has joined #ocaml
Snark has quit [Quit: leaving]
<tobiasBora> Is there a way to force an update of an a react signal
<tobiasBora> ?
<tobiasBora> Because my signals come from a record with an array in it, and when I modify this array s isn't updated
<tobiasBora> I tried to do "let v = let v = S.value signal in
<tobiasBora> *
<Drup> I advise you to read the tutorial in the documentation of React
<tobiasBora> let v = S.value signal in v.border.(0) <- true; set v" but it doesn't update the signal
<Drup> ugh, you are mutating inside the signal
<Drup> don't do that.
<tobiasBora> What do you mean ?
<Drup> you are taking the value of the signal
<Drup> and mutating it
<tobiasBora> Well I don't see how to use another way when I deal with array
<Drup> here, you would need to copy it
<tobiasBora> I could make a copy of the array but it's ugly...
<Drup> the right answer is not to put arrays into signals :D
<tobiasBora> What ???
<tobiasBora> Uhm... But I need an array, I can't put a list it has nonsense in my problem.
<Drup> the signals are not going to work as expected if you mutate things behind React's back.
<Drup> so, reformulate your program differently.
<def`> tobiasBora: use fake equality always returning wrong :' (bad idea, will break)
<def`> false*
<Drup> don't give him bad ideas :<
<tobiasBora> I tried :P
<tobiasBora> set {v with visited = v.visited};
rgrinberg has quit [Quit: Leaving.]
<tobiasBora> But it's not enough...
<tobiasBora> sometimes he see it's the same one
<tobiasBora> Is it the trace function that is supposed to do so ? I'm not sure to understand it's goal
slash^ has quit [Read error: Connection reset by peer]
NSA360 has joined #ocaml
moei has quit [Quit: Leaving...]
<tobiasBora> changes ?
<tobiasBora> ohhh
<tobiasBora> I didn't saw that create take an eq function !
<tobiasBora> So one good point : it works under chronomium (like the version without React), but under firefox (like with the version without react) it's less functionnal, sometimes some borders of the table change their shape, like that...
jonludlam has joined #ocaml
<tobiasBora> But the problem comes from the css " /* border-collapse:collapse; */
<tobiasBora> seems to have some problems when the two borders aren't equal
NSA360 has quit [Quit: Leaving]
<adrien> CSS troubles? you can ask Drup about that too!
hhugo has joined #ocaml
<MercurialAlchemi> I suggest a bonefire, personally
<Drup> adrien: ಠ_ಠ
<seliopou> think i found a bug in the ocaml compiler
<seliopou> Fatal error: exception Assert_failure("typing/printtyp.ml", 589, 12)
<seliopou> o_O
ingsoc has quit [Quit: Leaving.]
<def`> seliopou: which version ?
<seliopou> 4.01.0
<seliopou> what's dev right now?
<Drup> last is 4.02.1
<seliopou> ok i gotta build it then i'll try on that
<def`> which features are you using? objects? with or without short-path?
<adrien> Drup: I love you too!
<seliopou> def`: not using objects, nor any other crazy features I don't think
<seliopou> well, I am doing one weird thing I suppose:
<seliopou> type 'a t = 'a
<seliopou> but I've been compiling code that just fine until just now
<seliopou> yeah still in 4.02.1
<seliopou> Fatal error: exception File "typing/printtyp.ml", line 583, characters 12-18: Assertion failed
<def`> yep, that's fine
Arsenik has joined #ocaml
mengu has joined #ocaml
mengu has quit [Changing host]
mengu has joined #ocaml
<seliopou> hmmm this looks like a similar error
<seliopou> ashish where you at?
tnguyen has joined #ocaml
struk has joined #ocaml
ygrek has joined #ocaml
ggole has quit []
tane has joined #ocaml
pdewacht has quit [Ping timeout: 245 seconds]
MrScout_ has joined #ocaml
pyon has quit [Ping timeout: 240 seconds]
<seliopou> ok so both in my instance of the bug and the one report in that mailing list post, we're both doing `type 'a t = a`
Haudegen has quit [Ping timeout: 246 seconds]
MrScout has quit [Ping timeout: 245 seconds]
Haudegen has joined #ocaml
MrScout_ has quit [Ping timeout: 245 seconds]
MrScout has joined #ocaml
Arsenik has quit [Remote host closed the connection]
Arsenik has joined #ocaml
Haudegen has quit [Ping timeout: 244 seconds]
Thooms has joined #ocaml
Haudegen has joined #ocaml
rgrinberg has joined #ocaml
oscar_toro has quit [Ping timeout: 276 seconds]
lordkryss has joined #ocaml
vanila has quit [Remote host closed the connection]
olauzon_ has joined #ocaml
davine has quit [Ping timeout: 252 seconds]
moei has joined #ocaml
olauzon has quit [Ping timeout: 244 seconds]
olauzon_ is now known as olauzon
ygrek has quit [Ping timeout: 245 seconds]
arj has joined #ocaml
pyon has joined #ocaml
Submarine has quit [Remote host closed the connection]
samrat has quit [Quit: Computer has gone to sleep.]
davine has joined #ocaml
mengu has quit [Remote host closed the connection]
enitiz has joined #ocaml
<j0sh> with a clean and fully updated 4.02.1 opam switch, is there a reason why lwt.2.4.7 isn't being selected? it keeps trying to install 2.4.5 by default, won't recognize 2.4.7
<companion_cube> do you have aspcud?
<j0sh> companion_cube: dont think so... but i figured it out, looks like the base-no-ppx dependency is only good for ocaml < 4.02.0
<companion_cube> well it works with ppx too
<companion_cube> but it's probably because constraints are too complicated for the default solver
Hannibal_Smith has quit [Quit: Leaving]
<j0sh> companion_cube: installing aspcud worked, thanks
hhugo has quit [Quit: Leaving.]
pyon has quit [Quit: stupid emacs]
pyon has joined #ocaml
hhugo has joined #ocaml
Arsenik has quit [Remote host closed the connection]
MrScout has quit [Remote host closed the connection]
MrScout has joined #ocaml
<dmbaturin> Is it possible to get an abitrary socket option with Unix.getsockopt is it's not in the socket_bool_option type?
<companion_cube> I don't know, but you might want to look at extunix
<dmbaturin> companion_cube: Is it community lib?
<dmbaturin> That is, something not in the standard library?
<whitequark> yes
<companion_cube> it's on opam
<dmbaturin> Thanks, will have a look.
rgrinberg1 has joined #ocaml
lu324__ has joined #ocaml
ousado has quit [Remote host closed the connection]
cojy has quit [Ping timeout: 244 seconds]
mal`` has quit [Ping timeout: 244 seconds]
Antoine60 has quit [Ping timeout: 244 seconds]
jlouis has quit [Ping timeout: 244 seconds]
cthuluh has quit [Ping timeout: 244 seconds]
johnelse has quit [Ping timeout: 244 seconds]
thizanne has quit [Ping timeout: 244 seconds]
sgnb`` has quit [Ping timeout: 244 seconds]
rgrinberg1 has quit [*.net *.split]
lambdahands has quit [*.net *.split]
scythe- has quit [*.net *.split]
rfv has quit [*.net *.split]
mehdi_ has quit [*.net *.split]
jeroud has quit [*.net *.split]
jpdeplaix has quit [*.net *.split]
bjorkintosh has quit [*.net *.split]
voglerr1 has quit [*.net *.split]
seliopou has quit [*.net *.split]
dmiles_afk has quit [*.net *.split]
lnich has quit [*.net *.split]
kerneis_ has quit [*.net *.split]
vbmithr has quit [*.net *.split]
adrien_znc has quit [*.net *.split]
sivoais has quit [*.net *.split]
Reventlov has quit [*.net *.split]
mfp has quit [*.net *.split]
xorpse has quit [*.net *.split]
so has quit [*.net *.split]
adrien has quit [*.net *.split]
_2can has quit [*.net *.split]
j0sh has quit [*.net *.split]
lyxia has quit [*.net *.split]
thorsten` has quit [*.net *.split]
PM has quit [*.net *.split]
ohama has quit [*.net *.split]
frawgie_ has quit [*.net *.split]
SuperNoeMan has quit [*.net *.split]
fold has quit [*.net *.split]
cross has quit [*.net *.split]
bcuccioli has quit [*.net *.split]
ttm has quit [*.net *.split]
bacam has quit [*.net *.split]
abel_ has quit [*.net *.split]
struk|work has quit [*.net *.split]
lordkryss has quit [*.net *.split]
Thooms has quit [*.net *.split]
mearnsh has quit [*.net *.split]
unix_beard has quit [*.net *.split]
regnat has quit [*.net *.split]
Pepe_ has quit [*.net *.split]
fraggle-boate has quit [*.net *.split]
weykent has quit [*.net *.split]
emmanueloga has quit [*.net *.split]
rks` has quit [*.net *.split]
hannes has quit [*.net *.split]
zozozo has quit [*.net *.split]
hsuh has quit [*.net *.split]
kandu has quit [*.net *.split]
Ptival has quit [*.net *.split]
chris2 has quit [*.net *.split]
SHODAN has quit [*.net *.split]
clog has quit [*.net *.split]
engil has quit [*.net *.split]
companion_cube has quit [*.net *.split]
def` has quit [*.net *.split]
whitequark has quit [*.net *.split]
lupine has quit [*.net *.split]
bbc has quit [*.net *.split]
gperetin has quit [*.net *.split]
Asmadeus has quit [*.net *.split]
pyon has quit [*.net *.split]
jonludlam has quit [*.net *.split]
MercurialAlchemi has quit [*.net *.split]
flxx has quit [*.net *.split]
flux has quit [*.net *.split]
_5kg has quit [*.net *.split]
myyst has quit [*.net *.split]
mahem1_ has quit [*.net *.split]
hbar has quit [*.net *.split]
ente has quit [*.net *.split]
majoh has quit [*.net *.split]
hcarty has quit [*.net *.split]
mahem1 has quit [*.net *.split]
leifw has quit [*.net *.split]
cdidd has quit [*.net *.split]
Drup has quit [*.net *.split]
relrod has quit [*.net *.split]
dwoos has quit [*.net *.split]
gargawel has quit [*.net *.split]
maurer has quit [*.net *.split]
pippijn has quit [*.net *.split]
stux has quit [*.net *.split]
sheijk has quit [*.net *.split]
WraithM_ has quit [*.net *.split]
hnrgrgr has quit [*.net *.split]
maufred has quit [*.net *.split]
dch has quit [*.net *.split]
icicled has quit [*.net *.split]
eventualbuddha has quit [*.net *.split]
shinnya has quit [*.net *.split]
smondet has quit [*.net *.split]
mrvn has quit [*.net *.split]
ruoso has quit [*.net *.split]
cmtptr has quit [*.net *.split]
teiresias has quit [*.net *.split]
brendan has quit [*.net *.split]
ygu has quit [*.net *.split]
davine has quit [*.net *.split]
olauzon has quit [*.net *.split]
psy_ has quit [*.net *.split]
q66 has quit [*.net *.split]
deavid has quit [*.net *.split]
vincom2 has quit [*.net *.split]
gdsfh1 has quit [*.net *.split]
girrig has quit [*.net *.split]
testcocoon has quit [*.net *.split]
vpm has quit [*.net *.split]
enitiz has quit [*.net *.split]
asmanur has quit [*.net *.split]
ivan\ has quit [*.net *.split]
Tekk_` has quit [*.net *.split]
fraggle_ has quit [*.net *.split]
orbitz has quit [*.net *.split]
JuggleTux has quit [*.net *.split]
iZsh has quit [*.net *.split]
tristero has quit [*.net *.split]
dinosaure2 has quit [*.net *.split]
tobiasBora has quit [*.net *.split]
Khady has quit [*.net *.split]
myst|work has quit [*.net *.split]
araujo has quit [*.net *.split]
demonimin has quit [*.net *.split]
badkins has quit [*.net *.split]
Simn has quit [*.net *.split]
bugabinga has quit [*.net *.split]
Rebelion has quit [*.net *.split]
rgrinberg has quit [*.net *.split]
sh1ken has quit [*.net *.split]
strmpnk has quit [*.net *.split]
ddosia has quit [*.net *.split]
divyanshu has quit [*.net *.split]
lu324_ has quit [*.net *.split]
mcclurmc_ has quit [*.net *.split]
pgas has quit [*.net *.split]
srax has quit [*.net *.split]
tizoc has quit [*.net *.split]
cartwright has quit [*.net *.split]
tokenrove has quit [*.net *.split]
tianon has quit [*.net *.split]
dbrumley has quit [*.net *.split]
Cypi has quit [*.net *.split]
Armael has quit [*.net *.split]
WanderingGlitch has quit [*.net *.split]
CissWit has quit [*.net *.split]
madroach has quit [*.net *.split]
ia0 has quit [*.net *.split]
emias has quit [*.net *.split]
troydm has quit [*.net *.split]
Averell has quit [*.net *.split]
zwer has quit [*.net *.split]
NoNNaN has quit [*.net *.split]
nicoo has quit [*.net *.split]
badon has quit [*.net *.split]
Intensity has quit [*.net *.split]
IbnFirnas has quit [*.net *.split]
Nahra has quit [*.net *.split]
robink has quit [*.net *.split]
bytbox has quit [*.net *.split]
acieroid has quit [*.net *.split]
Unhammer has quit [*.net *.split]
xaimus has quit [*.net *.split]
Darnuria has quit [*.net *.split]
pollux has quit [*.net *.split]
gasche has quit [*.net *.split]
n0v has quit [*.net *.split]
wormphlegm has quit [*.net *.split]
bernardofpc has quit [*.net *.split]
moei has quit [*.net *.split]
tane has quit [*.net *.split]
jbrown has quit [*.net *.split]
msch has quit [*.net *.split]
__marius______ has quit [*.net *.split]
bobpoekert has quit [*.net *.split]
S11001001 has quit [*.net *.split]
patronus has quit [*.net *.split]
tg has quit [*.net *.split]
pii4 has quit [*.net *.split]
ski has quit [*.net *.split]
Muzer has quit [*.net *.split]
hhugo has quit [*.net *.split]
arj has quit [*.net *.split]
Haudegen has quit [*.net *.split]
tnguyen has quit [*.net *.split]
rock_neurotiko has quit [*.net *.split]
govg has quit [*.net *.split]
jbalint has quit [*.net *.split]
segmond has quit [*.net *.split]
milosn has quit [*.net *.split]
dmbaturin has quit [*.net *.split]
lopex has quit [*.net *.split]
gustav___ has quit [*.net *.split]
rwmjones_on_hols has quit [*.net *.split]
wting has quit [*.net *.split]
diethyl has quit [*.net *.split]
sigjuice_ has quit [*.net *.split]
stomp has quit [*.net *.split]
jerith has quit [*.net *.split]
zapu has quit [*.net *.split]
englishm has quit [*.net *.split]
mk270 has quit [*.net *.split]
Plazma has quit [*.net *.split]
nickmeharry has quit [*.net *.split]
alinab has quit [*.net *.split]
eikke has quit [*.net *.split]
lu324__ has quit [*.net *.split]
contempt has quit [*.net *.split]
martintrojer has quit [*.net *.split]
Kakadu has quit [*.net *.split]
WraithM has quit [*.net *.split]
keen__________33 has quit [*.net *.split]
axiles has quit [*.net *.split]
andreypopp__ has quit [*.net *.split]
reynir has quit [*.net *.split]
burgobianco has quit [*.net *.split]
oskarth has quit [*.net *.split]
inr has quit [*.net *.split]
binarybitme has quit [*.net *.split]
w0rp has quit [*.net *.split]
MrScout has quit [*.net *.split]
struk has quit [*.net *.split]
AlexRussia has quit [*.net *.split]
jwatzman|work has quit [*.net *.split]
frankjeager has quit [*.net *.split]
shinnya_ has quit [*.net *.split]
mawuli has quit [*.net *.split]
_habnabit has quit [*.net *.split]
Riviera_ has quit [Max SendQ exceeded]
ggherdov has quit [Max SendQ exceeded]
mahem1_ has joined #ocaml
gasche_ has joined #ocaml
ohama has joined #ocaml
Haudegen has joined #ocaml
c74d has quit [Max SendQ exceeded]
kalzz has quit [Max SendQ exceeded]
orbitz has joined #ocaml
brendan__ has joined #ocaml
myst|work has joined #ocaml
gasche_ has quit [*.net *.split]
oskarth has joined #ocaml
w0rp has joined #ocaml
ggherdov has joined #ocaml
araujo has joined #ocaml
n0v has joined #ocaml
ruoso has joined #ocaml
kalzz has joined #ocaml
n1ftyn8 has quit [Ping timeout: 244 seconds]
Asmadeus has joined #ocaml
thizanne has joined #ocaml
reynir has joined #ocaml
n1ftyn8 has joined #ocaml
rwmjones_on_hols has joined #ocaml
zapu has joined #ocaml
lu324__ has joined #ocaml
companion_cube has joined #ocaml
reynir is now known as Guest46246
gdsfh1 has left #ocaml [#ocaml]
clog has joined #ocaml
jerith has joined #ocaml
nojb has joined #ocaml
alinab has joined #ocaml
brendan__ is now known as 92AAABFC2
18VABY4HM has joined #ocaml
Reventlo1 has joined #ocaml
smondet_ has joined #ocaml
msch has joined #ocaml
PM` has joined #ocaml
keen__________33 has joined #ocaml
tokenrove has joined #ocaml
jbalint has joined #ocaml
tizoc has joined #ocaml
Armael has joined #ocaml
frawgie has joined #ocaml
mal`` has joined #ocaml
moei has joined #ocaml
mk270 has joined #ocaml
mfp_ has joined #ocaml
7GHAAMC08 has joined #ocaml
milosn has joined #ocaml
_2can has joined #ocaml
bobpoekert has joined #ocaml
patronus has joined #ocaml
tane has joined #ocaml
eikke has joined #ocaml
nickmeharry has joined #ocaml
pii4 has joined #ocaml
cthuluh_ has joined #ocaml
axiles has joined #ocaml
jbrown has joined #ocaml
__marius______ has joined #ocaml
Nahra``` has joined #ocaml
inr has joined #ocaml
S11001001 has joined #ocaml
thorsten2 has joined #ocaml
sivoais has joined #ocaml
ski has joined #ocaml
mcclurmc has joined #ocaml
martintrojer has joined #ocaml
stomp has joined #ocaml
Rebelion has joined #ocaml
maufred has joined #ocaml
ivan\_ has joined #ocaml
j0sh has joined #ocaml
hsuh has joined #ocaml
iZsh has joined #ocaml
shinnya has joined #ocaml
c74d has joined #ocaml
def` has joined #ocaml
Intensity has joined #ocaml
dbrumley has joined #ocaml
cmtptr has joined #ocaml
fraggle-boate has joined #ocaml
JuggleTux has joined #ocaml
IbnFirnas has joined #ocaml
englishm has joined #ocaml
bacam has joined #ocaml
contempt has joined #ocaml
wting has joined #ocaml
segmond has joined #ocaml
robink has joined #ocaml
andreypopp__ has joined #ocaml
lopex has joined #ocaml
mawuli has joined #ocaml
divyanshu_ has joined #ocaml
_habnabit has joined #ocaml
dch has joined #ocaml
cojy has joined #ocaml
MrScout has joined #ocaml
eventualbuddha has joined #ocaml
jwatzman|work has joined #ocaml
strmpnk has joined #ocaml
struktured has joined #ocaml
Intensity has quit [Max SendQ exceeded]
sivoais is now known as 7GHAAMI3M
Intensity has joined #ocaml
Nahra``` has quit [Max SendQ exceeded]
englishm has quit [Changing host]
englishm has joined #ocaml
so has joined #ocaml
jbalint has quit [Changing host]
jbalint has joined #ocaml
robink has quit [Max SendQ exceeded]
Nahra``` has joined #ocaml
Averell has joined #ocaml
sh1ken has joined #ocaml
lyxia has joined #ocaml
j0sh is now known as Guest69411
sh1ken has joined #ocaml
sh1ken has quit [Changing host]
cmtptr is now known as Guest47412
7GHAAMI3M has quit [Max SendQ exceeded]
contempt has quit [Changing host]
contempt has joined #ocaml
dch is now known as Guest35253
lopex is now known as Guest68892
Pepe_ has joined #ocaml
tane has quit [Quit: Verlassend]
c74d has quit [Remote host closed the connection]
gustav___ has joined #ocaml
robink has joined #ocaml
govg has joined #ocaml
WanderingGlitch has joined #ocaml
govg is now known as Guest45195
Plazma has joined #ocaml
oskarth is now known as oskarth_
c74d has joined #ocaml
divyanshu_ is now known as divyanshu
18VABY4HM has quit [Read error: Connection reset by peer]
nicoo has joined #ocaml
badon has joined #ocaml
77CAABZU1 has joined #ocaml
1JTAABMSD has joined #ocaml
badon has quit [Max SendQ exceeded]
shinnya_ has joined #ocaml
badon has joined #ocaml
zwer has joined #ocaml
eventualbuddha is now known as eventualbuddha_
myst|work has quit [Changing host]
myst|work has joined #ocaml
oskarth_ has quit [Changing host]
oskarth_ has joined #ocaml
n1ftyn8 has quit [Changing host]
n1ftyn8 has joined #ocaml
IbnFirnas has quit [Changing host]
IbnFirnas has joined #ocaml
PM` is now known as PM
strmpnk has quit [Changing host]
strmpnk has joined #ocaml
divyanshu has joined #ocaml
divyanshu has quit [Changing host]
cojy has quit [Changing host]
cojy has joined #ocaml
Guest35253 has quit [Changing host]
Guest35253 has joined #ocaml
eventualbuddha_ has quit [Changing host]
eventualbuddha_ has joined #ocaml
andreypopp__ has joined #ocaml
Guest68892 has joined #ocaml
andreypopp__ has quit [Changing host]
Guest68892 has quit [Changing host]
Plazma has left #ocaml [#ocaml]
1JTAABMSD has quit [Read error: Connection reset by peer]
77CAABZU1 has quit [Ping timeout: 276 seconds]
7YUAAFL3J has joined #ocaml
64MABRKDD has joined #ocaml
shinnya_ has quit [Ping timeout: 256 seconds]
shinnya_ has joined #ocaml
64MABRKDD has quit [Ping timeout: 255 seconds]
7YUAAFL3J has quit [Read error: Connection reset by peer]
nojb has quit [Quit: nojb]
sivoais has joined #ocaml
hekmek has joined #ocaml
cthuluh_ is now known as cthuluh
sivoais_ has joined #ocaml
AltGr has joined #ocaml
Guest68892 has quit []
manizzle has joined #ocaml
sivoais has quit [Ping timeout: 255 seconds]
Guest47412 is now known as cmtptr
lopex_ has joined #ocaml