HotCocoa / hotcocoa

MacRuby HotCocoa UI library
120 stars 8 forks source link

NameError: uninitialized constant HotCocoa::Mappings::Mapper::CGRectZero #41

Closed bultacorick closed 12 years ago

bultacorick commented 12 years ago

I realize from the outset that this is not likely to be the appropriate forum for my question but I don't know what is. I believe I have a configuration problem that is triggered by requiring hotcocoa and I cannot find where else to ask. So here goes...

Here's my config:

MacOSX 10.6.8 Xcode 4.0.2 MacRuby 0.10 (ruby 1.9.2) [universal-darwin10.0, x86_64] hotcocoa (0.7.0) NOTE: this problem also occurs with (0.6.1)

Here's my problem:

irb(main):001:0> require 'rubygems' => true irb(main):002:0> require 'hotcocoa' NameError: uninitialized constant HotCocoa::Mappings::Mapper::CGRectZero

irb(main):003:0>

Here's what I know:

I can see that CGRectZero is declared in:

/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/Headers/CGGeometry.h

With:

/* The "zero" rectangle -- equivalent to CGRectMake(0, 0, 0, 0). */

CG_EXTERN const CGRect CGRectZero CG_AVAILABLE_STARTING(MAC_10_0, IPHONE_2_0);

And the question is:

Can anyone help me out with (what I think is) a fairly simple configuration error?

If this isn't the appropriate forum for this question, a pointer to the right place would be a fine response.

thanks in advance, Rick

benilovj commented 12 years ago

Hi Rick,

This is definitely the right forum to ask such questions. We are here to help!

I am not able to replicate this issue or OSX 10.6.8 (running MacRuby 0.12 snapshot), nor on OSX 10.7.2 (running MacRuby 0.11). Would it be possible for you to check whether you have the same problem with MacRuby 0.11 or a nightly 0.12 snapshot?

If you don't see the problem, are you in a position to upgrade your MacRuby, or are you tied to 0.10?

thanks, Jake

bultacorick commented 12 years ago

Hi Jake,

I'll give it a shot. I can change to with 0.11 or 0.12, whatever works. I'm trying to work MacRuby within rvm and trying to bootstrap myself on xcode at the same time. I see the same Name Error... if I require 'hotcocoa' inside an xcode project. Sometimes there's just too much interlocking issue complexity. My brain hurts...

First I'll build local versions of MacRuby (11 and 12) and just work the irb test. What could possibly go wrong?

Anyway, I'll let you know how things work out.

thanks for the quick response, Rick

On Wed, Dec 14, 2011 at 2:19 PM, Jake Benilov < reply@reply.github.com

wrote:

Hi Rick,

This is definitely the right forum to ask such questions. We are here to help!

I am not able to replicate this issue or OSX 10.6.8, nor on OSX 10.7.2. I am running with MacRuby 0.12 snapshot though. Would it be possible for you to check whether you have the same problem with MacRuby 0.11 or a nightly 0.12 snapshot?

If this works, are you in a position to upgrade your MacRuby, or are you tied to 0.10?

thanks, Jake


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3146595

benilovj commented 12 years ago

Rick, an alternative to building MacRuby yourself would be to install the binaries from here:

http://www.macruby.org/files/nightlies/

cheers, Jake

ferrous26 commented 12 years ago

@bultacorick this sounds like a known problem where you don't have BridgeSupport installed.

Check it out here:

http://www.macruby.org/blog/2010/10/08/bridgesupport-preview.html

You will want to install preview 3 from here:

http://www.macruby.org/files/

benilovj commented 12 years ago

Mark, we should add an internal check for this into hotcocoa...

bultacorick commented 12 years ago

Jake,

Good suggestion, I pulled in a tar of 0.11 source and grepping CGRectZero led me to this section in .../sample-macruby/Scripts/jumpy.rb

these are not properly mapped in BridgeSupport in Snow Leopard (from

GCGeometry.h) CGRectInfinite = CGRect.new([-8.98847e+307, -8.98847e+307], [1.79769e+308, 1.79769e+308]) unless defined?(CGRectInfinite) CGSizeZero = CGSizeMake(0, 0) unless defined?(CGSizeZero) CGRectZero = CGRectMake(0, 0, 0, 0) unless defined?(CGRectZero) CGPointZero = CGPointMake(0, 0) unless defined?(CGPointZero)

we need CGRectNull!

Jamming this into ../lib/hotcocoa.rb just after the framework 'Cocoa' and then rebuilding/reinstalling the gem gets me past the error on require 'hotcocoa'.

I realize that's not the same as saying either I understand... or I fixed... but hey. I am running Snow Leopard so the comment re BridgeSupport does appear to apply to my case.

