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
joewilliams is now known as joewilliams_away
<mbac> so this isn't strictly ocaml related but it grows out of how ocaml changed my expectations of computers
<mbac> the most frustrating part of the ocaml experience is dealing with files
joewilliams_away is now known as joewilliams
<mbac> since files and filesystems are big blobs of mutable state
joewilliams has quit [Excess Flood]
<mbac> it'd be nice to make all that craziness go away, which lead me to wonder
joewilliams has joined #ocaml
<mbac> are there any filesystems that are type safe or functional style?
Georgey has quit [Ping timeout: 276 seconds]
<ski> mbac : i've heard about <http://www.st.cs.ru.nl/Onderzoek/Projecten/Dynamics/dynamics.html> some years ago, but i'm not sure how it has progressed
<ski> though not exactly what you asked for, "Delimited continuations in operating systems" <http://okmij.org/ftp/continuations/index.html#context-OS> and "Zipper-based file server/OS" <http://okmij.org/ftp/continuations/index.html#zipper-fs> might still be interesting
<mbac> neat!
<mbac> this seems like it won't foster a discussion since i need to do a lot of reading first
<hcarty> adrien: That sounds like a perfectly reasonable plan for your weekend :-)
rwmjones has quit [Ping timeout: 245 seconds]
joewilliams has quit [Quit: ZNC - http://znc.sourceforge.net]
joewilliams has joined #ocaml
joewilliams has quit [Quit: ZNC - http://znc.sourceforge.net]
joewilliams has joined #ocaml
joewilliams is now known as joewilliams_away
drunK has quit [Remote host closed the connection]
little_owl has left #ocaml []
jonafan_ has joined #ocaml
jonafan has quit [Ping timeout: 260 seconds]
gnuvince_ has joined #ocaml
Modius has joined #ocaml
mbac has quit [Quit: brb]
wuj has quit [Ping timeout: 265 seconds]
deech has joined #ocaml
<adrien> hcarty: week-end is wineconf in paris / people at wineconf in paris :P
<adrien> (btw, if anyone's attending too...)
<adrien> (hcarty: and, yeah, didn't get the joke at first, it's too early in the morning :P )
ulfdoz has quit [Read error: Operation timed out]
deech has quit [Ping timeout: 264 seconds]
Obfuscate has quit [Read error: Connection reset by peer]
Obfuscate has joined #ocaml
Modius has quit [Quit: I'm big in Japan]
rks has quit [Quit: cours]
Snark has joined #ocaml
larhat has joined #ocaml
Tianon has quit [Ping timeout: 264 seconds]
Tianon has joined #ocaml
Tianon has quit [Changing host]
Tianon has joined #ocaml
Tianon has quit [Ping timeout: 255 seconds]
Georgey has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
rwmjones has joined #ocaml
f[x] has quit [Ping timeout: 264 seconds]
hcube has quit [Ping timeout: 260 seconds]
ikaros has joined #ocaml
f[x] has joined #ocaml
DimitryKakadu has joined #ocaml
Yoric has joined #ocaml
ttamttam has joined #ocaml
hcube has joined #ocaml
caligula_ has quit [Ping timeout: 255 seconds]
_andre has joined #ocaml
caligula_ has joined #ocaml
mal`` has quit [Remote host closed the connection]
ftrvxmtrx has joined #ocaml
ftrvxmtrx has quit [Remote host closed the connection]
ftrvxmtrx has joined #ocaml
Georgey has quit [Ping timeout: 265 seconds]
Tianon has joined #ocaml
Tianon has quit [Changing host]
Tianon has joined #ocaml
gnuvince1 has joined #ocaml
gnuvince_ has quit [Ping timeout: 272 seconds]
ftrvxmtrx has quit [Remote host closed the connection]
zubeen has joined #ocaml
<jsk> morning
ftrvxmtrx has joined #ocaml
ftrvxmtrx has quit [Remote host closed the connection]
<gildor> jsk: afternoon
ftrvxmtrx has joined #ocaml
Amorphous has quit [Ping timeout: 245 seconds]
ttamttam has quit [Remote host closed the connection]
Amorphous has joined #ocaml
DimitryKakadu has quit [Remote host closed the connection]
Smerdyakov has joined #ocaml
drunK has joined #ocaml
wuj has joined #ocaml
avsm has joined #ocaml
Snark has quit [Quit: Ex-Chat]
thieusoai has joined #ocaml
thieusoai has quit [Quit: Leaving]
sgnb has quit [Read error: Connection reset by peer]
<hcube> hi! can you suggest a very very simple and tiny ocaml lib for composing and reading http messages? ocamlnet is extremly overkill for me and it is very hard to crosscompile and also big.
<flux> hcube, you could the the curl bindings for ocaml
<flux> they are quite c-ish, but it's tolerable ;)
sgnb has joined #ocaml
sgnb has left #ocaml []
<hcube> but is there a lib in pure oacml? (only based on ocaml std lib)
<flux> well, ocamlnet..
<hcube> no, it depends on pcre
<hcube> and i have to crosscompile everyting to iphone
<hcube> and foreign (C) deps and config scripts are hard to port
<flux> then I have no ideas. write your own?
<flux> although regular expressions can come handy when doing that ;)
<f[x]> curl is definitely present on iphone
mal`` has joined #ocaml
<f[x]> full non-blocking http client will not be easy and you will hardly get less code and deps then ocamlnet
<f[x]> simple http client is trivial and takes 5 minutes to write
<hcube> true, but i'm not very experienced with http protocol
<Smerdyakov> Where did the "co" come from?
<avsm> "cooperative" as it uses lwt
<avsm> and a desire to not have yet another ocaml-http :)
<Smerdyakov> Mm... I recently verified a tiny cooperative threading library in Coq. :)
<avsm> online anywhere at all?
DimitryKakadu has joined #ocaml
<avsm> I *still* have your book on my reading list. christmas, i guess :)
<Smerdyakov> You could wait for the printed version. Coming soon from MIT Press. :)
<avsm> awesome!
<avsm> i've got a blog entry drafted for how the xen/minios boot stuff works, as you requested at the ml workshop. just trying to track down a pesky crash bug before releasing that bit of it.
<Smerdyakov> Great. Maybe I won't need to RTFM after all. ;D
<Smerdyakov> Probably still couldn't build something compelling in time for SOSP.
<avsm> RTFC more like; all this stuff is very undocumented, as is traditional with systems
<Smerdyakov> I do want to build a formal Xen semantics in Coq.
<Smerdyakov> That kind of RTFC might be even better. :)
<avsm> Sewell's got a potential student lined up to do some x86-TSO verification of bits of Xen. but a Coq view of the *guest* semantics would be most useful to guide verified OS runtimes (like Mirage or whatever else). I'll follow up by email …
<Smerdyakov> Yeah, that's what I had in mind.
<Smerdyakov> Even just the interrupt-free part that I believe you guys are using..?
<avsm> yeah
<avsm> interrupts are also not too hard, just worth avoiding as long as possible
<Smerdyakov> They definitely make program logics more complicated.
larhat has left #ocaml []
<avsm> the main interrupt is VIRQ_TIMER, which is obviously not needed with cooperative threading. all others only required for passing through physical IRQs which is not commonly used
<Smerdyakov> I'd be curious to see some experiments on how important interrupts are for performance.
<avsm> it's an old, old topic of argument in OS ; polling vs interrupts. essentially you need both (interrupts for low-latency, low-load, and polling for high-load)
<avsm> but particularly if you can somehow guarantee you will poll regularly (unfortunately hard to guarantee in something like Lwt/OCaml), you dont need interrupts
<Smerdyakov> So the usual quantum of scheduling is too high to allow acceptable latency with today's network speeds?
<avsm> well there's a cost to an interrupt, which you don't have by polling
<avsm> but of course, polling is a waste of time if you're spinning waiting for something to happen, so it's better to interrupt in low loads. FreeBSD dynamically switches these days
<Smerdyakov> I can guarantee regular polling with the right program logic.
<avsm> how do you represent time?
<Smerdyakov> Well, I was thinking of using an instruction counter as a very coarse measure.
<avsm> ah yeah, that would work
<Smerdyakov> So folks can drop in proof-carrying code packages, as long as they prove sufficient yielding.
<Smerdyakov> And the neat part would be that the same facility could be used by "user-level" libraries to build their own abstraction layers... if we can design the logic right. :)
joewilliams_away is now known as joewilliams
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
drunK has quit [Remote host closed the connection]
ftrvxmtrx has quit [Quit: Leaving]
Yoric_ has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
mal`` has quit [Quit: Coyote finally caught me]
Yoric_ is now known as Yoric
mal`` has joined #ocaml
mal`` has quit [Ping timeout: 240 seconds]
init1 has joined #ocaml
mal`` has joined #ocaml
<flux> using polling can also prohibit cpu's from entering power saving modes while still preserving reasonable latency. this can be important on mobile devices.
wruthw4lk has joined #ocaml
<wruthw4lk> any ocaml projects for gsoc this year?
ftrvxmtrx has joined #ocaml
<thelema> wruthw4lk: not that I know of
<adrien> anyone knows whether lwt works well on windows?
<mfp> adrien: haven't used it on windows, but I've noticed windows-specific code in Lwt's sources
<adrien> mfp: ok, thanks, I'll probably try it :-)
ftrvxmtrx has quit [Quit: Leaving]
Fullma has quit [Quit: Fullma]
<mfp> adrien: I don't know in which state the development branch is, with the recent transition to libev
<adrien> yeah, that was also one of my concerns, we'll see ;-)
Fullma has joined #ocaml
<adrien> another solution is to make a webui with an http server :P
avsm has quit [Quit: Leaving.]
wruthw4lk has quit [Quit: Leaving]
DimitryKakadu has quit [Remote host closed the connection]
Yoric has quit [Quit: Yoric]
hcube has quit [Ping timeout: 265 seconds]
ski has quit [Read error: Connection reset by peer]
ski has joined #ocaml
hcube has joined #ocaml
Obfuscate has quit [Read error: Operation timed out]
Obfuscate has joined #ocaml
_andre has quit [Quit: leaving]
_schulte_ has joined #ocaml
<_schulte_> Hi, I'v compiled ocaml to asm (with -S) and tweaked the resulting .s file, does anyone know how I can link this editted assembly file? Thanks
Obfuscate has quit [Read error: Connection reset by peer]
Obfuscate has joined #ocaml
Smerdyakov has quit [Quit: Leaving]
<_schulte_> just for completeness, the following seems to work
<_schulte_> 1) first generate the required .s and startup files
<_schulte_> : ocamlopt -dstartup -S bubble.ml
<_schulte_> 2) then find out what flags ocamlopt is passing to gcc
<_schulte_> : ocamlopt -verbose
<_schulte_> 3) call gcc on the startup and .s file, as well as the ocaml libraries
<_schulte_> copied from the verbose output of ocamlopt -verbose, e.g.
<_schulte_> : gcc -o bub '-L/usr/lib/ocaml' 'a.out.startup.s' '/usr/lib/ocaml/std_exit.o' 'bubble.s' '/usr/lib/ocaml/stdlib.a' '/usr/lib/ocaml/libasmrun.a' -lm -ldl
<hcarty> _schulte_: Thanks for figuring out and pasting this. Could you add it as a snippet on the forge, or a wiki somewhere?
<_schulte_> hcarty: sure, I don't know much about the ocaml ecosystem, but if you can point me towards a url I'm happy to paste this there
<hcarty> _schulte_: If you don't mind signing up for an account, the OCaml forge is probably a good choice: https://forge.ocamlcore.org/snippet/browse.php?by=lang&lang=1
<_schulte_> alright, I've put this information up in the form of a shell script snippet at https://forge.ocamlcore.org/snippet/detail.php?type=snippet&id=11
olauzon has joined #ocaml
_schulte_ has quit [Remote host closed the connection]
clog has quit [^C]
clog has joined #ocaml
joewilliams is now known as joewilliams_away
gnuvince1 is now known as gnuvince_
joewilliams_away is now known as joewilliams
rks has joined #ocaml
wuj has quit [Ping timeout: 265 seconds]
ikaros has quit [Quit: Leave the magic to Houdini]
ftrvxmtrx has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
drunK has joined #ocaml
olauzon has quit [Quit: olauzon]
ftrvxmtrx has joined #ocaml
gnuvince_ has quit [Quit: ""]
init1 has quit [Quit: Quitte]
Obfuscate has quit [Quit: A poorly written script will replace me shortly.]
willb has quit [Remote host closed the connection]
Obfuscate has joined #ocaml
rks has quit [Quit: dodo]