Looking at some old branches, almost 11 years ago to the day I port clojures reader from java to this ridiculous huge letfn expression on clojure and munged the ant build to build clojure once with the java LispReader, then compile my lisp reader, and then rebuild clojure using my version
that's pretty cool
https://github.com/hiredman/clojure/tree/readerIII which I then spent some time talking about in the interview for my first clojure job(first programing job), which I did on a burner prepaid phone sitting on a curb in an empty parking lot because the bus wouldn't have gotten me home after work in time for the call
Thank you very much!!
This seems like a great project, but it hasn't reached its goal yet, and only 4 more days to go... https://www.kickstarter.com/projects/messagenotunderstood/message-not-understood?ref=thanks-copy
I backed it, because i want to see this movie. Also shared on FB and LI.
Thanks for pointing this out!
Now theyโve reached the goal ๐
> By interviewing the people who helped invent what today we call personal computing, this film will provide a perspective that is commonly absent from popular discussions about the role of computing in society. Many of these pioneers have long taken issue with the direction their inventions have taken. During these tumultuous times, it is crucial to get their take while we still can -- to grasp the futures they originally envisioned and to hear their view on the present.
I'm not in any way affiliated with this project, but I did just back it and hope they make it. This kind of content/discourse is sorely needed IMO.
I was researching this myself a little lately. I watched an old bbc documentary on the web. The web does not match the goals. At all.
and not just the web...
It is my belief (perhaps wrong) that Java GCs will only throw OutOfMemoryException if the total memory occupied by live objects is over the configured max heap size. That is, if there are objects that cannot be reached from the root set, no matter how fast your application might be trying to allocate new objects, the GC will do a last ditch run to free up any dead objects it can before failing a request. Does that sound correct?
Also, I guess if I am using YourKit to analyze the heap after the OOM exception has already been thrown from trying to evaluate a form in a Clojure REPL, and the next REPL prompt has been shown after that occurred, it might be at that time that there is a bunch of objects that were live just before the OOM, but after the exception is thrown, they are no longer reachable?
e.g. because they were only live in the context of the code that was running, and after the exception, they are now dead.
And finally, if most of the memory is occupied with objects having classes clojure.lang.Cons and clojure.lang.LazySeq, does YourKit or some other tool make it possible to determine where in the code most of those allocations are occurring?
Anyone recommend any VIM or Spacemacs plugins for Live Code Share? Atom and Visual Studio Code are not good
Atom is osx only. VSC needs latest osx version.
if the lazy seq has not been realized yet it will have a reference to a fn that is invoked when it is forced, fn's are usually pretty easy to map back to where they came from
good idea. thx
hopefully it won't be hard to find an unrealized one, but I guess in situations like this it might be that 99+% of them will be.
You can take heap snapshots in yourkit and diff them, and also backtrack where objects of a particular type are allocated
Between the two, itโs usually not that hard to see memory leaks
Is there some term in the YourKit docs I can use to learn more about this "backtrack where objects of a particular type are allocated"?