Skip to content

Object-centric MetaLink integration. #2120

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jan 29, 2019
Merged

Object-centric MetaLink integration. #2120

merged 8 commits into from
Jan 29, 2019

Conversation

StevenCostiou
Copy link
Collaborator

  • Object-centric MetaLink
  • Permalinks
  • Object and Class API to install links (objects and classes)

Tests also added. Everything should be separated from the core, so features should be within their own private bubble.

]

{ #category : #'*Reflectivity' }
Object >> link: aMetaLink toAST: aNode [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you comment why methods on Object are required?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In most cases you delegate to target objects which is good. But why this Object methods are good idea?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea is to have an interface directly from objects to scope metalink to them instead of calling complex metalink API.

For instance: anObject link: metalink toAST: aNode
instead of: aNode link: metalink forObject: anObject

Same for classes.

The link:toAST: is the most generic interface that does not make assumptions on the kind of node it must install the link.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. I misunderstood it originally.
So anObject here is where metalink will be active. For other receivers metalink will be not executed for given ast-node. Right?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes :)

@Ducasse
Copy link
Member

Ducasse commented Dec 27, 2018

Steven can you have a look because some failing tests are
osx-32 / Tests-osx-32 / testCallToSuper – MacOSX32.Reflectivity.Tests.LinkInstallerTests

@StevenCostiou
Copy link
Collaborator Author

Steven can you have a look because some failing tests are
osx-32 / Tests-osx-32 / testCallToSuper – MacOSX32.Reflectivity.Tests.LinkInstallerTests

Where can i see the failing test, because in jenkins i do not see it and the test is green on my machine :'(

@Ducasse
Copy link
Member

Ducasse commented Dec 27, 2018

Click on Details (above) then on the Test in the "menu bar"

@StevenCostiou
Copy link
Collaborator Author

Thanks. Ok this is because of remaining metalinks on breakpoint test classes which are created and removed (by the test) from the system. Somehow metalinks are not uninstalled from those classes. See BreakpointTest>>newDummyClass. I will look at it.

@jecisc
Copy link
Member

jecisc commented Jan 3, 2019

I have the impression it's too late for Pharo 7. It should probably be rebased in Pharo 8.

@StevenCostiou
Copy link
Collaborator Author

OK. How do i do that? Note that the problem is not in this code, but is due to a metalink bug already in Pharo 7 (I need to report that bug...).

@astares
Copy link
Member

astares commented Jan 3, 2019

There is now a "Pharo7.0" branch and additionally also a "Pharo8.0" branch. You need to do a PR agains the P8 one.

@estebanlm
Copy link
Member

estebanlm commented Jan 3, 2019 via email

@StevenCostiou
Copy link
Collaborator Author

Should i do that now or can it wait next week? I would like to check with Marcus, but if this is urgent i can edit that today.

@Ducasse
Copy link
Member

Ducasse commented Jan 3, 2019

I do not see if this is just a better API to reflectivity why this cannot be added to P7?

@StevenCostiou
Copy link
Collaborator Author

Well all the PR code is in the "Reflectivity bubble", and should not affect the rest of the system. But three tests are failing because of a bug triggered by breakpoint tests executed before, for which i can provide a temporary fix in my code but i need to talk to Marcus for fixing the real bug - so it would have to wait next week... I will submit a bug today and a mailing list question. Thing is i understood it seemed to be rather urgent...

…ey were removed. In that case it tries to find a method which does not exists when uninstalling the link. The impact of this change is limited to Reflectivity, specifically the uninstallation of remaining links on obsolete classes.
…d that does not exist in the class on which it is supposed to be (class made obsolete with niled method dictionary)
@StevenCostiou
Copy link
Collaborator Author

There are no more errors in tests related to Reflectivity.

@guillep
Copy link
Member

guillep commented Jan 9, 2019

Still it's strange that there are 12 broken tests, when the pharo build is mostly green.

@guillep
Copy link
Member

guillep commented Jan 9, 2019

Also, if this is for Pharo7 you should open an issue in fogbugz related to it

@tesonep
Copy link
Collaborator

tesonep commented Jan 9, 2019

Hi @StevenCostiou does this have a related issue in fogbugz. How we can tested if it is working?
Are there new packages? or only updated old ones?

@StevenCostiou
Copy link
Collaborator Author

Yes, this is fogbugz 22830. There are no new packages, only update of the Reflectivity packages. The code can be loaded from this branch https://github.com/StevenCostiou/pharo/tree/22830-Object-centric-metalink-integration but tests are passing. I will try again a full Pharo test on my image.

@estebanlm estebanlm added this to the 8.0.0 milestone Jan 11, 2019
@Ducasse
Copy link
Member

Ducasse commented Jan 29, 2019

Failing tests are unrelated!

@Ducasse Ducasse merged commit 8005e22 into pharo-project:Pharo7.0 Jan 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants