Re: [MacRuby-devel] [MacRuby] #141: Building MacRuby 0.3 - Rake fails during openssl compilation
#141: Building MacRuby 0.3 - Rake fails during openssl compilation
+---
Reporter: nucleus_...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby |Keywords:
+---
Comment(by nucleus_...@…):
Hi
Ok, I tried using the exact same PATH as you by setting it beforehand in
the terminal window I used to check-out MacRuby and building it.
openssl now compiles
compiling readline now fails...
{{{
lipo: can't open input file:
/var/folders/ZM/ZM1mUxURHLyp6uS1i4kFQTI/-Tmp-//ccRhTClz.out (No such
file or directory)
make: *** [readline.o] Error 1
rake aborted!
Command failed with status (1): [./miniruby -I./lib -I.ext/common -I./-
-r]
/Users/andre/source/MacRuby-0.3/rakefile:517
(See full trace by running task with --trace)
}}}
--
Ticket URL:
MacRuby
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] Exposing c structs and functions
John, thanks for the ideas. Currently, I am using a simple Obj-C class with methods instead of a struct and functions. That works OK, but it is not the best solution, especially in those cases where the framework would be used by Obj-C code instead of MacRuby code and where speed is a concern. A struct/ function approach is really ideal. I am afraid I don't understand the tutorial example concerning BridgeSupport files and how that might apply to structs and functions. As you said, the documentation on the BridgeSupport web page is limited. Before I go down that road, I'd love to know how involved the process is, see an example of how it works, and so on. Perhaps Laurent could shed some light? Jim ___ MacRuby-devel mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] Exposing c structs and functions
Your best bet is to take a look at the bridgesupport files for most system frameworks and learn from those. They are found inside Resources/BridgeSupport. Nonetheless, it would indeed be very nice if a more elaborate guide could be written. Eloy On Dec 19, 2008, at 4:45 PM, Jim Getzen wrote: John, thanks for the ideas. Currently, I am using a simple Obj-C class with methods instead of a struct and functions. That works OK, but it is not the best solution, especially in those cases where the framework would be used by Obj-C code instead of MacRuby code and where speed is a concern. A struct/function approach is really ideal. I am afraid I don't understand the tutorial example concerning BridgeSupport files and how that might apply to structs and functions. As you said, the documentation on the BridgeSupport web page is limited. Before I go down that road, I'd love to know how involved the process is, see an example of how it works, and so on. Perhaps Laurent could shed some light? Jim ___ MacRuby-devel mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel ___ MacRuby-devel mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] [MacRuby] #141: Building MacRuby 0.3 - Rake fails during openssl compilation
#141: Building MacRuby 0.3 - Rake fails during openssl compilation
+---
Reporter: nucleus_...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby |Keywords:
+---
Comment(by sandor.szu...@…):
Replying to [comment:4 nucleus_...@…]:
> compiling readline now fails...
Did you try a rebuild?
{{{
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
rake clean
svn up
rake
}}}
Here this works.
If it doesn't work then paste a few lines more.
--
Ticket URL:
MacRuby
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] Exposing c structs and functions
OK, I decided to devote a little time to see if I could make any
headway with BridgeSupport. It doesn't seem too terribly complicated,
but I have run into a problem.
My framework is called ZenGL, so I first created a struct in ZenGL.h
based on NSPoint:
typedef struct _ZPoint {
float x;
float y;
} ZPoint;
I also created a ZPointMake function:
ZPoint ZPointMake(float x, float y);
Then, I rebuilt the framework. Fine so far.
Next, I created an XML ZenGL.bridgesupport file using Foundation.xml
(in /Library/BridgeSupport/) as an example. Here are the contents:
">
encoding='{_ZPoint="x"f"y"f}'
type='{_ZPoint="x"f"y"f}'/>
I placed ZenGL.bridgesupport in the folder with my built MacRuby app
and added this code to load it:
load_bridge_support_file './ZenGL.bridgesupport'
(Going back to my xml, I originally did not include a 'type' attribute
for the struct since the NSPoint example in Foundation.xml did not
have one, but I received an error when running the load_... command.
Not sure why.)
All seems well, but when I try this code from MacRuby:
zp = ZPointMake(10.0, 10.0)
I get this error:
`ZPointMake': wrong number of arguments (2 for 0) (ArgumentError)
My ZPointMake function definition in the xml sure looks right to me,
based on the examples in Foundation.xml, so what have I done wrong?
Jim
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] Exposing c structs and functions
Hi Jim,
Sorry for the late response!
Indeed the best way to make your C API available from MacRuby is to
cover it with a BridgeSupport file and load it, MacRuby will
reconstruct the corresponding API in the Ruby world. BridgeSupport
descriptions are language agnostic and can be loaded in other
scripting languages too.
On Dec 19, 2008, at 12:03 PM, Jim Getzen wrote:
OK, I decided to devote a little time to see if I could make any
headway with BridgeSupport. It doesn't seem too terribly
complicated, but I have run into a problem.
My framework is called ZenGL, so I first created a struct in ZenGL.h
based on NSPoint:
typedef struct _ZPoint {
float x;
float y;
} ZPoint;
I also created a ZPointMake function:
ZPoint ZPointMake(float x, float y);
Then, I rebuilt the framework. Fine so far.
Next, I created an XML ZenGL.bridgesupport file using Foundation.xml
(in /Library/BridgeSupport/) as an example. Here are the contents:
">
encoding='{_ZPoint="x"f"y"f}'
type='{_ZPoint="x"f"y"f}'/>
I placed ZenGL.bridgesupport in the folder with my built MacRuby app
and added this code to load it:
load_bridge_support_file './ZenGL.bridgesupport'
(Going back to my xml, I originally did not include a 'type'
attribute for the struct since the NSPoint example in Foundation.xml
did not have one, but I received an error when running the load_...
command. Not sure why.)
All seems well, but when I try this code from MacRuby:
zp = ZPointMake(10.0, 10.0)
I get this error:
`ZPointMake': wrong number of arguments (2 for 0) (ArgumentError)
My ZPointMake function definition in the xml sure looks right to me,
based on the examples in Foundation.xml, so what have I done wrong?
Looks like your XML description is not correct, function_arg and
function_retval are invalid elements.
Try:
">
encoding='{_ZPoint="x"f"y"f}'
type='{_ZPoint="x"f"y"f}'/>
You can learn more about the BridgeSupport format by reading the
gen_bridge_metadata(1) and BridgeSupport(5) man pages.
Laurent
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] Exposing c structs and functions
Hi Laurent,
First, why does the Foundation.xml use the elements "function_retval"
and "function_arg" instead of just "retval" and "arg"?
Second, I used the xml you suggested, but I now get this error:
`ZPointMake': unrecognized octype `{_ZPoint="x"f"y"f}' (RuntimeError)
I have read the man pages (I had to learn what a "man page" was
first!), but I didn't see anything that would solve that error.
Thanks for your help,
Jim
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] Exposing c structs and functions
At 16:18 -0500 12/19/08, Jim Getzen wrote: > I have read the man pages (I had to learn what a "man page" was > first!), but I didn't see anything that would solve that error. FYI, man pages are great at reminding folks of options, details, etc. They are less useful as tutorials. In any case, it often helps to skim a related set of man pages (ie, follow SEE ALSOs) a couple of times, as that helps things to sink in... -r -- http://www.cfcl.com/rdmRich Morin http://www.cfcl.com/rdm/resume [email protected] http://www.cfcl.com/rdm/weblog +1 650-873-7841 Technical editing and writing, programming, and web development ___ MacRuby-devel mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] [MacRuby] #141: Building MacRuby 0.3 - Rake fails during openssl compilation
#141: Building MacRuby 0.3 - Rake fails during openssl compilation
+---
Reporter: nucleus_...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby |Keywords:
+---
Comment(by nucleus_...@…):
Hi,
Thanks again for sticking around and trying to help me. I really
appreciate it :)
Ok here's the steps I am doing.
1) Start Terminal [[BR]]
2) PATH="/bin:/sbin:/usr/bin:/usr/sbin" [[BR]]
3) cd ~/source [[BR]]
4) svn co http://svn.macosforge.org/repository/ruby/MacRuby/tags/0.3
MacRuby-0.3 [[BR]]
... [[BR]]
=> Checked out revision 766. [[BR]]
5) cd MacRuby-0.3 [[BR]]
6) rake [[BR]]
All goes fine (and now for openssl too) until[[BR]]
...[[BR]]
compiling readline
following is the error output in its entirety:
{{{
compiling readline
gcc -I. -I../../.ext/include/universal-darwin9.0 -I..//.././include
-I..//.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\" -fno-common -fno-
common -pipe -arch ppc -arch i386 -o readline.o -c readline.c
readline.c: In function ‘filename_completion_proc_call’:
readline.c:684: error: ‘filename_completion_function’ undeclared (first
use in this function)
readline.c:684: error: (Each undeclared identifier is reported only once
readline.c:684: error: for each function it appears in.)
readline.c:684: warning: assignment makes pointer from integer without a
cast
readline.c: In function ‘username_completion_proc_call’:
readline.c:709: error: ‘username_completion_function’ undeclared (first
use in this function)
readline.c:709: warning: assignment makes pointer from integer without a
cast
readline.c: In function ‘filename_completion_proc_call’:
readline.c:684: error: ‘filename_completion_function’ undeclared (first
use in this function)
readline.c:684: error: (Each undeclared identifier is reported only once
readline.c:684: error: for each function it appears in.)
readline.c:684: warning: assignment makes pointer from integer without a
cast
readline.c: In function ‘username_completion_proc_call’:
readline.c:709: error: ‘username_completion_function’ undeclared (first
use in this function)
readline.c:709: warning: assignment makes pointer from integer without a
cast
{standard input}:386:non-relocatable subtraction expression, "_mReadline"
minus "L009$pb"
{standard input}:386:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:384:non-relocatable subtraction expression,
"_completion_case_fold" minus "L009$pb"
{standard input}:384:symbol: "_completion_case_fold" can't be undefined in
a subtraction expression
{standard input}:370:non-relocatable subtraction expression, "_mReadline"
minus "L009$pb"
{standard input}:370:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:368:non-relocatable subtraction expression,
"_completion_proc" minus "L009$pb"
{standard input}:368:symbol: "_completion_proc" can't be undefined in a
subtraction expression
{standard input}:349:non-relocatable subtraction expression, "_mReadline"
minus "L008$pb"
{standard input}:349:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:347:non-relocatable subtraction expression,
"_completion_case_fold" minus "L008$pb"
{standard input}:347:symbol: "_completion_case_fold" can't be undefined in
a subtraction expression
{standard input}:325:non-relocatable subtraction expression, "_mReadline"
minus "L007$pb"
{standard input}:325:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:323:non-relocatable subtraction expression,
"_completion_case_fold" minus "L007$pb"
{standard input}:323:symbol: "_completion_case_fold" can't be undefined in
a subtraction expression
{standard input}:303:non-relocatable subtraction expression, "_mReadline"
minus "L006$pb"
{standard input}:303:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:301:non-relocatable subtraction expression,
"_completion_proc" minus "L006$pb"
{standard input}:301:symbol: "_completion_proc" can't be undefined in a
subtraction expression
{standard input}:279:non-relocatable subtraction expression, "_mReadline"
minus "L005$pb"
{standard input}:279:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:277:non-relocatable subtraction expression,
"_completion_proc" minus "L005$pb"
{standard input}:277:symbol: "_completion_proc" can't be undefined in a
subtraction expression
{standard input}:462:non-relocatable subtraction expression,
"_completion_case_fold" minus "L
Re: [MacRuby-devel] Exposing c structs and functions
Hi Jim,
You're probably looking at an old BridgeSupport file. function_retval
and function_arg do not exist anymore since a very long time, and were
replaced by retval and arg.
You should be able to get the latest Foundation bridgesupport file
from here:
/System/Library/Frameworks/Foundation.framework/Resources/
BridgeSupport/Foundation.bridgesupport
Back to your new problem, I think your struct element is also wrong
(uses the old definition). I would look at the Foundation file and try
to mimic it. Also, you can generate the file by using
gen_bridge_metadata (from the command line) if your code is a
framework or a shared library. Finally, if you opt by writing the file
by yourself, it is always good to run an XML validation pass (the DTD
location is part of your XML declaration).
Laurent
On Dec 19, 2008, at 1:18 PM, Jim Getzen wrote:
Hi Laurent,
First, why does the Foundation.xml use the elements
"function_retval" and "function_arg" instead of just "retval" and
"arg"?
Second, I used the xml you suggested, but I now get this error:
`ZPointMake': unrecognized octype `{_ZPoint="x"f"y"f}' (RuntimeError)
I have read the man pages (I had to learn what a "man page" was
first!), but I didn't see anything that would solve that error.
Thanks for your help,
Jim
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] [MacRuby] #141: Building MacRuby 0.3 - Rake fails during openssl compilation
Have you tried removing /Library/Frameworks/MacRuby.framework after
cleaning the build location, but before starting the new build?
I have had trouble with builds before and sometimes clearing out the
old MacRuby.framework helps.
On 19 Dec, 2008, at 16:29, MacRuby wrote:
#141: Building MacRuby 0.3 - Rake fails during openssl compilation
+---
Reporter: nucleus_...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby |Keywords:
+---
Comment(by nucleus_...@…):
Hi,
Thanks again for sticking around and trying to help me. I really
appreciate it :)
Ok here's the steps I am doing.
1) Start Terminal [[BR]]
2) PATH="/bin:/sbin:/usr/bin:/usr/sbin" [[BR]]
3) cd ~/source [[BR]]
4) svn co http://svn.macosforge.org/repository/ruby/MacRuby/tags/0.3
MacRuby-0.3 [[BR]]
... [[BR]]
=> Checked out revision 766. [[BR]]
5) cd MacRuby-0.3 [[BR]]
6) rake [[BR]]
All goes fine (and now for openssl too) until[[BR]]
...[[BR]]
compiling readline
following is the error output in its entirety:
{{{
compiling readline
gcc -I. -I../../.ext/include/universal-darwin9.0 -I..//.././include
-I..//.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\" -fno-common -
fno-
common -pipe -arch ppc -arch i386 -o readline.o -c readline.c
readline.c: In function ‘filename_completion_proc_call’:
readline.c:684: error: ‘filename_completion_function’ undeclared
(first
use in this function)
readline.c:684: error: (Each undeclared identifier is reported only
once
readline.c:684: error: for each function it appears in.)
readline.c:684: warning: assignment makes pointer from integer
without a
cast
readline.c: In function ‘username_completion_proc_call’:
readline.c:709: error: ‘username_completion_function’ undeclared
(first
use in this function)
readline.c:709: warning: assignment makes pointer from integer
without a
cast
readline.c: In function ‘filename_completion_proc_call’:
readline.c:684: error: ‘filename_completion_function’ undeclared
(first
use in this function)
readline.c:684: error: (Each undeclared identifier is reported only
once
readline.c:684: error: for each function it appears in.)
readline.c:684: warning: assignment makes pointer from integer
without a
cast
readline.c: In function ‘username_completion_proc_call’:
readline.c:709: error: ‘username_completion_function’ undeclared
(first
use in this function)
readline.c:709: warning: assignment makes pointer from integer
without a
cast
{standard input}:386:non-relocatable subtraction expression,
"_mReadline"
minus "L009$pb"
{standard input}:386:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:384:non-relocatable subtraction expression,
"_completion_case_fold" minus "L009$pb"
{standard input}:384:symbol: "_completion_case_fold" can't be
undefined in
a subtraction expression
{standard input}:370:non-relocatable subtraction expression,
"_mReadline"
minus "L009$pb"
{standard input}:370:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:368:non-relocatable subtraction expression,
"_completion_proc" minus "L009$pb"
{standard input}:368:symbol: "_completion_proc" can't be undefined
in a
subtraction expression
{standard input}:349:non-relocatable subtraction expression,
"_mReadline"
minus "L008$pb"
{standard input}:349:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:347:non-relocatable subtraction expression,
"_completion_case_fold" minus "L008$pb"
{standard input}:347:symbol: "_completion_case_fold" can't be
undefined in
a subtraction expression
{standard input}:325:non-relocatable subtraction expression,
"_mReadline"
minus "L007$pb"
{standard input}:325:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:323:non-relocatable subtraction expression,
"_completion_case_fold" minus "L007$pb"
{standard input}:323:symbol: "_completion_case_fold" can't be
undefined in
a subtraction expression
{standard input}:303:non-relocatable subtraction expression,
"_mReadline"
minus "L006$pb"
{standard input}:303:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:301:non-relocatable subtraction expression,
"_completion_proc" minus "L006$pb"
{standard input}:301:symbol: "_completion_proc" can't be undefined
in a
subtraction expression
{standard input}:279:non-relocatable subtraction expression,
"_mReadline"
minus "L005$pb"
{standard input}:279:symbol: "_mReadline" can't be undefined in a
subtraction expression
{standard input}:277:non-relocatable subtraction expression,
"_completion_proc" minus "L005$pb"
{standard inp
[MacRuby-devel] [MacRuby] #182: The constant lookup in MacRuby does not behave correctly
#182: The constant lookup in MacRuby does not behave correctly
+---
Reporter: vincent.isamb...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: major | Milestone:
Component: MacRuby |Keywords:
+---
MacRuby:
{{{
>> class A
>> class B
>> end
>> end
=> nil
>> B
=> A::B
>>
>> A::B::B::B
=> A::B
>>
}}}
Ruby 1.9:
{{{
irb(main):001:0> class A
irb(main):002:1> class B
irb(main):003:2> end
irb(main):004:1> end
=> nil
irb(main):005:0> B
NameError: uninitialized constant B
from (irb):5
from /usr/local/bin/irb-1.9:12:in `'
irb(main):006:0>
irb(main):014:0> A::B::B::B
NameError: uninitialized constant A::B::B
from (irb):14
from /usr/local/bin/irb-1.9:12:in `'
}}}
--
Ticket URL:
MacRuby
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] [MacRuby] #182: The constant lookup in MacRuby does not behave correctly
#182: The constant lookup in MacRuby does not behave correctly
+---
Reporter: vincent.isamb...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: major | Milestone:
Component: MacRuby |Keywords:
+---
Comment(by vincent.isamb...@…):
The problem is in variable.c, in rb_const_get_0:
{{{
/* Classes are typically pre-loaded by Kernel#framework and imported
by
* rb_objc_resolve_const_value(), but it is still useful to keep the
* dynamic import facility, because someone in the Objective-C world
may
* dynamically define classes at runtime (like
ScriptingBridge.framework).
*/
{
Class k = (Class)objc_getClass(rb_id2name(id));
if (k != NULL)
return (VALUE)k;
}
}}}
You should keep this, but only return the class if it's not a Ruby class
because if it's a Ruby class and you did not find it before, it's that
it's in a different place in the namespace.
--
Ticket URL:
MacRuby
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
[MacRuby-devel] [MacRuby] #183: loop/next seg faulting
#183: loop/next seg faulting
-+--
Reporter: drnicwilli...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: minor| Milestone:
Component: MacRuby |Keywords: loop next
-+--
The following should work:
@@@
short_enum = [1, 2, 3].to_enum
long_enum = ('a'..'z').to_enum
loop do
puts "#{short_enum.next} #{long_enum.next}"
end
@@@
Example comes from http://slideshow.rubyforge.org/ruby19.html slide 37
It currently segfaults.
--
Ticket URL:
MacRuby
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Re: [MacRuby-devel] [MacRuby] #183: loop/next seg faulting
#183: loop/next seg faulting
-+--
Reporter: drnicwilli...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: minor| Milestone:
Component: MacRuby |Keywords: loop next
-+--
Comment(by drnicwilli...@…):
{{{
short_enum = [1, 2, 3].to_enum long_enum = ('a'..'z').to_enum loop do
puts "#{short_enum.next} #{long_enum.next}"
end
}}}
my trac-fu is weak
--
Ticket URL:
MacRuby
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
