<ehirdoy1>
I'm trying to get rid of Unix dependency in some general package, which uses Unix.gettimeofday (). Should I replace gettimeofday with Mirage_clock.PCLOCK.now_d_ps to support Unix && Hvt at once?
Haudegen has joined #mirage
pie_ has quit [Ping timeout: 248 seconds]
<hannes>
ehirdoy1: yes, the common pattern is to functorize them over (P : Mirage_clock.PCLOCK) and use "P.now_d_ps ()" in the code. then the client has to instantiate that functor and pass their clock implementation.
<hannes>
another option is to pass a function (unit -> Ptime.t, or even only Ptime.t) to the library, then there's no functor needed
<hannes>
I've not yet found a good rule of thumb what to use when, both are very explicit, I usually like passing the function/current timestamp better unless the module is already functorized (since functors are pretty heavy-weight in my brain -- and I like to be able to read and explain my code even in the morning before my first coffee)
pie_ has joined #mirage
pie___ has joined #mirage
mort___1 has quit [Quit: Leaving.]
mort___ has joined #mirage
mort___1 has joined #mirage
pie_ has quit [Ping timeout: 248 seconds]
mort___ has quit [Ping timeout: 248 seconds]
mort___1 has quit [Quit: Leaving.]
mort___ has joined #mirage
<pie___>
tfw not running mirageos on your router
mort___ has quit [Quit: Leaving.]
yomimono_ has quit [Ping timeout: 268 seconds]
yomimono has joined #mirage
_whitelogger has joined #mirage
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
pie___ has quit [Ping timeout: 252 seconds]
yomimono has quit [Ping timeout: 248 seconds]
yomimono has joined #mirage
pie___ has joined #mirage
Haudegen has quit [Read error: Connection reset by peer]
jnavila has joined #mirage
Haudegen has joined #mirage
jnavila has quit [Ping timeout: 245 seconds]
jnavila has joined #mirage
yomimono has quit [Ping timeout: 252 seconds]
jnavila has quit [Remote host closed the connection]
yomimono has joined #mirage
yomimono_ has joined #mirage
yomimono has quit [Ping timeout: 245 seconds]
Haudegen has quit [Remote host closed the connection]
yomimono_ has quit [Ping timeout: 248 seconds]
yomimono has joined #mirage
pie__ has quit [Read error: Connection reset by peer]
pie_ has joined #mirage
atagunov has joined #mirage
mort___ has joined #mirage
<atagunov>
hi, I've seen "Metaprogramming with ML modules in the MirageOS" mentioned a couple of times online. What does it actually mean? Is Mirage written in usual OCaml? Does it then have these metaprogramming facilities outside of Mirage context? Thx!
<atagunov>
- not entirely sure I am on the right channel for a generic question like this but this is the only mirage channel I found