-
Notifications
You must be signed in to change notification settings - Fork 55
Description
Background
By reviewing your implementation, I found that your initial codes including code execution for generic data type are all implemented using java.
I can not clearly see how did you build ast and convert them to op codes for the moment. But I think I can follow your submission step by step so that I can clearly see how you made changes.
But only 15 days ago: 04e75b5 -> racaljk committed on 4 Oct 2017, you changed all codes into c++ version when you wanted to implement a gc algorithm "mark and sweep".
It is a little bit like a full time project(java, c++ , 6 months project) rather than a project for demo, or for interests soly. Are you supported by any foundation or just writing it for fun?
I also noticed that you made a specific version of algorithm like RBTree, without delivering it as an independent package or library: no benchmark testing (you might be over confident to your implementation). At least I assume that you can rely on boost , google libraries for development: glog, boost.asio, boost.threads and so on.
here is what think about the programme
In YVM.cpp, your main thread creates a code execution engine for op code generated by some java semantic analyzer for a specific operating system (or some existing jvm? I am not clear about that). Then you create runtime "yrc" to load model and find execution entry point "main". When the main thread finishes codes execution, you fire gc(unreasonable).
I thought most of your efforts in 2017 is about implementing a loading relevant functions. After refactorization of your codes, your project does not have language relevant programmes like: symbol table, java language parser generator, and analyzer (ast). Have you tested octal, unicode parsing, it is not that trivial.
Question 1
How did you make sure that your line search over allocated memory blocks as java runtime frames stack living in heap, successfully be marked if the number of their refs' countered down to 0, and not marked if they don't. And then delete them if you have a scheduler
Question 2
Where do you manage different threads and pass mutex from parent to children thread? It seems that you don't have scheduler implementation for threads.
Question 3
Could you explain more about your ObjectMonitor.h/,cc? Generic object cast is a very challenging problem (@see python). I am curious about how you computed your memory block for type dynamic casting?
Question 4
For research complete, could you tell me, which version of java jvm or any other materials including c++ codes, java codes(your initial commit on some day in Sep, 2017) , you once referred for the project.