gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.0 http://bit.ly/aNZBUp
Associ8or has joined #ocaml
Associat0r has quit [Ping timeout: 255 seconds]
Associ8or has quit [Client Quit]
rfg has quit [Quit: rfg]
lopex has quit []
drunK has joined #ocaml
Cyanure has quit [Remote host closed the connection]
rfg has joined #ocaml
fryguy has joined #ocaml
ymasory has quit [Quit: Leaving]
ymasory has joined #ocaml
vivanov has joined #ocaml
rfg has quit [Quit: rfg]
wagle has quit [Read error: Connection reset by peer]
wagle has joined #ocaml
mal`` has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
mal`` has joined #ocaml
mal`` has quit [Client Quit]
mal`` has joined #ocaml
joewilliams is now known as joewilliams_away
hto has quit [Quit: Lost terminal]
ymasory has quit [Quit: Leaving]
hto has joined #ocaml
ymasory has joined #ocaml
drunK has quit [Remote host closed the connection]
ymasory has quit [Quit: Leaving]
nannto_ has joined #ocaml
ymasory has joined #ocaml
kushou1 is now known as kushou
dnolen has joined #ocaml
dnolen has quit [Client Quit]
ankit9 has joined #ocaml
ymasory has quit [Quit: Leaving]
kushou has left #ocaml []
ikaros has joined #ocaml
ulfdoz has joined #ocaml
vivanov has quit [Quit: Lost terminal]
philtor has quit [Ping timeout: 260 seconds]
ftrvxmtrx has quit [Quit: This computer has gone to sleep]
philtor has joined #ocaml
ftrvxmtrx has joined #ocaml
Yoric has joined #ocaml
ygrek has joined #ocaml
vivanov has joined #ocaml
philtor has quit [Ping timeout: 240 seconds]
ocp has joined #ocaml
ftrvxmtrx has quit [Quit: This computer has gone to sleep]
Yoric has quit [Quit: Leaving.]
ygrek has quit [Ping timeout: 250 seconds]
edwin has joined #ocaml
dnolen has joined #ocaml
Yoric has joined #ocaml
jamii has joined #ocaml
ftrvxmtrx has joined #ocaml
edwin has quit [Remote host closed the connection]
edwin has joined #ocaml
larhat has joined #ocaml
ankit9 has quit [Quit: Leaving]
dnolen has quit [Quit: dnolen]
thomasga has joined #ocaml
ygrek has joined #ocaml
ankit9 has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
avsm has joined #ocaml
edwin has quit [Remote host closed the connection]
oriba has joined #ocaml
oriba has left #ocaml []
Reaganomicon has quit [Read error: Connection reset by peer]
caligula__ has quit [Ping timeout: 276 seconds]
edwin has joined #ocaml
caligula__ has joined #ocaml
<gildor> edwin: hi, I have noted your bug report about configure not executable
<edwin> ok
<gildor> edwin: this is #788
<edwin> ah then my #980 is a dup
<gildor> is f[x] = ygrek ?
<gildor> edwin: yes, but this is good to remind me ;-)
<edwin> and don't mind the /tmp stuff, lots of things break due to that not being executable
nannto_ has quit [Quit: Leaving...]
<edwin> I can just remount it exec before running the tests
<gildor> edwin: you can also export TMPDIR=/somewhere/else
<gildor> before running the test
<edwin> how is oasis-db coming along btw, will we be able to download a package and all its deps as a single tarball?
<gildor> edwin: nope, you'll have to upload package by package
<gildor> edwin: but with the CLI interface, it will be quite easy
<edwin> ok, luckily most of oasis's deps are now in Debian :D
<gildor> yes, I have uploaded them myself
<gildor> same for godi
<edwin> when do you plan the next release of oasis (or next beta). I would like to try it if my projects that use it still work, but I don't really have the time this week
<gildor> edwin: oasis-db is my top priority this week, but I'll inject patches in oasis when they are needed by oasis-db, so maybe next week if there are enough changes this week
<edwin> ok, that'll give me some time to test in the weekend
<gildor> edwin: but the latest ~alpha1 should be 100% compatible with 0.2.0
<edwin> will oasis-db be integrated with Debian in a manner similar to Perl's CPAN? (i.e. will we be able to build Debian packages out of packages on oasis-db automatically?)
<gildor> edwin: ;-)
<edwin> or for that matter, packages out of any tarball that has _oasis
<edwin> cool
<gildor> it has already been used for oasis, ocaml-data-notation et al
<gildor> the output is not perfect, but i'll improve it
Reaganomicon has joined #ocaml
Reaganomicon has quit [Read error: Connection reset by peer]
boscop has quit [Ping timeout: 240 seconds]
ankit9 has quit [Quit: Leaving]
vivanov has quit [Quit: Lost terminal]
boscop has joined #ocaml
_andre has joined #ocaml
ygrek has joined #ocaml
lopex has joined #ocaml
lopex has quit [Ping timeout: 252 seconds]
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Cyanure has joined #ocaml
ankit9 has joined #ocaml
Yoric has quit [Ping timeout: 248 seconds]
Yoric has joined #ocaml
pdhborges has joined #ocaml
emmanuelux has joined #ocaml
Associat0r has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
<Yoric> Note to all who participated in the opa-related discussion a few days ago: the discussion continues here http://dutherenverseauborddelatable.wordpress.com/2011/05/30/crowdsourcing-the-syntax/ .
zorun has quit [Ping timeout: 240 seconds]
avsm1 has joined #ocaml
avsm has quit [Read error: Connection reset by peer]
pierreN has joined #ocaml
<pierreN> hi
<thelema> pierreN: hi
pierreN has quit [Quit: Page closed]
pdhborges has quit [Quit: Leaving.]
elehack has joined #ocaml
<elehack> I'm trying to set up PHP-based webmail behind Ocsigen's CGImod, but it seems to be dropping my cookies.
<elehack> anyone seen this problem and have a solution?
<elehack> hmm... extensions/cgimod.ml has cookie support commented out.
<chambart> elehack: I just look at it, it seem that there is the code for doing it ( line 264 )
<elehack> chambart: yeah, I saw that.
<elehack> I'd really like to know why it's commented out before just uncommenting it.
<chambart> elehack: my syntax extension had problem, didn't have the comment color on my pc
vivanov has joined #ocaml
<chambart> I ask the guy who did this...
lopex has joined #ocaml
<elehack> ok, traced it through some more and the cookies are getting passed through.
<elehack> Not sure what is breaking, then.
<elehack> chambart: thanks for sending the e-mail :)
elehack has quit [Quit: Farewell, programs.]
ankit9 has quit [Remote host closed the connection]
ocp has quit [Quit: Leaving.]
joewilliams_away is now known as joewilliams
ankit9 has joined #ocaml
avsm1 has quit [Quit: Leaving.]
Cyanure has quit [Remote host closed the connection]
ymasory has joined #ocaml
ymasory has quit [Quit: Leaving]
zorun has joined #ocaml
Yoric has quit [Quit: Leaving.]
ftrvxmtrx has quit [Quit: This computer has gone to sleep]
larhat has quit [Quit: Leaving.]
brendan has quit [Quit: leaving]
brendan has joined #ocaml
smerz has joined #ocaml
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
ygrek has joined #ocaml
ymasory has joined #ocaml
ftrvxmtrx has joined #ocaml
Snark_ has joined #ocaml
rixed_ has joined #ocaml
<rixed_> Any pro of findlib + camlp4 ? I'm trying to use both batteries.syntax and bitstring.syntax and I got this:
<rixed_> ocamlfind: No unique value for the META variable 'preprocessor': package camlp4 defines `camlp4', package bitstring.syntax defines `camlp4of'
<rixed_> If I remove batteries.syntax it compiles Ok.
<rixed_> My cmd line looks like: ocamlfind ocamlc -package "batteries batteries.syntax bitstring bitstring.syntax" -syntax bitstring
<rixed_> .syntax -c tcp.ml
<rixed_> (without the newline between bitstring and ".syntax" :)
<thelema> rixed_: to use syntax extensions in ocamlfind, make sure you have a -syntax camlp4o argument
Snark_ is now known as Snark
<rixed_> thelema: should findlib add it based on the packages requirement?
<thelema> oddly enough no
<thelema> findlib needs to know which camlp4 you're using before it'll enable any syntax extensions
<rixed_> thelema: so I must add -syntax camlp4o then -syntax batteries.syntax and -syntax bitstring.syntax?
<thelema> -syntax camlp4o -package batteries.syntax,bitstring.syntax
<thelema> -syntax sets a predicate for ocamlfind, similar to the "mt" predicate and 'byte'/'native'
<rixed_> Still it complains: ocamlfind ocamldep -syntax camlp4o -package "batteries batteries.syntax bitstring bitstring.syntax" *.m
<rixed_> gives: ocamlfind: No unique value for the META variable 'preprocessor': package camlp4 defines `camlp4', package bitstring.syntax defines `camlp4of'
<thelema> try -syntax camlp4of
<rixed_> same error :-/
<rixed_> maybe batteries and bitstring use different syntaxes?
<rixed_> or maybe the order matter?
* thelema tries to look up the difference between camlp4o and camlp4of
<rixed_> changing order in -package between batteries and bitstring merely change the order in the error message :)
<thelema> well, it looks like batteries requires camlp4, but bitstring requres camlp4of
<thelema> maybe you can't use both batteries syntax extensions with bitstring
* thelema uses batteries (without syntax extensions) and bitstring
<thelema> yup, it seems the two are incompatible
<rixed_> thelema: Ok, I will then stop requiring batteries.syntax.
<rixed_> I think I never used it, anyway :-)
<thelema> incompatible at the findlib level - there's no fundamental incompatibility
<thelema> I guess batteries could be adjusted to use camlp4of
<rixed_> All this is too hairy for me.
<thelema> for me too, which is why I keep my use of camlp4 to a minimum.
fryguy has left #ocaml []
<thelema> it's all just a bit too unfriendly
sepp2k has joined #ocaml
<rixed_> thelema: thank you, it compiles now. I'm trying to hack together a small packet generator.
<thelema> glad to help
enthymeme has joined #ocaml
hto has quit [Quit: Lost terminal]
hto has joined #ocaml
spearalot has joined #ocaml
<rixed_> I don't understand enums in batteries ; They are not persistant ? So for instance (BatEnum.take 10 foo) changes foo?
<thelema> yes
<rixed_> Why is it so?
<thelema> otherwise thw following would hold on to unnecessary data:
<thelema> let a = List.enum large_list in
<thelema> let b = Set.of_enum a in ...
<thelema> if enums were persistent, a would still hold a copy of the whole list
<rixed_> until a gets garbage collected...
<thelema> but in this example, a has the same scope as b
<thelema> For another example, consider File.lines_of on a really large file
<thelema> let a = File.lines_of "large_file.txt" in
<thelema> let b = Enum.reduce (...) a in
<thelema> with Enum, the lines of the file that have been read can be GC'ed as soon as they're processed by reduce
<thelema> while if a was persistent, ocaml would be forced to keep the entirety of large_file in memory
<rixed_> I understand, yet it make me sad to have to choose between iterators a la C++ and pure persistant lazy list ... ;'(
<thelema> they're really two different things, and have to be treated as such.
<rixed_> So Enums are iterators. Is there some persistant lazy list somewhere within batteries?
<thelema> of course: LazyList and Seq.
<rixed_> :-) !
<rixed_> Gotta have a look
<rixed_> And of course these are enums also. Nice, best of both world.
<thelema> everything is enumerable, even characters
<hcarty> thelema: I think Seq acts like Enum as far as GC-ability goes
<hcarty> That's my understanding of the implementation at least
<thelema> Actually, I thought that was the one difference between the two - that enums are consumable but seq isn't
<hcarty> Seq isn't consumable, but any used elements can be GC'd
<hcarty> So (I think?) you could do File.lines_of "large_file.txt" |> Seq.reduce ( ... ) with a Seq-based implementation
<hcarty> I'm not sure it really makes sense with that example...
<thelema> hmm, I thought that you could backtrack with seq
<hcarty> The large_list example is probably better.
<hcarty> You can't backtrack with marching through the sequence to the desired element
<hcarty> From the start of the sequence
<thelema> so the difference between enum and seq is that if you do seq.at k, you don't consume k elements?
<hcarty> Correct
<thelema> hmm...
<hcarty> An imaginary let a = Seq.(1 -- 10) in Seq.iter print_int a; Seq.iter print_int a would print 1 through 10 twice
<hcarty> If Seq.( -- ) were defined like the Enum equivalent
<thelema> hmm, could Seq replace enum?
<thelema> what would be the downside...
<hcarty> Seq was slower (I don't remember how much) last time I checked
<hcarty> File.lines_of could either be surprising in a good or bad way with Seq
<thelema> well, I was thinking that the large list example would still be a problem for seq, as the whole large list would be kept in the Seq while it was being consumed
<hcarty> I don't know how significant the speed differences are between Seq and Enum. I think I tested with something trivial like summing a large sequence of integers.
<hcarty> I don't think the whole list would be kept in Seq
<hcarty> Only the element currently being used is kept around
<hcarty> The memory used would be the source list + a bit of Seq overhead
<thelema> if the Seq cna be iterated through again, the whole list would be kept
<thelema> yes, the original list.
<thelema> whereas with enum, the original list can be destructured and GCed incrementally
<hcarty> Can that actually be done?
<thelema> with enum, it can
<hcarty> I do think Enum should remain - it's a useful module
<hcarty> Seq makes more sense/acts in a more expected manner when programming in a functional way
Yoric has joined #ocaml
<thelema> Yoric: I vote for opa syntax #1
<Yoric> thelema: #1 as in revised syntax #1?
<thelema> if the biggest distinction between #1 and #2 is c-ish {} vs. python-ish indenting, #1 will get much better traction
<thelema> yes, revised syntax #1
<hcarty> thelema: http://vpaste.net/BSpWK? -- the speed difference between Seq and Enum may be negligible. s/Seq/Enum/ in that paste and the runtime doesn't really change on my system
krktz has joined #ocaml
<hcarty> For a large n of 100000000 or so
lopexx has joined #ocaml
<hcarty> And going with n = 500000000 puts Seq slightly ahead of Enum in speed
<Yoric> thelema: thanks for the vote :)
<Yoric> Other than that, how are you?
philtor has joined #ocaml
_andre has quit [Quit: leaving]
<thelema> Yoric: not too bad. Don't get any concussions - they really interfere with concentrating
_andre has joined #ocaml
<Yoric> thelema: what happened?
<thelema> Aikido training - my head tried to intersect with a knee
<thelema> I'm much better now, but I'm going to be extra careful with my head from now on, having learned that dain bramage is no fun
<thelema> Yoric: how are you doing? Still very busy with opa, I see.
<Yoric> Yeah, take care.
<thelema> Batteries is dropping its camomile dependency.
<Yoric> Indeed, I'm quite busy. I've been somehow promoted to Tech Evangelist, so I spend most time proselytizing, which is quite a change.
<Yoric> Yes, I've read the discussion.
<Yoric> Should make installation much easier.
<thelema> My other project, odb, is doing a good job at that.
<Yoric> afk
<thelema> On unix systems at least, it'll download and install a package and its deps automatically
krktz_ has joined #ocaml
krktz_ has quit [Client Quit]
sepp2k has quit [Quit: Leaving.]
Snark has quit [Quit: Ex-Chat]
<Yoric> thelema: sounds great :)
Anarchos has joined #ocaml
<thelema> Yoric: the interesting thing is it's a single file, meant to be used "ocaml odb.ml [args]" and it depends on only ocaml and findlib
<adrien> and on windows systems you can use yypkg's packages :P
<thelema> adrien: what are there yypkg's of?
<thelema> Available packages: batteries benchmark camomile cryptokit csv estring expect extlib extunix fastrandom fileutils lwt oUnit oasis ocamlgraph ocamlify odn pcre sexplib sqlexpr sqlite3 type-conv xdg-basedir
ftrvxmtrx has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
<adrien> thelema: I was joking because there aren't packages for ocaml currently (actually, the biggest issue is that I can't cross-compile without patching the compiler, which I'll do at some point), and I've lacked time for yypkg and its packages but it should improve in less than 3 weeks
<thelema> adrien: it would be very good to have packaging solutions for ocaml on generic unix and windows.
<thelema> but if you don't have a windows box to work on, I worry about the quality of whatever you yypkg you build
lopex has quit []
lopexx has quit []
<adrien> I have windows boxes (well virtual machines mostly, but not only) but it's *way* easier to build on linux
lopex has joined #ocaml
<thelema> even without a cross compiler?
<adrien> it's also much faster
<adrien> =)
<adrien> it's possible to get an ocaml cross-compiler but it takes some time if not on debian
<zorun> there is also one on arch now ;)
<adrien> oh
spearalot has quit [Quit: Get MacIrssi - http://www.sysctl.co.uk/projects/macirssi/]
<thelema> adrien: is it easy to build a package from a tarball with an _oasis file?
<adrien> thelema: not tried
<zorun> and I think the first time an ocaml cross-compiler was packaged was on fedora
<adrien> yeah, probably, several years ago I think
<adrien> (maybe 2 ;-) )
zzz_ has joined #ocaml
shachaf_ has joined #ocaml
sgnb` has joined #ocaml
cizra2_ has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
AdmWiggin has joined #ocaml
Lor_ has joined #ocaml
<Anarchos> hi adrien
shachaf has quit [Disconnected by services]
shachaf_ is now known as shachaf
flx_ has joined #ocaml
dcolish` has joined #ocaml
<rixed_> Hehe, now I can write: Http.pack1 (Http.Get ("google.com", "index.html")) |> Tcp.pack 1024 80 |> Ip.pack "192.168.1.1" "192.168.1.2" |> Eth.pack "00:01:02:03:04:05" "a0:b0:c0:d0:e0:f0" |> If.const_speed |> Pcap.pack "/tmp/opack.pcap"
jamii has quit [Ping timeout: 260 seconds]
flux has quit [Ping timeout: 260 seconds]
mcclurmc has quit [Ping timeout: 260 seconds]
zzz_` has quit [Ping timeout: 260 seconds]
adrien has quit [Ping timeout: 260 seconds]
Yoric has quit [Ping timeout: 260 seconds]
Tianon has quit [Ping timeout: 260 seconds]
sgnb has quit [Ping timeout: 260 seconds]
cizra2 has quit [Ping timeout: 260 seconds]
Lor has quit [Ping timeout: 260 seconds]
dcolish has quit [Ping timeout: 260 seconds]
jamii_ has joined #ocaml
<rixed_> and I got a pcap file with the HTTP get :-)
flx_ is now known as flux
<thelema> rixed_: random timestamps?
Yoric has joined #ocaml
<rixed_> Nope, If.const_speed set timestamp according to if throughput
Associat0r has quit [Quit: Associat0r]
adrien has joined #ocaml
mcclurmc has joined #ocaml
<thelema> really? that's nice.
<rixed_> dream: rewrite scappy in ocaml so that it's fast enough to be useable :-)
<rixed_> I needed a traffic generator for so long...
<rixed_> this is a very begenning, but I'm pleased to what I have after a single evening. Bitstring is very good for this job!
<thelema> I use bitstring for pcap files, and yes, it's very good.
<rixed_> What do you use your pcap files for?
<thelema> protocol parsing research
<rixed_> interresting. part of my dayjob is parsing protocols :)
<rixed_> not for research , though... :(
adrien_ has joined #ocaml
* adrien pats adrien_
vivanov has quit [Ping timeout: 255 seconds]
<thelema> well, now isn't a good time for me, but I'd like to get your opinion of a system that should be published
<rixed_> thelema: did you ever use scappy? It's very nice, but so slow...
<thelema> never have used scapy, it looks interesting, but I'm mostly interested in line-speed L7 parsing
<rixed_> thelema: same here...
<rixed_> thelema: scappy was evaluated for testing purpose
<rixed_> generating vicious payloads, etc... but was too slow
<thelema> well, ocaml+bitstring should make it quite easy to replace scapy from what I see
<rixed_> thelema: yes, my opinion also.
Lor_ is now known as Lor
<rixed_> why are you interrested in L7? doing a DPI of some sort?
<thelema> as I said, protocol parsing.
<rixed_> for what purpose?
<thelema> just field extraction, the extracted fields can be used for many purposes, but that's not our problem
<rixed_> thelema: well, in my previous work I used to think this way... until they planned to use the system to spy GSM users...
<rixed_> now we use the parsers to measure network app performence, it's fun and harmless
adrien_ has quit [Quit: leaving]
<rixed_> are you aware of the trick consisting of using the packet "frequencies" to find out encrypted protocols? This is my next big todo item.
sgnb` is now known as sgnb
<thelema> rixed_: packet byte frequencies? Of course.
<thelema> another student in my lab has done better, and can differentiate text vs. binary (graphics, applications) vs. encrypted
<rixed_> thelema: not byte frequencies but packet frequencies, ie using only direction, size and time deltas to find out if the payload is https, ftps, interactive shell, and so on...
<rixed_> usefull to find out what's happening on a VPN for instance (like, say, the RIM private network)
<flux> rixed_, next step: a disquising crypto tunnel ;)
<thelema> rixed_: yes, using statistical tests to identify traffic, sure.
<rixed_> thelema: so, does it works acurately?
<thelema> depends on the situation, but generally it's quite accurate
<thelema> of course, the whole concept of identifying traffic by its characteristics is fundamentally flawed in the presence of someone trying to get around such detection
<rixed_> I'd like to have some time to try that. Measuring for instance https response times without required any certificate would be nice (and much simpler actualy)
<rixed_> thelema: Yes, but my parser is not required to work in hostile environments
<thelema> no parser can work in a truely hostile environment, is all.
<rixed_> thelema: the former DPI on wich I worked could: because it was active, it was able to cut traffic from hostile users :-)
<thelema> and in general, the internet is hostile to this kind of thing. so I'm not so worried about misuse
<thelema> if the "hostile" users have control over their endpoints, this isn't a problem
<rixed_> thelema: I became worried after what happened in Iran after the previous elections...
<thelema> I stopped worrying after what happened in Egypt and Libya
<rixed_> hope you're right, but I don't feel people there are out of trouble yet. but we are far of topic.
<rixed_> May I ask a last question ? Did you try any fancy hardware to run your parsers on? For instance, hardware like cavium or netlogic manycores?
<thelema> We have developed a hardware accelerated regex engine, and our current solution is very amenable to ASIC implementation, but no, we've not run the parser on any fancy hardware.
enthymeme has quit [Quit: rcirc on GNU Emacs 23.1.1]
<rixed_> thelema: thank you again for the help with batteries, got to go now.
<thelema> cheers
rixed_ has quit [Quit: zzzZZZzzzZZZzzz]
rfg has joined #ocaml
oriba has joined #ocaml
oriba has left #ocaml []
rfg has quit [Read error: Connection reset by peer]
rfg has joined #ocaml
_andre has quit [Quit: leaving]
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
Yoric has quit [Quit: Leaving.]
edwin has quit [Remote host closed the connection]
waern_ has joined #ocaml
pdhborges has joined #ocaml
pdhborges has quit [Quit: Leaving.]
pdhborges has joined #ocaml
<bitbckt> is the forge down for anyone else?
<bitbckt> or maybe flapping... sigh.
<bitbckt> pdhborges: I just checked that, and it said it was down. :P
<bitbckt> now, back... wee.
<pdhborges> whoa I just got my ass handed
<pdhborges> I'll be in the fail corner
ikaros has quit [Quit: Ex-Chat]
smerz has quit [Quit: Ex-Chat]
Amorphous has quit [Ping timeout: 252 seconds]
pdhborges has quit [Quit: Leaving.]
Amorphous has joined #ocaml
emmanuelux has quit [Remote host closed the connection]
Associat0r has joined #ocaml
emmanuelux has joined #ocaml
emmanuelux has quit [Read error: Connection reset by peer]
pdhborges has joined #ocaml