NOTICE: This channel is no longer actively logged.
[02:46:49] *** FabienD has quit IRC[05:29:33] *** peda_ has joined #JNode.org[05:36:55] *** peda has quit IRC[08:09:03] *** FabienD has joined #JNode.org[10:06:36] *** Daeken has joined #JNode.org[12:49:17] *** influt has joined #JNode.org[15:57:33] *** benoit has joined #JNode.org[16:15:50] <FabienD> hi all[16:15:55] <benoit> hi[16:16:21] <FabienD> Daeken: welcome to jnode :)[16:26:26] <benoit> FabienD: where can I find a JNode logo?[16:27:04] <FabienD> on my blog :)[16:28:13] <benoit> there are not bigger ones?[16:31:33] <FabienD> I remember a page with many logs on jnode.org but can find it again[16:31:38] <FabienD> there is only that : http://www.jnode.org/node/432[16:32:29] <FabienD> iirc we have a bigger one somewhere in svn (used as background image for the desktop)[16:33:04] <FabienD> or you have that one : http://www.jnode.org/themes/newsflash/logo.png[16:33:12] <FabienD> used as header for the web site[16:33:34] <benoit> ok i'm gonna take one of them[16:33:51] <benoit> then i have other questions about JNode[16:34:12] <benoit> in fact, i'm preparing the presentation of our project[16:34:30] <benoit> and i think it's good to present JNode[16:34:58] <benoit> because the code we will have done won't be interesting for the people who will attend to the presentation[16:35:23] <benoit> i want to introduce JNode, explain how it works ...[16:35:46] <benoit> then what is a gc and finally what we did on the gc[16:38:02] <benoit> ismael told me the kernel was compiled in a JNode specific byte code, is it true?[16:40:22] <FabienD> it's wrong[16:41:12] <FabienD> we use standard java bytecode since we are aiming to use standards as much as possible[16:41:13] <benoit> ok, it's what i thought[16:42:20] <benoit> so the kernel is firstly compiled in Java byte code and then there is a second compilation to transform this byte code in native byte code, is it right?[16:42:39] <FabienD> and afaik the kernel image is compiled in ELF format (don't ask me details about that, I don't have), so something standard[16:43:14] <FabienD> "native byte code" is a wrong naming[16:43:40] <FabienD> I would use "assembly" or "machine code" instead[16:43:42] <benoit> ok ELF i know that[16:43:51] <benoit> yes, it's what i meant[16:44:34] <benoit> and this second compilation is quite similar to the one the JVM does just before running the code?[16:45:22] <FabienD> yes, in the sense it's from java bytecode to assembly[16:46:01] <FabienD> but about the details it's probably different[16:46:16] <benoit> ok and last time you said that this step doesn't exist for the other platforms such as PPC, did i understand what you meant?[16:46:50] <benoit> the tool that does that isn't ported on PPC?[16:46:51] <FabienD> right, we only have support for x86 (32 or 64bits) CPUs[16:47:06] <FabienD> right, not ported to PPC[16:47:32] <benoit> ok it's clear for me now[16:48:14] <FabienD> 3 things about your presentation :[16:49:21] <FabienD> forget the above sentence[16:49:23] <FabienD> will you do it in english or french ?[16:49:40] <benoit> in french[16:50:01] <FabienD> also the document you're writting ?[16:50:12] <benoit> but if you want i can translate it into english to publish it on JNode's website for newbies[16:50:33] <benoit> there won't be officiel document, there will be only a presentation[16:51:40] <FabienD> by "officiel document", you mean official for your school, right ?[16:52:03] <benoit> right[16:52:32] <FabienD> I did a presentation in french at my company in 2008[16:52:55] <benoit> ok, and what is it about?[16:53:18] <FabienD> despite, it's mostly a translation of an ewout's document, I can send it to you if you want[16:53:31] <FabienD> a general presentation about jnode[16:53:36] <benoit> i want to make a technical presentation[16:53:44] <benoit> to explain how a Java OS can work[16:53:53] <benoit> how it's compiled[16:53:57] <FabienD> ewout's document was in svn under the "doc" project[16:53:59] <benoit> then how a GC works[16:54:08] <benoit> ok i'm gonna look at that[16:54:33] <FabienD> you've noticed, the doc project in svn, right ?[16:54:48] <benoit> yes[16:54:49] <FabienD> It could help you (but some docs might be outdated)[17:00:37] <benoit> i'm not sure we will be able to make a demo, we won't have a powerful-enough machine[17:02:41] <benoit> i'll send you the presentation, and it it's interesting for the project, i can translate it[17:05:25] <benoit> ok, then, how many instances of the JNode's JVM are running when you boot JNode?[17:05:31] <benoit> i mean, do all the application run in a separate JVM?[17:06:01] <FabienD> no ![17:06:32] <FabienD> it's one of the interest of jnode VM versus classical VMs[17:07:00] <benoit> so there is only one instance?[17:07:09] <FabienD> yes[17:07:53] <benoit> and when an application starts, it's in a new thread and it's classes are dynamically loaded?[17:07:54] <FabienD> but there is a partial support for the isolates API (it's specified by a JSR)[17:09:11] <benoit> ok[17:09:30] <benoit> and can you run two instances of the same application simultaneously?[17:09:44] <FabienD> when you use jnode's command shell, you can run a command (which can be an application or not) in a new thread or in a new isolate[17:10:21] <FabienD> yes and no :)[17:10:35] <benoit> ok, i'm gonna read documentation about isolate, i don't know it well[17:10:35] <FabienD> it depends mostly on the application[17:13:24] <FabienD> our partial implementation of isolates API is isolating all static variables[17:13:59] <FabienD> except when their class is marked with the @SharedStatics annotation (a jnode specific annotation)[17:15:57] <FabienD> the build process is :[17:16:15] <benoit> ok i understand[17:16:59] <benoit> i was just wondering how the static vars were managed[17:18:01] <benoit> ok[17:18:39] <FabienD> at runtime, when you create a new isolate all the non-shared statics variable are duplicated and associated with the new isolate[17:20:20] <benoit> ok[17:20:37] <benoit> it's like a fork on Linux[17:21:01] <benoit> it copied all the non shared variables[17:21:27] <FabienD> I think we can say that[17:22:25] <FabienD> and all operating system related things are shared (drivers, filesystems, memory management/gc ...) in jnode[17:22:43] <benoit> ok[17:23:07] <benoit> another question, when i run it, it's from an ISO file[17:23:16] <benoit> but can we install it on a HDD ?[17:23:42] <FabienD> but, coming back to your project, we can imagine in the future to support some local gc algo for an isolate instance (to better fit a particular application)[17:24:16] <FabienD> offen asked question[17:24:17] <benoit> ok, it could optimize it[17:24:44] <benoit> i've seen it supports ext2, Fat...[17:24:58] <FabienD> for now, the installer is in development and afaik not yet working[17:25:25] <FabienD> but you should be able to install jnode manually on a HDD[17:25:32] <benoit> ok, so you can't save a document, can you?[17:25:54] <benoit> at list if you mount it from an external filesystem (which can be possible)[17:26:06] <benoit> *at least[17:26:22] <FabienD> you can save a document if you have an HDD with a jnode supported fs[17:26:34] <benoit> ok[17:29:13] <benoit> did ismael explained you what he has planned to do on the gc?[17:32:02] <FabienD> I think he did but I don't remember what he said[17:32:27] <benoit> in fact we are going to make a generational gc[17:32:49] <FabienD> with 2 generations[17:32:53] <benoit> but there will be a shared heap for all the generations[17:33:01] <benoit> we won't be able to prevent fragmentation[17:33:24] <benoit> maybe more than 2 (3 or 4 i think)[17:34:00] <benoit> so each generation will be a collection[17:34:35] <benoit> on which the garbage collection will have a particular execution trigger and a particular strategy[17:34:58] <benoit> for the old generation, there will be a timer which will trigger the GC[17:35:21] <benoit> for the newest, it will be when it's full[17:37:27] <FabienD> or almost full (should be a parameter) ?[17:38:02] <benoit> i don't know what he planned, but i think yes[17:40:16] <FabienD> actually, I think each generation should have its own "full/almost full" trigger (counting the memory used by the generation)[17:40:32] <FabienD> so the old generation would have a timer trigger and a "full/almost full" trigger[17:40:47] <FabienD> IMO[17:41:18] <benoit> yes, sure there will be, otherwise it cannot allocate memory whereas it's supposed to be possible[17:43:31] <benoit> there is a document in the svn docs folder talking about isolates and gc[17:47:21] <FabienD> for reusability purpose, I suggest to create an interface named GCTrigger and implementations like : TimerGCTrigger, CounterGCTrigger, CompoundTrigger (which be "on" when one of its components will be one)[17:47:40] <FabienD> s/will be one/will be "on"[17:48:57] <benoit> yes, i don't know how ismael though to do that, i'll tell him[21:11:35] *** FabienD has quit IRC