Plan 9 and Inferno at the Google Summer of Code

Now what

Once I have a plugin structured program I have to load the VM with it. In order to do it I’ve written a ‘firefox’ configuration file, it’s a copy of ‘emu’ configuration file but I’ve modified it introducing the flags and path’s (include’s) that it needs to compile inferno as a plugin. First I modify the mkfile and write a new variable “PLUG”, then I put this new variable in the compilation objectives (OBJ variable), I put the ‘firefox’ config file in the CONFLIST, and I redefine the PLUG variable in ‘firefox’ so that PLUG point to the plugin structure code files. Then I have a shared object lib of 5 MB where the emu VM and the plugin structured program live together.

Now Mozilla can use this lib, and the plugin loads, on the other hand, emu is not running, it’s only loaded but not running.

I could try to run emu writing a mainplugin procedure which is called from the plugin init cycle. This mainplugin would call libinit procedure in order to let run the VM. But, it will never success, because my emu is not living under Linux but under Mozilla, and it must adapt to the Mozilla API, it’s like Mozilla is the host OS.

But first let me talk about the inferno init model…