Anyway, I'll get on with the 0.11/0.12 test.

Rick

On Wed, Dec 14, 2011 at 3:29 PM, Jake Benilov < reply@reply.github.com

wrote:

Ricky, an alternative to building MacRuby yourself would be to install the binaries from here:

http://www.macruby.org/files/nightlies/

cheers, Jake


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3148487

benilovj commented 12 years ago

Rick, my understanding is that you would still need to install BridgeSupport when you are running Snow Leopard. BridgeSupport is unnecessary only on Lion.

bultacorick commented 12 years ago

Mark,

Thanks, I'll check that out. I just installed MacRuby-0.12 from the nightlies and that solved the original error with require 'hotcocoa'. So now at least I can run the simple hotcocoa three step

hotcocoa Postie cd Postie macrake

thanks again, Rick

On Wed, Dec 14, 2011 at 3:54 PM, Mark Rada < reply@reply.github.com

wrote:

@bultacorick this sounds like a known problem where you don't have BridgeSupport installed.

Check it out here:

http://www.macruby.org/blog/2010/10/08/bridgesupport-preview.html

You will want to install preview 3 from here:

http://www.macruby.org/files/


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3149311

bultacorick commented 12 years ago

Jake,

Re bridgesupport, thanks, I'll check that out.

I just installed MacRuby-0.12 from the nightlies and that solved the original error with require 'hotcocoa'. So now at least I can run the simple hotcocoa three step

hotcocoa Postie cd Postie macrake

macruby --version now gives:

MacRuby 0.12 (ruby 1.9.2) [universal-darwin10.0, x86_64]

I grabbed the 11-30 nightly thinking it's name was telling me 0.11 (doh). Anyway, I'll certainly take a shot at bridgesupport (and prev?) per your (and Mark Rada's) suggestion.

I can say that it's not needed for the simple test, at least with hotcocoa-0.7.0.

thanks again, Rick On Wed, Dec 14, 2011 at 4:03 PM, Jake Benilov < reply@reply.github.com

wrote:

Rick, my understanding is that you would still need to install BridgeSupport when you are running Snow Leopard. BridgeSupport is unnecessary only on Lion.


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3149690

bultacorick commented 12 years ago

Jake,

Re bridgesupport, thanks, I'll check that out.

I just installed MacRuby-0.12 from the nightlies and that solved the original error with require 'hotcocoa'. So now at least I can run the simple hotcocoa three step

hotcocoa Postie cd Postie macrake

macruby --version now gives:

MacRuby 0.12 (ruby 1.9.2) [universal-darwin10.0, x86_64]

I grabbed the 11-30 nightly thinking it's name was telling me 0.11 (doh). Anyway, I'll certainly take a shot at bridgesupport (and prev?) per your (and Mark' On Wed, Dec 14, 2011 at 4:03 PM, Jake Benilov < reply@reply.github.com

wrote:

Rick, my understanding is that you would still need to install BridgeSupport when you are running Snow Leopard. BridgeSupport is unnecessary only on Lion.


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3149690

bultacorick commented 12 years ago

Jake,

I'm still working on knowing what I'm talking about...

Seems I was confused - the hotcocoa that passed the three step was, in all cases, build with the jumpy.rb code patched in. No version of MacRuby works with hotcocoa-0.7.0.

So, I've now done an "rvm install macruby-nightly" and am set to dig follow the provided bridgesupport-prev pointers.

Rick

On Wed, Dec 14, 2011 at 6:15 PM, Rick Lloyd richard.t.lloyd@gmail.comwrote:

Jake,

Re bridgesupport, thanks, I'll check that out.

I just installed MacRuby-0.12 from the nightlies and that solved the original error with require 'hotcocoa'. So now at least I can run the simple hotcocoa three step

hotcocoa Postie cd Postie macrake

macruby --version now gives:

MacRuby 0.12 (ruby 1.9.2) [universal-darwin10.0, x86_64]

I grabbed the 11-30 nightly thinking it's name was telling me 0.11 (doh). Anyway, I'll certainly take a shot at bridgesupport (and prev?) per your (and Mark' On Wed, Dec 14, 2011 at 4:03 PM, Jake Benilov < reply@reply.github.com

wrote:

Rick, my understanding is that you would still need to install BridgeSupport when you are running Snow Leopard. BridgeSupport is unnecessary only on Lion.


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3149690

bultacorick commented 12 years ago

Matt,

I'm still working on knowing what I'm talking about...

Seems I was confused - the hotcocoa that passed the three step was, in all cases, build with the jumpy.rb code patched in. No version of MacRuby works with hotcocoa-0.7.0.

So, I've now done an "rvm install macruby-nightly" and am set to dig follow the provided bridgesupport-prev pointers.

Rick

On Wed, Dec 14, 2011 at 3:54 PM, Mark Rada < reply@reply.github.com

wrote:

@bultacorick this sounds like a known problem where you don't have BridgeSupport installed.

Check it out here:

http://www.macruby.org/blog/2010/10/08/bridgesupport-preview.html

You will want to install preview 3 from here:

http://www.macruby.org/files/


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3149311

bultacorick commented 12 years ago

Jake,

Done and done.

enginemobile:Postie 503 rvm install macruby-nightly enginemobile:Postie 504 rvm use macruby-nightly --default

add package "BridgeSupport Preview 3"

enginemobile:Postie 505 rvm list rvm rubies

macruby-0.10 [ x86_64 ] macruby-0.10-n [ x86_64 ] => macruby-nightly [ x86_64 ] ruby-1.8.7-p352 [ i686 ] ruby-1.9.2-head [ i386 ] ruby-1.9.2-p290 [ i386 ] ruby-1.9.3-p0 [ x86_64 ]

enginemobile:Postie 506 gem list

* LOCAL GEMS *

hotcocoa (0.7.0) yard (0.7.4)

enginemobile:Postie 507 irb irb(main):001:0> require 'rubygems' => true irb(main):002:0> require 'hotcocoa' => true irb(main):003:0> exit

And the hotcocoa three step

1) hotcocoa Postie 2) cd Postie 3) rake

