Hello, I''ve wrote on http://ironruby.codeplex.com/workitem/6028 that the ObjectSpace module is not complete Comments from the issues above: " wrote Thu at 11:57 PM File.realpath is a Ruby 1.9 method we haven''t gotten to. We''re unable to implement those methods of ObjectSpace as we can''t track them ourselves as we don''t know when the CLR will garbage collect a specific object, and we don''t have access to a list of reachable objects. Renaming this issue to track File.realpath iulianfecioru wrote Fri at 8:27 AM>From the previous comment I understand that methods from ObjectSpace(_id2ref, count_objects.) will not be supported. Is this true?! PS: I''ve added _id2ref method to the ObjectSpace, so I think it is posible but is just my opinion ;) jimmysch wrote Fri at 4:50 PM How did you implement _id2ref in IronRuby? I''m 100% sure we can''t implement it without slowing down the entire runtime. ObjectSpace is a thin wrapper around MRI''s memory manager, while on the CLR we don''t have access to it. Therefore, it''s more MRI''s implementation detail than a general Ruby feature. And Ruby library writers already know not to use it if they want to run on all Ruby implementations. That being said, we could implement it poorly and require the user to turn it on if they want to use it (like JRuby does: http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_Object Space), but I don''t see that as a priority feature. That being said, patches are welcome. If you want to discuss this further, let''s move this discussion to the mailing list (ironruby-core at rubyforge.org) or open a new feature request ( http://ironruby.codeplex.com/WorkItem/Create). " I think jimmysch is right about the performance issues, but in my case I need to have the ObjectSpace.id2ref because we need to send the object IDs to native languages and retrieve the objects using this object IDs in IronRuby. I think that the JRuby solution ( http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_Object Space) should be in IronRuby. I''ve attached my own trick (I think it is a big performance issue). Maybe this could be done in a more better way and directly in IronRuby source code. Thank you! PS: I would like to become a developer in this project. With who should I talk?! Regards, ________________________________ Iulian Fecioru NAPA Romania SRL Lead Software Developer Brailei, 165b, 1 800310, Galati, Romania Mobile: +40-722-664027 Phone: +40-336-802182 Fax: +40-336-802185 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110810/4675cb18/attachment-0001.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: object_space.rb Type: application/octet-stream Size: 1839 bytes Desc: object_space.rb URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110810/4675cb18/attachment-0002.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: object.rb Type: application/octet-stream Size: 87 bytes Desc: object.rb URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110810/4675cb18/attachment-0003.obj>
Your implementation of _id2ref might be a good enough approximation. (It isn''t 100% equivalent to MRI though since in MRI I can enumerate integers and ask if there is an object with that id. So I can get to objects for which object_id wasn''t called before.) You "become" a developer by submitting a patch on github. No need to talk to anybody :). Of course, it is better to let folks in this list know what you''re working on so that we don''t dup efforts. Tomas From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Iulian Fecioru Sent: Tuesday, August 09, 2011 10:51 PM To: ironruby-core at rubyforge.org Subject: [Ironruby-core] ObjectSpace module Hello, I''ve wrote on http://ironruby.codeplex.com/workitem/6028 that the ObjectSpace module is not complete Comments from the issues above: " wrote Thu at 11:57 PM File.realpath is a Ruby 1.9 method we haven''t gotten to. We''re unable to implement those methods of ObjectSpace as we can''t track them ourselves as we don''t know when the CLR will garbage collect a specific object, and we don''t have access to a list of reachable objects. Renaming this issue to track File.realpath iulianfecioru wrote Fri at 8:27 AM>From the previous comment I understand that methods from ObjectSpace (_id2ref, count_objects.) will not be supported.Is this true?! PS: I''ve added _id2ref method to the ObjectSpace, so I think it is posible but is just my opinion ;) jimmysch wrote Fri at 4:50 PM How did you implement _id2ref in IronRuby? I''m 100% sure we can''t implement it without slowing down the entire runtime. ObjectSpace is a thin wrapper around MRI''s memory manager, while on the CLR we don''t have access to it. Therefore, it''s more MRI''s implementation detail than a general Ruby feature. And Ruby library writers already know not to use it if they want to run on all Ruby implementations. That being said, we could implement it poorly and require the user to turn it on if they want to use it (like JRuby does: http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_ObjectSpace), but I don''t see that as a priority feature. That being said, patches are welcome. If you want to discuss this further, let''s move this discussion to the mailing list (ironruby-core at rubyforge.org<mailto:ironruby-core at rubyforge.org>) or open a new feature request (http://ironruby.codeplex.com/WorkItem/Create). " I think jimmysch is right about the performance issues, but in my case I need to have the ObjectSpace.id2ref because we need to send the object IDs to native languages and retrieve the objects using this object IDs in IronRuby. I think that the JRuby solution (http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_ObjectSpace) should be in IronRuby. I''ve attached my own trick (I think it is a big performance issue). Maybe this could be done in a more better way and directly in IronRuby source code. Thank you! PS: I would like to become a developer in this project. With who should I talk?! Regards, ________________________________ Iulian Fecioru NAPA Romania SRL Lead Software Developer Brailei, 165b, 1 800310, Galati, Romania Mobile: +40-722-664027 Phone: +40-336-802182 Fax: +40-336-802185 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110810/81e66258/attachment.html>
Hello, Thank you for your response. My implementation was a trick to make something working. I think I can do this more correctly and complete in the IronRuby core. I''ll try to implement this in IronRuby core, if nobody is against this. (Something like JRuby has implemented). Regards, Iulian Fecioru From: Tomas Matousek [mailto:Tomas.Matousek at microsoft.com] Sent: Wednesday, August 10, 2011 7:20 PM To: ironruby-core at rubyforge.org Subject: Re: [Ironruby-core] ObjectSpace module Your implementation of _id2ref might be a good enough approximation. (It isn''t 100% equivalent to MRI though since in MRI I can enumerate integers and ask if there is an object with that id. So I can get to objects for which object_id wasn''t called before.) You "become" a developer by submitting a patch on github. No need to talk to anybody J. Of course, it is better to let folks in this list know what you''re working on so that we don''t dup efforts. Tomas From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Iulian Fecioru Sent: Tuesday, August 09, 2011 10:51 PM To: ironruby-core at rubyforge.org Subject: [Ironruby-core] ObjectSpace module Hello, I''ve wrote on http://ironruby.codeplex.com/workitem/6028 that the ObjectSpace module is not complete Comments from the issues above: " wrote Thu at 11:57 PM File.realpath is a Ruby 1.9 method we haven''t gotten to. We''re unable to implement those methods of ObjectSpace as we can''t track them ourselves as we don''t know when the CLR will garbage collect a specific object, and we don''t have access to a list of reachable objects. Renaming this issue to track File.realpath iulianfecioru wrote Fri at 8:27 AM>From the previous comment I understand that methods from ObjectSpace(_id2ref, count_objects.) will not be supported. Is this true?! PS: I''ve added _id2ref method to the ObjectSpace, so I think it is posible but is just my opinion ;) jimmysch wrote Fri at 4:50 PM How did you implement _id2ref in IronRuby? I''m 100% sure we can''t implement it without slowing down the entire runtime. ObjectSpace is a thin wrapper around MRI''s memory manager, while on the CLR we don''t have access to it. Therefore, it''s more MRI''s implementation detail than a general Ruby feature. And Ruby library writers already know not to use it if they want to run on all Ruby implementations. That being said, we could implement it poorly and require the user to turn it on if they want to use it (like JRuby does: http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_Object Space), but I don''t see that as a priority feature. That being said, patches are welcome. If you want to discuss this further, let''s move this discussion to the mailing list (ironruby-core at rubyforge.org) or open a new feature request (http://ironruby.codeplex.com/WorkItem/Create). " I think jimmysch is right about the performance issues, but in my case I need to have the ObjectSpace.id2ref because we need to send the object IDs to native languages and retrieve the objects using this object IDs in IronRuby. I think that the JRuby solution (http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_Objec tSpace) should be in IronRuby. I''ve attached my own trick (I think it is a big performance issue). Maybe this could be done in a more better way and directly in IronRuby source code. Thank you! PS: I would like to become a developer in this project. With who should I talk?! Regards, ________________________________ Iulian Fecioru NAPA Romania SRL Lead Software Developer Brailei, 165b, 1 800310, Galati, Romania Mobile: +40-722-664027 Phone: +40-336-802182 Fax: +40-336-802185 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110816/ee9cd94a/attachment-0001.html>
This is actually pretty good solution - it''s not harming perf of apps that don''t need the feature. Is there any real-world scenario that this doesn''t address? Some app translating random integers to objects? Until there is I''m not sure if it makes sense to go any further. What about implementing your approach directly in the libraries? Tomas From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Iulian Fecioru Sent: Monday, August 15, 2011 10:35 PM To: ironruby-core at rubyforge.org Subject: Re: [Ironruby-core] ObjectSpace module Hello, Thank you for your response. My implementation was a trick to make something working. I think I can do this more correctly and complete in the IronRuby core. I''ll try to implement this in IronRuby core, if nobody is against this. (Something like JRuby has implemented). Regards, Iulian Fecioru From: Tomas Matousek [mailto:Tomas.Matousek at microsoft.com]<mailto:[mailto:Tomas.Matousek at microsoft.com]> Sent: Wednesday, August 10, 2011 7:20 PM To: ironruby-core at rubyforge.org<mailto:ironruby-core at rubyforge.org> Subject: Re: [Ironruby-core] ObjectSpace module Your implementation of _id2ref might be a good enough approximation. (It isn''t 100% equivalent to MRI though since in MRI I can enumerate integers and ask if there is an object with that id. So I can get to objects for which object_id wasn''t called before.) You "become" a developer by submitting a patch on github. No need to talk to anybody :). Of course, it is better to let folks in this list know what you''re working on so that we don''t dup efforts. Tomas From: ironruby-core-bounces at rubyforge.org<mailto:ironruby-core-bounces at rubyforge.org> [mailto:ironruby-core-bounces at rubyforge.org]<mailto:[mailto:ironruby-core-bounces at rubyforge.org]> On Behalf Of Iulian Fecioru Sent: Tuesday, August 09, 2011 10:51 PM To: ironruby-core at rubyforge.org<mailto:ironruby-core at rubyforge.org> Subject: [Ironruby-core] ObjectSpace module Hello, I''ve wrote on http://ironruby.codeplex.com/workitem/6028 that the ObjectSpace module is not complete Comments from the issues above: " wrote Thu at 11:57 PM File.realpath is a Ruby 1.9 method we haven''t gotten to. We''re unable to implement those methods of ObjectSpace as we can''t track them ourselves as we don''t know when the CLR will garbage collect a specific object, and we don''t have access to a list of reachable objects. Renaming this issue to track File.realpath iulianfecioru wrote Fri at 8:27 AM>From the previous comment I understand that methods from ObjectSpace (_id2ref, count_objects.) will not be supported.Is this true?! PS: I''ve added _id2ref method to the ObjectSpace, so I think it is posible but is just my opinion ;) jimmysch wrote Fri at 4:50 PM How did you implement _id2ref in IronRuby? I''m 100% sure we can''t implement it without slowing down the entire runtime. ObjectSpace is a thin wrapper around MRI''s memory manager, while on the CLR we don''t have access to it. Therefore, it''s more MRI''s implementation detail than a general Ruby feature. And Ruby library writers already know not to use it if they want to run on all Ruby implementations. That being said, we could implement it poorly and require the user to turn it on if they want to use it (like JRuby does: http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_ObjectSpace), but I don''t see that as a priority feature. That being said, patches are welcome. If you want to discuss this further, let''s move this discussion to the mailing list (ironruby-core at rubyforge.org<mailto:ironruby-core at rubyforge.org>) or open a new feature request (http://ironruby.codeplex.com/WorkItem/Create). " I think jimmysch is right about the performance issues, but in my case I need to have the ObjectSpace.id2ref because we need to send the object IDs to native languages and retrieve the objects using this object IDs in IronRuby. I think that the JRuby solution (http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_ObjectSpace) should be in IronRuby. I''ve attached my own trick (I think it is a big performance issue). Maybe this could be done in a more better way and directly in IronRuby source code. Thank you! PS: I would like to become a developer in this project. With who should I talk?! Regards, ________________________________ Iulian Fecioru NAPA Romania SRL Lead Software Developer Brailei, 165b, 1 800310, Galati, Romania Mobile: +40-722-664027 Phone: +40-336-802182 Fax: +40-336-802185 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110816/0554f6c5/attachment.html>
Hello, Sorry for the late reply. Implementing directly in the libraries will involve adding some logic somewhere in something like RubyInstanceData (where ObjectID is implemented, I didn''t investigate in detail yet). We use this feature: object -> object_id -> object. Thank you! PS: When a new version of IronRuby will be released? Regards, Iulian Fecioru From: Tomas Matousek [mailto:Tomas.Matousek at microsoft.com] Sent: Tuesday, August 16, 2011 9:41 AM To: ironruby-core at rubyforge.org Subject: Re: [Ironruby-core] ObjectSpace module This is actually pretty good solution - it''s not harming perf of apps that don''t need the feature. Is there any real-world scenario that this doesn''t address? [Iulian Fecioru] I don''t understand the question Some app translating random integers to objects? [Iulian Fecioru] I don''t understand the question Until there is I''m not sure if it makes sense to go any further. What about implementing your approach directly in the libraries? Tomas From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Iulian Fecioru Sent: Monday, August 15, 2011 10:35 PM To: ironruby-core at rubyforge.org Subject: Re: [Ironruby-core] ObjectSpace module Hello, Thank you for your response. My implementation was a trick to make something working. I think I can do this more correctly and complete in the IronRuby core. I''ll try to implement this in IronRuby core, if nobody is against this. (Something like JRuby has implemented). Regards, Iulian Fecioru From: Tomas Matousek [mailto:Tomas.Matousek at microsoft.com] Sent: Wednesday, August 10, 2011 7:20 PM To: ironruby-core at rubyforge.org Subject: Re: [Ironruby-core] ObjectSpace module Your implementation of _id2ref might be a good enough approximation. (It isn''t 100% equivalent to MRI though since in MRI I can enumerate integers and ask if there is an object with that id. So I can get to objects for which object_id wasn''t called before.) You "become" a developer by submitting a patch on github. No need to talk to anybody J. Of course, it is better to let folks in this list know what you''re working on so that we don''t dup efforts. Tomas From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Iulian Fecioru Sent: Tuesday, August 09, 2011 10:51 PM To: ironruby-core at rubyforge.org Subject: [Ironruby-core] ObjectSpace module Hello, I''ve wrote on http://ironruby.codeplex.com/workitem/6028 that the ObjectSpace module is not complete Comments from the issues above: " wrote Thu at 11:57 PM File.realpath is a Ruby 1.9 method we haven''t gotten to. We''re unable to implement those methods of ObjectSpace as we can''t track them ourselves as we don''t know when the CLR will garbage collect a specific object, and we don''t have access to a list of reachable objects. Renaming this issue to track File.realpath iulianfecioru wrote Fri at 8:27 AM>From the previous comment I understand that methods from ObjectSpace(_id2ref, count_objects.) will not be supported. Is this true?! PS: I''ve added _id2ref method to the ObjectSpace, so I think it is posible but is just my opinion ;) jimmysch wrote Fri at 4:50 PM How did you implement _id2ref in IronRuby? I''m 100% sure we can''t implement it without slowing down the entire runtime. ObjectSpace is a thin wrapper around MRI''s memory manager, while on the CLR we don''t have access to it. Therefore, it''s more MRI''s implementation detail than a general Ruby feature. And Ruby library writers already know not to use it if they want to run on all Ruby implementations. That being said, we could implement it poorly and require the user to turn it on if they want to use it (like JRuby does: http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_Object Space), but I don''t see that as a priority feature. That being said, patches are welcome. If you want to discuss this further, let''s move this discussion to the mailing list (ironruby-core at rubyforge.org) or open a new feature request (http://ironruby.codeplex.com/WorkItem/Create). " I think jimmysch is right about the performance issues, but in my case I need to have the ObjectSpace.id2ref because we need to send the object IDs to native languages and retrieve the objects using this object IDs in IronRuby. I think that the JRuby solution (http://kenai.com/projects/jruby/pages/PerformanceTuning#Disabling_Objec tSpace) should be in IronRuby. I''ve attached my own trick (I think it is a big performance issue). Maybe this could be done in a more better way and directly in IronRuby source code. Thank you! PS: I would like to become a developer in this project. With who should I talk?! Regards, ________________________________ Iulian Fecioru NAPA Romania SRL Lead Software Developer Brailei, 165b, 1 800310, Galati, Romania Mobile: +40-722-664027 Phone: +40-336-802182 Fax: +40-336-802185 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110901/f80b1a49/attachment-0001.html>