kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
narimiran has joined #ocaml
dhil has quit [Ping timeout: 244 seconds]
keep_learning_M has quit [Quit: This computer has gone to sleep]
keep_learning_M has joined #ocaml
smondet[m] has quit [Read error: Connection reset by peer]
peddie has quit [Remote host closed the connection]
stan[m] has quit [Remote host closed the connection]
isaachodes[m] has quit [Remote host closed the connection]
dl3br[m] has quit [Write error: Connection reset by peer]
Virgile[m] has quit [Remote host closed the connection]
otini has quit [Remote host closed the connection]
regnat[m] has quit [Remote host closed the connection]
Haudegen[m] has quit [Remote host closed the connection]
jimt[m] has quit [Remote host closed the connection]
copy` has quit [Write error: Broken pipe]
hdurer[m] has quit [Write error: Connection reset by peer]
aspiwack[m] has quit [Remote host closed the connection]
sepp2k has quit [Remote host closed the connection]
flux[m] has quit [Write error: Connection reset by peer]
aecepoglu[m] has quit [Write error: Connection reset by peer]
rgr[m] has quit [Remote host closed the connection]
aspiwack[m] has joined #ocaml
<progman2019>
I posted to the caml-list and got back an email requesting confirmation to sympa_inria@inria.fr ... but it rejects my 'address' despite my being a subscriber. anyone know what's going on?
flux[m] has joined #ocaml
copy` has joined #ocaml
hdurer[m] has joined #ocaml
aecepoglu[m] has joined #ocaml
dl3br[m] has joined #ocaml
Haudegen[m] has joined #ocaml
smondet[m] has joined #ocaml
peddie has joined #ocaml
jimt[m] has joined #ocaml
rgr[m] has joined #ocaml
sepp2k has joined #ocaml
regnat[m] has joined #ocaml
stan[m] has joined #ocaml
isaachodes[m] has joined #ocaml
Virgile[m] has joined #ocaml
otini has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
emias has quit [Quit: WeeChat 2.3]
keep_learning_M has joined #ocaml
keep_learning_M has quit [Client Quit]
emias has joined #ocaml
keep_learning_M has joined #ocaml
Guest68904 has joined #ocaml
Guest68904 has quit [Remote host closed the connection]
keep_learning_M has quit [Quit: This computer has gone to sleep]
keep_learning_M has joined #ocaml
Haudegen has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
jaar has joined #ocaml
powerbit has joined #ocaml
keep_learning_M has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
themsay has quit [Ping timeout: 246 seconds]
keep_learning_M has joined #ocaml
mfp has joined #ocaml
_whitelogger has joined #ocaml
themsay has joined #ocaml
<xvilka>
how did you ever code before 4.08? All pre-4.08 exceptions are useless
<xvilka>
Raised at file "format.ml" (inlined), line 242, characters 35-52 printed on every occasion
<xvilka>
aecepoglu[m]: they produce useful backtraces
<def`>
xvilka: ok :)
<xvilka>
so if it is not your own exception with unique string - good luck with finding the cause
<xvilka>
especially if it is something basic like negative pow, like in my case right now
<xvilka>
sorry for the rage
themsay has quit [Read error: Connection reset by peer]
themsay has joined #ocaml
hio has joined #ocaml
<int-e>
xvilka: you could just narrow things down with printf-debugging of course
<xvilka>
int-e: this is what I do, also surgically cut program function by function, until you isolate the problem
<xvilka>
but it would be so much easier with a proper backtrace
<xvilka>
this is why I am pushing 4.08 everywhere I can
<Kitambi>
make sure you register pretty-printers for your own exceptions with Printexc, otherwise the output for those is similarly useless
<Kitambi>
"Exception_name(_,_,_)" isn't very helpful ;)
<xvilka>
yeah, I do my own pretty printers
<theblatte>
xvilka: we would make sure all code that was catching then rethrowing exceptions was preserving the backtrace :)
<progman2019>
does anyone know how byte-linking works? in particular, how are references to external values resolved. through an indirection block or by back-filling at link time?
<progman2019>
Reloc_get/setglobal alone?
<progman2019>
I ask because I have turned off crc consistency checking for linking and find that an out of date compilation unit has some fixed notions about where other modules' components are.
<progman2019>
ie. it doesn't look like it is being patched with the correct references/addresses.
<progman2019>
if things were handled by Reloc_getglobals alone, then I would expect refreshed Reloc_setglobal's from an up-to-date unit to match those getglobals.
<progman2019>
... from the out-of-date compilation unit.
silver has joined #ocaml
<aecepoglu[m]>
Did anyone use named pipes in ocaml code?
Haudegen has quit [Remote host closed the connection]
<progman2019>
ah! what must be going on is that signatures give indexes and relocs turn those into code addresses - the signature/indexes are rolled up in the lambda so in out-of-date units may no longer correspond to the order of components in another, refreshed module.
zolk3ri has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
<progman2019>
no. relocs handle ident.t's. back to the drawing board...
keep_learning_M has joined #ocaml
<dmbaturin>
xvilka: Regarding opam pin -dev, you still can install 3.07 from 2003 with opam switch. The breadth of choice it gives you goes both ways. :)
<dmbaturin>
Anyone knows how to actually use menhir --compare-errors? No matter what I try, it still doesn't like it.
<progman2019>
Is there a bit of JIT in the bytecode interpreter that substitutes indirections to external functions on 1st invocation?
keep_learning_M has quit [Quit: This computer has gone to sleep]
keep_learning_M has joined #ocaml
Haudegen has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
<Drup>
No
AtumT has joined #ocaml
keep_learning_M has joined #ocaml
<progman2019>
so do external function calls take the hit of an indirection?
<progman2019>
by external I mean 'from an outside module' rather than to 'external blah: t -> ...'
<Drup>
There are no indirections to access these functions
jao has joined #ocaml
<Drup>
(unless your modules are computed dynamically using first class modules, and even then ..)
<progman2019>
thanks. but how is it done at link time? only then are the cmo codeblocks positions known...
<progman2019>
I just checked and Reloc_getglobals refer to an entire module rather than component values
<Drup>
At least for native, all the functions end up in static symbols, and a module is just an array of pointers to these static symbols.
<Drup>
A function call almost never go through the module, it goes directly to the symbol
FreeBirdLjj has joined #ocaml
<progman2019>
which is how I would expect it to work with my background in C/as. But the byte code way looks different
FreeBirdLjj has quit [Ping timeout: 268 seconds]
<progman2019>
drup: can you explain the way it works in bytecode?
spew has joined #ocaml
keep_learning_M has quit [Quit: This computer has gone to sleep]
FreeBirdLjj has joined #ocaml
SpiceGuid has joined #ocaml
Haudegen has quit [Read error: Connection reset by peer]
SpiceGuid has quit [Quit: ChatZilla 0.9.93 [SeaMonkey 2.49.4/20180713174829]]
Serpent7776 has joined #ocaml
dhil has joined #ocaml
micro has joined #ocaml
_whitelogger has joined #ocaml
jaar has quit [Ping timeout: 252 seconds]
<louisg>
I'm using ppx_deriving to derive `show` for a bunch of types, and I'd like to be able to write the `show` implementation not as a part of the type. Is there a good way to do this?
<Armael>
do you mean generating the code for show in an other place than the type definition?
<louisg>
that'd be a solution
<louisg>
what I mean is, I can write [@printer ...] to implement a custom show for some types, but I'd like to be able to write the "body" of the show fn somewhere else
<Armael>
I'm not sure I understand
<Armael>
isn't the show function generated by the ppx
<louisg>
yes, but you are able to tell ppx how to show a certain type (by annotating it with [@printer ...], and then it will use the custom printing function for that type
<Armael>
ahh
<Armael>
(I don't know then :()
jao has quit [Ping timeout: 272 seconds]
mk__ has joined #ocaml
ygrek has joined #ocaml
jao has joined #ocaml
<louisg>
In case anyone else comes along, what I want to do is be able to say [@printer some_fn_defined_elsewhere] for a type/part of a type instead of having to declare it inline
<louisg>
but declaring the fn before means I can't reference the type's constructors, and declaring it after means it isn't defined fo rthe [@printer]
<Drup>
to be defined for @printer, the only constraints is that it's called the same as the one deriving would make
<Drup>
(so, M.pp for M.t type, and M.pp_foo for M.foo type with foo ≠ "t")
mk__ has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
ziyourenxiang has quit [Ping timeout: 268 seconds]
Anarchos has joined #ocaml
narimiran has quit [Remote host closed the connection]
Haudegen has joined #ocaml
tane has joined #ocaml
mk__ has joined #ocaml
Anarchos has quit [Quit: Vision[0.10.3]: i've been blurred!]
Anarchos has joined #ocaml
Anarchos has quit [Quit: Vision[0.10.3]: i've been blurred!]
Anarchos has joined #ocaml
Anarchos has quit [Client Quit]
zolk3ri has quit [Remote host closed the connection]
mk__ has quit [Ping timeout: 260 seconds]
gravicappa has quit [Ping timeout: 246 seconds]
jao has quit [Remote host closed the connection]
dhil has quit [Ping timeout: 246 seconds]
Guest39026 has quit [Ping timeout: 245 seconds]
dhil has joined #ocaml
Haudegen has quit [Remote host closed the connection]