* jbrown
uses nedit, but you probably shouldn't pay attention to me :-)
<jbrown>
there's a syntax-highlighting mode for that somewhere, what more could you ask for
<notk0>
opam takes a long time to install, it compiles everything from scratch ?
<jbrown>
yeah.
<notk0>
it should do parallel compiling I think for multicore machines and such
<notk0>
everything is multicore nowdays even smartphones
<Kakadu>
notk0: hm, I thought that it is already implemented
<notk0>
it is?
<notk0>
cool
<Kakadu>
seems not
<notk0>
still compiling tho
<Kakadu>
but I'm not expert
<Kakadu>
I can ask that in opam-devel maillist
<notk0>
what are binary annotation files?
<notk0>
are they for debugging ?
<djcoin>
notk0: what about reading the manual ?
Yoric has quit [Ping timeout: 256 seconds]
<notk0>
djcoin: the typerex tutorial says to modify the makefile to do binary annotation and I was thinking maybe it's something the plugin uses, some debug mode
cago has left #ocaml []
travisbrady has joined #ocaml
Snark has joined #ocaml
<orbitz>
notk0: it just adds some useful information to binary files, usually about types and shit
<notk0>
oh ok
mika1 has quit [Quit: Leaving.]
clintnewsom has joined #ocaml
cdidd has quit [Remote host closed the connection]
arduinoob has joined #ocaml
<arduinoob>
anyone here using ocaide?
<arduinoob>
when I right-click on a file.byte and go to Debug As > according to the docs there should be an opion to debug as Ocaml executable.
<arduinoob>
but I don't see this
<arduinoob>
i think I figured it out
<ollehar>
An OCaml thread never runs concurrent with another, right? So operations on global values are guaranteed atomic?
<adrien_oww>
no
<adrien_oww>
an ocaml thread never allocates at the same time as another one
<ollehar>
as opposed to lwt?
<sgnb>
I wouldn't rely on any assumption on the implementation of the ocaml runtime
<sgnb>
there are mutexes and such to guarantee proper semantics
<companion_cube>
ollehar: by "process", you mean spawning a system process?
<ollehar>
companion_cube: no, just a thread. but I think the problem instead is that socket.accept blocks the socket, so the channels can't send and receive.
<companion_cube>
look at Lwt_io
<companion_cube>
Lwt provides many non-blocking alternatives to standard functions
notk0 has left #ocaml []
<orbitz>
ollehar: use Lwt or Async
paddymahoney has quit [Remote host closed the connection]
<orbitz>
Lwt als ohas ability to detatch work to a thread
<ollehar>
and expanding the example server so it can accept multiple websockets
<orbitz>
when yousay thread do you mean OS thread or Lwt thread?
<ollehar>
lwt
<ollehar>
now
<ollehar>
:)
<ollehar>
I think I got it, length -1 instead of length... silly
<ollehar>
didn't through exception, for some reason
<ollehar>
when looping channels
<ollehar>
that's the block
<ollehar>
stuck on write_text_frame on non-existing channel
mcclurmc has quit [Ping timeout: 264 seconds]
amaloz has joined #ocaml
k0001 has joined #ocaml
mcsquiggedy has quit [Ping timeout: 252 seconds]
mattrepl has quit [Quit: mattrepl]
k0001 has quit [Ping timeout: 252 seconds]
mcsquiggedy has joined #ocaml
mattrepl has joined #ocaml
osa1 has joined #ocaml
<ollehar>
could it be better to send a state as a message to threads instead of using global ref with mutex?
yacks has quit [Read error: Connection reset by peer]
<pippijn>
ollehar: yes
ontologi1e has quit [Ping timeout: 276 seconds]
clintnewsom has joined #ocaml
thomasga has joined #ocaml
k0001 has joined #ocaml
tane has quit [Quit: Verlassend]
k0001 has quit [Ping timeout: 252 seconds]
ottbot has quit [Ping timeout: 240 seconds]
<travisbrady>
Anyone know how to specify ocamlbuild's "-no-links" option in an _oasis file?
<ollehar>
pippijn: but a mailbox would block the thread, no?
<pippijn>
I don't know what you are doing
<pippijn>
are you using threads for performance or for abstraction?
<pippijn>
because if you're doing the former, you're doing it wrong
<pippijn>
anyway, when you send a message to a thread, that thread will do something
<pippijn>
so it would block in a way
<pippijn>
so you would normally start another thread in that thread, waiting for the message
<pippijn>
ollehar: are you aware that writing to stdout in lwt will start a new thread just for the writing?
derek_c has joined #ocaml
clintnewsom has quit [Ping timeout: 255 seconds]
<ollehar>
pippijn: no, I didn't know that
<ollehar>
I'm using lwt right now to implement a chat server
<ollehar>
each channel in the socket gets a thread
<ollehar>
for each client, I mean
<pippijn>
sounds wrong to me
<pippijn>
are you aware that Lwt threads are not preemptive?
smerz has quit [Ping timeout: 264 seconds]
<ollehar>
You mean that a thread never runs before another one sleeps?
<pippijn>
yes
<pippijn>
also, they all run on the same CPU
<ollehar>
same CPU is ok, it's a chat for each CGI instance
clintnewsom has joined #ocaml
<ollehar>
so yes, sorry, the chat "server" runs in a CGI...
<derek_c>
One of my homework assignment says this statement is False, but I don't know why: "Every well-typed OCaml program can be evaluated to a value."
<pippijn>
derek_c: what does well-typed mean?
<ollehar>
derek_c: becuase ocaml type system allow infinite recursion, maybe?
<pippijn>
let get_int () : int = raise Not_found
<derek_c>
oh!!
<derek_c>
man I think you are right
<pippijn>
that doesn't evaluate to a value
<derek_c>
yeah I think you are both right
<derek_c>
these are 2 exceptions, now I remember
<derek_c>
many thanks!
<pippijn>
derek_c: get_int evaluates to a bottom value
<pippijn>
let rec get_int () : int = get_int ()
<pippijn>
(get_int ()) does not evaluate at all, it doesn't terminate
<pippijn>
so it also evaluates to a bottom value
mikurubeam has quit [Ping timeout: 256 seconds]
smerz has joined #ocaml
pkrnj has joined #ocaml
ottbot has joined #ocaml
osa1 has quit [Ping timeout: 260 seconds]
<adrien>
wmeyer`: 120 minutes to build llvm on my laptop, 170 minutes CPU time
mattrepl has quit [Quit: mattrepl]
<pippijn>
adrien: sounds familiar
<ollehar>
pippijn: are you sure? if it doesn't evaluate, how can it eval to a bottom value?