mbishop changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | Grab Ocaml 3.10.0 from http://caml.inria.fr/ocaml/release.html (featuring new camlp4 and more!)
piggybox_ has quit [Connection timed out]
bzzbzz has joined #ocaml
jso has joined #ocaml
EliasAmaral has joined #ocaml
jso has quit ["Lost terminal"]
mav has joined #ocaml
linuxtk10 has joined #ocaml
<linuxtk10> anyone else here ever used ocaml for any web stuff ?
<linuxtk10> right now i have it doing it in interpreter mode
<linuxtk10> wonder if there is way to ru it when its compiled hmm
pantsd has joined #ocaml
<EliasAmaral> linuxtk10, tried apache's mod_ocaml?
<linuxtk10> EliasAmaral: i was talking about the fcgi module but yea
seafoodX has joined #ocaml
cpst has quit [Read error: 110 (Connection timed out)]
m3ga has joined #ocaml
G_ has joined #ocaml
[azoic] has joined #ocaml
G has quit [Read error: 110 (Connection timed out)]
slipstream has quit [Read error: 110 (Connection timed out)]
Mr_Awesome has joined #ocaml
pantsd has quit ["Leaving."]
cpst has joined #ocaml
mav has quit [Read error: 113 (No route to host)]
buluca has quit [Read error: 113 (No route to host)]
CRathman has joined #ocaml
slipstream has joined #ocaml
mav has joined #ocaml
pantsd has joined #ocaml
ita has quit [Read error: 110 (Connection timed out)]
mav has quit [Read error: 113 (No route to host)]
mav has joined #ocaml
slipstream-- has joined #ocaml
mav has quit [No route to host]
slipstream has quit [Read error: 110 (Connection timed out)]
bluestorm_ has joined #ocaml
babu has joined #ocaml
[azoic] has left #ocaml []
ktne has joined #ocaml
mav has joined #ocaml
EliasAmaral has quit [Remote closed the connection]
bengordon has joined #ocaml
l_a_m has quit [Remote closed the connection]
G__ has joined #ocaml
CRathman has quit [Read error: 110 (Connection timed out)]
ita has joined #ocaml
G_ has quit [Read error: 110 (Connection timed out)]
slipstream has joined #ocaml
seafoodX has quit []
slipstream-- has quit [Read error: 110 (Connection timed out)]
G__ has quit [Read error: 110 (Connection timed out)]
ygrek has joined #ocaml
m3ga has quit ["disappearing into the sunset"]
seafoodX has joined #ocaml
<seafoodX> seafood
<ktne> hi seafood
<seafoodX> Matt Damon
<seafoodX> Shit, that's what it sounded like ;-)
<seafoodX> Sorry, I was trying to type my nick into another window.
<seafoodX> And it ended up here.
Tetsuo has joined #ocaml
ygrek has quit [Remote closed the connection]
mav has quit [Read error: 113 (No route to host)]
ygrek has joined #ocaml
seafoodX has quit []
Mr_Awesome has quit ["aunt jemima is the devil!"]
G has joined #ocaml
mav has joined #ocaml
G_ has joined #ocaml
mr_hugo has joined #ocaml
G has quit [Nick collision from services.]
G_ is now known as G
leo037 has joined #ocaml
ita is now known as ita|zzz
joelr1 has joined #ocaml
<joelr1> morning
<ktne> good morning
ygrek has quit [Remote closed the connection]
joelr1 has quit []
ygrek has joined #ocaml
leo037 has quit ["tezaĵumanta"]
seafoodX has joined #ocaml
dmentre has joined #ocaml
dmentre has left #ocaml []
dmentre has joined #ocaml
seafoodX has quit []
mav has quit [Read error: 113 (No route to host)]
_JusSx_ has joined #ocaml
mav has joined #ocaml
mav has quit [Read error: 113 (No route to host)]
ita|zzz is now known as ita
G_ has joined #ocaml
ulfdoz has quit [Remote closed the connection]
ulfdoz has joined #ocaml
CRathman has joined #ocaml
Alleria has quit [Read error: 104 (Connection reset by peer)]
G has quit [Read error: 110 (Connection timed out)]
Nucleo_ has joined #ocaml
babu has quit ["ChatZilla 0.9.78.1 [Firefox 2.0.0.6/2007072518]"]
mav has joined #ocaml
buluca has joined #ocaml
Tetsuo has quit ["Leaving"]
|Jedai| has joined #ocaml
jedai has quit [Read error: 110 (Connection timed out)]
buluca has quit [Read error: 113 (No route to host)]
ulfdoz is now known as ingeB0RG
pango has quit [Remote closed the connection]
pango has joined #ocaml
mr_hugo has quit [Read error: 110 (Connection timed out)]
lde has quit [Remote closed the connection]
lde has joined #ocaml
[azoic] has joined #ocaml
love-pingoo has joined #ocaml
[azoic] has quit [Read error: 110 (Connection timed out)]
screwt8 has quit [Read error: 104 (Connection reset by peer)]
love-pingoo has quit [Read error: 110 (Connection timed out)]
love-pingoo has joined #ocaml
ygrek has quit [Remote closed the connection]
ygrek has joined #ocaml
screwt8 has joined #ocaml
smimou_ is now known as smimou
<linuxtk10> ktne: were you not a D fan as well ?
<bluestorm_> hm
<flux> hmhm.
<ktne> linuxtk10 hmm, i like the idea of D :)
<ktne> linuxtk10 not the way was implemented howhever :(
<linuxtk10> ktne: and ocaml ?
cannedfish has joined #ocaml
<bluestorm_> you're evil anyway :-'
<ktne> linuxtk10 i'm not that happy with ocaml either :(
<ktne> it's mostly a matter of vm, i don't like the ocaml vm
<ktne> so i preffer f#
<bluestorm_> how is the F# bytecode any better ?
<bluestorm_> (and what about native code ?)
<ktne> 31bit integers feel squishy
<bluestorm_> you can have more if you want
<bluestorm_> and this isn't wm-related
<bluestorm_> iirc it's GC-related
<ktne> but is's prone to errors
<ktne> and it's slower too
<bluestorm_> slower ?
<bluestorm_> than F# ? i wouldn't think so
<ktne> the GC
<bluestorm_> OCaml's GC is good
<ktne> otherwise i would say they are equivalent
<bluestorm_> hm
<ktne> i mean performance-related
<bluestorm_> i heard that exceptions are really painful in F#
<ktne> they are equivalent
<ktne> well exceptions are slow in .net, i don't use exceptions that much
<bluestorm_> i heard than .NET had problems with recursion too (although i heard than F# fixed the problem somewhat)
<bluestorm_> (if you had any document on F# and .NET recursion handling, i'd be interested)
<ktne> i don't really have any, i know that it supports tail recursion
<cannedfish> ... and f# implementation is not free as far as I know (in fsf/dfsg sense)
<ktne> well that matters less to me
<bluestorm_> evil ! :]
<ktne> i hope i'm not :)
<cannedfish> yeah I can understand both "evil" and "doesn't matter to me" views :)
<ktne> but i use .net for the same reasons i started looking for ML family, more productivity :)
<bluestorm_> haha
<bluestorm_> i'm happy to be able to say "well that matters less to me"
<ktne> i guess your interest is academical then?
<bluestorm_> it is
<bluestorm_> hm
<bluestorm_> and gnuish
<bluestorm_> wich is related but not exactly the same
<ktne> ocaml isn't gnu afaik
<bluestorm_> yes
<ktne> are you using ocaml in production code?
<bluestorm_> "production code" ? :]
<ktne> :)
<cannedfish> actually f# license is problematic for commercial uses but I don'T know the details
<linuxtk10> i dislike .net stuff period
<bluestorm_> we still do not have a ocaml LVM backend
<ktne> because it has a period? :)
<bluestorm_> (or any other common-something kinda-bytecode)
cannedfish is now known as _cannedfish
_cannedfish has quit ["Reconnecting"]
cannedfish has joined #ocaml
<ktne> well i think that there is a library called libjit
<ktne> a port for that library might be interesting :)
<bluestorm_> hm
<bluestorm_> is the dotgnu project still alive ?
slipstream-- has joined #ocaml
<ita> there is mono still
<linuxtk10> ktne: i dont really like the hwole way it handles its bytecode stuff
<ktne> ita somewhat slow
<ita> it wouldnt be difficult to compile ocaml into mono bytecode, but is it worth the pain?
<ktne> linuxtk10 being bytecode helps with reflection
<linuxtk10> ocaml had bytecode built in
<ita> ktne: slow ? :-)
<linuxtk10> has*
<bluestorm_> ita: that may ease language bindings ?
<ktne> mono is slow i meant
<ita> ktne: the virtual machine or the compiler ?
<ktne> considerably slower than .net
<ktne> the virtual machine
<linuxtk10> ocaml is very powerful i think and the language of choice
<linuxtk10> theres not another lang like it really
<linuxtk10> recently looked at clean it looks interesting but heh
<ita> ktne: i did not notice
authentic has quit [Read error: 113 (No route to host)]
<ita> ktne: but then, if you need speed .. why not compile into native code ? :-)
<linuxtk10> ocaml is only about 20 percent behind c++
<ktne> ita i don't like the 31bit ints, squishy
<cannedfish> linuxtk10: unicode support is essential for modern languages in my (and lots of other people's) opinion
<ita> ktne: i have a 64 bit machine
<cannedfish> heh
<ktne> then 63bit ints :)
<mbishop> btw there is an ocaml compiler to .NET, OcamIL
<ita> ktne: do you notice ?
<linuxtk10> cannedfish: ocamk doesnt support unicode yet ? i thought i read somehwre it does
<ita> ktne: do you notice a difference between 63 and 64 bit ints ?
<ktne> mbishop i was not aware of that
<mbishop> linuxtk10: there is an external library
<cannedfish> linuxtk10: well it does supoort but but not natively (e.g. strings, regexes in std lib)
<ktne> mbishop in that case i would still preffer f# because it feels more modern :)
<ita> in the variable names
<linuxtk10> i have no use for unicode really
<ita> ktne: what the fuck are you doing on this channel then ? :-)
<ita> ktne: archeology ? :-)
<cannedfish> linuxtk10: good for you :)
<bluestorm_> there is camomile
<bluestorm_> an external library that handle many string encodings
<ktne> ita i'm not familiar enough with either f# or ocaml :)
<ktne> ita so i'm here to learn :)
<bluestorm_> ktne: i still don't see the problem with 31/63 ints
<bluestorm_> there is a tag bit
<ita> ktne: ...
<cannedfish> the problem with non-standard library support is, well it's not standard and not every body uses it so not everything supports unicode
<bluestorm_> the GC uses it, and it's efficient
<ktne> bluestorm_ it feels like a hack, lack of rtti
<bluestorm_> rtti ?
<ktne> runtime type information
<ktne> google -> "Information, available at runtime, about the class types and inheritance relationships of application objects. Also referred to as metadata."
<bluestorm_> hm
<cannedfish> and the biggest pain in the ass is regular expression engine's lack of support for unicode if you need it
<bluestorm_> ktne: stripping off type information at evaluation time allows for some more optimizations
<ita> ktne: it looks like a hardware optimization you dont want to understand ? :-)
<ktne> bluestorm_ you don't really have to strip type information
<ita> ktne: remember the difference int - Integer() ?
<bluestorm_> ktne: hm
cannedfish has quit ["Reconnecting"]
cannedfish has joined #ocaml
<ita> bluestorm_: hm
<bluestorm_> you're worrying about *one bit*, then you want to add type information everywhere
<ktne> bluestorm_ you can store information that enables the GC to "know" the type without extra tagging
<ktne> bluestorm_ a table in vmtable
<pango> ktne: but it's less cache friendly
<ktne> pango that's like a bit per member
slipstream has quit [Read error: 110 (Connection timed out)]
<ktne> pango also it's accessed during gc only
<pango> exactly what I'm saying, it has worse locality
<ktne> you have worse locality with a bit per integer
<ktne> because you have to check each integer in the stack, and each integer in each object
<ktne> in order to determine whenever an object is a pointer or an integer
<ktne> that is not the case if you use type metadat in vmtable
<pango> if that's a pointer gc has to read it anyway
<ktne> but you have to scan the entire memory for pointers
<ktne> and the whole stack
<ktne> because you don't have type metadata to point you there directly
<ktne> no modern vm uses pointer tagging afaik anymore
cannedfish has quit [Client Quit]
cannedfish has joined #ocaml
<pango> looks like ultimate argument, I guess I'll stop here ;)
<ktne> :)
<ktne> howhever pointer tagging is easier to implement
<ktne> so i can see the reason why it might have been implemented :)
<pango> see papers on ocaml site on their tests with type-aware gc
<pango> performance is about the same
<ktne> but those 31bit pointers feel so squishy :)
<ktne> and so prone to overflowing if you are not careful :)
<pango> like 32 and 64 bit integers, too; But I'm not too happy with 31/63 bits either, it makes OCaml unfit for some tasks
cannedfish has quit [Client Quit]
cannedfish has joined #ocaml
<ktne> yes but 32bit integers overlflow naturally
<ktne> they overflow to 0 .. they don't overflow .. into a pointer
<pango> 31bits overflow naturally too
<pango> now that's fud
<ktne> well 2^31 + 1 is not 0, it's a pointer
<ktne> so on overflow the object type will change
<ktne> and it will point to some place in memory
<pango> have you checked ?
<ktne> which the GC will then have to scan
<pango> you should check 2-complement arithmetic, signed 31 bits arithmetic overflow exactly like 32 bits arithmetic, just slightly sooner ;)
<ktne> only if the hardware is built around a 31bit register
<ktne> 01111 + 1 is not 00000, it's 10000
<pango> check how it's implemented in OCaml's generated asm
<ktne> i doubt it's implemented differently
<ktne> hmm
<ktne> i've deleted my ocaml :)
<ktne> would you be kind enough to test 2^31+1?
<ktne> see what value it returns? :)
<ktne> actually 2^30-1 + 1
<ktne> 1073741824
<ktne> 1073741824 + 1
<ktne> how much ocaml returns for that?
<pango> # max_int ;;
<pango> - : int = 1073741823
<pango> # max_int + 1 ;;
<pango> - : int = -1073741824
<ktne> hmm
<ktne> interesting :)
<ktne> does it store pointer flag as bit 0 = 0?
<ktne> then it must check for overflow after each math operation?
<ktne> hmm
<ktne> unfortunatelly i must go now :)
<ktne> cya tommorow, i'll investigate on this :)
<pango> reinstall ocaml then ;)
cannedfish has quit ["Reconnecting"]
cannedfish has joined #ocaml
<ktne> i'll have to :)
ktne has quit []
G_ has quit [Read error: 110 (Connection timed out)]
mordaunt has joined #ocaml
<linuxtk10> hmm im wondering how i can run my ocaml web script natively compiled
<bluestorm_> cgi ?
<bluestorm_> hm
<bluestorm_> i've done something with xinetd in the past
cannedfish has quit ["Reconnecting"]
cannedfish has joined #ocaml
<bluestorm_> you can use xinetd to redirect port 80 input on a ocaml binary, that has to output HTML back
<linuxtk10> theres a fcgi moule wit hthat net library
<linuxtk10> and cgi
<linuxtk10> but i am running it as interpreted atm
olegfink has quit [Read error: 104 (Connection reset by peer)]
olegfink has joined #ocaml
cannedfish has quit [Remote closed the connection]
cannedfish has joined #ocaml
cannedfish has quit [Client Quit]
cannedfish has joined #ocaml
clog has joined #ocaml
_JusSx_ has quit ["leaving"]
mbishop has joined #ocaml
martin_ has quit [Read error: 110 (Connection timed out)]
|Jedai| is now known as jedai
gaja has quit [Remote closed the connection]
buluca has joined #ocaml
magnus_ has joined #ocaml
slipstream has joined #ocaml
bluestorm_ has quit ["Konversation terminated!"]
seafoodX has joined #ocaml
slipstream-- has quit [Read error: 110 (Connection timed out)]
seafoodX has quit []
G has joined #ocaml
ednarofi has joined #ocaml
ednarofi has quit ["leaving"]