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
dsturnbull has left #ocaml []
lamawithonel has quit [Remote host closed the connection]
zubeen has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
ccasin has quit [Quit: Leaving]
Amorphous has quit [Ping timeout: 276 seconds]
joewilliams is now known as joewilliams_away
Amorphous has joined #ocaml
joewilliams_away is now known as joewilliams
drunK has quit [Remote host closed the connection]
CoryDambach has joined #ocaml
philtor has quit [Ping timeout: 245 seconds]
<orbitz> Hrmm, does this make sense to anyone: Parse error: [semi] expected after [str_item] (in [implem])
<orbitz> d'oh, found it
valross has joined #ocaml
seafood has joined #ocaml
avsm has joined #ocaml
boscop_ has joined #ocaml
roconnor has joined #ocaml
<roconnor> can {record with foo} be used to override more than one field?
boscop has quit [Ping timeout: 252 seconds]
avsm has quit [Quit: Leaving.]
<orbitz> roconnor: yes, spearate with ;
<orbitz> {record with foo=2; bar="boo"}
roconnor has quit [Remote host closed the connection]
logicus has quit [Ping timeout: 276 seconds]
agolsme has joined #ocaml
valross has quit [Remote host closed the connection]
pheredhel has quit [Ping timeout: 240 seconds]
pheredhel has joined #ocaml
pheredhel has quit [Ping timeout: 276 seconds]
joewilliams is now known as joewilliams_away
pheredhel has joined #ocaml
agolsme has quit [Ping timeout: 264 seconds]
ulfdoz has joined #ocaml
avsm has joined #ocaml
avsm has quit [Quit: Leaving.]
philtor has joined #ocaml
mjonsson has quit [Read error: Operation timed out]
avsm has joined #ocaml
avsm has quit [Quit: Leaving.]
valross has joined #ocaml
ulfdoz has quit [Ping timeout: 276 seconds]
kerneis has quit [Ping timeout: 252 seconds]
ygrek has joined #ocaml
ttamttam has joined #ocaml
philtor has quit [Ping timeout: 245 seconds]
gildor has quit [Ping timeout: 276 seconds]
gildor has joined #ocaml
xa has joined #ocaml
xa is now known as xrc
xrc is now known as xarch
<xarch> hi
init1 has joined #ocaml
Yoric has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
ygrek has quit [Ping timeout: 245 seconds]
<xarch> on which version of lwt does ocsigen depends?
init1 has quit [Quit: Quitte]
init1 has joined #ocaml
<mfp> xarch: IIRC 2.1.1
<xarch> ok, thanks
xarch has quit [Quit: leaving]
eelte has quit [Quit: 0x2a]
th5 has joined #ocaml
munga has joined #ocaml
z77z has joined #ocaml
ikaros has joined #ocaml
valross has quit [Remote host closed the connection]
z77z has quit [Quit: Konversation terminated!]
xarch has joined #ocaml
<xarch> hm, I'm trying to compile ocsigen 1.3.3 with lwt 2.1.0 but I have an error saying that the module Lwt_ssl cannot be found, do you know how I can fix that?
<gildor> xarch: you must build lwt with ssl support
<xarch> oh ok
<gildor> xarch: to do that you must first install ocamlssl
<xarch> thanks
<gildor> and then compile lwt
<xarch> yeah, done
<xarch> ok
yezariaely has joined #ocaml
yezariaely has left #ocaml []
<xarch> thanks, it works for lwt
<xarch> however, I have another problem: pcre_config doesn't exists, though I have installed pcre-ocaml
<xarch> *exist
<xarch> and I tried to compile it myself in case it helped, but that didn't change anything.
<adrien> well, it comes with pcre, the C library, not pcre-ocaml
_andre has joined #ocaml
<xarch> hum, no
<xarch> the error is located in a file belonging to pcre-ocaml
<adrien> but pcre-config should be provided by your pcre package
<xarch> ah, ok
<adrien> if you can't find it, creating a script named the same but calling pkg-config under the hood should do it
<xarch> ok
<xarch> thanks
seafood has quit [Quit: seafood]
boscop has joined #ocaml
boscop_ has quit [Ping timeout: 264 seconds]
ftrvxmtrx has joined #ocaml
ttamttam has quit [Remote host closed the connection]
ftrvxmtrx has quit [Quit: Leaving]
ftrvxmtrx has joined #ocaml
ztfw has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
ftrvxmtrx has joined #ocaml
itewsh has joined #ocaml
munga has quit [Ping timeout: 255 seconds]
itewsh has quit [Ping timeout: 250 seconds]
itewsh has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
<iris1> Is there an easy way to get the definition of a type quickly on the interactive prompt? Just typing in the name of the type does not work:
<iris1> # type foo = { bar: int };;
<iris1> type foo = { bar : int; }
<iris1> # foo;;
<iris1> Error: Unbound value foo
ftrvxmtrx has joined #ocaml
<iris1> I think it is very nice to get the type of every value I put into the interactive prompt; but sometimes I wish I could be reminded of the type definitions in a similar easy way too
ygrek has joined #ocaml
<gildor> iris1: I don't think there is functions to do that
munga has joined #ocaml
<iris1> Thank you!
* ski thinks it is strange that GHCi (and Hugs) allow this, but otoh, doesn't allow you to define new types in the interactor
<ski> (one naïvely thinks that things like this shouldn't be *that* hard to implement, for someone who's hacking on the implementation .. but maybe there's more pressing things to do)
ygrek has quit [Ping timeout: 245 seconds]
<hcarty> ski: There are a number of toplevel patches floating around - one of them may support printing type defintions
carm has quit [Ping timeout: 250 seconds]
<hcarty> ski: http://www.pps.jussieu.fr/~li/software/index.html#enhtop -- This should do what you want
<ski> hcarty : interesting .. ty
<orbitz> has anyone experienced an issue where on Mac OCamlMakefile works as expected, but it fails on Linux? In this case my project builds fine but on Linux i get an error saying No rule to amek target 'xxxx.cmi' needed by xxxxx
<hcarty> Is there a way to have the Lwt toplevel perform automatic completion on aliased and open modules, in addition to the full, original value's path?
<hcarty> For example: module A = Array let a = A.init 10 0
<hcarty> With completion on "A.init"
Nahra has quit [Ping timeout: 255 seconds]
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
lamawithonel has joined #ocaml
pikachuyann has joined #ocaml
itewsh has quit [Quit: o/]
kerneis has joined #ocaml
th5 has quit [Quit: th5]
philtor has joined #ocaml
avsm has joined #ocaml
joewilliams_away is now known as joewilliams
<gildor> hcarty: you told me that you want to see video from CUG 2010?
<hcarty> gildor: Yes, indeed
avsm has quit [Quit: Leaving.]
Nahra has joined #ocaml
Snark has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
<gildor> hcarty: can I give you some homework?
<gildor> hcarty: could you watch some videos and made constructive criticism about them, so I can improve the remaining video I have to do
<gildor> hcarty: tell me, if it is ok and what I can improve
* gildor have to leave
tautologico has joined #ocaml
<tautologico> anyone here using ocaml on mac os x?
<hcarty> gildor: Thanks, I'll take a look and provide what feedback I have
ygrek has joined #ocaml
joewilliams is now known as joewilliams_away
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
munga has quit [Ping timeout: 250 seconds]
joewilliams_away is now known as joewilliams
avsm has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
philtor has quit [Ping timeout: 245 seconds]
pikachuyann has quit [Ping timeout: 240 seconds]
pikachuyann has joined #ocaml
ulfdoz has joined #ocaml
Snark has quit [Quit: Ex-Chat]
Submarine has quit [Remote host closed the connection]
lpereira has joined #ocaml
ulfdoz_ has joined #ocaml
ulfdoz has quit [Ping timeout: 240 seconds]
ulfdoz_ is now known as ulfdoz
<flux> hmm.. how simple is writing a simple CRUD application with ocsigen? in terms of code size for, say, a simple item inventory (list) without categorization?
ftrvxmtrx has quit [Quit: Leaving]
<flux> hmm, there's ocsimore
<flux> it doesn't appear to address that. perhaps too basic :)
<gildor> flux: I take a little bit of time to get into ocsigen
<hcarty> flux: There was a blog post about this...
<gildor> flux: but once you understand the basic, you can be very efficient
<flux> hcarty, well, if there is, google doesn't know about it, or it doesn't call it crud :)
<hcarty> I think that's the one
<hcarty> Not sure that it's a full-blown CRUD, but it's part of the puzzle
<flux> I think I'll make-do something of my own, though
<gildor> flux: you can avoid a DB using ocsigen and go directly to dumping data on HD
<flux> maybe someone(TM) could write a generic ocsigen-compatible module for manipulating tabulated data
* gildor dinner time
_andre has quit [Quit: leaving]
<flux> hmph, compiling ocaml-orm-lite says: Error: Unbound value P4_value.set_new_id
pikachuyann has quit [Read error: Connection reset by peer]
<flux> where is its P4_value supposed to come from?-o
<flux> ah, dyntype
pikachuyann has joined #ocaml
<avsm> yeah, the ORM just uses the dynamic typing and value generation from dyntype
<avsm> it doesnt do any of the inference itself (so it's analogous to java reflection)
<flux> well, it does sql from records?
<avsm> from any ML type
<avsm> except ones with type variables, iirc
<avsm> just do: type t = { x: int; y: string } with orm
<avsm> and it'll generate the right sort of sql
dark has joined #ocaml
pikachuyann has quit [Read error: Connection reset by peer]
<dark> is someone here familiar with macaque?
pikachuyann has joined #ocaml
<flux> checked out an older version of dyntype, now it compiled
<flux> great, it works
<dark> i wish i knew french
avsm has quit [Quit: Leaving.]
<flux> well, atleast it compiles with 'with orm' that is :-)
<flux> but as well all very well know, it means it works as well...
<flux> someone should write a postgresql backend to that.
<dark> dynamic types. o.o
<flux> dark, I tried it out at one point, but it wasn't complete yet.. I wonder if its development has continued, though..
<dark> i'm using pg'ocaml, and it does not feel complete either
<flux> well, I think it's more complete. it definitely has its quirks, though ;)
<dark> the main limitation i see is that i can only bind variables inside a string
<flux> yes
<dark> $var works but $var.x and $var#x doesn't
<dark> so my code is *ugly*
<flux> oh, well, I suppose that could be easily fixed
<flux> it's not a wonder if some ocaml syntax developers sometimes forget there are objects :)
<dark> macaque is, well, less polished?
<dark> the last beta i see is from january 16
<dark> 'Many thanks to flux on #ocaml for the motivating feature requests'
<flux> hmm, perhaps they've been implemented then, need to try it out again 8-)
<flux> ooh, 16 new patches since my last pull
<flux> ..from sep 2009
<dark> "Sql.t types sure are heavy. You will be confronted to cluttered error messages with ugly as hell unification problems. Hopes this section helps."
<dark> I think error messages are the main problem of pg'ocaml. but they seem easier to fix, since it's just capturing an exception and saying something nicer, right? (like "Can't connect to database")
<dark> in the end I got used to it..
<flux> I think in principle it goes like this: if you need many, possibly programmatically generated, queries, macaque is the way to go
<dark> but not sure how to fix type error messages
<flux> if you have a set of queries you known you need, go pg'ocaml
<dark> I need only $a.b syntax
<dark> no need for objects actually, just records
<flux> do you use ocaml 3.12?
<dark> yes
<flux> in tha case, maybe this would help you: let { a; b; c } = record_with_a_b_c in ..
<dark> interesting o.o'
<flux> I'm pretty sure that works (I'm not on ocaml 3.12 yet)
<flux> atleast the reverse works, so that should too ;)
<dark> yes, works! wow! thanks! @.@
<flux> but I think now I'll be off to sleep..
<flux> :)
<dark> now I'm already passing an object and then desconstructing it on a tuple..
<flux> no similar syntax for objects I'm afraid
jonafan has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
<flux> hcarty, thanks for the pointer! I've copy/pasted/modified my very own inventory-app already ;-). (well, it almost works)
xarch has quit [Remote host closed the connection]
<dark> i am using objects to ease construction. but i'm not actually using an actual constructor, but something like class something = let a = .. in let b = .. in object method a = a method b = b end. the main benefit over some record is that you can pass it to a module that does not know this type, avoiding some annoying circular dependency
<dark> but i think i can move the type to a third module if this for some reason happens
<hcarty> dark: Could you use the "object method foo = x method bar = y end" syntax?
<dark> hm?
<hcarty> It sounds like the class definition may be extraneous
<dark> there are a few methods of this class that actually do something; since I'm turning it to a record, I think I will move those to a function outside it
<dark> I never know how to use ocaml classes..
<dark> i could not use class something = object .. end because those things are to be computed at allocation time
<hcarty> That makes sense
<dark> and an initializer would just add more mutability
<dark> i think
<dark> I like the method call syntax, because one can avoid a meaningless () and some parenthesis
dark has quit [Ping timeout: 255 seconds]
ztfw has quit [Remote host closed the connection]
jonafan has joined #ocaml
dark has joined #ocaml
<dark> type t = { x : 'a . 'a list } ;;
<dark> is this a new syntax?
<flux> no
<dark> does it exist in ml / sml?
<dark> or in caml
<dark> i was told that haskell's explicit forall is strictly more powerful than ml's implicit one, because it lets one to express this type. but i see that ocaml can actually do it..
lpereira has quit [Quit: Leaving.]
grettke has joined #ocaml
<flux> yes, it exists in ml
<flux> not in SML afaik
<flux> does anyone know how one puts hidden fields into an ocsigne form?
<flux> it seems that there's a way, but it's not anything simple like just putting in a hidden field.. ;-)
<pikachuyann> bonne nuit :-)
<flux> but now I'm really going to sleep
<flux> good night->
<dark> good night
pikachuyann has quit [Quit: Quitte]
<dark> let f (x : 'a. 'a list) = 1;; Error: Parse error: [fun_binding] expected after [ipatt] (in [let_binding])
<dark> why is that? .-.
<dark> type t = { x : 'a. 'a list } works, but not type t = 'a. 'a list
ikaros has quit [Quit: Leave the magic to Houdini]
grettke has quit []
ulfdoz has quit [Ping timeout: 265 seconds]
carm has joined #ocaml
init1 has quit [Quit: Quitte]
mjonsson has joined #ocaml
iago has joined #ocaml
<orbitz> dark: is this some monomorphic limitation thing? I'm just guessign