rebornwwp
2019-11-12 08:18:34

@rebornwwp has joined the channel


capfredf
2019-11-12 15:10:27

@mflatt should I revert any changes that deleted trailing white spaces in my pull request? like in this one: https://github.com/racket/racket/pull/2893/files


steveh2009
2019-11-12 15:11:29

Porting question: I’m looking into porting some Java and C# code to Racket. Are there any major gotchas in the translation process or should it go fairly smoothly? From my toplevel reading, Racket’s object system appears to match up pretty well.


mflatt
2019-11-12 15:11:32

Whitespace changes are not ideal, but to me also not worth worrying about.


samth
2019-11-12 15:40:49

object construction is the major thing that’s different


samdphillips
2019-11-12 15:43:21

There aren’t class or static methods either right? You can generally hoist those to the top.


soegaard2
2019-11-12 17:49:56

@steveh2009 FWIW The paper on the Racket object system is here: https://www.cs.utah.edu/plt/publications/aplas06-fff.pdf


pavpanchekha
2019-11-12 23:07:32

I’ve recently been unhappy with how much memory Herbie uses. Is there a heap profiler for Racket? In particular I can’t think of many data structures in Herbie that use a lot of memory, but we do load a lot of libraries (including big ones like plot).


pavpanchekha
2019-11-12 23:07:52

Alternatively, is there a way to share those libraries across place-based threads?


pavpanchekha
2019-11-12 23:09:37

It looks to me that each place has a separate copy of each library.


pavpanchekha
2019-11-12 23:10:15

For numbers, in its “lightest” mode Herbie uses about 200MB before doing anything, and in its “normal” mode about 400MB.


sorawee
2019-11-12 23:23:51

If you compile Racket with --enable-backtrace, you will get a bunch of information when you execute dump-memory-stats.


pavpanchekha
2019-11-12 23:29:03

Hmm, thanks!


notjack
2019-11-12 23:47:03

It would be really nice to have a profiler for how much memory the instantiation of each module costs. That combined with info about the module dependency graph would make it easier to see where it would help to split up modules so that clients don’t pull in a bunch of unneeded code.


notjack
2019-11-12 23:48:43

@pavpanchekha it’s strange to me that each place you’re creating is loading that many libraries. I would assume a structure that’s more like a master thread that loads a lot of libraries, but which dispatches out tasks to worker places whose implementations only require the libraries needed for that specific task


ryanc
2019-11-13 01:15:40

You could probably build that by extending the module name resolver.