From: Lorien Dunn Date: 2002-04-18T10:28:35+09:00 Subject: Re: visual c, ruby, and fastcall hassle On Thursday 18 April 2002 10:11 am, nobu.nokada@softhome.net wrote: > Hi, > > At Thu, 18 Apr 2002 02:04:01 +0900, > > Lorien Dunn wrote: > > > > today I tried to embed ruby in a computer game I'm working on. It > > > > uses Auran's Jet 3d engine (www.auranjet.com), which is closed > > > > source, and requires projects using it to be compiled with fastcall > > > > enabled. Fastcall is a calling convention that does not permit > > > > variable numbers of arguments for the sake of speed. However, by > > > > prefixing every function prototype in "ruby.h" and "intern.h" with > > > > __cdecl I succeeded in building the app. > > > > > > Since __cdecl is default, that Jet 3d engine's header should > > > have __fastcall? > > > > No, because you have to set __fastcall as default in the project > > settings. If all the Jet headers used __fastcall it would not be a > > problem. > > I meant, __fastcall is NOT default, so Jet header SHOULD use > __fastcall. It's a Jet's issue. > > And you mean ? If so, > apparently it's not closed, and I downloaded Jet3D-2.0.5.zip > and found include/jet/Basetypes.h had: > > #define JETCC _fastcall No, that isn't the URL, that is a completely different Jet that is based on "Genesis 3d" which is very crappy. Auran Jet IS commercial (it cost them $Aus 3m, and costs $Aus 100 for a non-commercial license and $Aus 60k for a commercial). They won't give you the source unless you sign a nasty NDA. I agree it is a jet issue. But is msvc ruby is going to be the default for ruby on windoze then perhaps it should be sorted out. I've used at least 2 other closed source libs that were compiled with __fastcall set to default. I will experiment more with casting. Lorien