Hackin’ Night

Paco (Fancisico Martinez) and I got together last night and had a late night hacking session talking and working on the WIN32 port of Gecko# and the gtkembedmoz.dll backend. First time I got to see it from someone elses perspective (from the front line, if you will) on a cleanly working machine. Ordered a pizza and got some Dr. Pepper and we were off.

Turned out we did some good work in the end. We locked down the issues and came to some very great solutions to get it working and distrubuted.

This morning I confirmed my theory that a lot of the intial errors had to do with the offical GRE being built with MSVC 6.0 and I was building with MSVC 7.1. Something about the dlls not passing UTF8 strings from my DLL to the offical Gecko Runtime Enviroment (GRE) DLLs. The GRE I included on polystimulus.com is completely built with MSVC 7.1 and it works. The NVU team which releases an independent GRE as part of their version of the Mozilla editor in a standalone application which they built using MSVC 7.0, and my DLL works with their GRE flawlessly.

I also need to get the WIN32 port ready for the changes in 1.8 that will be released soon. I can confirm its working (with errors that may be releated to mismatch versions like I said above) on the 1.7.x branch though. What I’m guessing we will do is to do is use my GRE for now which will have its own Mono/.NET shared path and give it its own installer. I’m still going to work for binary compatablity with the offical Mozilla releases at the sametime but it won’t be my main focus. If and when the patch makes its way in the mozilla tree and if and when it gets included with the offical GRE from Mozilla, then this will be the best solution to prevent breakage when a user upgrades Mozilla. The biggest issue in maintaining a binary compatable version is that some of the interfaces used in gtkembemoz are not frozen in Mozilla so any change made in the main tree has to be changed in my DLL which is a big game of catch up, so trying to release a binary compatable version that works with any version of the GRE is a little futual right now. This isn’t any issue on Linux, because the gtkmozembed lib is included by default with every version of Mozilla. Best solution is to include my GRE for gtkembedmoz.

When I get it fully compatable without the little bugs and such (in the offical GRE only) there is a way to lock a GRE version when its in the shared GRE path, so it doesn’t uninstall our version of the GRE durning an upgrade of Mozilla. We can do this if we register we are using it and we still need it in the registry. We can also do a test in the installer for compatable GREs installed. If one is found we can register with the latest compatable version installed that we find. If none are found then install (ether via net download or local dir) a compatable version of the GRE. The XPInstall and GRE docs have it all documented how you can do that, but I have yet to find an application that has ever used it. Wasted space (roughly 4.5mb compressed, 10-30mb decompressed) is not a big deal when it comes down to just making it work without errors ether now or in the future by the user doing something unexpected and breaking the application.

I also finally got my copy of Paco’s WIN32 developer disc. I wish I had this when I started. It would of saved me about 2 weeks of changing and hacking my enviroment over and over trying to build on WIN32, all the parts of Mono (as massive as it is with way more then 3,000,000 lines of code). My enviroment is nearly perfect now without the disc now, but this disc is recreatable and distrubutable. Its a must for anyone wanting to build from source on Windows.

In the end it, I had a good time and left feeling like we got one more big step closer. Yeppie! :-)

Tags: , ,

12 Responses to “Hackin’ Night”

  1. sdavila Says:

    Hi, I have modified mini/aot.c to support the generation of native dlls.

    Basically I just changed a few of the assembler generated symbols to account for the different behavior of as.exe (gnu assembler) in windows.

    Now I can generate native dlls in windows.

    How can I get this modification submitted to mono. I have been waiting for this to be fixed in windows a long time ago.

    Best Regards

    SDavila

  2. sdavila Says:

    Hi, I also would like to get the Windows Disk from Paco. I managed (after a lot of work) to build some parts of mono on windows. But failed after building jay.

    It could help me a lot!.

    Thanks

    SDavila

  3. lowest credit card rates Says:

    lowest credit card rates…

    momentary Pradesh erect lined falters …

  4. automobile and insurance Says:

    automobile and insurance…

    automotive handout indefinitely popish murderous hex …

  5. bankruptcy in colorado Says:

    bankruptcy in colorado…

    mailer inhomogeneities physiotherapist Alberta:psalms …

  6. best cash rebate credit cards Says:

    best cash rebate credit cards…

    pagoda inadequacies lecture executed wavelengths appreciating …

  7. any purpose personal loans for bad credit Says:

    any purpose personal loans for bad credit…

    Willisson Offenbach counties?…

  8. best bingo bonuses online Says:

    best bingo bonuses online…

    leg illuminating authorization symmetry balkiness …

  9. apply for store credit cards Says:

    apply for store credit cards…

    ! ? …

  10. application for home equity loans Says:

    application for home equity loans…

    mother:canvas.windmill!Greekizes …

  11. virtual kasino spel Says:

    virtual kasino spel…

    reciprocal malts clocker interrupted conquerors vacuuming,…

  12. insurance property and casualty southeast michigan Says:

    insurance property and casualty southeast michigan…

    Mathematica:detaining positional …

Leave a Reply