Hi denis I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better. Now I do not understand why the following does not work. | env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses another question packageScope query: (ClyMessageSenders of: #(do: x)) It is returning all the senders of do: and the senders of x or returning all the sender of do: and x Stef
Hi 2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
Probably it is not implemented. Each scope should implement what can be retrieved from it. If something was not needed for browser implementation then it will not work. (I not implemented it). But try also with ClyLocalClassScope. I did little refactoring and it can be not reflected in any doc/comment.
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
Stef
Ok what is localClassScope? so may be we should rename it anyOf: On Fri, Sep 22, 2017 at 9:54 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
Hi
2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
Probably it is not implemented. Each scope should implement what can be retrieved from it. If something was not needed for browser implementation then it will not work. (I not implemented it).
But try also with ClyLocalClassScope. I did little refactoring and it can be not reflected in any doc/comment.
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
Stef
2017-09-23 7:54 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Ok what is localClassScope?
From LocalClassScope you will see only things which are defined in class itself.
There are also ClassHierarchyScope subclasses. They show you all things which are visible from related classes depending on what type of hierarchy they represent (there are ClySubclassScope, ClyInheritedTraitScope, etc). I will add this notes to class comments. Before I introduced ClassHierarchyScope there was only ClassScope (with instance side and class side subclasses). Then I extract LocalClassScope.
so may be we should rename it anyOf:
I not understand it.
On Fri, Sep 22, 2017 at 9:54 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
Hi
2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
Probably it is not implemented. Each scope should implement what can be retrieved from it. If something was not needed for browser implementation then it will not work. (I not implemented it).
But try also with ClyLocalClassScope. I did little refactoring and it can be not reflected in any doc/comment.
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
Stef
anyOf: means senders of any of the following message = or because of: with a list could mean that you expect to find the senders of all the message in the list. Am I clear? Stef On Sat, Sep 23, 2017 at 10:37 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2017-09-23 7:54 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Ok what is localClassScope?
From LocalClassScope you will see only things which are defined in class itself.
There are also ClassHierarchyScope subclasses. They show you all things which are visible from related classes depending on what type of hierarchy they represent (there are ClySubclassScope, ClyInheritedTraitScope, etc).
I will add this notes to class comments.
Before I introduced ClassHierarchyScope there was only ClassScope (with instance side and class side subclasses). Then I extract LocalClassScope.
so may be we should rename it anyOf:
I not understand it.
On Fri, Sep 22, 2017 at 9:54 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
Hi
2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
Probably it is not implemented. Each scope should implement what can be retrieved from it. If something was not needed for browser implementation then it will not work. (I not implemented it).
But try also with ClyLocalClassScope. I did little refactoring and it can be not reflected in any doc/comment.
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
Stef
2017-09-24 9:15 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
anyOf: means senders of any of the following message = or
because of: with a list could mean that you expect to find the senders of all the message in the list.
Am I clear?
Yes. But is it good english to say "Senders anyOf: #(do: x)"? Should not it be "Senders ofAny: #(do x)"?
Stef
On Sat, Sep 23, 2017 at 10:37 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2017-09-23 7:54 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Ok what is localClassScope?
From LocalClassScope you will see only things which are defined in class itself.
There are also ClassHierarchyScope subclasses. They show you all things which are visible from related classes depending on what type of hierarchy they represent (there are ClySubclassScope, ClyInheritedTraitScope, etc).
I will add this notes to class comments.
Before I introduced ClassHierarchyScope there was only ClassScope (with instance side and class side subclasses). Then I extract LocalClassScope.
so may be we should rename it anyOf:
I not understand it.
On Fri, Sep 22, 2017 at 9:54 PM, Denis Kudriashov <dionisiydk@gmail.com
wrote:
Hi
2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com :
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way
to
force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
Probably it is not implemented. Each scope should implement what can be retrieved from it. If something was not needed for browser implementation then it will not work. (I not implemented it).
But try also with ClyLocalClassScope. I did little refactoring and it can be not reflected in any doc/comment.
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
Stef
On Mon, Sep 25, 2017 at 3:58 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2017-09-24 9:15 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
anyOf: means senders of any of the following message = or
because of: with a list could mean that you expect to find the senders of all the message in the list.
Am I clear?
Yes. But is it good english to say "Senders anyOf: #(do: x)"? Should not it be "Senders ofAny: #(do x)"?
The second sounds more natural. cheers -ben
Stef
On Sat, Sep 23, 2017 at 10:37 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2017-09-23 7:54 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Ok what is localClassScope?
From LocalClassScope you will see only things which are defined in class itself.
There are also ClassHierarchyScope subclasses. They show you all things which are visible from related classes depending on what type of hierarchy they represent (there are ClySubclassScope, ClyInheritedTraitScope, etc).
I will add this notes to class comments.
Before I introduced ClassHierarchyScope there was only ClassScope (with instance side and class side subclasses). Then I extract LocalClassScope.
so may be we should rename it anyOf:
I not understand it.
On Fri, Sep 22, 2017 at 9:54 PM, Denis Kudriashov <
dionisiydk@gmail.com>
wrote:
Hi
2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com :
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way
to
force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
Probably it is not implemented. Each scope should implement what can be retrieved from it. If something was not needed for browser implementation then it will not work. (I not implemented it).
But try also with ClyLocalClassScope. I did little refactoring and it can be not reflected in any doc/comment.
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
Stef
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
This logic was needed to support "Senders button" when multiple methods are selected. I think it is expected behaviour in that case.
Stef
On Sat, Sep 23, 2017 at 10:56 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
This logic was needed to support "Senders button" when multiple methods are selected. I think it is expected behaviour in that case.
Yes but this is not when you read the code packageScope query: (ClyMessageSenders of: #(do: x)) packageScope query: (ClyMessageSenders anyOf: #(do: x)) is much clearer because it means what it does. stef One day you should try to write documentation on something that you should reverse engineer first and you will see. Nothing is clear.
Stef
What is the relationship between a cursor and ClyEnvironmentContent and ClyEnvironment? On Sun, Sep 24, 2017 at 9:16 AM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
On Sat, Sep 23, 2017 at 10:56 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
This logic was needed to support "Senders button" when multiple methods are selected. I think it is expected behaviour in that case.
Yes but this is not when you read the code
packageScope query: (ClyMessageSenders of: #(do: x))
packageScope query: (ClyMessageSenders anyOf: #(do: x))
is much clearer because it means what it does.
stef
One day you should try to write documentation on something that you should reverse engineer first and you will see. Nothing is clear.
Stef
2017-09-24 9:30 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
What is the relationship between a cursor and ClyEnvironmentContent and ClyEnvironment?
If you are asking about ClyNavigationEnvironment then it is kind of facade to query the system. It is responsible to select specific scope of environment. And it maintains cache for them. scope := ClySystemNavigationEnvironment selectScope: ClyPackageScope of: {Object package} Concrete kind of environment represents concrete kind of system. ClySystemNavigationEnvironment represents general Pharo system. With scope you evaluate queries: cursor := scope query: (ClyMessageSenders of: #(do:)_. And cursor provides enumeration interface to items of query result where result itself is an instance of concrete type of ClyEnvironmentContent. So cache of ClyNavigationEnvironment has multiple scopes. Every scope instance has cache of multiple ClyEnvironmentContent instances. Each content knows in what scope it was built and what environment it represents (and also what query built it). Cursor instance references single environment content instance. You can have multiple cursors which point to same environment content instance. Is it clear?
On Sun, Sep 24, 2017 at 9:16 AM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
On Sat, Sep 23, 2017 at 10:56 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
It returns methods which sent #do: or #x
This logic was needed to support "Senders button" when multiple methods
are
selected. I think it is expected behaviour in that case.
Yes but this is not when you read the code
packageScope query: (ClyMessageSenders of: #(do: x))
packageScope query: (ClyMessageSenders anyOf: #(do: x))
is much clearer because it means what it does.
stef
One day you should try to write documentation on something that you should reverse engineer first and you will see. Nothing is clear.
Stef
And give me the link to the chapter 2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
Stef
Denis you should draw an UML of the classes and their responsibilities because it is unclear to me what is ClyEnvironmentContent and how it relates to ClyEnvironmentCursor The project is Booklet-Infrastructure. I started to rewrite the Calypso chapter. Stef On Fri, Sep 22, 2017 at 9:55 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
And give me the link to the chapter
2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
Stef
2017-09-23 8:00 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Denis you should draw an UML of the classes and their responsibilities
Sure. I will made another pass on model when I will work on scoped refactoring. Then I can work on better docs.
because it is unclear to me what is ClyEnvironmentContent and how it relates to ClyEnvironmentCursor
The content is a query result. It is first class collection of result items. And the cursor is an iterator for it. Maybe it is a time for renames. When I started I thought about content classes differently.
The project is Booklet-Infrastructure. I started to rewrite the Calypso chapter. Stef
On Fri, Sep 22, 2017 at 9:55 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
And give me the link to the chapter
2017-09-22 20:41 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi denis
I'm doing a pass on the architecture of calypso chapter :) as a way to force me to understand it better.
Now I do not understand why the following does not work.
| env classScope | env := ClySystemNavigationEnvironment currentImage. classScope := env selectScope: ClyClassScope of: {Point. Collection}. classScope allClasses
another question
packageScope query: (ClyMessageSenders of: #(do: x))
It is returning all the senders of do: and the senders of x or returning all the sender of do: and x
Stef
participants (3)
-
Ben Coman -
Denis Kudriashov -
Stephane Ducasse