Hacker News new | past | comments | ask | show | jobs | submit | neocanable's comments login

This is the best question for me. Writing these codes in C language is the best way to learn the file structure of jvm/dalvik/pe. This process makes me like C language more. For me, I think it is simple and pure, which is enough.

This project is my first project written in C language. Before this, my C language level was only at printf("hello world"). I am very happy because this project made me dare to use secondary pointers.

u did really well ppl like to pick on C. :) thanks for making it in C, fun to read ur code and see how others go about this language!

In multi-threaded mode, each thread will create a separate memory pool. If in single-threaded mode, a global memory pool is used. You can refer to https://github.com/neocanable/garlic/blob/72357ddbcffdb75641.... The x_alloc and x_alloc_in in it indicate where the memory is allocated. When each task ends, the memory allocated in the memory pool is released, and the cycle repeats.

90% by hand, 10% AI. I do this for fun and to learn about jvm.

I think that sort of ratio is the sweet spot for learning. I've been writing an 8086 simulator in C++ and using an LLM for answering specific technical questions I come up with has drastically sped up my progress without it actually doing the work for me.

Wow, impressive. A project of the scale and depth.

It is processes inner classes recursively. First read all entry from jar, and analyze the relationships between classes. Then do some decompile job.

I am writing the part of decompiling dex and apk. The current speed is about 10 times faster than that of Java, and it takes up less resources than Java. And the compiled binary is smaller, only about 300k. Thank you for your attention.

> 10 times faster than that of Java

I was hoping that these days' Java would be "almost" as fast C/C++. Oh well.


In the process of writing this, I learned a lot about JVM. JVM has done well enough, even surpassing C/C++ in some cases.

This has been my life experience with things written in C/C++, so speed doesn't matter. Or, I guess from an alternative perspective, it ran very fast, but exited very fast, too :-D

  $ ./objdir/garlic $the_jar_file -o out-dir -t $(nproc)
  Progress : 85 (1024)Segmentation fault: 11

Sorry for giving you a bad experience. Please provide the jar file or class file. I hope I can fix it as soon as possible.

Is it? This is my experience with Python. The C/C++ programs I use daily never seem to crash (Linux, bash, terminals, X, firefox, vim, etc.). It must be years ago one of those programs crashed while I used it.

Also a segfault IS the protection layer intervening, it is equivalent to a exception in other languages. The real problem is, when there is no segfault.

This is absolutely true. But even this does not happen in the software I use every day. Software written is C is definitely the most stable I use - by far. That there are people running around claiming that it is impossible to write stable software in C and it crashes all the time due to bugs is rather unfortunate, as it is far from the truth.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: