--===-=-=
Hello,
Are you getting tired to create unnecessary file outs when all you want to do is to take a look at the code in another image and to see the diffs? Here is what you can do.
* File in the attachment, * Open a FileList, * Select a .image file and choose 'browse in ImageBrowser' from the FileList menu, * Open the menu at the class pane of the ImageBrowser, * Choose 'add classes to list' and type the name of classes yo want to see.
From a help from InterpreterSimulator, the ImageBrowser reads the source pointers stored in the CompiledMethods in the image file, and get the code from its accompanying .change file. (All file operations are done in 'read only mode'. So, don't worry about breaking your image file.)
The convenient functions inherited from FileContentsBrowser, such as 'remove unmodified categories' are there, too.
ImageBrowser works for M17n images as well.
I happened to notice the recent discussion about 'Diff between two change sets'. This ImageBrowser helps you to get diff between two images:-) Hooking up the internal machinary of this one with Bob's Comparison Browser would be interesting, (although I couldn't find an image to test it.)
Let me know any suggestions and comments,
-- Yoshiki
P.S. My email address has changed.
--===-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=ImageBrowser.cs.gz Content-Transfer-Encoding: base64
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 --===-=-=--
--=-=-=
Hi Yoshiki,
This is a cool idea. Thanks.
I guess this tool only works on image of the same version and with a change set only.
It would be nice if I can use it to browse a headless image with no source and change.
Is it doable ? Would you consider that as a feature request.
Cheers,
PhiHo.
----- Original Message ----- From: Yoshiki.Ohshima@acm.org To: "Steve Elkins" sgelkins@bellsouth.net; cg@cdegroot.com; evan@telemessage.co.za Sent: Thursday, October 31, 2002 12:03 PM Subject: [ENH] Image Browser: for browsing code in the other .image file
Hello,
Are you getting tired to create unnecessary file outs when all you want to do is to take a look at the code in another image and to see the diffs? Here is what you can do.
- File in the attachment,
- Open a FileList,
- Select a .image file and choose 'browse in ImageBrowser' from the
FileList menu,
- Open the menu at the class pane of the ImageBrowser,
- Choose 'add classes to list' and type the name of classes yo want to
see.
From a help from InterpreterSimulator, the ImageBrowser reads the source pointers stored in the CompiledMethods in the image file, and get the code from its accompanying .change file. (All file operations are done in 'read only mode'. So, don't worry about breaking your image file.)
The convenient functions inherited from FileContentsBrowser, such as 'remove unmodified categories' are there, too.
ImageBrowser works for M17n images as well.
I happened to notice the recent discussion about 'Diff between two change sets'. This ImageBrowser helps you to get diff between two images:-) Hooking up the internal machinary of this one with Bob's Comparison Browser would be interesting, (although I couldn't find an image to test it.)
Let me know any suggestions and comments,
-- Yoshiki
P.S. My email address has changed.
PhiHo,
I guess this tool only works on image of the same version and with a
change set only.
No, no, there is nothing that depends on specifically 3.2 or even 3.x, except a line in #openSourceFilesForImage: which specifies the .sources file name. As long as corresponding .changes exists, it should be possible to load V2 image onto V3 and vice versa.
I don't quite get what you mean by "with a change set," but that the way it works.
It would be nice if I can use it to browse a headless image with no
source and change.
Yes.
Is it doable ? Would you consider that as a feature request.
If you look at the class comment of ImageBrowser, you'll find the answer:-)
I think it is not actually that hard. All you have to do is to write a modified version of InstructionStream and Decompiler which access the bytes and bits through the interpreter simulator's #longAt: and #fetchPointer:ofObject: and alike. The bytecodes are just same byte value. The literals have to be located in the simulated image, but it should be too hard.
-- Yoshiki
P.S. PhiHo, if you are going to reply my email, please include the entire part of this message. I still have a suspision that this one won't go through the normal channel. Thank you,
Yoshiki,
I guess this tool only works on image of the same version and with a
change set only.
No, no, there is nothing that depends on specifically 3.2 or even 3.x, except a line in #openSourceFilesForImage: which specifies the .sources file name. As long as corresponding .changes exists, it should be possible to load V2 image onto V3 and vice versa.
I have quite a few of 1.x and 2.x and 3.x images on my machines (with full source and changes files) only the 3.x work as expected.
I don't quite get what you mean by "with a change set," but that the way it works.
Sorry, I meant .changes file. :-)
Is it doable ? Would you consider that as a feature request.
If you look at the class comment of ImageBrowser, you'll find the answer:-)
Just read it and got all that I want to know ;-)
Thanks for the tips, Yoshiki.
Cheers,
PhiHo
PS:
P.S. PhiHo, if you are going to reply my email, please include the entire part of this message. I still have a suspision that this one won't go through the normal channel. Thank you,
I received only 1 copy of your mail, so assumingly it did not get to the list.
----- Original Message ----- From: Yoshiki.Ohshima@acm.org To: squeak-dev@lists.squeakfoundation.org Cc: "PhiHo Hoang" phiho.hoang@rogers.com; sgelkins@bellsouth.net; cg@cdegroot.com; evan@telemessage.co.za Sent: Friday, November 01, 2002 4:06 AM Subject: Re: [ENH] Image Browser: for browsing code in the other .image file
PhiHo,
I guess this tool only works on image of the same version and with a
change set only.
No, no, there is nothing that depends on specifically 3.2 or even 3.x, except a line in #openSourceFilesForImage: which specifies the .sources file name. As long as corresponding .changes exists, it should be possible to load V2 image onto V3 and vice versa.
I don't quite get what you mean by "with a change set," but that the way it works.
It would be nice if I can use it to browse a headless image with no
source and change.
Yes.
Is it doable ? Would you consider that as a feature request.
If you look at the class comment of ImageBrowser, you'll find the answer:-)
I think it is not actually that hard. All you have to do is to write a modified version of InstructionStream and Decompiler which access the bytes and bits through the interpreter simulator's #longAt: and #fetchPointer:ofObject: and alike. The bytecodes are just same byte value. The literals have to be located in the simulated image, but it should be too hard.
-- Yoshiki
P.S. PhiHo, if you are going to reply my email, please include the entire part of this message. I still have a suspision that this one won't go through the normal channel. Thank you,
Hello,
I guess this tool only works on image of the same version and with a
change set only.
No, no, there is nothing that depends on specifically 3.2 or even 3.x, except a line in #openSourceFilesForImage: which specifies the .sources file name. As long as corresponding .changes exists, it should be possible to load V2 image onto V3 and vice versa.
I have quite a few of 1.x and 2.x and 3.x images on my machines (with full source and changes files) only the 3.x work as expected.
I actually hadn't tried^^;, but you can load 2.x image onto 3.x image, once you change the #openSourceFilesForImage method, right?
To load 3.x image onto 2.x image, which sounds more useful than the opposide, requires some tweak.
The best approach would be to add a flag that tells which version (loaded image or loading image) should be treated as the "base" one and which is "new". Then we wouldn't have to worry about making different versions of ImageBrowsers or back porting FileContentsBrowser to the older images.
-- Yoshiki
PS:
P.S. PhiHo, if you are going to reply my email, please include the entire part of this message. I still have a suspision that this one won't go through the normal channel. Thank you,
I received only 1 copy of your mail, so assumingly it did not get to the list.
I'm sending this with my ISP account's From: line to see if the From: line is all that matters... Thank you for all of your helps,
Yoshiki,
I actually hadn't tried^^;, but you can load 2.x image onto 3.x image, once you change the #openSourceFilesForImage method, right?
I can load 2.8 image without changing the #openSourceFilesForImage method.
Only when I add class, then there is a problem. Please find attached log file.
To load 3.x image onto 2.x image, which sounds more useful than the opposide, requires some tweak.
An image editor is even more useful ;-)
Cheers,
PhiHo.
----- Original Message ----- From: "Yoshiki Ohshima" fwjg7834@mb.infoweb.ne.jp To: squeak-dev@lists.squeakfoundation.org Cc: "PhiHo Hoang" phiho.hoang@rogers.com; sgelkins@bellsouth.net Sent: Friday, November 01, 2002 1:02 PM Subject: Re: [ENH] Image Browser: for browsing code in the other .image file
Hello,
I guess this tool only works on image of the same version and
with a
change set only.
No, no, there is nothing that depends on specifically 3.2 or even 3.x, except a line in #openSourceFilesForImage: which specifies the .sources file name. As long as corresponding .changes exists, it should be possible to load V2 image onto V3 and vice versa.
I have quite a few of 1.x and 2.x and 3.x images on my machines (with full source and changes files) only the 3.x work as expected.
I actually hadn't tried^^;, but you can load 2.x image onto 3.x image, once you change the #openSourceFilesForImage method, right?
To load 3.x image onto 2.x image, which sounds more useful than the opposide, requires some tweak.
The best approach would be to add a flag that tells which version (loaded image or loading image) should be treated as the "base" one and which is "new". Then we wouldn't have to worry about making different versions of ImageBrowsers or back porting FileContentsBrowser to the older images.
-- Yoshiki
PS:
P.S. PhiHo, if you are going to reply my email, please include the entire part of this message. I still have a suspision that this one won't go through the normal channel. Thank you,
I received only 1 copy of your mail, so assumingly it did not get to the list.
I'm sending this with my ISP account's From: line to see if the From: line is all that matters... Thank you for all of your helps,
PhiHo,
I actually hadn't tried^^;, but you can load 2.x image onto 3.x image, once you change the #openSourceFilesForImage method, right?
I can load 2.8 image without changing the #openSourceFilesForImage
method.
Only when I add class, then there is a problem. Please find attached log file.
Thas is exactly why you have to modifiy #openSourceFilesForImage. The source code for a same method may be in differerent file offset in V2.sources and V3.source and if the system trys to extract the source code for V2 method from V3 source, it is screwed.
To load 3.x image onto 2.x image, which sounds more useful than the opposide, requires some tweak.
An image editor is even more useful ;-)
We call such editor as InterpreterSimulator. So, we already have it:-)
-- Yoshiki
squeak-dev@lists.squeakfoundation.org