A zipper is a data structure that lets you efficiently "modify" an immutable data structure. "Modify", because a zipper creates a new, updated, data structure that reuses as much of the original structure. Local modifications and navigations are constant time.
This zipper implementation lets you walk over an arbitrary graph structure by leaving the decision of what "up", "down", "left" and "right" means to you, the programmer.
(Zippers should also work just fine in Squeak 4.3, Pharo 1.4 and Pharo 2.0.)
frank
Thank you for providing this, Frank.
I assume I can edit a huge XMLDocument I keep in memory with it?
An example script?
There is still a load problem when loading it through SqueakMap into Squeak4.4-12324
--Hannes
On 12/27/12, Frank Shearar frank.shearar@gmail.com wrote:
A zipper is a data structure that lets you efficiently "modify" an immutable data structure. "Modify", because a zipper creates a new, updated, data structure that reuses as much of the original structure. Local modifications and navigations are constant time.
This zipper implementation lets you walk over an arbitrary graph structure by leaving the decision of what "up", "down", "left" and "right" means to you, the programmer.
(Zippers should also work just fine in Squeak 4.3, Pharo 1.4 and Pharo 2.0.)
frank
On 27 December 2012 12:46, H. Hirzel hannes.hirzel@gmail.com wrote:
Thank you for providing this, Frank.
I assume I can edit a huge XMLDocument I keep in memory with it?
An example script?
There is still a load problem when loading it through SqueakMap into Squeak4.4-12324
Oh sigh, that was a lame error on my part. I'm having a great deal of trouble uploading the corrected install script to SM though.
The correct load script is this:
Installer ss3 install: 'ConfigurationOfZippers'. (Smalltalk at: #ConfigurationOfZippers) load
Note the "ss3" - the broken version says "cache". Deleting the file in my account's files section makes the file disappear from the list but doesn't actually delete anything (because I can still download it). If I try upload a new version, it looks like SM doesn't replace the file.
frank
--Hannes
On 12/27/12, Frank Shearar frank.shearar@gmail.com wrote:
A zipper is a data structure that lets you efficiently "modify" an immutable data structure. "Modify", because a zipper creates a new, updated, data structure that reuses as much of the original structure. Local modifications and navigations are constant time.
This zipper implementation lets you walk over an arbitrary graph structure by leaving the decision of what "up", "down", "left" and "right" means to you, the programmer.
(Zippers should also work just fine in Squeak 4.3, Pharo 1.4 and Pharo 2.0.)
frank
Thank you for providing this, Frank.
I assume I can edit a huge XMLDocument I keep in memory with it?
An example script?
There is still a load problem when loading it through SqueakMap into Squeak4.4-12324
Oh sigh, that was a lame error on my part. I'm having a great deal of trouble uploading the corrected install script to SM though.
The correct load script is this:
Installer ss3 install: 'ConfigurationOfZippers'. (Smalltalk at: #ConfigurationOfZippers) load
Note the "ss3" - the broken version says "cache". Deleting the file in my account's files section makes the file disappear from the list but doesn't actually delete anything (because I can still download it). If I try upload a new version, it looks like SM doesn't replace the file.
Hi Frank, I just verified the current running SM server has the patch I applied in 2/2011 which *should* fix this issue.
Did you use the Release Editor browser within the image to submit it or the web-site? The in-image Release Editor browser is the way to go.
- Chris
On 27 December 2012 15:46, Chris Muller asqueaker@gmail.com wrote:
Thank you for providing this, Frank.
I assume I can edit a huge XMLDocument I keep in memory with it?
An example script?
There is still a load problem when loading it through SqueakMap into Squeak4.4-12324
Oh sigh, that was a lame error on my part. I'm having a great deal of trouble uploading the corrected install script to SM though.
The correct load script is this:
Installer ss3 install: 'ConfigurationOfZippers'. (Smalltalk at: #ConfigurationOfZippers) load
Note the "ss3" - the broken version says "cache". Deleting the file in my account's files section makes the file disappear from the list but doesn't actually delete anything (because I can still download it). If I try upload a new version, it looks like SM doesn't replace the file.
Hi Frank, I just verified the current running SM server has the patch I applied in 2/2011 which *should* fix this issue.
Did you use the Release Editor browser within the image to submit it or the web-site? The in-image Release Editor browser is the way to go.
I used the Release Editor. When Hannes mentioned the problems he had loading it, I (attempted to) manually upload a fixed install script.
frank
- Chris
Did you use the Release Editor browser within the image to submit it or the web-site? The in-image Release Editor browser is the way to go.
I used the Release Editor. When Hannes mentioned the problems he had loading it, I (attempted to) manually upload a fixed install script.
If, by "manually upload" you mean you used the web-site, please try simply changing the script in the Release Editor browser in the image, fill in all the fields, then click "Save" button. That should work if it doesn't please let me know.
It now loads fine into Squeak 4.4-12324 through SqueakMap.
Tests: 253 run, 249 passes, 4 expected failures.
Thank you Frank for the Zippers package. And thanks to Chris for the SqueakMap advice.
--Hannes
On 12/27/12, Chris Muller ma.chris.m@gmail.com wrote:
Did you use the Release Editor browser within the image to submit it or the web-site? The in-image Release Editor browser is the way to go.
I used the Release Editor. When Hannes mentioned the problems he had loading it, I (attempted to) manually upload a fixed install script.
If, by "manually upload" you mean you used the web-site, please try simply changing the script in the Release Editor browser in the image, fill in all the fields, then click "Save" button. That should work if it doesn't please let me know.
squeak-dev@lists.squeakfoundation.org