Dear Marcus, I am following your progresses on Reflectivity and Iâd like to start with a big: THANK YOU! Having said that, I am wondering whether this is a good point in which I can try (as an alpha tester :) to use it. What I need to achieve is something similar to a method wrapper, i.e., some code that gets executed before or after a particular method call. Is something doable at this point? Could you _please_ provide me pointers where to look to understand the Reflectivity framework? Cheers and thanks in advance, Roberto
Hello, sorry for answering late⦠last week was less productive than I hoped. There is not yet any documentation as I am busy actually implementing things. What I am working on now (that is, last week) was how to pass parameters to the meta. I now have a design that should work. (things are more difficult as I want to make sure that the mapping between the AST and the text stays correctâ¦) What you can do already is a #before on a whole method *if* that method is not a primitive method (which will work eventually, too). e.g. | sendNode link | sendNode := (ReflectivityExamples>>#exampleMethod) ast. link := MetaLink new metaObject: Transcript; selector: #show:; arguments: #(object). sendNode link: link. now execute: ReflectivityExamples new exampleMethod. What is missing (working on it) 1) #after. This needs to wrap the AST of the method in an #ensure: (Here we need to take care to keep the mapping AST <-> text intactâ¦) 2) promitives. Wrap the compiled Method. 3) pass information to the meta. Right now just #object and #node works. #arguments is the most complex and important. I am working on all this⦠the next I want to get working is the argument passing. Marcus
On 03 Jun 2015, at 16:23, roberto.minelli@usi.ch wrote:
Dear Marcus,
I am following your progresses on Reflectivity and Iâd like to start with a big: THANK YOU!
Having said that, I am wondering whether this is a good point in which I can try (as an alpha tester :) to use it.
What I need to achieve is something similar to a method wrapper, i.e., some code that gets executed before or after a particular method call.
Is something doable at this point? Could you _please_ provide me pointers where to look to understand the Reflectivity framework?
Cheers and thanks in advance, Roberto
2015-06-08 10:17 GMT-03:00 Marcus Denker <marcus.denker@inria.fr>:
Hello,
sorry for answering late⦠last week was less productive than I hoped. There is not yet any documentation as I am busy actually implementing things.
There is my blog <https://clariallende.wordpress.com/>, with a little bit of documentation, but not up-to-date :( . Anyway, if your intention is to get some insight on what reflectivity is, and get a short and *very simplified* explanation of how it works, you can start there. HTH
What I am working on now (that is, last week) was how to pass parameters to the meta. I now have a design that should work. (things are more difficult as I want to make sure that the mapping between the AST and the text stays correctâ¦)
What you can do already is a #before on a whole method *if* that method is not a primitive method (which will work eventually, too).
e.g.
| sendNode link |
sendNode := (ReflectivityExamples>>#exampleMethod) ast. link := MetaLink new metaObject: Transcript; selector: #show:; arguments: #(object). sendNode link: link.
now execute:
ReflectivityExamples new exampleMethod.
What is missing (working on it)
1) #after. This needs to wrap the AST of the method in an #ensure: (Here we need to take care to keep the mapping AST <-> text intactâ¦) 2) promitives. Wrap the compiled Method. 3) pass information to the meta. Right now just #object and #node works. #arguments is the most complex and important.
I am working on all this⦠the next I want to get working is the argument passing.
Marcus
On 03 Jun 2015, at 16:23, roberto.minelli@usi.ch wrote:
Dear Marcus,
I am following your progresses on Reflectivity and Iâd like to start with a big: THANK YOU!
Having said that, I am wondering whether this is a good point in which I can try (as an alpha tester :) to use it.
What I need to achieve is something similar to a method wrapper, i.e., some code that gets executed before or after a particular method call.
Is something doable at this point? Could you _please_ provide me pointers where to look to understand the Reflectivity framework?
Cheers and thanks in advance, Roberto
On 08 Jun 2015, at 15:44, Clara Allende <clari.allende@gmail.com> wrote:
2015-06-08 10:17 GMT-03:00 Marcus Denker <marcus.denker@inria.fr <mailto:marcus.denker@inria.fr>>: Hello,
sorry for answering late⦠last week was less productive than I hoped. There is not yet any documentation as I am busy actually implementing things.
There is my blog <https://clariallende.wordpress.com/>, with a little bit of documentation, but not up-to-date :( . Anyway, if your intention is to get some insight on what reflectivity is, and get a short and *very simplified* explanation of how it works, you can start there.
Itâs clear that we need good documentation.. but I want to first have a final version of the implementation⦠with all the details fixed⦠like always, progress is slower than anticipated. I try to block as much time as possible for the rest of the month to get it done. Marcus
participants (3)
-
Clara Allende -
Marcus Denker -
roberto.minelli@usi.ch