[Pkg] Rio: File-Kernel-kph.8.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Wed Dec 3 14:00:09 UTC 2008

A new version of File-Kernel was added to project Rio:

==================== Summary ====================

Name: File-Kernel-kph.8
Author: kph
Time: 3 December 2008, 2:00:08 pm
UUID: e8aedc3d-bfac-462d-a101-5a1dab206f29
Ancestors: File-Kernel-kph.7

. fixed ascii file reading
. fixed windows volumes equality (resulted in the Volumes set was getting filled up)
. reader now calls readStream, so is equivalent now

=============== Diff against File-Kernel-kph.7 ===============

Item was changed:
  ----- Method: FileKernel>>reader (in category 'public file') -----
+ 	^ self readStream!
- 	^ self basicReader!

Item was changed:
  FileExecutive subclass: #FileLocalExecutive
+ 	instanceVariableNames: 'rootString root defaultDirectory'
- 	instanceVariableNames: 'rootString root defaultDirectory newRio'
  	classVariableNames: 'Current Test'
  	poolDictionaries: ''
  	category: 'File-Kernel'!
  !FileLocalExecutive commentStamp: 'kph 4/17/2007 19:25' prior: 0!
  Introducing the idea that Rio's exist in the context of their 'physical container', we have the RioLocalFileSystem as the primary container which provides the file system interface, also known as the 'executive'.
  On unix there is one executive for the whole system. On dos there is one executive per volume. This approach also supports the notion of files within archives and files on remote servers.
  On startup, having a formal model of the host filesystem allows us to keep a current and previous instance introducing the possibility for migrating Rio's on startup when the image has been moved. For example C:/ could be replaced with /mnt/hda1 thus attempting to make images properly portable. (experimental idea)

Item was changed:
  ----- Method: FileLocalExecutive class>>initialize (in category 'class initialization') -----
  	Smalltalk addToStartUpList: self after: Delay.
  	FileLocalDosExecutive initializeVolumes.
  	Current := self newForThisPlatform.
  	Current initializeDefault.

Item was changed:
  ----- Method: FileLocalExecutive>>toUrl: (in category 'executive actions') -----
  toUrl: aFD
+ 	^ FileUrl new initializeFromPathString: (aFD full value replaceAll: $\ with: $/)!
- 	^ FileUrl new initializeFromPathString: (aFD full value replacing: $\ with: $/)!

Item was added:
+ ----- Method: FileLocalExecutive>>= (in category 'as yet unclassified') -----
+ = other
+ 	^ self class = other class and: [ self rootString = other rootString ]
+ 	!

Item was changed:
  ----- Method: FileLocalDosExecutive class>>executiveForVolume: (in category 'as yet unclassified') -----
  executiveForVolume: theRequestedRoot
  	| requestedRoot |
  	requestedRoot := theRequestedRoot.
  	requestedRoot = nil ifTrue: [ requestedRoot := 'C:/' ].
  	^ Volumes 
  		detect: [ :i | i isRoot: requestedRoot ] 
+ 		ifNone: [ Volumes add: (self basicNew setRootString: requestedRoot; setDefault: nil; yourself) ]!
- 		ifNone: [ Volumes add: (self class basicNew setRootString: requestedRoot; setDefault: nil; yourself) ]!

Item was added:
+ ----- Method: FileLocalExecutive>>hash (in category 'as yet unclassified') -----
+ hash
+ 	^ self class hash bitXor: self rootString hash
+ 	!

Item was changed:
  ----- Method: FileKernel class>>initialize (in category 'as yet unclassified') -----
+ 	TestFileSystem := nil!
-  TestFileSystem := nil!

Item was added:
+ ----- Method: FileKernel>>readStream (in category 'public file') -----
+ readStream
+ 	^ self basicReader!

More information about the Packages mailing list