Produces the promised "Hello from HotCocoa" Postie pane.

thanks again RIck

On Wed, Dec 14, 2011 at 7:12 PM, Rick Lloyd richard.t.lloyd@gmail.comwrote:

Jake,

I'm still working on knowing what I'm talking about...

Seems I was confused - the hotcocoa that passed the three step was, in all cases, build with the jumpy.rb code patched in. No version of MacRuby works with hotcocoa-0.7.0.

So, I've now done an "rvm install macruby-nightly" and am set to dig follow the provided bridgesupport-prev pointers.

Rick

On Wed, Dec 14, 2011 at 6:15 PM, Rick Lloyd richard.t.lloyd@gmail.comwrote:

Jake,

Re bridgesupport, thanks, I'll check that out.

I just installed MacRuby-0.12 from the nightlies and that solved the original error with require 'hotcocoa'. So now at least I can run the simple hotcocoa three step

hotcocoa Postie cd Postie macrake

macruby --version now gives:

MacRuby 0.12 (ruby 1.9.2) [universal-darwin10.0, x86_64]

I grabbed the 11-30 nightly thinking it's name was telling me 0.11 (doh). Anyway, I'll certainly take a shot at bridgesupport (and prev?) per your (and Mark' On Wed, Dec 14, 2011 at 4:03 PM, Jake Benilov < reply@reply.github.com

wrote:

Rick, my understanding is that you would still need to install BridgeSupport when you are running Snow Leopard. BridgeSupport is unnecessary only on Lion.


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3149690

bultacorick commented 12 years ago

Matt,

Done and done.

enginemobile:src 503 rvm install macruby-nightly enginemobile:src 504 rvm use macruby-nightly --default

add package "BridgeSupport Preview 3"

enginemobile:src 505 rvm list rvm rubies

macruby-0.10 [ x86_64 ] macruby-0.10-n [ x86_64 ] => macruby-nightly [ x86_64 ] ruby-1.8.7-p352 [ i686 ] ruby-1.9.2-head [ i386 ] ruby-1.9.2-p290 [ i386 ] ruby-1.9.3-p0 [ x86_64 ]

enginemobile:src 506 gem list

* LOCAL GEMS *

hotcocoa (0.7.0) yard (0.7.4)

enginemobile:src cd hotcocoa

enginemobile:hotcocoa 508 irb irb(main):001:0> require 'rubygems' => true irb(main):002:0> require 'hotcocoa' => true irb(main):003:0> exit

And the hotcocoa three step

1) hotcocoa Postie 2) cd Postie 3) rake

Produces the promised "Hello from HotCocoa" Postie pane.

thanks again RIck

On Wed, Dec 14, 2011 at 3:54 PM, Mark Rada < reply@reply.github.com

wrote:

@bultacorick this sounds like a known problem where you don't have BridgeSupport installed.

Check it out here:

http://www.macruby.org/blog/2010/10/08/bridgesupport-preview.html

You will want to install preview 3 from here:

http://www.macruby.org/files/


Reply to this email directly or view it on GitHub: https://github.com/HotCocoa/hotcocoa/issues/41#issuecomment-3149311