adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org and http://caml.inria.fr | http://ocaml.org/releases/4.02.0.html | Public channel logs at http://irclog.whitequark.org/ocaml
BitPuffin has joined #ocaml
rgrinberg has joined #ocaml
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
omqal has joined #ocaml
cateches has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
mrvn has quit [Ping timeout: 250 seconds]
mcclurmc has joined #ocaml
troutwine is now known as troutwine_away
<cateches> is there a better alternative to parsing than ocamlp4 if mehir can't meet my needs?
<bernardofpc> cateches: maybe you think ocamlyacc, but ocamlp4 and menhir are not the same functionnality
<cateches> bernardofpc: I originally wrote my lexer/parser in ocamlp4 and then rewrote it with menhir (whitequark's advice), but I'm running into problems being able to represent the full grammar by menhir, so I'm wondering if I there's a better way to handwrite parsers than ocmalp4
q66 has quit [Quit: Leaving]
<whitequark> you could write a recursive descent parser by hand
<cateches> whitequark: would I need to rewrite my lexer? it's not clear to me how to get the tokens from sedlexing :-/
<whitequark> no, you don't need to
<whitequark> the tokens are very simple to get
<whitequark> just call your lexing function. like Lexer.lex_token lexbuf
<cateches> Oh, gotcha
<cateches> why can't I find that in *any* docs ? :)
<cateches> sorry, it all makes sense now :)
<cateches> thanks
<whitequark> cateches: it's kind of obvious if you look at the signature of your lexer function...
<cateches> right
<cateches> I've been a little off the past couple of days, thanks
claudiuc has quit [Remote host closed the connection]
claudiuc has joined #ocaml
cateches has quit [Quit: Page closed]
maurer has quit [Ping timeout: 272 seconds]
mcclurmc has quit [Remote host closed the connection]
zpe has joined #ocaml
johnnydiabetic has quit [Quit: Goodbye]
manizzle has quit [Ping timeout: 272 seconds]
zpe has quit [Ping timeout: 240 seconds]
mrvn has joined #ocaml
araujo has quit [Read error: Connection reset by peer]
araujo has joined #ocaml
claudiuc has quit [Remote host closed the connection]
<badkins> I just started learning OCaml today by going through RWO. I'm Just now in Chapter 2, but I'm impatient, so I tried porting a simple Standard ML function I wrote that produces a cartesian product of a list of lists. I'm kind of stuck now and wondered if anyone would mind taking a quick look:
<whitequark> badkins: try x':: tc :: l
<badkins> but I need to cons the list (x'::tc) on to the list l
<whitequark> oh
<badkins> I'll try though
<whitequark> no, then it is wrong
<whitequark> sorry, let me take a closer look
<whitequark> ah I see
<badkins> My Haskell version is nearly identical to the SML version, so I'm not sure what I need to placate the OCaml compiler.
<badkins> maybe inference is bad?
<whitequark> the arguments to fold_right are in different order
<badkins> really? I thought I checked the function def
<whitequark> it's fold_right fn input accum
<whitequark> and in SML it's foldr fn accum input, it seems
<badkins> d'oh! let me try that
<badkins> bingo - thanks!
<badkins> wow - sorry for the noise - I think I got confused because both input and accum are lists :)
<whitequark> sure. no problem.
<badkins> so it appears SML and Haskell have the same order, but OCaml chose a different one - something tells me that's going to bite me again, but at least I'll likely remember to check it
shinnya has joined #ocaml
bytbox has quit [Remote host closed the connection]
<tac_> Has no one created an Ocaml evaluator bot like Lambdabot for Haskell?
beginner has quit [Quit: Leaving]
<whitequark> tac_: I did, it works poorly though
<whitequark> https://github.com/whitequark/ocaml-eval_in if you want to hack on it
<tac_> neat
<badkins> whitequark: sorry to bother you again, but that cartesian file fails when loaded into utop for some reason. Any ideas why it would build ok at the command line but fail when I load via: #use "cartesian.ml" ?
<badkins> That's a little disconcerting; I would hope they would either both succeed or both fail
rgrinberg has quit [Quit: Leaving.]
<whitequark> badkins: it works for me
<whitequark> what is the error?
<badkins> File "cartesian.ml", line 5, characters 22-30: Error: This expression should not be a function, the expected type is 'a list
<whitequark> what is your entire code?
<badkins> that's this line: | ([x]) -> map (fun e -> [e]) x
<badkins> at the command line I use this to build: corebuild cartesian.native
<badkins> which works fine
<whitequark> oh
<whitequark> that's because Core's List.map is different
<badkins> argh
<whitequark> and Core.Std shadows List
<badkins> thx
<badkins> why would they change something so basic ?
<whitequark> ask JaneStreet, not me
<whitequark> I don't use Core
<badkins> :)
<whitequark> there is probably a valid reason
<whitequark> also don't really open List, it's bad practice
<badkins> ok - I just did that for conciseness since it was a simple toy function
<dmbaturin> badkins: Do you use SML?
<badkins> The corebuild command is supposed to build with Core though
<badkins> dmbaturin: I had spent some time learning it a couple years ago
<badkins> so I'm porting some snippets as part of learning OCaml
msaegesser has joined #ocaml
<badkins> dmbaturin: why do you ask?
taion809 has joined #ocaml
omqal has quit [Quit: omqal]
mcclurmc has joined #ocaml
yacks has joined #ocaml
<badkins> wow, that is bizarre apparently Jane Street swapped the args for map and added a keyword thing - I don't recall any language that doesn't have map f lst
<badkins> I can't imagine what reasons they had to break compatibility with non-Core OCaml code :(
<dmbaturin> badkins: Just curious if there are people who prefer SML to ocaml.
<warrick_> Yeah, it is odd. Just started and I've already found a few annoying inconsistencies between core and the standard.
<dmbaturin> Core is what I've found annoying in RWO, otherwise the book is cool. :)
<warrick_> using the `-w @A-4-33-41-42-43-34-44` promoted in realworldocaml makes you use the labels e.g. ~f:
<dmbaturin> The worst part being that I didn't know what Core is at the time I started reading it.
<warrick_> so it doesnt matter, but find it annoying when im toyin in utop
<badkins> dmbaturin: I did like SML, but when you take a small community and then divide and conquer yourselves by having a number of implementations, it pretty much kills it
<badkins> so my coming to OCaml is very much a matter of pragmatism
<badkins> re: Core, I guess I'll just carry on until I've finished RWO and then try and decide whether to continue using Core for the long term or not
<badkins> Hmm... the Core_list map is tail recursive vs. the std one
samrat has joined #ocaml
ebzzry_ has quit []
ebzzry_ has joined #ocaml
taion809 has quit [Remote host closed the connection]
shinnya has quit [Ping timeout: 272 seconds]
rgrinberg has joined #ocaml
<whitequark> badkins: https://github.com/c-cube/ocaml-containers is a good non-Core stdlib extending library
<badkins> thx
<badkins> 23 stars is a bit iffy though
<badkins> and only 4 contributors
<whitequark> oh come on, that's one of the most useless metrics I can imagine
<whitequark> almost everything high-starred from my github is essentially worthless, and vice versa
<badkins> really? I've found that useful, widely used software has a high number of stars on github
<whitequark> "widely used" is not an absolute qualifier
<whitequark> and ocaml community is not that huge
<badkins> Most of my work these days involves Ruby & Rails. Here's Rails: https://github.com/rails/rails
<badkins> I'm not saying it should be the only metric, or maybe even the primary one, but I don't think it's (stars) a worthless data point.
<badkins> When a newbie such as myself enters a new community, there's a strong catch-22 re: determining which packages/libraries/community members/etc. to trust.
<badkins> So, for something like Jane Street's Core, if I use it for a long time, and write a lot of code with it, I'll be able to determine its usefulness to me, but if I choose wrong, I've wasted a tremendous amount of time.
<badkins> whitequark: but to your credit, I just looked up the Haskell bytestring lib https://github.com/haskell/bytestring and yeah, only 23 stars, so I suppose with small, niche FP communities, it may not be such a good indicator.
<badkins> interestingly, it has 28 contributors, but only 23 stars ;)
<badkins> whitequark: rather than complaining about the dearth of stars, I probably should've simply asked, "what do you find attractive about ocaml-containers over Core or the plain std lib"
<def`> badkins: Core redefines List for uniformity (similar naming conventions are used over the whole library), high-performance (tuned for a larger set of workloads), … Stdlib List just cover the common use-cases with straightforward implementations
<badkins> thx
<def`> And I disagree that ocaml-containers is an alternative to Core. Providing only containers is far from making a stdlib replacement :)
<badkins> it's a little odd that they reversed map, but if it makes the entire lib more consistent, then so be it I guess
<def`> badkins: actually they switched to a labelled implementation, so the common invokation is by passing the function argument with ~f:
<def`> labelled interface* :P
<badkins> right, but they also switched the order of the 2 params if you don't use the label thing
<badkins> map lst fun
<badkins> not a big deal, just threw me off
<def`> Correct :) (I think the argument is readability… you can have the list being mapped close to the beginning of the line, then the body of the processing… this reads ± like a classic "for-loop")
<badkins> I suppose. Just goes against the grain of about every FP I know :)
samrat has quit [Ping timeout: 246 seconds]
samrat has joined #ocaml
badkins has quit []
mcclurmc has quit [Remote host closed the connection]
philtom has quit [Ping timeout: 246 seconds]
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 245 seconds]
WraithM has joined #ocaml
msaegesser has quit [Ping timeout: 272 seconds]
siddharthv_away is now known as siddharthv
mcclurmc has joined #ocaml
_5kg_ has quit [Ping timeout: 272 seconds]
mcclurmc has quit [Ping timeout: 255 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
axiles has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
_5kg_ has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 255 seconds]
MercurialAlchemi has joined #ocaml
hhugo has joined #ocaml
samrat has joined #ocaml
_5kg_ has quit [Ping timeout: 260 seconds]
_5kg_ has joined #ocaml
fold has quit [Ping timeout: 240 seconds]
englishm has quit [Remote host closed the connection]
fold has joined #ocaml
englishm has joined #ocaml
jave has quit [Ping timeout: 245 seconds]
jave has joined #ocaml
jao has quit [Ping timeout: 260 seconds]
rand000 has joined #ocaml
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
oscar_toro has joined #ocaml
mcclurmc has joined #ocaml
oscar_toro has quit [Ping timeout: 272 seconds]
WraithM has quit [Ping timeout: 240 seconds]
mcclurmc has quit [Ping timeout: 245 seconds]
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
cdidd has quit [Ping timeout: 272 seconds]
Hannibal_Smith has joined #ocaml
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
cthuluh has quit [Ping timeout: 240 seconds]
axiles has quit [Ping timeout: 260 seconds]
yacks has quit [Quit: Leaving]
yacks has joined #ocaml
yacks has quit [Quit: Leaving]
mcclurmc has joined #ocaml
cago has joined #ocaml
ollehar has joined #ocaml
mcclurmc has quit [Ping timeout: 246 seconds]
ygrek_ has joined #ocaml
yacks has joined #ocaml
axiles has joined #ocaml
hhugo has quit [Quit: Leaving.]
gustav___ has quit [Ping timeout: 250 seconds]
hhugo has joined #ocaml
hhugo has quit [Client Quit]
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
tane has joined #ocaml
gustav___ has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
Intensity has quit [Ping timeout: 246 seconds]
AltGr has joined #ocaml
testcocoon has quit [*.net *.split]
demonimin has quit [*.net *.split]
ygu has quit [*.net *.split]
sagotch has joined #ocaml
MercurialAlchemi has quit [Remote host closed the connection]
adrien has quit [Ping timeout: 246 seconds]
adrien has joined #ocaml
Intensity has joined #ocaml
MercurialAlchemi has joined #ocaml
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
jlouis has quit [Ping timeout: 246 seconds]
_2can has quit [Ping timeout: 246 seconds]
_2can has joined #ocaml
jlouis has joined #ocaml
bezirg has joined #ocaml
testcocoon has joined #ocaml
ygu has joined #ocaml
demonimin has joined #ocaml
thomasga has joined #ocaml
fraggle_ has joined #ocaml
<flux> I suppose there aren't really game engines for OCaml, are there?
<flux> are there bindings for such things?
<tane> bindings to sdl and opengl are available
<flux> yes, but they are not even graphics engines ;)
<flux> (though perhaps sdl is approaching one)
<tane> well, you could build one yourself then :D
<tane> rust isn't even 1.0 and has a lot more gamedev libraries available already
<tane> probably a community thing
<dmbaturin> Why would one write a game in ocaml? :)
<flux> why not?-)
<flux> I would probably need to study other game engines first to make informed choices. takes time, I want everything now!
<def`> why would one write a game ?
<tane> dmbaturin, i wrote 2048 with arbitrary grid sizes using lterm a week ago :P
tac_ has quit [Ping timeout: 272 seconds]
<dmbaturin> * Well, this doesn't apply to logic games, cellular automata simulations and the like.
<tane> imho another issues is multithreading
<flux> it's only an issue when you have a serius large game
<flux> (+o)
<tane> yeah, but do you need an "engine" for a tetris clone?
<dmbaturin> flux: What are you going to make?
<flux> tane, seriously, you think a single core can only do a tetris clone?-)
mcclurmc has joined #ocaml
<tane> flux, yes
<flux> you've been missing out the games of the 90s and the advance in GPU performance in the 2000s and 2010s..
<dmbaturin> Massively parallel tetris. ;)
<dmbaturin> In F95.
<flux> not to mention all web games are effectively single-core, aren't they?
<axiles> flux:I once wrote a binding for irrlicht, but I have not touch it much since a long time
<def`> As usual, importance of simultaneous multithreading is just completely overestimated. News at 11 :p
<tane> i'm mostly interested in multiplayer games, preferably massive multiplayer realtime strategy
<flux> a single core is nowadays wildly powerful.
<flux> well, command and conquer was made in single-core-era
<flux> of course, it was not massively multiplayer
<tane> yeah.. i've been playing openra on mono
<flux> since then the cpu times have probably increased 100-fold and the GPU much more so
<tane> which takes up four cores at 100% (which may be a mono issues)
<flux> s/times/performance/
Simn has joined #ocaml
<flux> there is no saying it makes efficient use of that 400% cpu
<tane> indeed
<tane> well, i've done some server-side work for parallelizing particle stuff on the GPU using openCL, there is enough power available, that's true
<def`> and a massively multiplayer engine will much more benefit from a design that scale in a non shared-memory setting than being a able to use 400% cpu
sad0ur has joined #ocaml
<tane> true
<flux> in such an environment you could probably run completely isolated computer AIs in separate processes
<axiles> flux: but you can still do quite a lot of funny things with ocaml-irrlicht
<flux> and waste memory for maps etc ;)
<flux> axiles, I shall take a look, thanks for pointer :)
cthuluh has joined #ocaml
mcclurmc has quit [Ping timeout: 255 seconds]
<tane> flux, but if you had an idea for a more general engine/framework, i'd be interested to help :)
<flux> axiles, nice, there are opam packages as well ;)
<flux> ..though it doesn't compile
<axiles> flux: have you installed irrlicht ?
<flux> yes
<flux> irr_scene_wrap.cpp:98:70: error: invalid conversion from ‘irr::u32 {aka unsigned int}’ to ‘irr::scene::E_CULLING_TYPE’ [-fpermissive]
<flux> probably some type mismatch then?
<flux> or overzealous use of warning-is-error-flags in release builds :P
<flux> (no, doesn't seem like that way though ;-))
sad0ur has quit [Ping timeout: 245 seconds]
<flux> maybe I have some other version than it expects.
<flux> debian unstable's Version: 1.8.1+dfsg1-1
<flux> I wonder if this is relevant: Warning: the tag "cpp" is not used in any flag declaration, so it will have no effect; it may be a typo. Otherwise use `mark_tag_used` in your myocamlbuild.ml to disable this warning.
sad0ur has joined #ocaml
<axiles> flex: I have version 1.7.3+dfsg1-4
fold has quit [Ping timeout: 246 seconds]
Kakadu has joined #ocaml
<axiles> flux: in file irr_enums.txt, what happens when you replace E_CULLING_TYPE by u32 ?
<flux> you mean this line?
<flux> poly culling_type E_CULLING_TYPE 4 {
<flux> the only instance of E_CULLING_TYPE
<axiles> yes
<flux> seems to compile fine
<axiles> good
<flux> thanks!
<tane> flux, what game are you going to develop?
<tane> or, what type of game
<flux> well, I would be lying if I had not thought of a C&C-kind of game for eons, but my more realistic short-term goal would be a modernized sopwith clone
<flux> I actually wrote a widly unpopular game ;) Goba that is a clone of an the old Flash Attack game: http://www.modeemi.fi/~flux/goba/
<flux> but 3d is the way to go nowadays.
<flux> (well, it was even when I did that)
<tane> haha, ok, nice
<Drup> tane: eve online is single core
<Drup> worse, the *servers* of eve online are single cores.
<flux> thought also of modernizing Goba to the 3d age, even if the game field itself is strictly 2d
<Drup> so, hem, tell me about multicore being necessary for MMOs
<Drup> (arguably, they have scaling issues ... at 6000 people on the same battle shooting at each other)
<tane> that's what i mean
<tane> in RTS a single player should be able to have 300 units on the screen
<tane> or even more, depending on the game
<tane> i don't say it cannot be done
<Drup> a player is much more than a unit :)
<Drup> I didn't say anything about units :)
<flux> I don't think a single core is going to have trouble with 300 units. it's more of a GPU thing. depends how complicated their behavior is, I suppose.
<flux> and how inefficient the code is..
<tane> exactly
<tane> i have been playing 0ad recently
<tane> which uses libmoz for unit behaviour scripting
<flux> looks very nice
<tane> yes, it's a nice game
<tane> just lags if more than 100 units move on the screen
<Drup> no open source, though
<flux> drup, interesting
<Drup> tane: For a MMO, the bottom point is that : on the client, you probably don't need it because you're not going to do anything that is *that* intensive. For the server, you need to scale at multiple servers anyway, so just do mono-core things and put multiple of them
<tane> Drup, right
<tane> Then there are games, like C&C. Lets say we have up to 20 players max, each with a lot of units etc, what approach to use there, on the server-side?
<def`> Just a sane design. That will bring much more performance than 64 cores :P
<Drup> ^
<adrien_oww> flux: there's openra; it's a C# implementation of a CnC-like game engine
<adrien_oww> and it lags on mono
<Drup> probably because of mono :>
<adrien_oww> well, 3.8.0 of mono was supposed to be faster; turned out much slower for openra
<adrien_oww> with very variable framerate
<tane> adrien_oww, thanks for that info.. i won't care to update that then :)
<adrien_oww> my best experience was with 3.4.0 I think and with highly-tuned GC flags
<adrien_oww> also, about performance of games in the 90s; don't forget they were cheating :P
<tane> are there any resources, board-entries or the like, discussing gc-flags regarding good openra performance?
<adrien_oww> tane: also, 0AD's performance issue was with 0AD's code last time I checked
<Drup> cheating is good, in video game engines :]
<adrien_oww> not really the JS engine
<adrien_oww> (they were doing a huge number of recomputations)
<tane> adrien_oww, yeah.. i thought so, otherwise it'd lag no matter of those units were on screen or not
<tane> good to know, im curious what the game will look like when it's beta. but i guess that'll take some years
<adrien_oww> it was a bit frustrating because they said they would optimize that part when the game is almost out of beta or something like that iirc
<adrien_oww> which means many people are prevented from playing
<tane> So beta testing is about functionality of an unplayable game? :)
<adrien_oww> :]
rand000 has quit [Quit: leaving]
rand000 has joined #ocaml
mcclurmc has joined #ocaml
<flux> what I've been following the use of the Unity3d engine, it would seem to me that an asset storage and a realtime inspectable/modifiable object+property mechianism would be beneficial for a game engine.
avsm has joined #ocaml
mcclurmc has quit [Ping timeout: 245 seconds]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
Simn has quit [Read error: Connection reset by peer]
thomasga has quit [Quit: Leaving.]
hhugo has joined #ocaml
Simn has joined #ocaml
hhugo has quit [Ping timeout: 260 seconds]
mcclurmc has joined #ocaml
zpe has joined #ocaml
thomasga has joined #ocaml
mcclurmc has quit [Ping timeout: 245 seconds]
dsheets has joined #ocaml
lordkryss has joined #ocaml
Simn has quit [Read error: Connection reset by peer]
Simn has joined #ocaml
<dmbaturin> Can I make "ocaml -i" ignore errors and just print inferred types of expressions that were correct?
<Drup> yes, use merlin.
<Drup> :D
<nicoo> :D
hhugo has joined #ocaml
demonimin has quit [Remote host closed the connection]
demonimin has joined #ocaml
<MercurialAlchemi> "use merlin" is always good advice
ygrek_ has quit [Ping timeout: 245 seconds]
<ollehar> does ocsigen have a CMS back-end admin?
<ollehar> Or, is Ocsigen a CMS?
<Drup> ocsigen is not a cms
<jpdeplaix> ollehar: there is ocsimore, but it's unusable.
<Drup> ahah
<Drup> I was going to be more gentle than "unusable"
<Drup> but, yes =')
<ollehar> ok
<flux> what does it lack, or is what it has just, well, subpar?-o
sagotch has quit [Ping timeout: 272 seconds]
sagotch has joined #ocaml
<Drup> the admin back end is horrible
<Drup> the wiki part is very configurable and featureful, though
gasche has quit [Ping timeout: 255 seconds]
<Drup> (I find the syntax horrendous, but some people seem to disagree)
hhugo1 has joined #ocaml
gasche has joined #ocaml
hhugo has quit [Ping timeout: 272 seconds]
<MercurialAlchemi> Drup: it claims it is used on ocsigen.org
<Drup> yes, it is
<Drup> the whole website is ocsimore-powered
<MercurialAlchemi> right
<MercurialAlchemi> bad pun powered, in other words :)
<MercurialAlchemi> I should work on OCaml, I like bad puns too
<Drup> bad puns are very good project names, you remember them easily :p
<MercurialAlchemi> :)
bytbox has joined #ocaml
msaegesser has joined #ocaml
siddharthv is now known as siddharthv_away
avsm has quit [Quit: Leaving.]
tani has joined #ocaml
BitPuffin has quit [Ping timeout: 272 seconds]
englishm has quit [Read error: Connection reset by peer]
<ia0> hi all!
tane has quit [Ping timeout: 272 seconds]
<ia0> in OCaml, how do we deal with debug?
<ia0> I mean in C, you would use -DDEBUG
<ia0> and in your .c and .h you would use #ifdef DEBUG
<ia0> how can we parametrize the compilation in OCaml?
<ia0> (i.e. the 'if debug' is at compile time, not at runtime)
mort___ has joined #ocaml
<Drup> there is syntax extension to do that in lwt, but in general, use cppo, I suppose
<ia0> what's that cppo ? a special ocaml preprocessor?
<ia0> I don't have it with my standard opam installation
thomasga has quit [Quit: Leaving.]
<ia0> why not use the C preprocessor?
tani is now known as tane
<Drup> ia0: read the homepage of cppo, it explains why
thomasga has joined #ocaml
<MercurialAlchemi> this makes me think, is there any decent logging libraries for OCaml, preferably one which can lazily create messages?
<adrien> if you use ikprintf, you get that "lazy" part
<MercurialAlchemi> mm
<MercurialAlchemi> what about the logging part?
<flux> you mean lazy as in "if logging is not enabled, perform no work for formatting the messages"?
<MercurialAlchemi> I see there is something called "bolt"
<MercurialAlchemi> Yep
<MercurialAlchemi> In case you want to debug the internet
ygrek_ has joined #ocaml
octachron has joined #ocaml
<flux> I think that would require a syntax extension, wouldn't it? but I'm guessing some logging framework does provide it.
<adrien_oww> you only need Printf.ikfprintf
<MercurialAlchemi> +bolt?
<adrien_oww> it's like kfprintf but it's an "ignore" function
<adrien_oww> I don't know what bolt does
<adrien_oww> ikfprintf is ocaml >= 4.0
<adrien_oww> same prototype but doesn't do anything
<flux> adrien_oww, but let's say you have foo that is created with ikprintf.. doesn't is still call your own functions that convert stuff to strings, because that's what ocaml does?
<adrien_oww> so you can do "(if cond then Printf.kfprintf else Printf.ikfprintf) "%s: %d\n" msg i
<flux> logger "%s" (convert_great_datachunk_to_string megadata)
<adrien_oww> sure
<adrien_oww> but for that you can use 'a' I think
<adrien_oww> - a : user-defined printer. Takes two arguments and applies the first
<adrien_oww> (iirc)
<adrien_oww> (I almost never use it)
<flux> yeah I suppose it works
<flux> finally an actual usecase for it ;-)
<Drup> I always use %a, I just find the code nicer with it
<flux> though your general convert-to-string function won't do
<adrien_oww> yeah, I couldn't find what the usecase was :P
thomasga has quit [Quit: Leaving.]
<flux> I used to use %a, but then figured, what's the point.
BitPuffin has joined #ocaml
<MercurialAlchemi> right
<MercurialAlchemi> doesn't ocsigen do logging?
<Drup> MercurialAlchemi: as I said, Lwt has a syntax extension for that
<Drup> so, yes
<flux> it does something ocsigen-specific for that, using the Lwt mechanism apparently: http://ocsigen.org/ocsigenserver/2.3/api/Ocsigen_messages
bezirg has quit [Remote host closed the connection]
<MercurialAlchemi> thanks
<MercurialAlchemi> now, I've seen so much bad puns that I'm doubt
<MercurialAlchemi> is debug_noel a pun or not?
<MercurialAlchemi> (Noel = Christmas)
<Drup> no end of line
<Drup> :D
mcclurmc has joined #ocaml
<MercurialAlchemi> yes, I realized that
<MercurialAlchemi> but still
<ia0> what was the trick already to make Format.fprintf Format.std_formatter have type ('a, Format.formatter, unit) format -> 'a instead of ('_a, Format.formatter, unit) format -> '_a ?
<MercurialAlchemi> it could totally be a pun
<Drup> whitequark: you are my local ruby expert, what do you think of that : https://github.com/voltrb/volt ?
<ia0> ok, it's value restriction
<ia0> if I make a thunk (unit -> ) it works
<ia0> but I wonder if there is a solution with explicit type abstraction
samrat has quit [Quit: Computer has gone to sleep.]
mcclurmc has quit [Ping timeout: 245 seconds]
<ia0> ok, simple solution: I abstract over the ('a, Format.formatter, unit) format instead of an additionnal unit
msaegesser has quit [Ping timeout: 260 seconds]
thegp has joined #ocaml
BitPuffin has quit [Ping timeout: 260 seconds]
<whitequark> Drup: not ruby
<whitequark> a language that has some intersection with ruby
<whitequark> otherwise seems like a half-decent immature eliom clone
<Drup> x)
thomasga has joined #ocaml
<Drup> I'm not sure what to think of "We don't do http request except the first one. When clicked on a link, we get the new content through a websocket and do the rendering"
<Drup> I like that the code is short, especially the route/service part
<Drup> but "too much magic" syndrome, even more than eliom
englishm has joined #ocaml
jonludlam has quit [Ping timeout: 260 seconds]
avsm has joined #ocaml
hhugo1 has quit [Quit: Leaving.]
koderok has joined #ocaml
jonludlam has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 255 seconds]
sepp2k has joined #ocaml
hhugo has joined #ocaml
<whitequark> that's generally a problem with ruby
<whitequark> sadly the only alternative (that has real working code) is ... really Java-esque
<whitequark> (see gem virtus and such...)
<MercurialAlchemi> I have bad memories of "let's eval everything at runtime, to make sure nobody will run a debugger on our code"
BitPuffin has joined #ocaml
Hannibal_Smith has quit [Quit: Sto andando via]
<MercurialAlchemi> apart from that and everything being undocumented, it's a pleasant language
<whitequark> (it) which one? opal?
<MercurialAlchemi> Ruby
<whitequark> everything is undocumented?
<whitequark> well, maybe we have a different level of expectations...
thegp has left #ocaml [#ocaml]
<MercurialAlchemi> well, at least a few years ago, a lot of doc was not much more than "here is a readme on github, enjoy"
<MercurialAlchemi> talking about the landscape, the language itself had a decent doc
tac_ has joined #ocaml
<MercurialAlchemi> funny that the block syntax ended up in Rust when the two languages have so little in common
samrat has joined #ocaml
olauzon has joined #ocaml
darkf has quit [Quit: Leaving]
bytbox has quit [Remote host closed the connection]
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
ygrek_ has quit [Ping timeout: 260 seconds]
badkins has joined #ocaml
Simn has quit [Ping timeout: 260 seconds]
ollehar has quit [Ping timeout: 246 seconds]
ernst has quit [Quit: leaving]
<ousado> Drup: sounds a bit like Elm
<Drup> No, Elm is client only
<ousado> 'a bit like' qulifies for that
<Drup> ok, if you remove the whole specific point of volt, and let only the "something something with reactive thingy that is not javascript but runs in a browser", yes, it sounds a bit like Elm :D
<ousado> well, there are many security aspects to the whole "we handle all communications, data updates and whatnots" approach
<Drup> indeed
<MercurialAlchemi> sounds more like Meteor
bytbox has joined #ocaml
mcclurmc has joined #ocaml
koderok has quit [Quit: koderok]
mcclurmc has quit [Ping timeout: 258 seconds]
mcclurmc has joined #ocaml
koderok has joined #ocaml
ggole has joined #ocaml
morphles has joined #ocaml
hhugo has quit [Quit: Leaving.]
WraithM has joined #ocaml
ollehar has joined #ocaml
Simn has joined #ocaml
cdidd has joined #ocaml
koderok has quit [Quit: koderok]
hhugo has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
philtom has joined #ocaml
tac_ has quit [Ping timeout: 272 seconds]
bytbox has quit [Remote host closed the connection]
bytbox has joined #ocaml
bytbox has quit [Ping timeout: 255 seconds]
ousado has quit [Ping timeout: 260 seconds]
ousado has joined #ocaml
sagotch has quit [Remote host closed the connection]
ousado has quit [Changing host]
ousado has joined #ocaml
hhugo has quit [Quit: Leaving.]
cago has left #ocaml [#ocaml]
rgrinberg has joined #ocaml
shinnya has joined #ocaml
samrat has joined #ocaml
avsm has quit [Quit: Leaving.]
Arsenik has joined #ocaml
Arsenik has quit [Remote host closed the connection]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
zpe has quit [Ping timeout: 260 seconds]
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
mort___ has quit [Ping timeout: 272 seconds]
jwatzman|work has joined #ocaml
amiller has quit [Excess Flood]
shinnya has quit [Ping timeout: 260 seconds]
Guest1439 has joined #ocaml
Guest1439 has quit [Excess Flood]
amiller_ has joined #ocaml
averell has quit [Ping timeout: 260 seconds]
averell has joined #ocaml
BitPuffin has quit [Ping timeout: 272 seconds]
stevej has joined #ocaml
ollehar has quit [Ping timeout: 240 seconds]
jonludlam has quit [Quit: Coyote finally caught me]
maurer has joined #ocaml
Kakadu has quit [Quit: Page closed]
troutwine_away is now known as troutwine
rgrinberg has quit [Quit: Leaving.]
thomasga has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
octachron has quit [Quit: Leaving]
q66 has joined #ocaml
Arsenik has joined #ocaml
zpe has joined #ocaml
dsheets has quit [Ping timeout: 255 seconds]
thomasga has joined #ocaml
englishm has quit [Remote host closed the connection]
englishm has joined #ocaml
zpe has quit [Ping timeout: 272 seconds]
thomasga has quit [Client Quit]
testcocoon has quit [Quit: Coyote finally caught me]
thomasga has joined #ocaml
Hannibal_Smith has joined #ocaml
thomasga has quit [Client Quit]
testcocoon has joined #ocaml
BitPuffin has joined #ocaml
zpe has joined #ocaml
jonludlam has joined #ocaml
ollehar has joined #ocaml
bytbox has joined #ocaml
bytbox has quit [Remote host closed the connection]
mort___ has joined #ocaml
thomasga has joined #ocaml
morphles has quit [Ping timeout: 240 seconds]
dsheets has joined #ocaml
ollehar has quit [Quit: ollehar]
ontologiae has joined #ocaml
WraithM has quit [Ping timeout: 260 seconds]
<Drup> gasche: should ocaml pull request have a corresponding mantis ticket ?
fold has joined #ocaml
<whitequark> Drup: not necessary in practice.
<Drup> Yeah, I have a doubt about that
<whitequark> I've had them merged
<Drup> if the answer is "not necessary, because gasche is going to open one for you", then I can do it myself too
<whitequark> no, you don't need a mantis ticket at all.
<Drup> yours were small, and only/mainly frisch was concerned, and he look at github
rgrinberg has quit [Quit: Leaving.]
<whitequark> ah, okay
olauzon has quit [Ping timeout: 260 seconds]
rgrinberg has joined #ocaml
olauzon has joined #ocaml
olauzon has quit [Quit: olauzon]
Anarchos has joined #ocaml
hhugo has joined #ocaml
badkins has quit [Remote host closed the connection]
jonludlam has quit [Ping timeout: 245 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
avsm has joined #ocaml
thomasga has quit [Quit: Leaving.]
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
jonludlam has joined #ocaml
bytbox has joined #ocaml
badkins has joined #ocaml
WraithM has joined #ocaml
Submarine has joined #ocaml
Submarine has joined #ocaml
Anarchos has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
hhugo has quit [Quit: Leaving.]
<Drup> Since I'm (re)watching Star trek next generation, I'm seeing the Q license that is used for ocaml under a very different light x)
<Anarchos> Drup why ?
<dsheets> Q is unethical for interfering with beings which are not trans-dimensional.
Arsenik has quit [Remote host closed the connection]
<Anarchos> ok Drup :)
<Drup> Q also makes terrible jokes, which is consistent with OCaml, as MercurialAlchemi likes to reminds us :D
jonludlam has quit [Ping timeout: 255 seconds]
bytbox has quit [Remote host closed the connection]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
bytbox has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
zpe has quit [Ping timeout: 260 seconds]
_andre has quit [Quit: leaving]
nox has quit [Ping timeout: 245 seconds]
nox has joined #ocaml
jonludlam has joined #ocaml
AltGr has left #ocaml [#ocaml]
ontologiae has quit [Quit: WeeChat 1.0]
rgrinberg has quit [Quit: Leaving.]
Submarine has quit [Quit: Leaving]
claudiuc has joined #ocaml
ontologiae has joined #ocaml
claudiuc has quit [Remote host closed the connection]
rand000 has quit [Ping timeout: 260 seconds]
claudiuc has joined #ocaml
ski has quit [Ping timeout: 250 seconds]
axiles has quit [Remote host closed the connection]
ski has joined #ocaml
mort___ has quit [Quit: Leaving.]
badkins has quit []
zpe has joined #ocaml
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
englishm has quit [Read error: Connection reset by peer]
englishm has joined #ocaml
thomasga has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
MercurialAlchemi has quit [Ping timeout: 260 seconds]
bytbox has quit [Ping timeout: 240 seconds]
clog has quit [Ping timeout: 245 seconds]
Drup has quit [Ping timeout: 240 seconds]
gargawel has quit [Ping timeout: 245 seconds]
cross has quit [Ping timeout: 245 seconds]
libertas has quit [Ping timeout: 240 seconds]
Drup has joined #ocaml
ggole has quit []
sirssi_ has quit [Ping timeout: 245 seconds]
sirssi has joined #ocaml
cross has joined #ocaml
gargawel has joined #ocaml
libertas has joined #ocaml
sepp2k has quit [Quit: Konversation terminated!]
toroidalcode has quit [Remote host closed the connection]
zpe has joined #ocaml
ygrek has joined #ocaml
rand000 has joined #ocaml
jao has quit [Ping timeout: 260 seconds]
ygrek has quit [Ping timeout: 272 seconds]
rgrinberg has joined #ocaml
badkins has joined #ocaml
tac_ has joined #ocaml
mort___ has joined #ocaml
mort___ has quit [Remote host closed the connection]
mort___ has joined #ocaml
tane has quit [Quit: Verlassend]
maurer has quit [Quit: Lost terminal]
rgrinberg has quit [Quit: Leaving.]
WraithM has quit [Ping timeout: 272 seconds]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
bytbox has joined #ocaml
rgrinberg has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
NoNNaN has quit [Ping timeout: 264 seconds]
<Leonidas> I'm looking for a way to return error codes from REST endpoints
<Leonidas> but every endpoint can have a different set of errors with some overlap with other endpoints
<Leonidas> what would be the best way to represent these errors?
<Leonidas> I thought about polymorphic variants
NoNNaN has joined #ocaml
clog has joined #ocaml
<Drup> yes, poly morphic variants sounds like a good idea
rand000 has quit [Quit: leaving]
<Leonidas> but can the compiler tell whether a match on the error code is exhaustive?
<Drup> if you force the signatures, yes
<Drup> otherwise, it's going to infer how much you accept
<Leonidas> oh right, I can just set a signature
<Leonidas> that sounds good
<Drup> try without first
<Leonidas> yep, for development that's better
pyon has joined #ocaml
bytbox has quit [Remote host closed the connection]
<Drup> even after
<Drup> you will see what suits you better
<Drup> but letting the compiler figure out the domain of your function is usually a good thing with polymorphic variants
omqal has joined #ocaml
troutwine is now known as troutwine_away
avsm has quit [Quit: Leaving.]
mort___ has quit [Quit: Leaving.]
darkf has joined #ocaml
maurer has joined #ocaml
pyon has quit [Read error: Connection reset by peer]
pyon has joined #ocaml
pyon has quit [Client Quit]
pyon has joined #ocaml
zpe has joined #ocaml
mobajm has joined #ocaml
pyon has quit [Ping timeout: 240 seconds]
madroach has quit [Ping timeout: 250 seconds]
madroach has joined #ocaml
msaegesser has joined #ocaml
troutwine_away is now known as troutwine
zpe has quit [Ping timeout: 260 seconds]
zpe has joined #ocaml
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
shinnya has joined #ocaml
thomasga has quit [Quit: Leaving.]
englishm has quit [Remote host closed the connection]
pjdelport has left #ocaml [#ocaml]
thomasga has joined #ocaml
zpe has quit [Ping timeout: 260 seconds]
englishm has joined #ocaml
pyon has joined #ocaml
troutwine is now known as troutwine_away
englishm has quit [Ping timeout: 240 seconds]
dsheets has quit [Ping timeout: 272 seconds]
badkins has quit []