Anonymous | Login | Signup for a new account | 11-14-2014 01:18 UTC | Project: |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0004544 | [Squeak] Kernel | major | always | 08-14-06 05:54 | 12-19-12 13:46 | ||||
Reporter | wiz | View Status | public | ||||||
Assigned To | |||||||||
Priority | normal | Resolution | duplicate | ||||||
Status | closed | Product Version | 3.9 | ||||||
Summary | 0004544: In 7054 there are 194 unimplementedCalls including some that look like they might be important | ||||||||
Description |
For a browser with the list evaluate in a workspace: SystemNavigation default browseAllUnimplementedCalls |
||||||||
Additional Information |
The long list I've uploaded as a file. See Mantis 0004531 for one example of big problems in this list. #newHashFor: is also no where implemented and is called by methods in Object that have a lot of callers themselves. So I would suggest looking at the list and doing triage. |
||||||||
Attached Files |
sq7054UnImplementedCalls.text [^] (9,554 bytes) 08-14-06 05:54 7054unimp - old6665unimp.text [^] (1,746 bytes) 08-20-06 00:10 7054 - 6665unimpAnnotedA-H.text [^] (3,382 bytes) 08-20-06 02:09 7054 - 6665unimpAnnotedA-Z.text [^] (6,040 bytes) 08-20-06 04:08 unimpList-wiz.1.text [^] (1,587 bytes) 10-16-06 07:57 UnimpList8.text [^] (1,729 bytes) 11-05-06 07:21 |
||||||||
|
Relationships | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Notes | |
(0006613 - 791 - 851 - 851 - 851 - 851 - 851) wiz 08-14-06 06:10 |
Reminder sent to: MarcusDenker, ScottWallace, stef Hi Scott, Scott thanks for the quick response. See what its found. Hi Marcus and Stef, Here are results from my query. Some missing methods look like they may be harmless. Others not so. And of course there is the first bug that started this line of inquiry. Yours in service, -- Jerome Peace (personal note: Just after I sent my post to squeak-dev I started having problems with my email account (I opened a piece of spam I should have left alone and the browser I used for email crashed. My yahoo account has become hard to access at least for now. It may clear up in a day but probably it will take longer. I can obviously send reminders via mantis but my ability to converse on squeak-dev or personally is going to be limited till I find out whats wrong and fix it.) |
(0006620 - 143 - 143 - 143 - 143 - 143 - 143) pmm 08-14-06 11:26 |
Yeah, and if you install the TraitsBrowser you will see, that most classes (if not all) in Squeak are abstract. This of course includes Object. |
(0006656 - 830 - 920 - 920 - 920 - 920 - 920) wiz 08-15-06 07:01 |
Hi pmm, Thanks for your interest. And... Huh? I don't see what you are getting at with your comment. Is it relevant to this report or is it something that deserves its own topic (i.e. report?) The thrust of this report is that you will have strange behavior that affects the use of the system if unimplemented messages are called. Since they are findable they should be looked at and either fixed or joined to their appropriate package and removed from any image we wish to label releasable (i.e. gamma). Is what the Traits Browser is doing a show stopper??? Or just something that needs to be fixed for the sake of the Traits Browser? Do you have anything relevant to add to the clearing up of the problem presented in this report? Thanks for your consideration of this. Yours in service, -- Jerome Peace |
(0006657 - 349 - 385 - 385 - 385 - 385 - 385) wiz 08-15-06 07:07 |
I found other things worth trying SystemNavigation default unimplemented explore that gives a presentation of the missing method names followed by their callers. ( I got a count of 187 from this which would be the number of missing methods. 194 is the number of methods that call them.) I wonder what the previous releases 3.8 and 3.7 show. |
(0006659 - 73 - 73 - 73 - 73 - 73 - 73) pmm 08-15-06 08:06 |
Well TraitsBrower shows you all the unimplemented self sends for a class. |
(0006676 - 870 - 967 - 967 - 967 - 967 - 967) MarcusDenker 08-16-06 09:43 |
Hi, as you can see with the associated (now closed) duplicate, this issue has been reported month ago. The problem is: Not many people care about these things enough to help fixing them. We harvested a bunch a fixed that cleaned up unimplemented sends... but a lot need to be done. Squeak is a *huge* pile of very messy mess... there is no way to ship any realease if we require everything to be fixed. 3.9 will go live with 320 open bugreports, >25 failing tests and a lot of mess that nobody had the energy to clean up. Isn't it interesting that in our Smalltalk course, it just takes a couple of lectures before the students realise "Hey, this is a mess"... the real sad thing is of course that we didn't improve over 10 years... or worse: Most of the older Smalltalkers did not even realise over the last 10 years of Squeak that there is a problem. |
(0006686 - 1250 - 1322 - 1322 - 1322 - 1322 - 1322) wiz 08-17-06 08:30 |
Hi Marcus, I sympathize with your sentiment about not being able to ship any thing if everything needs to be cleaned up first. And 3.9 has been an add and absorb iteration. You've put my stuff with polygons, stubs of Ned's connector stuff, traits, omnibrowser and smalland. 3.8 added Internationalization and started to add andreas's UI structures. 3.7 was an add on phase. and it takes going back a while before one sees any digestive phase. My original thought was that 3.10 should be a strict refactoring and simplifiing step and 3.11 a strick bug fix (and simplify step.) Get some of these thing fixed before adding more clutter and more code that has to get aroung the broken stuff. The open bug reports are a good sign not a sign of failure. Any efficient effort will add to the list of things to be done. even as things get taken care of. (because that can always happen faster and with less effort than the fixing). You did a yeomans job of harvesting things, And that care and effort make you a hero in my book. It makes it worth the effort to continue to find and solve bugs. I am happy to follow my curiosity in finding bugs and their fixes. I see use in that even if things can't be made perfect immediately. |
(0006687 - 1046 - 1194 - 1194 - 1194 - 1194 - 1194) wiz 08-17-06 08:47 |
Now back to the topic. Historical research gives the following trend 3.7 (5976) 170 unimplemented 3.8 (6665) 176 " 3.9 (7054) 187 " So the next step is to find out which are the new ones. then to decide if they are intentional (zork's ) , harmless ( pieces of packages not in basic) or ticking timebombs. It would also be good to split the 187 list into a bunch of different lists each with there own reason for being present. With those list available for filtering we could come up with a test for new unimplemented called methods and stomp them early. Third iteration start moving the callers of each list into appropriate packages and remove them from the releasable image. Hi pmm, Can you get the traits browser to collect printable lists of these umimplemented call to self? Would that be useful to add to this report and analysis? Are the number of unimplemented methods similar to what I am getting from the system navigator or do you get substatially more or less? Yours in service, -- Jerome Peace |
(0006744 - 444 - 516 - 516 - 516 - 516 - 516) wiz 08-20-06 00:09 edited on: 08-20-06 00:18 |
More: There are 77 unimplemented callees in 7054 that were not in 6665 (or 5976). Some of them imply that some cleanup is inorder. The good news is that eliminating the 5976 unimplemented from this list leaves it unchanged. So the differences are fully explained by comparing the two most recent versions. So I've started to do that. And found immediately one that is my responsibility. More individual reports will follow. |
(0006745 - 1689 - 1939 - 1939 - 2056 - 2056 - 2056) wiz 08-20-06 02:26 edited on: 08-20-06 04:10 |
7054 - 6665unimpAnnotedA-H.text is a partially annotated list. 7054 - 6665unimpAnnotedA-z.text is a fully annotated list. I went thru a-z and tracked down the reasons for the unimplemented calls. The main "timebombs" are there due to the ffi removal and the loss of ExternalType methods. MC and SM are also reasons for unimplemented calls. I found two that were my responsibility (see mantis 0004609 for fixes) Many unimplemented methods had just one caller. The way to track and annotate became. -Select method from list (the list is in a workspace) -Cmd-n to browse senders -If one sender browse versions -Use halos to focus on the list item till I'm down to the lazylist. -get the inspector for this via the debug halo handle -select the listitems and copy the annotation. -close the now unneed browsers -post the annotation as a comment next to the unimplemented method name (in the workspace) The version annotation is important to me because it also indicates a programmer who may wish to take responsibility for cleaning up the unimplemented calls. If the annotation looks old enough to be in 6665 I look for an implementaion of the method in a 6665 image. (I have two images up at the same time to make this easier.) When the list is gone thru we can start writing more reports to focus on each catagory. Also if someone can figure a good way to automatically generate the version annotations and format a good looking report on all of the unimplemented calls that would be helpful. (Post general findings to this report). Yours in service, --Jerome Peace P.S. I mentioning all this because it would be nice to get some help. |
(0007581 - 1831 - 4098 - 4098 - 4098 - 4098 - 4098) wiz 10-05-06 04:39 |
The following is a way to split up the unimplementeds by selecting out phrases from the 'Class>method' strings. I have been using this on 7061 and have whittled the list from 194 down to around 50 or so. Finding some fixes and candidates for removal along the way. To save time I will usually define unimp only once (or after I have done a fixup or deletion). Then play around with the phrases to get a split. The select the last item in unimpList and explore it to find more pharses. Iterate. The idea is to eliminate of have a good explanation for everything in the list. This is preliminary progress. The phases and phase order are in flux. Feel free to play. The object is to be able to focus on the ones that need fixup attention. unimp := SystemNavigation default unimplemented . [ [ :list | unimpList := OrderedCollection new add: unimp ; yourself . list do: [ :phrase | | remaining | remaining := unimpList removeLast . unimpList add: (remaining select: [ :each | each value anySatisfy: [ :each1 | each1 includesSubstring: phrase caseSensitive: false ] ]) ; add:( remaining reject: [ :each | each value anySatisfy: [ :each1 | each1 includesSubstring: phrase caseSensitive: false ] ] ) ] ] value: { '>ccg:' "primitives from vmmaker" . 'test' "test case temp ivars" . 'Kedama' "there are a lot of these" . 'BalloonE' "Balloon engine" . 'SAR' . 'parse' . 'para' "paragraph" . 'hand' . 'SM' "Lots due to squeak map" . 'MC' . 'bob1' "a couple alignment morph" . 'Transfer' . 'fog' "Player stuff i wonder what fog was used for?" . 'Form' . 'menu' . 'transla' . 'tile' . 'dict' "Memory Hogs is not used see mantis" . 'simula' } . unimpList explore . ] |
(0007696 - 583 - 694 - 694 - 694 - 694 - 694) wiz 10-16-06 08:04 edited on: 10-16-06 08:07 |
Uploaded unimpList-wiz.1.text. This is the latest iteration of the list splitting code Load this into a working Workspace. Evaluate the first line once. Then evaluate everything between the following pair of brakets. An explorer will pop up with list of dictionary entries followed by the text phrase used to split off that piece and the number of entries in that split off piece. Edit the list of phrases to refine the splits. And please tackle any unimplemented's you think you can find solutions to. Place the remedies on Mantis. Thanks for your help. |
(0008061 - 614 - 769 - 769 - 769 - 769 - 769) wiz 11-05-06 07:37 edited on: 01-27-07 05:38 |
Uploaded UnimpList8.text This contains the most recent iteration of the spliting code. After each split the collection contains: the count of what remained before the split the phrase used to isolate the split the number of entries split off. Copy the text into a workspace. Evaluate the first line once. Then evaluate everything between the following pair of brackets. modify the list of phrases as desired. examine the resulting explorer. Yours in service, --Jerome Peace PS. For the ones I've tackled you can find reports on mantis. Go to view issues and search on 'unimp' |
(0009231 - 626 - 698 - 698 - 698 - 698 - 698) wiz 01-27-07 05:37 |
Ok. Now that Ralph has pointed out this report on squeak-dev I need to add a couple of things. First I am not actively persuing the clean up at the present time. So there is opprotunity and a need for other contributions. 1) A sunit tests need to be from the UnimpList probes. 2) The unimplemented themselves need to be looked at and a way of getting rid of them found. If you add reports to mantis they will get connected to this one. And slightly off topic. 3) There probably needs to be a similar probe for the unsent messages. Anyone want to help. (If so just dig in.) Yours in service, --Jerome Peace |
(0014266 - 35 - 35 - 35 - 191 - 191 - 191) FrankShearar 12-19-12 13:46 |
See 0007481 for the up to date issue. |
Issue History | |||
Date Modified | Username | Field | Change |
08-14-06 05:54 | wiz | New Issue | |
08-14-06 05:54 | wiz | File Added: sq7054UnImplementedCalls.text | |
08-14-06 06:10 | wiz | Issue Monitored: MarcusDenker | |
08-14-06 06:10 | wiz | Issue Monitored: ScottWallace | |
08-14-06 06:10 | wiz | Issue Monitored: stef | |
08-14-06 06:10 | wiz | Note Added: 0006613 | |
08-14-06 10:25 | MarcusDenker | Relationship added | has duplicate 0002101 |
08-14-06 11:26 | pmm | Note Added: 0006620 | |
08-15-06 07:01 | wiz | Note Added: 0006656 | |
08-15-06 07:07 | wiz | Note Added: 0006657 | |
08-15-06 08:06 | pmm | Note Added: 0006659 | |
08-16-06 09:43 | MarcusDenker | Note Added: 0006676 | |
08-17-06 08:30 | wiz | Note Added: 0006686 | |
08-17-06 08:47 | wiz | Note Added: 0006687 | |
08-20-06 00:09 | wiz | Note Added: 0006744 | |
08-20-06 00:10 | wiz | File Added: 7054unimp - old6665unimp.text | |
08-20-06 00:18 | wiz | Note Edited: 0006744 | |
08-20-06 02:09 | wiz | File Added: 7054 - 6665unimpAnnotedA-H.text | |
08-20-06 02:26 | wiz | Note Added: 0006745 | |
08-20-06 04:08 | wiz | File Added: 7054 - 6665unimpAnnotedA-Z.text | |
08-20-06 04:10 | wiz | Note Edited: 0006745 | |
09-04-06 18:28 | JTS | Issue Monitored: JTS | |
10-05-06 04:39 | wiz | Note Added: 0007581 | |
10-16-06 07:57 | wiz | File Added: unimpList-wiz.1.text | |
10-16-06 08:04 | wiz | Note Added: 0007696 | |
10-16-06 08:07 | wiz | Note Edited: 0007696 | |
11-05-06 07:21 | wiz | File Added: UnimpList8.text | |
11-05-06 07:37 | wiz | Note Added: 0008061 | |
01-20-07 05:53 | wiz | Relationship added | parent of 0004609 |
01-20-07 05:58 | wiz | Relationship added | parent of 0005361 |
01-20-07 06:03 | wiz | Relationship added | parent of 0005285 |
01-20-07 06:04 | wiz | Relationship added | related to 0005178 |
01-20-07 06:04 | wiz | Relationship added | parent of 0005176 |
01-20-07 06:05 | wiz | Relationship replaced | parent of 0005178 |
01-20-07 06:06 | wiz | Relationship added | parent of 0005175 |
01-20-07 06:07 | wiz | Relationship added | parent of 0004952 |
01-20-07 06:08 | wiz | Relationship added | parent of 0004610 |
01-27-07 05:37 | wiz | Note Added: 0009231 | |
01-27-07 05:38 | wiz | Note Edited: 0008061 | |
12-19-12 13:46 | FrankShearar | Status | new => closed |
12-19-12 13:46 | FrankShearar | Note Added: 0014266 | |
12-19-12 13:46 | FrankShearar | Resolution | open => duplicate |
Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
170 total queries executed. 84 unique queries executed. |