paul
2018-10-27 14:06:54

The eval-model documentation includes the following sentences about The Separate Compilation Guarantee:

“The practical consequence of this guarantee is that because effects are never visible, no module can detect whether a module it requires is already compiled. Thus, it can never change the compilation of one module to have already compiled a different module.”

Can anyone explain the second sentence?


andreiformiga
2018-10-27 14:15:47

I think it means that if module B depends on A, whether A is already compiled or not won’t change compilation of B


lexi.lambda
2018-10-27 14:33:47

@paul I think the second sentence could be more clearly worded as “Thus, the compilation of one module cannot be affected by having already compiled a different module.”


pocmatos
2018-10-27 14:45:26

I am having an interesting situation where a process that should not be increasingly using more and more memory, actually is. I have looked into vector-set-performance-stats! and current-memory-use and I can confirm that the memory is increasing. My question now is… is there a way to find out who is allocating this memory?


samth
2018-10-27 15:55:55

@pocmatos I recommend first (dump-memory-stats)


samth
2018-10-27 15:56:23

if that isn’t enough info, then you can build with more memory debugging info


samth
2018-10-27 15:58:38
  --enable-sgcdebug       use Senora GC for debugging (expensive debug mode)
  --enable-backtrace      3m: support GC backtrace dumps (expensive debug mode

pocmatos
2018-10-27 16:22:05

@samth Thanks. I will give those a try.


pocmatos
2018-10-27 18:22:39

@samth I assume I need to compile racket with both those flags?


pocmatos
2018-10-27 18:22:59

as far as I understood, senora gc is the 3m gc right?


pocmatos
2018-10-27 18:25:47

The reason I ask is because the build fails when I try to build racket with both flags.


pocmatos
2018-10-27 18:30:30

mflatt
2018-10-27 19:35:19

@pocmatos I think only --enable-backtrace is going to be useful, but it’s also a little flaky. FWIW, the dump-memory-stats function on RacketCS is reliable and always fully available.


pocmatos
2018-10-27 19:57:05

@mflatt thanks. I will give --enable-backtrace a try. Haven’t managed to try RacketCS yet, but I will try to find the time asap.


pocmatos
2018-10-27 20:12:57

@mflatt, right, it’s flaky as well as you said. --enable-backtrace on HEAD gives me : mprotect failed: 7f2e4dd68000, 65536, 1, 12 make[3]: *** [Makefile:85: in-place-setup] Aborted (core dumped)


pocmatos
2018-10-27 20:25:23

By the way, what’s the status of racketcs? It seems that by saying that the memory dump function is reliable in cs, it implies that I should give it a try. What’s missing in cs?



abmclin
2018-10-27 20:47:13

I don’t know all the details about what functionality is missing in cs, the YouTube video has a useful status report


mflatt
2018-10-27 21:09:36

RacketCS works well enough that it’s worth a try