<spanish>
how is it lp :: l matches `lines' if it wasn't even an argument for the loop?
<spanish>
I mean, an argument the `rec loop' construction said it would accept
<bernardofpc>
loop n delta = function ... ;; means that loop has *three* arguments
<spanish>
and which is the third one?
<bernardofpc>
it's unnamed
<spanish>
I only see n and delta
<bernardofpc>
and it's the one upon which you do the pattern-match
<spanish>
and that's because of using the function keyword, no?
<balouis>
yes
<balouis>
the third one is a list
<bernardofpc>
other than that, I don't really understand this funciton, but that's another problem
<spanish>
I was actually going to ask is some guru having had a look to mtasc would say that is proper ocaml programming
<bernardofpc>
(lines is an int list, which already is misleading)
<spanish>
what's actually on the list is the lexer position at the end of the lines
ttamttam has joined #ocaml
ttamttam has left #ocaml []
ontologiae has quit [Ping timeout: 248 seconds]
<gasche>
spanish: Nicolas Cannasse is a fine OCaml programmer; I haven't read MTASC source code but I would expect it to be done well-enough
<gasche>
and "function ..." is equivalent to "fun x -> match x with ...", for a free name 'x' (that doesn't appear anywhere else)
<spanish>
ah, something I can't support from ocaml is functions with no specification or it's arguments
<spanish>
it makes the code so difficult to follow
eikke has joined #ocaml
<spanish>
unless for some "static" inline function, I wouldn't use that
<spanish>
s/or/of
<ggole>
It becomes easier once you become accustomed to it
chambart has joined #ocaml
<ousado>
you can do that, but it's not very common.
<spanish>
if you're used to ocaml it might, but still, how can you get that code after a year and call it maintainable?
<ggole>
Argument names are nice to have when things are not clear, but if something is just a list you are iterating over they don't really help much
<ggole>
Point free can definitely be taken too far, but I think that function is fairly readable.
<spanish>
yes, some times seen it's sole names is enough, that's true as well
ygrek has joined #ocaml
<gasche>
the "delta" naming is not very good
<ggole>
It's just a short-circuiting fold, really
<gasche>
(one would expect (p - delta) to be named delta)
<ggole>
And what is p?
<ggole>
I assume it is "position"
<spanish>
yes, an integer
<spanish>
hehe, not even you have it clear, how would you expect me having it?
<spanish>
that function is fine if you see the code arround
<ggole>
I can tell what the function does quite easily, which is different from telling what the things it operates on mean.
<spanish>
but there are many others I'll need quite a time to decode
<bernardofpc>
ggole: exact
<ggole>
Both are important for good readable code.
<gasche>
spanish: I feel mildly sorry about you spending time on something that is probably a rather simple change to the lexer (if you're still working on cpp directives support)
<bernardofpc>
s/delta/last/
<gasche>
on the other hand, you do look like you're learning a lot while doing this
<spanish>
yes, but's normal, I don't know ocaml at all gasche
<spanish>
yes, that's true, as when you get to something, you learn by doing, asking, trying
<gasche>
well you could probably just request for help for the implementation around here, and get a rough patch from someone that does
<gasche>
but not doing that also has upsides for you
<ggole>
Diving in like that is an excellent way to learn very fast
<spanish>
no, thanks, this is just a spare-time thing, want to leaarn some ocaml as well
<spanish>
yes
Kakadu has quit []
Kakadu_ has joined #ocaml
chambart has quit [Ping timeout: 256 seconds]
<spanish>
appart from cpp support, I also want to
<spanish>
disallow creation od dynamic properties or variables on the fly, something that action script allows, whether because of spec or inherited from ecma, but that I find so stupid
<spanish>
you have a typo, the compiler sees it as a valid construction, and compiles it, but the then movie fails and you don't know where
<ggole>
That's allowed in many languages, unfortunately.
<spanish>
yeah, they call that "facility"
<ousado>
why was it again you're using mtasc here?
<spanish>
I used it to create and audio and video player integrated with a fast-cgi
<spanish>
now we're releasing it, together with the compiler patch, as free software
<spanish>
we were in a hurry, so just implemented cpp support and looked at the errors the dirty way, now I want to fuly integrate it and post it
<ousado>
I see
<ousado>
I still think you could make use of the haxe ecosystem
wmeyer has joined #ocaml
<spanish>
there are some bugs in as3 regarding mp3 handling, so we wen't as2 instead
<ousado>
oh.. right, as2
<ousado>
wmeyer: o//
eikke has quit [Ping timeout: 246 seconds]
<wmeyer>
ousado: \\o
* wmeyer
drinking coffee after good sleep on Saturday
<ousado>
sounds good :)
zRecursive has joined #ocaml
<zRecursive>
find .opam/ | grep -i topfind => .opam/system/lib/toplevel/topfind .opam/system/lib/findlib/topfind.mli .opam/system/lib/findlib/topfind.cmi. However, <#use "topfind"> still doesnot work
<wmeyer>
and enjoying good weather
<wmeyer>
zRecursive: did you do [eval `opam config -env`] ?
<wmeyer>
in your shell.
<zRecursive>
wmeyer: i am using csh, eval `opam config -env` seems not work
<wmeyer>
I see. So it's best just to do print it, and set it manually then.
<zRecursive>
ok
<wmeyer>
(as I say setting this manually is pain, but on other hand you know what you do)
<zRecursive>
sure
<wmeyer>
zRecursive: also, I would be tempted to raise a bug in the opam, as this switch is not transparent for tcsh I think. But that's maybe for the reason of that it's not so popular.
Drup has joined #ocaml
<wmeyer>
also, you might have misguided the shell, you use 'system' switch which then have different path depending on your system.
<wmeyer>
if you do: [opam switch 4.00.1] and set your PATH, that should work I hope
<zRecursive>
wmeyer: i will put those into ~/.cshrc
<zRecursive>
on my freebsd box
<zRecursive>
it is already 4.00.1
<wmeyer>
yes, but .opam path you given is /system/ where is it should something with 4.00.1, you you have to install findlib, which comes with any package. BTW, when you do switch you have to reinstall packages, as the installation works just for the current compiler and is not shared.
<wmeyer>
this is how OCaml works.
<ousado>
there is some shortcut for that
<ousado>
for creating a list of the packages and installing them for another compiler I mean
<gasche>
it may be possible to have opam config -env depend on the shell used? I think creating an issue on OPAM's bugtracker is a good idea -- better if you can provide an example of syntax csh would accept, and even better if you could provide a patch for that
<zRecursive>
echo $CAML_LD_LIBRARY_PATH => ~/.opam/system/lib/stublibs ~/ocaml/lib/ocaml/stublibs echo $OCAML_TOPLEVEL_PATH => ~/.opam/system/lib/toplevel but still canot use topfind
<gasche>
what about `ocamlfind printconf`?
<gasche>
hm
<zRecursive>
gasche: it works
<wmeyer>
ousado: in past I did it manually (yes, I know there should be direct support for that, but just wasn't sure how to do this)
<gasche>
zRecursive: opam config has a --csh switch already, have you tried that?
<zRecursive>
Packages will be installed in/removed from: ~/.opam/system/lib
<zRecursive>
META files will be installed in/removed from: the corresponding package directories
<zRecursive>
The standard library is assumed to reside in: ~/ocaml//lib/ocaml
<zRecursive>
The ld.conf file can be found here: ~/ocaml//lib/ocaml/ld.conf
<wmeyer>
zRecursive: if you select this switch, it should work, but that implies that maybe it's not frequently used (people like me, use tcsh at work, and my preference is to have something like bash at the moment)
<gasche>
zRecursive: do you have a .ocamlinit? the doc for opam config --ocamlinit in the --help says that it helps with #topfind
<gasche>
(and what's the error when '#use topfind'?)
<zRecursive>
there is .ocamlinit, '#use topfind' => Cannot find file topfind
<wmeyer>
zRecursive: that's strange and is hard to tell what is it, but I can only see you use system compiler where findlib is under .opam.
<wmeyer>
so :-) anyway, I hope you get your configuration right!
<wmeyer>
it's very fragile to get it right in the begining, but once you configure your ocaml it gets smooether
<zRecursive>
wmeyer: have you ever tested opam on freebsd ?
<wmeyer>
I don't use freebsd, but it looked like there is no much difference, apart from the BSD like world
<gasche>
zRecursive: is there something related to $OCAML_TOPLEVEL_PATH in your .ocamlinit?
chambart has joined #ocaml
<zRecursive>
nope
<gasche>
that's probably the issue
<wmeyer>
gasche: that would be good bet.
<gasche>
mine is
<gasche>
(* Added by OPAM. *)
<gasche>
let () = try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH") with Not_found -> ()
<gasche>
;;
<gasche>
and indeed I have a "topfind" file in $OCAML_TOPLEVEL_PATH, with ocaml directives inside; do you?
<gasche>
zRecursive: well, I suggest you add my line at the beginning of your .ocamlinit
<gasche>
as "opam config --ocamlinit" would probably have done automatically
<gasche>
(I must say I don't understand how OPAM setup handles those config files; I feel like I've had to call this 'opam config' stuff and take care of completion myself, but maybe it's because my first opam install was pre-1.0)
<zRecursive>
cat /usr/ports/devel/ocaml-findlib/Makefile |grep -i version => PORTVERSION=1.3.3 i will test the findlib in ports
<wmeyer>
gasche: it feels like this, and indeed it's not a good feeling :-)
<zRecursive>
the findlib in ports works before, iirc
<gasche>
zRecursive: that's not a findlib problem
<gasche>
it's an OPAM problem that you have
<wmeyer>
gasche: but on other hand it's automatic on my machine!
<zRecursive>
gasche: it it opam problem.
<gasche>
wmeyer: on my work machine, I regularly switch between versions to test things, and it's quite a hassle
<gasche>
I never did the (possibly simple) work to get Emacs to respect the global switch setting
<gasche>
and having a global mutable setting is a pain in any case
<gasche>
I would like to have project-local switch settings, but that's not possible at the moment with OPAM
<gasche>
(meaning when I'm trying to debug stuff in OCaml I'm usually in a +dev-switch, but then when I go back to regular development I want a 4.00.1, and in practice those two activities happen in parallel across multiple directories and screen sessions)
<wmeyer>
gasche: I see, I use single session Emacs, so I have to be able to switch between versions too, and then I use some custom elisp for doing that (this script is a bit hacky, but actually that's purely me who uses that script, so it's fine)
<wmeyer>
gasche: mutable configuration is always painful
<wmeyer>
maybe something like [opam exec-in-switch 4.00.1 <command>] would work too
<wmeyer>
(but it will be slow)
zRecursive has left #ocaml []
<gasche>
re. emacs, I don't understand whether there is a single blessed script that works and that people hackingly improve upon (fine), or if nobody cared to clean his or her own script and submit that upstream (painful)
<gasche>
wmeyer: note that a "opam switch-if-needed 4.00.1 <command>", whose semantics wouldn't guarantee that the global switch is preserved after execution, would be a partial solution and much faster
<wmeyer>
gasche: this memoizing switch would be good indeed.
<gasche>
but maybe we don't need the global state at all, if all the state can be put in one's environment
<wmeyer>
gasche: while I agree, my script at any rate is not ready!
osa1 has quit [Quit: Konversation terminated!]
* wmeyer
thinking about grabbing the laptop and going to caffee
ontologiae has joined #ocaml
ollehar has quit [Ping timeout: 276 seconds]
breakds has joined #ocaml
<wmeyer>
gasche: more over, most of people write custom code to handle that, and I think that's how it's getting with Emacs. In opam it can be standarised. More over usually people are not heavy Emacs users, so something simple would just work. In my case I know my configuration very well, and I spent a lot of time on it.
breakds has quit [Remote host closed the connection]
<gasche>
wmeyer: I just sent a mail to caml-list to rant about that
<gasche>
hopefully it'll work :)
<wmeyer>
gasche: :)
mcclurmc has joined #ocaml
<Drup>
gasche: is there an issue with using a general directory in .opam and use symlink to redirect to the correct current switch ? It would solve all the issue I think and I would not be "emacs only".
<Drup>
(of course, it need a change at opam level)
* wmeyer
time to read a good paper :'
beckerb has joined #ocaml
<wmeyer>
Drup: somtething similar was proposed by Raphaël Proust. Can't find exactly the issue in the bug tracker. (I suppose search button is not implemented in github)
structuralist has quit []
<gasche>
I remember Raphaël proposing that
<gasche>
I don't understand how opam switch works, so I don't have much an opinion
<gasche>
I would like other people to take care of that
<gasche>
Drup: a symlink would make it simple to make sure all tools see the current switch
<gasche>
but on the contrary, that would make it more difficult to have a "less global" switch setting
<Drup>
gasche: I don't either, this is just a stupid solution to what I think is the problem but there is probably a reason they didn't do that directly
chambart has joined #ocaml
<gasche>
that's also something I find annoying with git branching model, as opposed to darcs "just copy the repo somewhere else" philosophy
<gasche>
you cannot really work on multiple branch of a single git repo in parallel
<Drup>
yeah, I was precisely going to propose the solution "have a directory for each compiler" :D
<Drup>
I didn't know opam was using git for that
<gasche>
no it's not
<gasche>
I was making an analogy
<Drup>
ok
<gasche>
Opam precisely has a repo for each compiler
<gasche>
(but Rapahël's proposal amounts to hiding that fact, and only pointing to a single repo mutably set to "the current compiler")
UncleVasya has quit [Ping timeout: 256 seconds]
<Drup>
so opam could have a directory for each compiler *and* the "current compiler" directory
<Drup>
the path would be set up to the current compiler, but you could still adresse directly one of the other compiler
<Drup>
s/adresse/point to/
ygrek has quit [Ping timeout: 252 seconds]
<Drup>
As I said, I don't know how opam is working precisely, not sure if this is reasonable at all.
<wmeyer>
gasche: thanks for informing on caml-list about the issue, I hope there will be more discussions, and people select some good solutions for up-streaming
<wmeyer>
as I say, opam works for me quite well, but the missing part is in depth control over 'switch' (and mentioned before have no time to finish up work on my libraries like ilist, and at the moment this is almost purely putting them in opam)
<spanish>
that's more or less a final version of what I would be integrating in mtasc
vivanov has joined #ocaml
<vivanov>
how to pass arguments to ocamldebug when running it under emacs -- for example "ocamldebug `ocamlfind query -recursive -i-format da` -I _build deb.byte"
jbrown has quit [Read error: Operation timed out]
<Kakadu_>
flux: hey! Any news about OCaml+Qt?
jbrown has joined #ocaml
ollehar has joined #ocaml
chambart has quit [Ping timeout: 256 seconds]
osa1 has joined #ocaml
pkl` has joined #ocaml
<pkl`>
Does anyone know how to enable threads when compiling with ocp-build?
malo has quit [Quit: Leaving]
<flux>
kakadu_, sorry, no
<wmeyer>
flux, Kakadu_ : hello
<Kakadu_>
wmeyer: hey
mattrepl has joined #ocaml
tane has quit [Quit: Verlassend]
ollehar has quit [Ping timeout: 240 seconds]
osa1 has quit [Ping timeout: 246 seconds]
osa1 has joined #ocaml
dsheets has joined #ocaml
ygrek has joined #ocaml
tobiasBora has joined #ocaml
Drup has quit [Ping timeout: 268 seconds]
darkf has quit [Quit: Leaving]
eikke has joined #ocaml
Kakadu_ has quit []
emmanuelux has quit [Read error: Connection reset by peer]
osa1 has quit [Quit: Konversation terminated!]
jbrown has quit [Ping timeout: 246 seconds]
vivanov has quit [Quit: Lost terminal]
jbrown has joined #ocaml
tobiasBora has quit [Quit: Konversation terminated!]
jbrown has quit [Ping timeout: 245 seconds]
ollehar has joined #ocaml
oriba has joined #ocaml
jbrown has joined #ocaml
Yoric has quit [Ping timeout: 256 seconds]
emmanuelux has joined #ocaml
iZsh has quit [Quit: Coyote finally caught me]
ollehar has quit [Ping timeout: 256 seconds]
iZsh has joined #ocaml
Watcher7|off is now known as Watcher7
malo has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
osa1 has joined #ocaml
emmanuelux has quit [Ping timeout: 256 seconds]
emmanuelux has joined #ocaml
emmanuelux has quit [Client Quit]
eikke has quit [Ping timeout: 268 seconds]
ollehar has joined #ocaml
travisbrady has joined #ocaml
beckerb has quit [Ping timeout: 245 seconds]
Yoric has joined #ocaml
dsheets has quit [Ping timeout: 276 seconds]
oriba has quit [Remote host closed the connection]
ttamttam has joined #ocaml
rgrinberg has quit [Quit: WeeChat 0.4.1]
ggole has quit []
yacks has joined #ocaml
dsheets has joined #ocaml
travisbrady has quit [Quit: travisbrady]
ollehar has quit [Ping timeout: 256 seconds]
ollehar has joined #ocaml
Kakadu has joined #ocaml
eikke has joined #ocaml
mort___ has joined #ocaml
mort___ has left #ocaml []
ttamttam has left #ocaml []
pootler__ has joined #ocaml
pootler_1 has joined #ocaml
pootler_1 has quit [Ping timeout: 260 seconds]
pootler__ has quit [Ping timeout: 260 seconds]
ollehar has quit [Quit: ollehar]
Zeev has joined #ocaml
Kakadu has quit []
Kakadu_ has joined #ocaml
mattrepl has quit [Quit: mattrepl]
Zeev has quit [Read error: Connection reset by peer]
Snark has quit [Quit: leaving]
Zeev has joined #ocaml
cdidd has quit [Ping timeout: 264 seconds]
cdidd has joined #ocaml
eikke has quit [Ping timeout: 240 seconds]
Kakadu_ has quit []
Kakadu has joined #ocaml
<wmeyer>
pippijn: ping
osa1 has quit [Quit: Konversation terminated!]
Zeev has quit [Read error: Connection reset by peer]
eikke has joined #ocaml
Zeev has joined #ocaml
pootler__ has joined #ocaml
pootler_1 has joined #ocaml
osa1 has joined #ocaml
osa1 has quit [Client Quit]
Kakadu has quit [Ping timeout: 246 seconds]
pootler_3 has joined #ocaml
pootler_4 has joined #ocaml
pootler_1 has quit [Ping timeout: 256 seconds]
pootler__ has quit [Ping timeout: 256 seconds]
osa1 has joined #ocaml
eikke has quit [Read error: Operation timed out]
spanish has quit [Quit: Leaving]
jayprich has joined #ocaml
ollehar has joined #ocaml
Yoric has quit [Ping timeout: 245 seconds]
osa1 has quit [Quit: Konversation terminated!]
Drup has joined #ocaml
gautamc has joined #ocaml
jcao219 has joined #ocaml
pootler_3 has quit [Ping timeout: 245 seconds]
pootler_4 has quit [Ping timeout: 245 seconds]
pkl2 has joined #ocaml
<pkl2>
Does anyone know how to compile with threads in ocp-build?
<adrien>
hmmm
<adrien>
now that you mention that I'm starting to have doubts it might not be possible right now
<adrien>
ocp-build has its own handling of META files for ocamlfind and the -threads support in ocamlfind has some special handling
<adrien>
maybe it isn't in ocp-build
<pkl2>
ok
<adrien>
but that's only an hypothesis
<adrien>
you should ask on one of the official media
<pkl2>
ok
<adrien>
I don't know if there's a dedicated ML
<pkl2>
ok, I will have a look
<pkl2>
Looking at the verbose output from ocp-build, it seems that the only thing missing is to add 'threads.cmxa' etc in the linking stage
<adrien>
"man ocamlfind" has a section named "Fixup of the dependency graph for multi-threading"
<adrien>
which mentions: (2) the package "threads" becomes prerequisite of all other packages (except of itself and a few hardcoded exceptions)
pkl` has left #ocaml []
Yoric has joined #ocaml
<pkl2>
ok
pootler__ has joined #ocaml
<jayprich>
so does one edit the package file and add "threads" to the requires=[] only for program then the ocamlfind will fix-up dependencies and choose compatible versions of the other libraries?
<wmeyer>
adrien: hi!
<pkl2>
No, it does not seem to work.
<adrien>
wmeyer: morning
<wmeyer>
adrien: morning morning
<adrien>
jayprich: you make what makes sense; afaiu ocamlfind does this so that the threads package is linked first
* wmeyer
is very sleepy
<adrien>
same here
* wmeyer
eaten a big dinner
pootler_1 has joined #ocaml
* wmeyer
did a lot of work today though
<adrien>
I'm finally done with the awful js/html/css stuff as far as I'm concerned
<adrien>
waiting for some apache stats to update now :P
<wmeyer>
cool, I like it, do you maintain the mingw-w64?
mcclurmc has quit [Ping timeout: 252 seconds]
<Drup>
adrien: it's not done in Eliom !
* Drup
hides.
pkl2 has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<adrien>
Drup: it's static :P
* wmeyer
thinks Eliom is great but not sure if he has enough time to write a webpage
<wmeyer>
it looks static :-)
<Drup>
adrien: then you shouldn't have any js, thats a major pain off :p
<adrien>
the js was a previous try
<adrien>
the php is only there to "include" common bits
<wmeyer>
Drup: I am not sure if js is pain, nowdays I found first class closures as good as it goes in dynamicaly typed languages
<wmeyer>
of course js_of_ocaml is superior to js in terms of how fast you can develop code
<wmeyer>
but it comes with a separate pass for compilation for instance
<Drup>
wmeyer: the js semantics is really really crazy
<Drup>
there is a lot of extremely strange and dangerous stuff everywhere.
<wmeyer>
in other words, js is used widely because it's known to be expressive too
<wmeyer>
Drup: semantics are crazy, but at least are specified
<adrien>
js is crap :P
<Drup>
wmeyer: huu, it depends
<wmeyer>
I prefer actually JS over flash for instance
<adrien>
it's a minefield
<adrien>
and noone does JS
<adrien>
people do jquery or other libs
<wmeyer>
I did some js :) and i am happy user of the js_of_ocaml compiler actually
<adrien>
equivalent of Array.iter? not in IE 8 and before
Zeev has quit [Read error: Connection reset by peer]
<Drup>
adrien jquery is a sort of net on top of the mindfield. Sure, normally you shouldn't touch it, but you're never sure the net is not gonna bend and let you explode violently. And it's still difficult to walk on it.
<wmeyer>
nowdays however, I stopped doing any web stuff, because it seems like my limited time kills everything ;)
<wmeyer>
Drup: that's why you have to be careful with this
<adrien>
Drup: agreed but at least there's a net
Zeev has joined #ocaml
<adrien>
I don't believe that makes the whole stuff better
<adrien>
"yeah, javascript is crap but with jquery is fine"
<adrien>
that's just a bad excuse
<Drup>
I agree with that
<wmeyer>
adrien: ok, then what is an alternative?
<ousado>
proper APIs?
<adrien>
wmeyer: cobol on the web of course!
<ousado>
jquery is stringly typed
<ousado>
(sic)
<adrien>
I see no alternative; my point was not that there was better but that it was bad and that having a library on top of it to hide the bad stuff didn't make it any better
<wmeyer>
adrien: :-)
<Drup>
js is also terrible to compile and jquery's performanes are even worse than native js, which is already bad.
<wmeyer>
cobol was fine
<Drup>
ousado: allow to use this expression again, it's absolutely fantastic :D
<adrien>
but cobol with objects is wonderful :P
<wmeyer>
Drup: for a reason the tracing jits does it job, and does it on runtime, so there is an overhead but not too big
<ousado>
js performance isn't bad, IMO
<adrien>
going to bed; night
<Drup>
wmeyer: do you realize how much money it took to have a js that is "reasonably fast" ?
<wmeyer>
adrien: me too, good night.
<adrien>
ousado: but the garbage collectors are bad
<ousado>
yes
<ousado>
true
<adrien>
and there's too much JS running
<wmeyer>
Drup: while I agree, it's not perfect, but i am not going to defend Flash
<adrien>
actually a browser on the internet nowadays is pretty much like a windows machine full of crapware
<Drup>
wmeyer: oh flash is worse. What I'm complaining about is that they could have done a proper langage from the start
<adrien>
the performance of the languages isn't bad but there's so much stuff running all the time that it gets awful
<wmeyer>
Drup: sure, I know this.
<Drup>
instead, we have to use js as asm
<ousado>
still it's possible to write good JS using some real language
<wmeyer>
Drup: but you can write good js and bad js
<Drup>
wmeyer: you can write good C and bad C, C is still terrible :D
<ousado>
well, C as a compilation target is not too bad
<ousado>
same as JS
<wmeyer>
last time I looked at js_of_ocaml I spend whole night with Bach and developed chess application
<ousado>
(C is better for that than JS ofc, but JS also isn't too bad)
<wmeyer>
it's really like this, js_of_ocaml allows to compile stuff as you wish for the reason of using static typing
<wmeyer>
it's seems to be slow, much less productive when I use bare JS
<Drup>
ousado: indeed, you can target a proper subset of JS that works well with JITs
<wmeyer>
ousado: C and JS *is* terrible. But does not suck for the industry :)
<Drup>
(and you end up with a js that is more efficient that if you write it by yourself because of that.
<wmeyer>
I like Pascal, I really like.
<ousado>
also true, but correctness is my main concern when targeting js
<wmeyer>
have you heard about dependent js?
<ousado>
I don't do too performance critical stuff.
<ousado>
wmeyer: nope :)
<wmeyer>
you can annotate the js functions with refinement types