flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | Grab OCaml 3.10.2 from http://caml.inria.fr/ocaml/release.html (featuring new camlp4 and more!)
redocdam has quit []
tomh has quit ["http://www.mibbit.com ajax IRC Client"]
ecc_ has quit [Remote closed the connection]
marmotine has joined #ocaml
Chile` has quit ["leaving"]
hsuh has joined #ocaml
hsuh has quit [Client Quit]
rogo has quit [Remote closed the connection]
mxc has quit ["Leaving"]
Kopophex has quit [Read error: 110 (Connection timed out)]
seafood has joined #ocaml
seafood__ has joined #ocaml
seafood__ has quit [Read error: 104 (Connection reset by peer)]
seafood__ has joined #ocaml
seafood__ has quit [Read error: 104 (Connection reset by peer)]
seafood__ has joined #ocaml
seafood_ has quit [Read error: 104 (Connection reset by peer)]
seafood__ has quit [Read error: 104 (Connection reset by peer)]
jeddhaberstro has quit []
seafood_ has joined #ocaml
marmotine has quit ["mv marmotine Laurie"]
seafood has quit [Read error: 110 (Connection timed out)]
Associat0r has quit []
seafood has joined #ocaml
seafood_ has quit [Read error: 104 (Connection reset by peer)]
<mbishop> So what ever happened to all the "extension" libraries? people were working on like 3 different ones
Kopophex has joined #ocaml
ikatz has joined #ocaml
mishok13 has quit [Read error: 110 (Connection timed out)]
mishok13 has joined #ocaml
<thelema> mbishop: I got busy with other things - that put my one on hold.
<mbishop> ah
bluestorm has quit ["Leaving"]
rstites has quit [Remote closed the connection]
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
Proteus__ has quit [Read error: 110 (Connection timed out)]
Kopophex has quit ["Leaving"]
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
mishok13 has quit [Read error: 110 (Connection timed out)]
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
seafood_ has joined #ocaml
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood_ has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
seafood_ has joined #ocaml
seafood has quit [Read error: 54 (Connection reset by peer)]
seafood_ has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
ygrek_ has joined #ocaml
seafood_ has joined #ocaml
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
seafood_ has quit [Read error: 104 (Connection reset by peer)]
Demitar has quit [Remote closed the connection]
Demitar has joined #ocaml
mishok13 has joined #ocaml
Yoric[DT] has joined #ocaml
filp has joined #ocaml
Amorphous has quit [Read error: 110 (Connection timed out)]
Amorphous has joined #ocaml
Asmadeus has joined #ocaml
vixey has joined #ocaml
GustNG has joined #ocaml
Proteus has joined #ocaml
<Proteus> I'm considering using swig to get bindings to some pretty advanced c++ systems but first I'm looking for any anecdotes and advice I can get from our community
<Proteus> any help would be immensely appreciated
<Proteus> also, I'm really interested in an updated wxcaml, if it exists (would swig be a viable option here too?)
<rwmjones> Proteus, anecdotally, swig for ocaml sucks
<rwmjones> anyone here using coq? if so, what is /usr/bin/parser used for?
OChameau has joined #ocaml
<Proteus> rwmjones, on my second question, is there anyone working on wxwidgets
<rwmjones> Proteus, I'm not aware of anyone working on it. Last time I looked (literally, years ago) wxcaml was written using swig.
<rwmjones> Proteus, have you thought about using gtk / lablgtk?
seafood_ has joined #ocaml
seafood has quit [Read error: 104 (Connection reset by peer)]
<Proteus> I have, but it just didn't seem elegant. I don't have a lot of experience with it, though. But I admire your contbution to ocaml - if you recommend it I'll givie it a closer look
<Proteus> wxwidgets works at a higher level though
seafood_ has quit [Read error: 104 (Connection reset by peer)]
<rwmjones> I've written commercial cross-platform programs in lablgtk (well, 2 of them so far) and it's pretty good, but certain things suck (eg. file open dialog, printing is nigh-on impossible)
seafood has joined #ocaml
<Proteus> yeah, printingn is great wi wx
<Proteus> with
<rwmjones> indeed .. I did actually write a printing module for Windows & Linux for one of the applications, but it was quite limited
<rwmjones> only used for printing out simple charts
<Proteus> I heard we're going to get some automation this summer for interfacign with c++
<Proteus> true?
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
seafood has quit []
seafood has joined #ocaml
asmanur has joined #ocaml
<mfp> the OSP ML is very well hidden, so here's my 1st ever submission > http://www.reddit.com/r/programming/comments/6usb1/osp_status_reports_ocaml_on_multicore_delimited/
rwmjones has quit [Read error: 110 (Connection timed out)]
* Yoric[DT] will be sure to take a look.
seafood has quit []
hsuh has joined #ocaml
hsuh has left #ocaml []
<Proteus> I'm looking forward to being able to interface with c++
<Proteus> I hope the qt project doesn't lose steam after the summer is over
coucou747 has joined #ocaml
bluestorm has joined #ocaml
guillem has joined #ocaml
Jedai has joined #ocaml
rwmjones has joined #ocaml
mikezackles has joined #ocaml
<Proteus> mfp, do you know if the new threading capabilities will be ready by the end of the summer? your link doesn't say
ertai_ has quit [Client Quit]
ertai has joined #ocaml
ertai has quit [Client Quit]
ertai has joined #ocaml
rwmjones has quit [Read error: 110 (Connection timed out)]
vixey has quit []
Associat0r has joined #ocaml
romanoffi has joined #ocaml
romanoffi has left #ocaml []
rogo has joined #ocaml
vixey has joined #ocaml
<mfp> Proteus: "We expect a working runtime without locks (and thus with real threads) using Boehm's GC within one week or maybe a little more."
<flux> I'm interested in seeing wonder how it does efficiency-wise
<flux> s/wonder //
<bluestorm> seeing wonders is interesting too
<flux> wish they'll do one.
<flux> "we noticed that allocation performance on single-core is increased by 50% and gc sweep takes only 40% of the original, and it runs in parallel too"
<flux> but, I suppose reality is a bit worse ;(
<Proteus> wow, that's a lot better than I expected
<flux> :-)
<Proteus> I think I read that they're using a plugin system for the GC, wich is pretty cool
<Proteus> biggest bennifit : john harrop shuts up for a while. ( one can dream )
<mfp> well, they're using Boehm GC now and plan to replace it their own, so I suppose they must have made it easy to switch
<bluestorm> that was in the project description
<mfp> flux: where's that quote from ("we noticed that...")?
<flux> mfp, from my butt.
<Proteus> I'd also like to see how well it performs certain tasks compared to jocaml, or if they could be combined
<flux> (that is, in no unclear terms: I made it up ;))
<mfp> it was pretty clear :)
<Proteus> awww
<bluestorm> yeah, pa_where bug spotted
<bluestorm> let a = b where val c = d where e = f
<mfp> should translate to let c = let e = f in d let a = b right?
<bluestorm> yes
<bluestorm> let a = b where val c = (d where e = f) works
<bluestorm> but the first one is an error
<bluestorm> no idea how to fix it right now :p
<mfp> bluestorm: I think I got it
<mfp> 1 sec
<mfp> the problem was originated by the reuse of fun_binding' through where_binding, which prohibits further "where ..." in the expression
<bluestorm> ah, i see
<bluestorm> because of the enforced LEVEL "top"
<mfp> yes
<bluestorm> i want parametrized rules :'(
<mfp> that was needed to get the right associativity of where a = b where c = d
<bluestorm> now were't at it
<bluestorm> don't you think we should add a "where ..." form for other structure items ?
<bluestorm> i think i may use them, and that would be a consistency plus
<mfp> values are by far more important, but yeah, other str_items would be nice for consistency
<bluestorm> the think is that if you have a long series of "where val"
<vixey> if I wrote a gui program in ocaml using LablTk will it be able to work without changing the source code on other OSs?
<bluestorm> you can't declare a class in the between
<bluestorm> because the non-backward form would break the series
<bluestorm> vixey: i guess so
<bluestorm> i have used LablTk on Windows myself
<bluestorm> in the old ages of ocaml learning
<vixey> is ocamlbrowser written in it
<bluestorm> LablGtk would probably be more powerful as a GUI, but getting it to compile on windows is, i was said, quite a challenge
<bluestorm> mfp: maybe we should try to use the included SVN ?
<bluestorm> (i admit it's more a game than any serious requirement right now)
<mfp> SVN sucks :-|
<bluestorm> yeah but gildor is away so i don't think we could have any DCVS you're on (git, right ?) now
<mfp> we can exchange the patches manually for the time being
<mfp> just no central repos
<mfp> or use github or whatever
<mfp> it doesn't have to be git btw., darcs would be fine (I don't see any reason to use it anymore, though)
<vixey> are there some LablGtk programs around which are worth looking at?
pango_ has quit [Remote closed the connection]
<bluestorm> vixey: http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html , "Software and Links"
rwmjones has joined #ocaml
pango_ has joined #ocaml
<mfp> bluestorm: let bar = { foo = 1; baz = "foo" } where type a = { foo : int; baz : string } working
<mfp> and nearly all valid str_items probably
<vixey> sorry
<vixey> I actually meant LablTk
<bluestorm> mfp:
<bluestorm> i'll be offline for 3 to 5 days in a few hours
<bluestorm> so i encourage you to upload the new bright thing yourself :p
<bluestorm> ah
<mfp> ("external" commented out because I don't know where string_list comes from)
<mfp> k
<mfp> probably need to do e = str_item LEVEL "top" hmm
<bluestorm> the value_let is porbably wrong
<bluestorm> as value_let is "let" in classical syntax
<mfp> ah yes that
<mfp> it's covered by the first case, so can just remove it
<mfp> no LEVEL "top" needed for str_item seemingly
<bluestorm> btw, i'm actually using pa_where for an other code
<bluestorm> (~300 lines so far)
<bluestorm> and i ran into quite a lot of precedence issues :p
<bluestorm> this is mostly because it's still a new construct
<bluestorm> but i for example find that when use mixing of "where (let)" , "and" and "where val", encapsulation toplevel items in a begin .. end block is good practice
<bluestorm> hm
<bluestorm> one thing i thought of yesterday and that i think would be quite helpful
<bluestorm> is a syntax extension verifying the consistency of actual precedence and the source indentation
<bluestorm> that would emit warning "the indentation does not correspond to the actual semantic"
<bluestorm> i think i may to write that one of these days
<mfp> sounds good
<bluestorm> that could be quite useful for beginners
<mfp> the indentation can trick you when you're refactoring too
<bluestorm> hm o_O
<bluestorm> (a when b = c) works
<bluestorm> begin a when b = c end fails
<bluestorm> a strange level issue again :D
<bluestorm> hm
<bluestorm> in case someone is interested
<bluestorm> i wrote a nano ocaml highlighting file
RobertFischer has joined #ocaml
<mfp> yay Alaska Ataca a Kamtchatka, here goes my 2nd post ever http://www.reddit.com/comments/6ut5q/sorting_out_evolution_genetic_algorithms_to_find/
<vixey> what is the purpose of this mfp?
<vixey> oh
rwmjones has quit [Read error: 110 (Connection timed out)]
<mfp> vixey: it is my understanding that sorting networks are easy to implement in HW and admit good parallelization
<mfp> the corresponding section in TAOCP was marked with "*", so I have only skimmed it, though
<bluestorm> i actually like the good old computer science posts (the one about curryfication was great)
<bluestorm> TAOCP posts tend to get a bit terrifying
RobertFischer has quit ["Taking off -- check out http://smokejumperit.com and http://enfranchisedmind.com/blog/"]
vixey has quit []
mishok13 has quit [Read error: 104 (Connection reset by peer)]
Linktim has joined #ocaml
fy___ has joined #ocaml
fy___ has quit [Read error: 104 (Connection reset by peer)]
tvn1981a has joined #ocaml
<tvn1981a> what's the difference btween () and {} ?
<Yoric[DT]> Usual syntax ?
<Yoric[DT]> And do you mean () -- with nothing between the parenthesis -- and {} -- with nothing between the brackets -- or something more complex?
<coucou747> # (1,2);;
<coucou747> - : int * int = (1, 2)
<coucou747> # {1,2};;
<coucou747> Syntax error
<tvn1981a> just the usual syntax -- I know what () is equiv with begin ... end -- but sometimes I see {} and not sure when to use {}
<Yoric[DT]> Curly brackets are used for records.
<Yoric[DT]> They just delimit the contents of the record.
<tvn1981a> I am looking at this code that has something like fun () -> { ..... }
<Yoric[DT]> probably
<Yoric[DT]> fun () -> { a = ... ; b = ... ; c = ... }
<Yoric[DT]> isn't it?
<tvn1981a> not really -- can I copy and paste code somewhere to here ?
pango_ has quit [Remote closed the connection]
<bluestorm> { f with field = ... ; field2 = ... }
<bluestorm> other record construct
<bluestorm> it returns a record equal to f with the fields "field" and "field2" updated
<bluestorm> in your example, Cil.global has changed
<bluestorm> (the field name is qualified because the record is defined in the module Cil)
<bluestorm> +)
pango_ has joined #ocaml
<bluestorm> hm
<bluestorm> more or less time to go it seems
<bluestorm> mfp: best luck with the pa_where infernal bugs of the next few days :-'
<tvn1981a> so it returns a record equals to function f ?
<mfp> np, no users means no bug reports, they'll appear when you come back :)
RobertFischer has joined #ocaml
<tvn1981a> in ocaml, the equal sign is == right ?
<RobertFischer> Try it out!
<RobertFischer> If you've got OCaml installed, you should have the toplevel.
<tvn1981a> ah it's not
<RobertFischer> It's just "=".
<RobertFischer> Assuming you want the equality comparator.
<tvn1981a> so what's the definition of == ?
<RobertFischer> Referential equality? I don't know, actually.
<bluestorm> tvn1981a: you can think of == as reference equality
<tvn1981a> hm weird
<tvn1981a> it also acts as = ?
<tvn1981a> let s = 1 in if s == 1 then Printf.printf "s is 1" ;;
<bluestorm> (whereas = is value equality)
<bluestorm> you should not use ==
<bluestorm> unless you know what you're doing
<bluestorm> == can be useful when you manipulate mutable values
<bluestorm> let a = ref 1;; let b = ref 1;;
<bluestorm> (a = b) is true, while (a == b) is false
<bluestorm> because if you change a, it won't affect b
<bluestorm> but they (currently) have the same value
<bluestorm> btw
<tvn1981a> ic
<bluestorm> in your code, f is not a function
<bluestorm> it's probably a file
<tvn1981a> it is a file -- you're right
<bluestorm> a function is not a record so that would not work
<tvn1981a> I am still trying to figure out what that function does --- it copies the contents of a file ?
<bluestorm> it seems that
<bluestorm> each file comes with a few "global" functions
<bluestorm> that you can't silently pass around while copying the file, you have to "clone" them
<bluestorm> that's what the function does
rwmjones has joined #ocaml
<bluestorm> List.map apply the "cloning" operation (with is more or less Cil.copyfunction, wich the other data "loc" conserved) to each of the global functions
<tvn1981a> so where do those clones store to in that function ? it doesn't seem to return any value
<bluestorm> and i suspect Stats2.time is just a logging/profiling function (so the important thing is after the fun () -> ...
<bluestorm> hm
<bluestorm> { f with field = new_val } returns a new record, equal to f except with the field "field" changed into "new_val"
<tvn1981a> oh ok -- so it modifies f directly
<bluestorm> in that case, you return a record similar to file, except the globals have been cloned/copied
<bluestorm> no it doesn't
<bluestorm> it returns a _new_ value with a different field value
<tvn1981a> ah ok -- i see , because in my code I have soething like let f = fileCopy f in ...
<bluestorm> well, that means he discard the old value of f and reuse the same name
<bluestorm> but the original "f" value is not mutated
<bluestorm> (that would be important if f was stored in an other place and could be affected by side-effects)
<tvn1981a> why is it not mutated (changed? ) if the old values are discarded ?
<bluestorm> hm
<bluestorm> "discarded" = you can't access it anymore in that part of the code
<bluestorm> but it could still be alive in an other place (say in a global cache wich contains the file)
<bluestorm> reusing the same name is a way to make sure that, in the rest of the current expression, only the _copied_ file is used, and never the old file (wich is not accessible anymore because it doesn't have a name)
<bluestorm> for example the rest of the code could want to do crazy modifications on the (copied) file, but the programmer want to be sure that the old file is never changed
<bluestorm> (of course, seeing the code and knowing what your question is might help)
<tvn1981a> ok - that makes sense --- what's the definition of "current expression" ? when is it no longer in the current expression anymore ?
<bluestorm> well
<tvn1981a> that function supposes to make a "deep copy" of an object (i.e., a file f ) ... I haven't got to the part on what kind of modifications will be performed on the copied version of f yet
<bluestorm> in a "let a = b in expr" form, only "expr" is the expression
<bluestorm> the thing is "expr" can be any expression allowed by the ocaml syntax, including for example another "let ... in ..." form
<bluestorm> but there is no notion of "block"
<bluestorm> (in a few words : i can't help you without code, and you should learn the (basis of) OCaml grammar)
<tvn1981a> that's what I am doing , learning ocaml to understand this code --- you've been very helpful so far ---
vixey has joined #ocaml
vixey has quit [Client Quit]
filp has quit ["Bye"]
vixey has joined #ocaml
vixey has quit [Read error: 104 (Connection reset by peer)]
jlouis has joined #ocaml
jonafan_ is now known as jonafan
asmanur has quit [Read error: 110 (Connection timed out)]
GustNG1 has joined #ocaml
RobertFischer has left #ocaml []
xbebe has joined #ocaml
GustNG has quit [Read error: 110 (Connection timed out)]
psnively has joined #ocaml
vixey has joined #ocaml
psnively has quit [Client Quit]
psnively has joined #ocaml
asmanur has joined #ocaml
filp has joined #ocaml
tomh has joined #ocaml
Kopophex has joined #ocaml
pec1 has joined #ocaml
tvn1981a has quit ["ChatZilla 0.9.83 [Firefox 3.0.1/2008070206]"]
pec1 has left #ocaml []
vixey has quit ["~"]
psnively has quit []
rwmjones has quit ["Closed connection"]
OChameau has quit ["Leaving"]
psnively has joined #ocaml
GustNG1 has quit [Read error: 104 (Connection reset by peer)]
filp has quit [Remote closed the connection]
jeddhaberstro has joined #ocaml
Associat0r has quit [Connection timed out]
psnively has quit []
filp has joined #ocaml
filp has quit [Client Quit]
RobertFischer has joined #ocaml
ygrek_ is now known as ygrek_away
ygrek_away has quit [Remote closed the connection]
Yoric[DT] has quit ["Ex-Chat"]
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
onigiri_ has joined #ocaml
seafood has joined #ocaml
onigiri_ is now known as EmanuelC
psnively has joined #ocaml
jonafan_ has joined #ocaml
seafood has quit []
ulfdoz has quit [clarke.freenode.net irc.freenode.net]
EmanuelC has quit [clarke.freenode.net irc.freenode.net]
Kopophex has quit [clarke.freenode.net irc.freenode.net]
jonafan has quit [clarke.freenode.net irc.freenode.net]
netx has quit [clarke.freenode.net irc.freenode.net]
shortc|desk has quit [clarke.freenode.net irc.freenode.net]
authentic has quit [clarke.freenode.net irc.freenode.net]
Ugarte has quit [clarke.freenode.net irc.freenode.net]
jdev has quit [clarke.freenode.net irc.freenode.net]
EmanuelC has joined #ocaml
Kopophex has joined #ocaml
jonafan has joined #ocaml
netx has joined #ocaml
shortc|desk has joined #ocaml
authentic has joined #ocaml
jdev has joined #ocaml
ulfdoz has joined #ocaml
Ugarte has joined #ocaml
jdev has quit [Remote closed the connection]
jdev has joined #ocaml
Linktim has quit ["Quitte"]
ulfdoz has quit [clarke.freenode.net irc.freenode.net]
Ugarte has quit [clarke.freenode.net irc.freenode.net]
Kopophex has quit [clarke.freenode.net irc.freenode.net]
EmanuelC has quit [clarke.freenode.net irc.freenode.net]
netx has quit [clarke.freenode.net irc.freenode.net]
jonafan has quit [clarke.freenode.net irc.freenode.net]
shortc|desk has quit [clarke.freenode.net irc.freenode.net]
authentic has quit [clarke.freenode.net irc.freenode.net]
guillem has quit [Remote closed the connection]
ulfdoz has joined #ocaml
Ugarte has joined #ocaml
authentic has joined #ocaml
RobertFischer has quit ["Taking off -- check out http://smokejumperit.com and http://enfranchisedmind.com/blog/"]
netx has joined #ocaml
Kopophex has joined #ocaml
shortc|desk has joined #ocaml
Associat0r has joined #ocaml
jonafan_ is now known as jonafan
jlouis has quit [Remote closed the connection]
redocdam has joined #ocaml
jonafan_ has joined #ocaml
psnively has quit []
xbebe has quit [Read error: 113 (No route to host)]
redocdam has quit [Remote closed the connection]
jonafan has quit [Read error: 110 (Connection timed out)]
jonafan has joined #ocaml
jonafan_ has quit [Read error: 110 (Connection timed out)]
Jedai has quit [Read error: 60 (Operation timed out)]
Kopophex has quit ["Leaving"]
Asmadeus has quit ["nightynight"]