flux changed the topic of #ocaml to: Yes, inria.fr is back up! | Discussions about the OCaml programming language | http://caml.inria.fr/ | 3.11.0beta1 available from http://caml.inria.fr/pub/distrib/ocaml-3.11/ | Or grab OCaml 3.10.2 from http://caml.inria.fr/ocaml/release.html
ushdf has quit [Read error: 60 (Operation timed out)]
ushdf has joined #ocaml
willb has joined #ocaml
Linktim_ has joined #ocaml
_zack has joined #ocaml
threeve has joined #ocaml
hsuh has joined #ocaml
Linktim has quit [Read error: 110 (Connection timed out)]
longh has quit [Read error: 54 (Connection reset by peer)]
alexyk has quit []
mlh is now known as mlh_zombie
willb has quit ["Leaving"]
<blue_prawn> good night!
blue_prawn has quit ["Client exiting"]
<palomer> who wants to run a program?
Linktim_ has quit ["Quitte"]
alexyk has joined #ocaml
det has joined #ocaml
Sinden has joined #ocaml
<yziquel> palomer: what kind of program?
<alexyk> why doesn't Set include of_list? Not only do I have to write stupid little modules to instantiate, I also have to write all kinds of of_list!
<alexyk> is there a way to add to a module after it's instantiated with Set.Make?
<alexyk> I have MySet = Set.Make(My) and would like MySet.of_list; -- way to add it "right in" MySet?
<yziquel> I'm trying to install godi on a windows system. The README file says there are two flavours on windows, both using cygwin for scripting, but using cygwin dll or mingw for compiling... I need the mingw one... But how can i be sure that the godi-rocketboost tarball uses mingw???
<alexyk> yziquel: easier to use F# :)
<yziquel> alexyk: perhaps, but i do not have a choice, running on a virtual machine, and have a deadline...
<yziquel> I *must* use mingw...
<yziquel> alexyk: why not declare your module as A, then include A in another module which will contain your extra stuff and call it again A.
<yziquel> ?
<palomer> yziquel, gtk
<alexyk> yziquel: interesting
<palomer> yziquel, do you have a bugzilla account?
<yziquel> palomer: nope, no bugzilla account.
<palomer> well, you don't need it:P
<yziquel> alexyk: i did something like this once: in a file called A.ml, i defined explicitely a recursive module A inside, and then included it, so that A.mli could kick off the A.A recursive module, and keep it as A.ml only.
Sinden has quit ["Leaving"]
<yziquel> palomer: taking an awful lot of time to compile...
<yziquel> no one knows how i can be sure to compile against mingw in windows?
<yziquel> palomer: compiled. what do i do?
tvn1981a has joined #ocaml
<tvn1981a> hi, is there a way to get how much memory usage a list of data structure is using ?
<tvn1981a> I have a growing list of object (e.g., type T) and I would like to know overtime how much memory this list consumes
<yziquel> tvn1981a: the brutal way would be to create a C binding that inspects the values of the list.
<yziquel> i guess...
<tvn1981a> I use ps aux | grep program_name and see that my programs takes lots of memory as it runs . I am not sure if the cause is of memory leak or just because the data structure grows
<yziquel> palomer: ./test2 gives a gtk window that pops up on the top left corner, intitled "GTK Entry".
<yziquel> palomer: however, when i click on the cross to close it, gnome says to me that the program is not answering.
<palomer> yziquel, can you run top at the same time
<palomer> yziquel, it takes a long time to compile? strange
<yziquel> 89% CPU usage...
<yziquel> palomer: somehow off the target, i presume.
<palomer> I need memory usage
<palomer> run it for, like, 3 minutes then tell me the memory usage
<yziquel> Xorg and the virtual machine are trying to keep up with the pace, but test2 is far ahead...
<yziquel> ok. running for 3 minutes.
<yziquel> palomer: what's your worry with this piece of code?
<yziquel> palomer: memory usage went up from roughly 1% to 2.6%.
<palomer> what's the memory usage for the process?
<yziquel> 2.6% of total memory... but i do not what my total memory is.
<palomer> 14043 palomer 20 0 22392 13m 5352 R 92 0.7 0:07.82 test2
<yziquel> 1.4G of total memory - is that realistic?
<palomer> that's the line I'm interested in
<ushdf> yes
<yziquel> 23711 yziquel 19 0 143m 35m 6516 R 71 2.6 2:54.01 test2
<palomer> could you paste the corresponding line?
<palomer> whoa
<palomer> 143 megs
<palomer> keep running it for 10 minutes
<palomer> tell me when you get to 70 megs
<yziquel> !!!!!!
<palomer> (where you see 35 megs right now)
<yziquel> ok
<palomer> it's for a good cause
<palomer> if anyone else wants to do it, it would be great
<yziquel> what's the good cause?
<palomer> fixing a memory leak in gtk
<yziquel> ahah.. that's a good cause indeed.
_zack has quit ["Leaving."]
<alexyk> I'm defining several Set types by declaring a module with compare's; then I need to create *set_of_list methods; e.g.
<alexyk> let set_of_list empty add = List.fold_left (fun set elem -> add elem set) empty
<alexyk> let pairset_of_list PairSet.empty PairSet.add
<alexyk> let polyset_of_list PolySet.empty PolySet.add
<alexyk> if there a way to supply just the module name/type to set_of_list so it'll fetch add and empty itself?
<yziquel> 24593 yziquel 25 0 153m 46m 6556 R 78 3.3 6:16.92 test2
<yziquel> palomer: doesn't seem to grow more.
<alexyk> I meant
<alexyk> let pairset_of_list = set_of_list PairSet.empty PairSet.add
<alexyk> let polyset_of_list = set_of_list PolySet.empty PolySet.add
struktured_ has joined #ocaml
tvn1981a has quit [Remote closed the connection]
<yziquel> 24593 yziquel 25 0 153m 46m 6556 R 75 3.4 8:01.01 test2
<palomer> close!
<palomer> ok, 60 megs should be enough
<yziquel> close to what?
<palomer> the 46
<palomer> needs to be 60
<yziquel> needs to be 60 in order to what?
<palomer> for me to complain
<yziquel> hmmm....
<palomer> right now they're like "valgrind isn't showing a memory leak"
<palomer> I need to come back and say "but what about top!"
det has quit [Read error: 104 (Connection reset by peer)]
<palomer> yziquel, could you priv msg me when it happens?
<palomer> (as well as paste to the channel)
<palomer> should take about 10 minutes
rhar has joined #ocaml
tomh has quit ["http://www.mibbit.com ajax IRC Client"]
struktured has quit [Read error: 110 (Connection timed out)]
<palomer> yziquel, not growing anymore?
det has joined #ocaml
<yziquel> 24593 yziquel 25 0 173m 65m 6532 R 75 4.8 20:05.65 test2
<yziquel> 24593 yziquel 25 0 183m 75m 6460 R 63 5.4 21:17.11 test2
<palomer> yay!
struktured_ is now known as struktured
yziquel has left #ocaml []
psnively has joined #ocaml
rhar has quit [Read error: 110 (Connection timed out)]
BSWolf has joined #ocaml
<BSWolf> Can someone explain to me the \1...\2 construct for regexp?
<palomer> check out #regex
<psnively> Those refer to parenthesized subexpressions in the regex.
<palomer> it's rather involved, if I remember correctly
<palomer> something about matching
<psnively> Yes.
<palomer> \n corresponds to the nth left paren when the regexp is read linearly
<palomer> from left to right
<palomer> but I may be wrong
<psnively> IIRC, \1 refers to the whole match.
<psnively> \2 is the first sub-expression, etc.
<palomer> defining "first", "second" and "third" is the tough part
<psnively> Counting open parens, IIRC.
<BSWolf> ah
<BSWolf> alright that helps. Thanks.
jeddhaberstro has quit []
psnively has quit []
<alexyk> what's the most compact way to implement Set.map in OCaml?
<alexyk> > Set.map;;
<alexyk> val it : (('a -> 'b) -> Set<'a> -> Set<'b>) = <fun:clo@0>
<alexyk> (from F#)
alexyk has quit [Read error: 104 (Connection reset by peer)]
alexyk has joined #ocaml
alexyk has quit [Client Quit]
<thelema> hi
<thelema> palomer: gtk code to test?
<palomer> ah yes
<palomer> btw, do you have a bugzilla account?
alexyk has joined #ocaml
<thelema> account on bugzilla.gnome.org? I don't think so.
<palomer> doesn't matter
<palomer> could you run that program for 20 minutes?
<thelema> it looks like I do.
<palomer> cool!
<thelema> run under valgrind?
<palomer> it doesn't leak very much under valgrind
<palomer> I think that it may be a timing issue
<palomer> run it for 20 minutes and then we'll use top
Axle has left #ocaml []
<thelema> okay, running now.
<thelema> every 100ms is probably too short a loop - I'm running at full CPU
BSWolfy has joined #ocaml
BSWolf has quit [Nick collision from services.]
<thelema> it is slowly taking up more VIRT and RES
<thelema> yup, according to pmap, there's a 57MB block of anonymous memory allocated for test2
<thelema> mapped: 164064K writeable/private: 58936K shared: 672K
<alexyk> why do I get this error:
<alexyk> File "./poly1.ml", line 118, characters 21-92:
<alexyk> This expression has type PolySet.t = Set.Make(Polyomino).t
<alexyk> but is here used with type Set.Make(Polyomino).t
<alexyk> The type constructor Set.Make(Polyomino).t would escape its scope
<alexyk> the types reported are identical!?
<palomer> thelema, could you paste the whole top line
<thelema> palomer: 25534 thelema 20 0 161m 64m 5932 R 83 3.2 14:17.47 test2
<thelema> alexyk: pastebin poly1.ml?
<palomer> whoa
<palomer> thx
<palomer> thelema, could you post that line on bugzilla?
<palomer> lemme find the link
<alexyk> thelema: error is in the line 118, let rec polys rank = ...
<thelema> palomer: posted.
<alexyk> I'm translating Dominic Fox's F# code generating polyominoes into OCaml and had to instantiate all kinds of little Sets... making me strangely attracted to F#'s Set<'a>
<alexyk> obviously Set has no of_list or map, so I had to concoct some
<thelema> it's not hard to have a polymorphic set - ocaml does it with hashtables.
<alexyk> thelema: I thought I first will do it the hard way anyways :)
<thelema> you just have to be willing to use the pervasives compare, and duplicate the code for the functorized version
<alexyk> thelema: did it twice, will suffice :) next time it's Hashtbl... but now I get on top of Set
<thelema> hmm, I get a problem with an unterminated string literal - maybe a copy/paste error
<thelema> yup,
<thelema> Error: Unbound value PolySet.empty
<alexyk> was sitting in an ocaml session for too long -- lemme reload
<thelema> hmm... File "poly.ml", line 122, characters 17-22:
<thelema> Error: This function is applied to too many arguments,
<thelema> (after re-arranging polyset to come earlier)
<thelema> L122: let hexominoes = polys 6
<alexyk> thelema: yeah, I was developing in ocaml interpreter, lemme ponder a minute
<alexyk> obviously things get defined and redefined
<alexyk> on top of each other...
<alexyk> ah it works! :)
<alexyk> is there a way to tell ocaml to clear up all state, without exiting?
<alexyk> to #use afresh
<thelema> not that I've ever done.
<alexyk> well it works in explicit call polys 6, but the line, let polys = 6, needed ;
<alexyk> I forgot a bit the actual executable statements syntax -- trying to do let hexaminoes = polys 6 in ... gives syntax error at "in"
<alexyk> wtf?
<thelema> toplevel lets don't use in.
<thelema> only lets within other things
<thelema> let hexominoes = polys 6
<thelema> (* There are 35 hexominoes *)
<thelema> let _ = printfn "There are %d hexominoes" (PairSet.size hexominoes)
<alexyk> ok! that should be, (PolySet.cardinal hexaminoes) :)
<alexyk> thelema: I saw batteries has a syntax to avoid let _ = ? :)
<thelema> it isn't needed if you end all your toplevel expressions with ;;
<thelema> and if you don't do that, the syntax is ambiguous. so the extension has been removed as it didn't do anything really.
<thelema> palomer: 25534 thelema 20 0 165m 68m 5932 R 76 3.4 36:14.05 test2
<thelema> it kinda levels out.
<palomer> permanently?
<palomer> thelema, thx
<thelema> you're welcome.
alexyk has quit [Read error: 113 (No route to host)]
|Jedai| has joined #ocaml
threeve has quit []
Jedai has quit [Read error: 110 (Connection timed out)]
Jedai has joined #ocaml
_Jedai_ has quit [Read error: 110 (Connection timed out)]
alexyk has joined #ocaml
<alexyk> thelema: works in ocaml fine, ocamlc complains about generalization -- why? http://ocaml.pastebin.com/d28da70c3
hsuh has quit [Remote closed the connection]
<alexyk> I can replace with a special case at the bottom which works in ocamlc, but wonder why discrepancy?
det has quit [Read error: 104 (Connection reset by peer)]
det has joined #ocaml
alexyk has quit []
alexyk has joined #ocaml
struktured has quit [Read error: 110 (Connection timed out)]
alexyk has quit []
<flux> it's called the value restriction
<flux> you can spot it from the '_a types
<flux> think for example what would happen such a limitation wasn't in place: let a = ref, a would have type 'a -> 'a ref
<flux> actually that example doesn't work :)
BSWolf has joined #ocaml
<flux> but there is a problem (not too unrealistic either although I dont' remember an example off-hand ;)) that would allow (very unsafe) type casting
BSWolfy has quit [Read error: 60 (Operation timed out)]
<flux> nah, simple let a = ref [] will have a problem
seafood has quit []
* palomer is against the value restriction!
<flux> well, I suppose you have a better solution then?-)
<palomer> restricted type variables!
<palomer> (just kidding)
<palomer> removing refs and using monads for everything (hahaha)
mishok13 has joined #ocaml
thelema has quit [Read error: 110 (Connection timed out)]
ushdf has quit ["leaving"]
<palomer> hrmph.
<palomer> what a doozy
filp has joined #ocaml
bla has quit [Read error: 113 (No route to host)]
_zack has joined #ocaml
<flux> man, I finally wrote a decentish substring module for parsing mailboxes, and while the GC load has gone smaller, it isn't any faster. infact, slightly slower.
<flux> perhaps I should try bypassing the in_channel layer also
dam1 has joined #ocaml
vixey has quit ["Leaving"]
bla has joined #ocaml
gal_bolle has joined #ocaml
_zack has quit ["Leaving."]
ulfdoz has joined #ocaml
Camarade_Tux|bed is now known as Camarade_Tux
marmotine has joined #ocaml
_zack has joined #ocaml
bla has quit [Read error: 110 (Connection timed out)]
bla has joined #ocaml
GustNG has joined #ocaml
<flux> I think I've discovered the holy grail of data structures: "fully connected graph"
<flux> the "replace references from parent object to child objects with weak references from child object to parent objects" turned out to be a bit more difficult to manage than I thought
Iskr has joined #ocaml
hkBst has joined #ocaml
Snark has joined #ocaml
bohanlon` has joined #ocaml
bohanlon has quit [Read error: 104 (Connection reset by peer)]
marmotine has quit [Read error: 113 (No route to host)]
dam1 has quit ["Leaving."]
yziquel has joined #ocaml
sporkmonger has quit []
<yziquel> hi again. i've been trying to install the cygwin+mingw version of godi. It somehow fails weirdly. you have a snapshot at http://yziquel.homelinux.org/images/snapshot.png
<Camarade_Tux> yziquel, do you really need godi ? if you only have a few libs to install, doing so by hand may be a better solution
okagawa has joined #ocaml
yziquel has quit [Read error: 104 (Connection reset by peer)]
yziquel has joined #ocaml
<yziquel> Camarade_Tux: sorry, computer crashed. What did you write?
<Camarade_Tux> yziquel, do you really need godi ? if you only have a few libs to install, doing so by hand may be a better solution
<yziquel> What I need is definitely to compile things against mingw
<yziquel> I need Unix package, access to Internet sockets
<yziquel> and a few other things like getopt
okagawa has left #ocaml []
Camarade_Tux_ has joined #ocaml
<Camarade_Tux_> hehe, my turn to be disconnected ;)
<yziquel> ok, both connected...
<yziquel> I need Unix essentially, and I want to use mingw essentially.
<Camarade_Tux_> you don't need godi then
<rwmjones> yziquel, are you trying to cross-compile?
<yziquel> rwnjones: yes...
<yziquel> with INET sockets
<yziquel> in the app.
<Camarade_Tux_> it would ease a few things during the compilation (are you using findlib under linux ?) but you'd probably spend more time getting godi to work
<yziquel> yes, using findlib under linux, and the makefile uses findlib...
<yziquel> (and I've got C bindings too in the code ...)
* Camarade_Tux_ still has to try ocaml+godi with wine
Linktim has joined #ocaml
okagawa has joined #ocaml
<Camarade_Tux_> hmmm, impossible to get ocaml mingw maxi
<yziquel> rwnjones: from the snapshot, what do you think is usable...?
<yziquel> it seems godi has just a small failure. Does anyone know where and how to specify the ocaml standard lib directory? And how to make godi resume?
Camarade_Tux has quit [Read error: 110 (Connection timed out)]
Camarade_Tux_ is now known as Camarade_Tux
<Camarade_Tux> you should not try to make it 'resume'
<Camarade_Tux> I've already given the path to that directory but I can't remember, sorry
alexyk has joined #ocaml
<yziquel> When I launch ocaml it says it cannot find "pervasives.cmi"...
<yziquel> But i can see where this file is explicitely.
<yziquel> So why can't ocaml find its standard libraries...?
<Camarade_Tux> have you set the various paths ?
<yziquel> nope. what are they?
sporkmonger has joined #ocaml
<Camarade_Tux> that was a reflex and I forgot to ask you where you had installed ocaml : /usr, other path ?
<yziquel> well /home/username/local/godi/(s)bin/...
sporkmonger_ has joined #ocaml
Linktim_ has joined #ocaml
GustNG has quit ["Leaving."]
<Camarade_Tux> be back
GustNG has joined #ocaml
thelema has joined #ocaml
sporkmonger__ has joined #ocaml
sporkmonger has quit [Read error: 104 (Connection reset by peer)]
<yziquel> yeah, but it seems that Godi's mingw is different from the standad mingw..
sporkmonger_ has quit [Read error: 60 (Operation timed out)]
<Camarade_Tux> yziquel, I thought you had installed a regular ocaml
* Camarade_Tux has no idea and would "debug" with filemon
<yziquel> no no no... I am using godi because it seemed to me that there was all in one.
<yziquel> My turn to leave and come back later. I need to eat something. See you.
yziquel has quit ["Leaving"]
* Camarade_Tux has no space left to install wine =/
Linktim has quit [Read error: 113 (No route to host)]
Associat0r has quit [Client Quit]
alexyk has quit []
BSWolf has quit [Read error: 60 (Operation timed out)]
Linktim has joined #ocaml
ygrek has joined #ocaml
seafood has joined #ocaml
seafood has quit [Read error: 60 (Operation timed out)]
okagawa has left #ocaml []
okagawa has joined #ocaml
Linktim_ has quit [Read error: 110 (Connection timed out)]
Linktim_ has joined #ocaml
yziquel has joined #ocaml
seafood has joined #ocaml
Linktim has quit [Read error: 110 (Connection timed out)]
ygrek has quit [Remote closed the connection]
ygrek has joined #ocaml
alexyk has joined #ocaml
alexyk_ has joined #ocaml
marmotine has joined #ocaml
alexyk_ has quit [Client Quit]
Snark has quit [Remote closed the connection]
<_zack> thelema: do you know which commit in the GIT history of batteries correspond to the release of the latest alpha ?
<_zack> it would be good to tag it as such
seafood has quit [Connection timed out]
seafood has joined #ocaml
alexyk has quit [Read error: 110 (Connection timed out)]
seafood_ has joined #ocaml
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
seafood has quit [Client Quit]
<guyzmo> hi
<guyzmo> does anyone know about a ocaml outliner ?
<flux> cool, latex-generator for pretty pictures: http://mlpost.lri.fr/examples/boxes.ml.html
<flux> ocaml outliner?
seafood has joined #ocaml
<guyzmo> fup, to output summaries of ocaml program, you know like in eclipse
<guyzmo> yup*
seafood has quit [Client Quit]
<guyzmo> also why not have also an ocaml class browser
<guyzmo> (and modules)
<flux> well, there is ocamlbrowser, but it may not be exactly what you're looking for
seafood_ has quit [Connection timed out]
<flux> then there's otags
<guyzmo> hm... otags ? I only knew about ocamlwizard
<flux> and then there's ocamlspotter
<doy> there are a couple ocaml plugins for eclipse
<flux> ocaml-tutorial.org could perhaps use a list of ocaml-related tools
<flux> or would that be outside its scope ;)
<guyzmo> doy - yup, but I'm not talking about eclipse, it was just to define what I mean by "outliner" :)
<guyzmo> flux - ok, thanks for the hints :)
<flux> guyzmo, also, I've found key sequence C-c h very useful in Emacs
<guyzmo> flux - what does it do ?
<guyzmo> (I'm not emacs-friendly)
<flux> say you're on List.iter, it finds that particular documentation (list.mli, right place in it)
<guyzmo> (though emacs is very good)
<guyzmo> ah nice
<flux> but indeed if you haven't tried, you shuld also try compiling an .ml-files with -dtypes and then hitting C-c C-t over a value
<flux> it will tell you the type of that expression
<guyzmo> using tuareg mode, I assume
<flux> yes, but it requires ocaml-mode to be around
<flux> to use its caml-types.ml
<guyzmo> ok
<flux> I don't know how ocamlspotter integrates into emacs, though, so it might provide its own similar functionality anyway
<flux> it should be -dtypes on steroids
<guyzmo> and to explain, I want to add ocaml support for pida (pida.co.uk) an ide in python that supports emacs and vim integration
<flux> so cute, they love me already, and I only went to see their web site! ..
<flux> ;)
yziquel has quit [Remote closed the connection]
Amorphous has quit [Read error: 110 (Connection timed out)]
<flux> guyzmo, in any case I think adding support similar to emacs' C-c C-t would be very nice to have in any IDE
<flux> I'm not sure if it's its task to do it, though
<flux> if it already has integration with emacs and vim..
okagawa has left #ocaml []
<guyzmo> flux - for sure
Amorphous has joined #ocaml
<guyzmo> well, my view of *that* IDE, is to provide everything that should be graphical tied together around the editor
okagawa has joined #ocaml
<guyzmo> like project and file management (M-x speedbar really sucks :p) among other things
okagawa has left #ocaml []
willb has joined #ocaml
Snark has joined #ocaml
jeremiah has quit [Read error: 104 (Connection reset by peer)]
tomh has joined #ocaml
<flux> iswitchb is nice ;)
willb1 has joined #ocaml
willb1 has quit [Read error: 104 (Connection reset by peer)]
rwmjones_ has joined #ocaml
Linktim_ has quit [Read error: 104 (Connection reset by peer)]
Linktim_ has joined #ocaml
jeremiah has joined #ocaml
mishok13 has quit [Read error: 145 (Connection timed out)]
s4tan has joined #ocaml
<s4tan> hi
pango has quit [Remote closed the connection]
pango has joined #ocaml
<s4tan> I have a little problem, I'm creating a lexer, and i must match something like '(' _* ')', but i want a lazy match. I have tried to use the 'Lazy' keyword, but i doesn't work in my case, any idea?
<doy> what do you mean by a lazy match?
Linktim has joined #ocaml
<s4tan> for example
<s4tan> function foo(a,b,c); function bar(d,r,f);
Linktim_ has quit [Read error: 113 (No route to host)]
<s4tan> with '(' (_*) as str ')', I have str = a,b,c); function bar(d,r,f
<s4tan> instead i want to match only a,b,c
<doy> oh, the term you're looking for there is 'non-greedy'
<s4tan> oh yes tnx :)
<s4tan> i google for this term :)
<doy> but in order to match things like foo(a, b, bar(c)) correctly, you're going to need to be a bit more complicated than that
<s4tan> yes i know, but that it is not my case, i need to match only function definition
<doy> okay
<Raevel_> is it possible to curry a function taking only one argument without evaluating it? i'm just playing around and for instance List.iter (print_string "1") list did not do the trick
<doy> looks like you should be able to move that rule into a separate parse function called from your main one, and use 'shortest' instead of 'parse'
<doy> List.iter (fun _ -> print_string "1")
<doy> ?
s4tan has quit [" mIRC 6.31 in Italiano by Sagitt - www.mircmania.it"]
<Raevel_> thanks doy that did the trick
<Raevel_> i'm coming from haskell world so i'm a little confused :-)
<Raevel_> and that probably didn't make any sense, since i'm a terrible haskell programmer
Raevel_ is now known as Raevel
longh has joined #ocaml
sporkmonger__ has quit []
sporkmonger has joined #ocaml
rwmjones_ has quit ["Closed connection"]
sporkmonger has quit [Client Quit]
okagawa has joined #ocaml
filp has quit ["Bye"]
vixey has joined #ocaml
sporkmonger has joined #ocaml
_JusSx_ has joined #ocaml
willb has quit ["Leaving"]
* palomer also came from a haskell background
<palomer> haven't looked back since
<doy> what made you switch?
<vixey> It's possible that using more than one language can be effective
willb has joined #ocaml
<doy> i'm just curious to hear from someone who's actually given haskell a shot and didn't like it... i've never actually used haskell myself, but all i can ever find about it are people talking about how awesome it is
<palomer> I liked haskell
<palomer> what made me switch...
<palomer> I switched for technical reasons
<palomer> I wanted to compile into something that had references
<flux> I've tried haskell a bit, and while it's elegant to be pure, it might be tiresome at points
<palomer> and I wanted my meta language to be the same as my object language
<flux> but perhaps I haven't given it a real try
<palomer> my code is much cleaner in ocaml
<palomer> and I've yet to encounter a state related bug
<vixey> doy, I don't like haskell standard library there are really stupid mistakes in it but the actual language is interesting
<palomer> the reasons I switched turned out to be irrelevant
<palomer> mistakes in the standard library?
<palomer> never encountered any
<flux> by mistakes I don't think he means bugs
<palomer> anyways, I'm addicted to polymorphic variants and objects
<palomer> and I've ceased to see state as the enemy
<palomer> actually, I lied; I have run into a few state related bugs
<palomer> but not too many
* palomer is off!
_zack has quit ["Leaving."]
<palomer> oh, and I forgot to mention that unification is _so much easier_ in ocaml
* palomer is really off
<vixey> unification ?
<flux> don't trust him.. he's prolly still lurking around.
<vixey> I do not
<vixey> I have written first order unification in both actually
<flux> how was it in haskell?
<flux> I'm guessing he means he wants to use mutability a lot when doing it?
willb1 has joined #ocaml
<vixey> only since I know haskell a little better, I could parameterize it over the datatype - I'm sure this is pretty easy in ocaml too using modules though
willb1 has quit [Read error: 104 (Connection reset by peer)]
<vixey> but other than, it's just as easy in each
willb2 has joined #ocaml
<flux> hmm, I'm banned from #haskell
<doy> heh
<vixey> serves you right for liking ocaml!
<flux> I wonder for what reason
<flux> could be technical
<flux> have I bounced a lot here?
<flux> at around 11:11 UTC yesterday
okagawa has left #ocaml []
<Camarade_Tux> flux, what do you mean by "bounced" ?
<flux> disconnected/reconnected repeatedly
<Camarade_Tux> then, no, you didn't
<Camarade_Tux> flux, could you try to /join #haskell ?
<flux> aah, now I get it
<flux> I'm ircing from the same host as tuomov!
<flux> ;-)
willb has quit [Read error: 113 (No route to host)]
<flux> camarade_tux, it just says: pe205912 [FreeNode] -!- Cannot join to channel #haskell (You are banned)
<flux> tuomo isn't very popular internet person
<mbishop> haha
<Camarade_Tux> #haskell didn't like him writing a competitor tiling wm ? :p
<mbishop> speaking of
<mbishop> whatever happened to tuomov
<flux> well, the guy can have opinions.. loud ones
<mbishop> I liked some of his opinions
<flux> I don't think I've ever seen the guy, before or after the point when something would have "happened" :)
<flux> (although it wouldn't be fully unlikely either, as we're members of the same computer club, modeemi)
<Camarade_Tux> unrelated, has anyone tried ocamlfuse/fuse ?
<hcarty> Camarade_Tux: There was a post on the mailing list about a filesystem implemented using OCaml + ocamlfuse some time ago
<hcarty> It was implemented in a way that the directory hierarchy acted as a search, IIRC
<Camarade_Tux> hcarty, LFS iirc
<Camarade_Tux> your comment actually answer my question ;p
<Camarade_Tux> I was wondering whether fuse fs had to be with files and folders, seems so
<hcarty> I think it has to be mapped to files and folder from the user's perspective...
<hcarty> But it may be possible to make, say, a database browser through fuse
<hcarty> Map tables to directories and such
<hcarty> Actually, I'd be surprised if that weren't possible
<Camarade_Tux> the api seems to need files and folders but there's no real reference, the fuse project lacks an introduction
<hcarty> Camarade_Tux: Given something like sshfs (I think that's the name?), there should be some mechanism for using non-file source material to populate the FS.
<hcarty> But having never programmed with fuse, this is mostly speculation on my part
<Camarade_Tux> hcarty, from what I've seen, in fuse you give functions to read folders, open files, close them, ... so it would need folders
<Camarade_Tux> but I can't seem to find a quick how-to =/
mbishop has quit [Remote closed the connection]
<hcarty> http://fuse.sourceforge.net/wiki/index.php/DatabaseFileSystems -- This has some examples which may be useful?
<hcarty> Fuse::DBI in particular
mbishop has joined #ocaml
marmotine has quit [Remote closed the connection]
ulfdoz has quit ["deprecated"]
ulfdoz_ has joined #ocaml
<Camarade_Tux> hcarty, *all* the examples show the same structure, I guess the filesystems have to be hierarchical, and that's exactly what I wanted to know, thanks :)
Associat0r has joined #ocaml
<flux> camarade_tux, what kind of filesystem would you think that would not be hierarchical?
<flux> and still mountable to a unix system..
<Camarade_Tux> flux, I wanted to know if it could expose other paradigms, it was unlikely but I needed to be sure
snhmib has quit ["Good riddance!"]
<flux> camarade_tux, but, in the end, all you have is files and directories.. perhaps you could expose your data via another protocol ;)
<Camarade_Tux> flux, the problem is they have no _clear_ description, hierarchical fs is perfect for me, the approach and the api wasn't though ;)
_JusSx_ has quit ["leaving"]
yziquel has joined #ocaml
tomh has quit ["http://www.mibbit.com ajax IRC Client"]
sporkmonger has quit []
Snark has quit ["Ex-Chat"]
<palomer> hrmph
<palomer> finding a nice introduction to datalog is impossible
Submarine has joined #ocaml
<vixey> Why on earth would you even consider using datalog?
ulfdoz_ has quit ["deprecated"]
<flux> man.. has parsing c++ become somehow easy, as there's yet another project that does it? http://aryx.kicks-ass.org/~pad/software-yacfe.php
<mfp> flux: AFAICS this one is a bit different though, as it preserves most of the parse tree for source-to-source transformations
* Camarade_Tux notes kick-ass.org is a dyndns domain so we'd better back up yacfe
<flux> mfp, but still, it does produce an AST
<mfp> but not quite as Abstract as usual :)
<flux> judging from the example it has type information, which can be useful
<flux> its parent project is http://www.emn.fr/x-info/coccinelle/ - quite interesting those semantic patches (about half down the page)
<flux> it would be nice to have such a tool not only written in ocaml, but FOR ocaml :)
Kerris4 has joined #ocaml
InkBottle has joined #ocaml
Associat0r has quit [Client Quit]
Axioplase has joined #ocaml
ygrek has quit [Remote closed the connection]
sporkmonger has joined #ocaml
xevz has quit [Read error: 60 (Operation timed out)]
xevz has joined #ocaml
vixey has quit ["Leaving"]
grykgru has joined #ocaml
<maxote> eager computation is faster than lazier computation, not?
bohanlon` is now known as bohanlon
Submarine has quit [Read error: 110 (Connection timed out)]
<palomer> why NOT use datalog?
vixey has joined #ocaml
<palomer> vixey, why NOT use datalog?
<palomer> it seems better than SQL
<palomer> SQL doesn't even have a type system
<vixey> datalog has a type system?
<vixey> (I think SQL does actually..)
<palomer> well...there are type systems for relation algebra
<palomer> but they're really ugly
<palomer> datalog has a type system...prolog's!
<vixey> prolog is untyped
<palomer> anyways, it's not hard to come up with a type system for prolog
<palomer> if you don't care about polymorphism
<vixey> I'm not sure what implementing type systems in Prolog has to do with datalog though
<palomer> just assign every table name with a list of types
grykgru has left #ocaml []
<palomer> datalog can be seen as a subset of prolog
<vixey> yeah, the subset that that program can't be written in
<vixey> this discussion is ridiculous actually
<palomer> so, if table P is (string,int) and table Q is (int,string) with queries R(X,Y) :- P(X,4), Q("hello",Y) and S(X,Y) :- P("hello",X),Q(Y,4)
<palomer> then R is (string,int) and S is (int,string)
<palomer> writing a non polymorphic type system for datalog is straightforward.
<vixey> are you aware of Mercury?
<palomer> yeah
<vixey> ok
<palomer> that's a full fledged programming language
<vixey> I know what it is :)
<palomer> what about it?
<vixey> I just wanted to know if you were aware of it
<palomer> despite its advantages (compared to other database languages such as SQL) such as recursive queries and clean semantics.
<palomer> they forgot to mention clean type system
<palomer> man, I would _kill_ to see a datalog binding in ocaml
<vixey> How is datalog implemented?
<vixey> do they do very clever things to make it extremely efficient?
vixey has quit ["Leaving"]
jeremiah has quit [Read error: 104 (Connection reset by peer)]
willb2 has quit ["Leaving"]
vixey has joined #ocaml
yziquel has quit [Read error: 104 (Connection reset by peer)]
rhar has joined #ocaml
jeremiah has joined #ocaml
jeremiah has quit [Connection reset by peer]
Linktim_ has joined #ocaml
Linktim_ has quit [Client Quit]
GustNG has quit [Read error: 110 (Connection timed out)]
_zack has joined #ocaml
jeremiah has joined #ocaml
<palomer> vixey, seems pretty efficient
Linktim has quit [Read error: 110 (Connection timed out)]
Axioplase has quit ["Lost terminal"]
jeremiah has quit [Read error: 104 (Connection reset by peer)]
yziquel has joined #ocaml
yziquel has left #ocaml []
rhar has quit ["Leaving"]