Re: [Mono-dev] Porting runtime - where to start?
Hello, i have read recently that mono has been finally ported to the Wii. I've searched the current source code for wii but it only finds 4 matches. Can someone share me any tipps on how to compile mono for the Wii? Or is the Wii-Port only available commercially? It is only available to licensed Nintendo Wii developers as a commercial offering. You can contact Joseph Hill for details (jh...@novell.com) Miguel. ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Hi, i have read recently that mono has been finally ported to the Wii. I've searched the current source code for wii but it only finds 4 matches. Can someone share me any tipps on how to compile mono for the Wii? Or is the Wii-Port only available commercially? Regards, Kevin -- View this message in context: http://www.nabble.com/Porting-runtime---where-to-start--tp9758605p21210294.html Sent from the Mono - Dev mailing list archive at Nabble.com. ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Quoting Paolo Molaro [EMAIL PROTECTED]: On 04/03/07 [EMAIL PROTECTED] wrote: There is a tool to convert PE executable (with PPC code) in their .xex format. However, there were issues : 1/ AOT is working only on x86 right now, according to http://tirania.org/blog/archive/2006/Aug-17.html It also works on amd64. support for ppc would need to be added, but it is not a big issue. 2/ And even if it's ok, the more important problem is that according to the same post, it still need JIT at some place. Yes: we'd need a few changes to avoid jitting at all, but it is doable. It would really be nice ! Don't hesitate to let me know as soon as those two points are done and I'll give it a try. 3/ When working on it, I tried to produce PE file with PE PPC Big endian target with binutils, and it was really painful, it's not really supported anymore (I speak of PE format only of course, it's well supported in other cases). Currently the PE format would be generated by the assembler/linker. You'd need to write some code to be able to generate directly the PE binary file. Yep, anyway I think code is more or less done, it would just require some time to reactivate it. ReactOS project could be of some help here as they did the same thing (they had a binutils patch for ppc-pe). ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
On 04/03/07 [EMAIL PROTECTED] wrote: Was anyone able to determine if the old XBOX (x86) emulator or the xbox 360 CLR runtime do any jitting? It would be very surprising if they didn't do it and if they did, the European Commission is very likely interested in how they do it (hint, hint:-). I think the XBOX 360 CLR runtime does JITing, but well, Microsoft got a better access to console internal than us. Sure, that's a good reason for the European commission to investigate why they still adopt anti-competitive practices. If they do jitting, other people developing for the platform should be allowed to have the info do it as well. Hopefully the game industry will pressure them as well. The XBOX360 changes are pointless since it seems not possible to make it working. There is definitely interest and it is likely possible to make it work using the AOT backend and the PE file converter you mentioned, so I don't think the changes are pointless: they will enable other interested people to help you with your efforts. If you have other reasons that prevent you from contributing the code that's understandable. About the debugger, it's more a prototype right now, but I will probably work on it again if the code to get my monobind wrapper working is included in mono source tree (I posted the patch at http://lists.ximian.com/pipermail/mono-devel-list/2007-March/022949.html, I dunno if it was the right place for that). I'll review it in a bit, I was on vacation the last few days. Nevertheless, if it never happens, I might drop the sources of that prototype as a base (I nearly managed to do singlestepping and variable inspection with class definition extracted from runtime context). Did you check the mono*describe* functions in metadata/class-internals.h? lupus -- - [EMAIL PROTECTED] debian/rules [EMAIL PROTECTED] Monkeys do it better ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Quoting Paolo Molaro [EMAIL PROTECTED]: On 04/03/07 [EMAIL PROTECTED] wrote: Was anyone able to determine if the old XBOX (x86) emulator or the xbox 360 CLR runtime do any jitting? It would be very surprising if they didn't do it and if they did, the European Commission is very likely interested in how they do it (hint, hint:-). I think the XBOX 360 CLR runtime does JITing, but well, Microsoft got a better access to console internal than us. Sure, that's a good reason for the European commission to investigate why they still adopt anti-competitive practices. If they do jitting, other people developing for the platform should be allowed to have the info do it as well. Hopefully the game industry will pressure them as well. By the way, I sent yesterday a mail to MS in that sense. But well, we all know how it will end :) The XBOX360 changes are pointless since it seems not possible to make it working. There is definitely interest and it is likely possible to make it work using the AOT backend and the PE file converter you mentioned, so I don't think the changes are pointless: they will enable other interested people to help you with your efforts. If you have other reasons that prevent you from contributing the code that's understandable. No, that's no problem for me to release it (still it would need some polishing before doing so). However, I also had to port glibc first, so it's kinda messy. What I dont know is if it's legal to release code using this xdk, since it's not available for public... (even headers). I'll ask and let you know. About the debugger, it's more a prototype right now, but I will probably work on it again if the code to get my monobind wrapper working is included in mono source tree (I posted the patch at http://lists.ximian.com/pipermail/mono-devel-list/2007-March/022949.html, I dunno if it was the right place for that). I'll review it in a bit, I was on vacation the last few days. Nevertheless, if it never happens, I might drop the sources of that prototype as a base (I nearly managed to do singlestepping and variable inspection with class definition extracted from runtime context). Did you check the mono*describe* functions in metadata/class-internals.h? Yes, that's what I use if I remember right. Introspection is done with mono api itself (and that's why it is nice ! ;p). ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
On 03/31/07 [EMAIL PROTECTED] wrote: The problem of AOT is that it only generates .so (or .dll on Win32 platform I guess). Nevertheless, XBOX executable format, .xex, has to go through their special compilator. So, no other way that I know than getting C++ code to compile. Don't they provide some tool to create an executable from assembly code? If that is possible you could tweak the code to use that. Or, if the file format is documented or easy to understand, you could change the binary writer AOT code to emit it directly. lupus -- - [EMAIL PROTECTED] debian/rules [EMAIL PROTECTED] Monkeys do it better ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
On 03/30/07 [EMAIL PROTECTED] wrote: Just to let you know since I did something very similiar for XBOX360 : Even if I was able to make glib and then mono compile on XBOX360 (it was a bit painful but doable) and it generated valid code to execute at runtime, nevertheless memory protection against execution of user allocated area totally prevented me to continue (you can check the blog post I did about that on http://dev.kalimdor.org/entropia/). Was anyone able to determine if the old XBOX (x86) emulator or the xbox 360 CLR runtime do any jitting? It would be very surprising if they didn't do it and if they did, the European Commission is very likely interested in how they do it (hint, hint:-). In the blob you talk about the xbox 360 changes and about a mono debugger. Can you tell us more about that? Are you able to contribute those changes for inclusion in mono? Thanks! lupus -- - [EMAIL PROTECTED] debian/rules [EMAIL PROTECTED] Monkeys do it better ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Quoting Paolo Molaro [EMAIL PROTECTED]: On 03/31/07 [EMAIL PROTECTED] wrote: The problem of AOT is that it only generates .so (or .dll on Win32 platform I guess). Nevertheless, XBOX executable format, .xex, has to go through their special compilator. So, no other way that I know than getting C++ code to compile. Don't they provide some tool to create an executable from assembly code? If that is possible you could tweak the code to use that. Or, if the file format is documented or easy to understand, you could change the binary writer AOT code to emit it directly. lupus Ok, I took a look at all that. There is a tool to convert PE executable (with PPC code) in their .xex format. However, there were issues : 1/ AOT is working only on x86 right now, according to http://tirania.org/blog/archive/2006/Aug-17.html 2/ And even if it's ok, the more important problem is that according to the same post, it still need JIT at some place. 3/ When working on it, I tried to produce PE file with PE PPC Big endian target with binutils, and it was really painful, it's not really supported anymore (I speak of PE format only of course, it's well supported in other cases). ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Quoting Paolo Molaro [EMAIL PROTECTED]: On 03/30/07 [EMAIL PROTECTED] wrote: Just to let you know since I did something very similiar for XBOX360 : Even if I was able to make glib and then mono compile on XBOX360 (it was a bit painful but doable) and it generated valid code to execute at runtime, nevertheless memory protection against execution of user allocated area totally prevented me to continue (you can check the blog post I did about that on http://dev.kalimdor.org/entropia/). Was anyone able to determine if the old XBOX (x86) emulator or the xbox 360 CLR runtime do any jitting? It would be very surprising if they didn't do it and if they did, the European Commission is very likely interested in how they do it (hint, hint:-). I think the XBOX 360 CLR runtime does JITing, but well, Microsoft got a better access to console internal than us. In the blob you talk about the xbox 360 changes and about a mono debugger. Can you tell us more about that? Are you able to contribute those changes for inclusion in mono? Thanks! lupus The XBOX360 changes are pointless since it seems not possible to make it working. About the debugger, it's more a prototype right now, but I will probably work on it again if the code to get my monobind wrapper working is included in mono source tree (I posted the patch at http://lists.ximian.com/pipermail/mono-devel-list/2007-March/022949.html, I dunno if it was the right place for that). Nevertheless, if it never happens, I might drop the sources of that prototype as a base (I nearly managed to do singlestepping and variable inspection with class definition extracted from runtime context). ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Quoting Miguel de Icaza [EMAIL PROTECTED]: Hello, When I checked about using the interpreter, I've read somewhere that it wasn't up to date anymore (maybe the info was too old and it's now up to date to execute everything, anyone can confirm ?). It still builds, but no maintenance has gone into it. It is also missing important things like generics support, that was never updated. But the main problem you have with the interpreter is that the interpreter *also* needs to generate dynamic code. All the trampoline code is emitted at runtime so you need to have that. Ok, thanks for the summary of its current state issues. So in short: the interpreter just generates *less* code than the JIT, but it still generates code. I heard from an embedded customer of ours that they are looking at pregenerating all the trampoline code but am not sure this is a long term strategy. It could be very promising ! Miguel. ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
As of December XDK it wasn't possible. I checked doc of february one and it was still the same, and I'm downloading april one right now to check doc if anything changed (though nothing changed according to release note). Btw, when I asked, it was also confirmed on xbox mailing list by microsoft people that it was designed to be impossible to do that. I really hope they change it ! (even if it requires some protection security scheme). Best would be a partnership with XBOX and Mono... Well, just kidding of course ! Sincerely Virgile Bello Quoting Miguel de Icaza [EMAIL PROTECTED]: Hello, prevented me to continue (you can check the blog post I did about that on http://dev.kalimdor.org/entropia/). I read somewhere that some of those restrictions were being lifted, am I incorrect? Miguel ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
The problem of AOT is that it only generates .so (or .dll on Win32 platform I guess). Nevertheless, XBOX executable format, .xex, has to go through their special compilator. So, no other way that I know than getting C++ code to compile. Quoting Miguel de Icaza [EMAIL PROTECTED]: Hello, Just to let you know since I did something very similiar for XBOX360 : Even if I was able to make glib and then mono compile on XBOX360 (it was a bit painful but doable) and it generated valid code to execute at runtime, nevertheless memory protection against execution of user allocated area totally prevented me to continue (you can check the blog post I did about that on http://dev.kalimdor.org/entropia/). Another thing that am wondering is whether precompilation (AOT) might be enough to use Mono on those consoles. Miguel. ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
AFAIK, the interpreter was discontinued. :) On 3/30/07, John Matzen [EMAIL PROTECTED] wrote: I'm trying to port the mono runtime to a device called a Wii. Although it has a PowerPC based CPU, I think getting it running with the interpreter first would be the best approach rather than attempting to patch up the existing PowerPC JIT, but I can not seem to find any documentation that would describe how to begin fixing up the build system so that I can compile it with the Wii's build tools (which are not gcc based). Any ideas on where to start? Thanks! John ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list -- Rafael Monoman Teixeira --- The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Hello, I'm trying to port the mono runtime to a device called a Wii. Although it has a PowerPC based CPU, I think getting it running with the interpreter first would be the best approach rather than attempting to patch up the existing PowerPC JIT, but I can not seem to find any documentation that would describe how to begin fixing up the build system so that I can compile it with the Wii's build tools (which are not gcc based). Any ideas on where to start? I strongly suggest that you go directly to the JIT. Because the difficulty in porting Mono to the Wii will be the OS, not the CPU. Miguel. ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Miguel de Icaza wrote: Hello, I'm trying to port the mono runtime to a device called a Wii. Although it has a PowerPC based CPU, I think getting it running with the interpreter first would be the best approach rather than attempting to patch up the existing PowerPC JIT, but I can not seem to find any documentation that would describe how to begin fixing up the build system so that I can compile it with the Wii's build tools (which are not gcc based). Any ideas on where to start? I strongly suggest that you go directly to the JIT. Because the difficulty in porting Mono to the Wii will be the OS, not the CPU. Besides it is probably more reasonable to get linux running on the wii (and somewhere on the road also mono) than just try to figure out the os stuff Nintendo was brewing... www.wiili.org ym2c ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Just to let you know since I did something very similiar for XBOX360 : Even if I was able to make glib and then mono compile on XBOX360 (it was a bit painful but doable) and it generated valid code to execute at runtime, nevertheless memory protection against execution of user allocated area totally prevented me to continue (you can check the blog post I did about that on http://dev.kalimdor.org/entropia/). When I checked about using the interpreter, I've read somewhere that it wasn't up to date anymore (maybe the info was too old and it's now up to date to execute everything, anyone can confirm ?). So, before going on, check that either the console can run unsigned code loaded in memory (which I doubt since they tend to avoid that, since it would quickly run into hacking of the console) or that mono interpreter is now working again. Hope that helps, do not hesitate if you would like some other infos. Cordially, Virgile Quoting John Matzen [EMAIL PROTECTED]: I'm trying to port the mono runtime to a device called a Wii. Although it has a PowerPC based CPU, I think getting it running with the interpreter first would be the best approach rather than attempting to patch up the existing PowerPC JIT, but I can not seem to find any documentation that would describe how to begin fixing up the build system so that I can compile it with the Wii's build tools (which are not gcc based). Any ideas on where to start? Thanks! John ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Hello, When I checked about using the interpreter, I've read somewhere that it wasn't up to date anymore (maybe the info was too old and it's now up to date to execute everything, anyone can confirm ?). It still builds, but no maintenance has gone into it. It is also missing important things like generics support, that was never updated. But the main problem you have with the interpreter is that the interpreter *also* needs to generate dynamic code. All the trampoline code is emitted at runtime so you need to have that. So in short: the interpreter just generates *less* code than the JIT, but it still generates code. I heard from an embedded customer of ours that they are looking at pregenerating all the trampoline code but am not sure this is a long term strategy. Miguel. ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Hello, prevented me to continue (you can check the blog post I did about that on http://dev.kalimdor.org/entropia/). I read somewhere that some of those restrictions were being lifted, am I incorrect? Miguel ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] Porting runtime - where to start?
Hello, Just to let you know since I did something very similiar for XBOX360 : Even if I was able to make glib and then mono compile on XBOX360 (it was a bit painful but doable) and it generated valid code to execute at runtime, nevertheless memory protection against execution of user allocated area totally prevented me to continue (you can check the blog post I did about that on http://dev.kalimdor.org/entropia/). Another thing that am wondering is whether precompilation (AOT) might be enough to use Mono on those consoles. Miguel. ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list