ProgressDisplay package updated.
Three methods that deal with user interrupts and don't port to Pharo
were dropped during the port have now been readded.
Has no impact on Pharo since they are discarded when loaded to Pharo.
Regards,
Ralph Boland
Andreas Raab uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-ar.78.mcz
==================== Summary ====================
Name: Network-ar.78
Author: ar
Time: 5 August 2010, 12:24:17.908 pm
UUID: c0c6ce57-a1aa-a245-be4c-4f6fbd7f6a2b
Ancestors: Network-ar.77
Fixes for broken SocketStream behavior.
=============== Diff against Network-ar.77 ===============
Item was changed:
----- Method: SocketStream>>upToEnd (in category 'stream in') -----
upToEnd
"Answer all data coming in on the socket until the socket
is closed by the other end, or we get a timeout.
This means this method catches ConnectionClosed by itself.
NOTE: Does not honour timeouts if shouldSignal is false!!"
+ [[self isConnected] whileTrue: [self receiveData]]
- [[self atEnd] whileFalse: [self receiveData]]
on: ConnectionClosed
do: [:ex | "swallow it"].
^self nextAllInBuffer!
Item was changed:
----- Method: SocketStream>>receiveData: (in category 'control') -----
receiveData: nBytes
"Keep reading the socket until we have nBytes
in the inBuffer or we reach the end. This method
does not return data, but can be used to make sure
data has been read into the buffer from the Socket
before actually reading it from the FastSocketStream.
Mainly used internally. We could also adjust the buffer
to the expected amount of data and avoiding several
incremental grow operations.
NOTE: This method doesn't honor timeouts if shouldSignal
is false!! And frankly, I am not sure how to handle that
case or if I care - I think we should always signal."
+ [self isConnected and: [nBytes > self inBufferSize]]
- [self atEnd not and: [nBytes > self inBufferSize]]
whileTrue: [self receiveData]!
Andreas Raab uploaded a new version of NetworkTests to project The Trunk:
http://source.squeak.org/trunk/NetworkTests-ar.17.mcz
==================== Summary ====================
Name: NetworkTests-ar.17
Author: ar
Time: 5 August 2010, 12:22:43.714 pm
UUID: 8b1cd280-19ac-3c46-970e-7b877b81c28d
Ancestors: NetworkTests-ar.16
More tests to illiustrate current socket brockeness in various circumstances.
=============== Diff against NetworkTests-ar.16 ===============
Item was added:
+ ----- Method: SocketStreamTest>>testNextIntoCloseNonSignaling (in category 'stream protocol') -----
+ testNextIntoCloseNonSignaling
+ "Ensure that #next:into: will function properly when the connection is closed"
+
+ serverStream shouldSignal: false.
+ clientStream nextPutAll:'A line of text'; flush.
+ [(Delay forMilliseconds: 100) wait.
+ clientStream close] fork.
+ self assert: (serverStream next: 100 into: (String new: 100) startingAt: 1)
+ equals: 'A line of text'.
+ !
Item was added:
+ ----- Method: SocketStreamTest>>testUpToEndCloseNonSignaling (in category 'stream protocol') -----
+ testUpToEndCloseNonSignaling
+ "Ensure that #upToEnd will function properly when the connection is closed"
+
+ serverStream shouldSignal: false.
+ clientStream nextPutAll:'A line of text'; flush.
+ [(Delay forMilliseconds: 100) wait.
+ clientStream close] fork.
+ self assert: (serverStream upToEnd)
+ equals: 'A line of text'.
+ !
Item was added:
+ ----- Method: SocketStreamTest>>testNextIntoClose (in category 'stream protocol') -----
+ testNextIntoClose
+ "Ensure that #next:into: will function properly when the connection is closed"
+
+ clientStream nextPutAll:'A line of text'; flush.
+ [(Delay forMilliseconds: 100) wait.
+ clientStream close] fork.
+ self assert: (serverStream next: 100 into: (String new: 100) startingAt: 1)
+ equals: 'A line of text'.
+ !
Item was added:
+ ----- Method: SocketStreamTest>>testUpToEndClose (in category 'stream protocol') -----
+ testUpToEndClose
+ "Ensure that #upToEnd will function properly when the connection is closed"
+
+ clientStream nextPutAll:'A line of text'; flush.
+ [(Delay forMilliseconds: 100) wait.
+ clientStream close] fork.
+ self assert: (serverStream upToEnd)
+ equals: 'A line of text'.
+ !
I have released an update to ProgressDisplay package to SqueakSource.
Changes are to improve portability to Pharo and should not affect
Squeak 4.1 users.
Regards,
Ralph Boland
A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-spd.476.mcz
==================== Summary ====================
Name: Kernel-spd.476
Author: spd
Time: 5 August 2010, 9:46:40.546 am
UUID: c4428bcf-4372-4365-b38f-091178c5068c
Ancestors: Kernel-spd.475
Fixed issue 7553 - DateAndTime now uses the local offset when creating an instance via readFrom: or fromString: if none is specified. This is consistent with the behavior of year:day:hour:minute:second:
=============== Diff against Kernel-eem.474 ===============
Item was changed:
----- Method: DateAndTime class>>readFrom: (in category 'squeak protocol') -----
readFrom: aStream
| offset date time ch |
date := Date readFrom: aStream.
[aStream peek isDigit]
whileFalse: [aStream next].
time := Time readFrom: aStream.
aStream atEnd
+ ifTrue: [ offset := self localOffset ]
- ifTrue: [ offset := Duration zero ]
ifFalse: [
ch := aStream next.
ch = $+ ifTrue: [ch := Character space].
offset := Duration fromString: ch asString, '0:', aStream upToEnd, ':0'].
^ self
year: date year
month: date monthIndex
day: date dayOfMonth
hour: time hour
minute: time minute
second: time second
nanoSecond: time nanoSecond
offset: offset
" '-1199-01-05T20:33:14.321-05:00' asDateAndTime
' 2002-05-16T17:20:45.1+01:01' asDateAndTime
' 2002-05-16T17:20:45.02+01:01' asDateAndTime
' 2002-05-16T17:20:45.003+01:01' asDateAndTime
' 2002-05-16T17:20:45.0004+01:01' asDateAndTime
' 2002-05-16T17:20:45.00005' asDateAndTime
' 2002-05-16T17:20:45.000006+01:01' asDateAndTime
' 2002-05-16T17:20:45.0000007+01:01' asDateAndTime
' 2002-05-16T17:20:45.00000008-01:01' asDateAndTime
' 2002-05-16T17:20:45.000000009+01:01' asDateAndTime
' 2002-05-16T17:20:45.0000000001+01:01' asDateAndTime
' 2002-05-16T17:20' asDateAndTime
' 2002-05-16T17:20:45' asDateAndTime
' 2002-05-16T17:20:45+01:57' asDateAndTime
' 2002-05-16T17:20:45-02:34' asDateAndTime
' 2002-05-16T17:20:45+00:00' asDateAndTime
' 1997-04-26T01:02:03+01:02:3' asDateAndTime
"!
Loaded the latest from
http://www.squeaksource.com/CSV
Did...
rows := CSVParser parse: (FileStream readOnlyFileNamed:
'/Users/casey/Desktop/SCDB_2010_01_justiceCentered_Vote.csv')
Got...
"Error: invalid utf8 input detected"
Relevant region of code might be...
MultiByteFileStream>>next
| char secondChar state |
char := converter nextFromStream: self.
converter is a UTF8TextConverter. Wondering if maybe I need a different text
converter? Given that this is a CSV file, I'm thinking the system might be
expecting UTF-8 where it's actually getting ASCII. The CSV package hasn't
had any attention in a while, so that makes some sense (IIRC there was a
shift to UTF-8 not very long ago, no?)
If anyone is wondering, I'm playing with an idea around dynamic data-centric
web interfaces:) and need some raw data to represent, hence the CSV file.
Any ideas?
--
Casey Ransberger
I have some code that fixed the values of temps (in a BlockContext) at the
point of definition (using #fixTemps). Now I'm using Seaside 3.0 on Squeak
4.1 and the values of the block's temps is set at the point of call (when I
evaluate the block) - block are now BlockClosure's. How do I fix the temps
to be the values where the block is defined?
#fixTemps is now a no-op.
---John
Em 03-08-2010 20:32, Lawson English escreveu:
> On 8/3/10 1:42 PM, Casimiro de Almeida Barreto wrote:
>> Anyone working with integrating w3d inside seaside ?
>>
>> Best regards,
>>
>> CdAB
>>
>>
> That would probably be called Cobalt ;-)
Nope...
X3D is related to browsing & integrating dynamic 3D streaming content to
the browsing experience. Obviously, on the client (browser) side Cobalt
has the tools for building such a browser that could be integrated to
the Virtual World experience. Particularly it handles well VRML and most
media formats. Another possibility would go the other way and creating a
"Cobalt plugin" for a browser handling - among other things - .x3d
formats, but that would be cumbersome (to say the least).
Even so, if the purpose is purely integrating plugins capable or process
.x3d and other related markup formats & rendering content even Balloon3D
have tools allowing it. So, again, from client side the stuff would be
building a browser capable of .x3d manipulation (browsing) with adequate
plugins. Up to the moment there are no good & complete (html) browsers
either in squeak nor in pharo... Just wonder why... But again... there
are none in java either...
One interesting thing would be creating an authoring tool for .x3d.
Currently most things are done by hand.
On the server side (here goes seaside) there's the need to serve media
content. Particularly VRML. That was the reason of the question.
Another thing is that Cog is not going well with Ballon3D or Cobalt (at
least when I compile it). I must go into it & see what's going on... For
instance, Wonderland new results in a warning window telling me that
"This squeak does not have real 3D support. Opening a Wonderland will be
EXTREMELY time consuming..." and yeah... it is... really !!! Interesting
enough, Cog creates Balloon3D accelerator plugin and recognizes GL
(NVIDIA and Intel GPUs) during compilation...
When I start cobalt-trunk.28.image Cog bangs with:
[casimiro@localhost OpenCobalt]$ /opt/cog/squeak cobalt-trunk.28.image
Segmentation fault
Smalltalk stack dump:
0xbf89e550 M TranslucentColor>pixelWordForDepth: 2040270664: a(n)
TranslucentColor
0xbf89e570 M TranslucentColor(Color)>bitPatternForDepth: 2040270664:
a(n) TranslucentColor
0xbf89e58c M TranslucentColor>bitPatternForDepth: 2040270664: a(n)
TranslucentColor
0xbf89e5a8 M DisplayScreen(Form)>bitPatternFor: 2003017884: a(n)
DisplayScreen
0xbf89e5c4 M GrafPort(BitBlt)>fillColor: 2040711644: a(n) GrafPort
0xbf89e5e0 M GrafPort>fillPattern: 2040711644: a(n) GrafPort
0xbf89e608 M FormCanvas>setFillColor: 2040711608: a(n) FormCanvas
0xbf89e628 M
FormCanvas>frameAndFillRectangle:fillColor:borderWidth:borderColor:
2040711608: a(n) FormCanvas
0xbf89e650 M FormCanvas(Canvas)>fillRectangle:color: 2040711608: a(n)
FormCanvas
0xbf89e674 M FormCanvas>fillRectangle:fillStyle: 2040711608: a(n) FormCanvas
0xbf89e698 M [] in UserDialogBoxMorph(Morph)>drawDropShadowOn:
2040263020: a(n) UserDialogBoxMorph
0xbf89e6b4 M CornerRounder
class>roundCornersOf:on:in:displayBlock:borderWidth:corners: 2017278836:
a(n) CornerRounder class
0xbf89e6e4 M FormCanvas>roundCornersOf:in:during: 2040711608: a(n)
FormCanvas
0xbf89e708 M FormCanvas(Canvas)>roundCornersOf:during: 2040711608: a(n)
FormCanvas
0xbf89e728 M [] in UserDialogBoxMorph(Morph)>drawDropShadowOn:
2040263020: a(n) UserDialogBoxMorph
0xbf89e74c I FormCanvas>translateBy:during: 2040489952: a(n) FormCanvas
0xbf89e76c M UserDialogBoxMorph(Morph)>drawDropShadowOn: 2040263020:
a(n) UserDialogBoxMorph
0xbf89e788 M UserDialogBoxMorph(Morph)>fullDrawOn: 2040263020: a(n)
UserDialogBoxMorph
0xbf89e7a4 M FormCanvas(Canvas)>fullDraw: 2040489952: a(n) FormCanvas
0xbf89e7c0 M FormCanvas(Canvas)>fullDrawMorph: 2040489952: a(n) FormCanvas
0xbf89e810 M [] in WorldState>drawWorld:submorphs:invalidAreasOn:
2002919804: a(n) WorldState
0xbf89e848 I Rectangle>allAreasOutsideList:startingAt:do: 2040462040:
a(n) Rectangle
0xbf89e874 I Rectangle>allAreasOutsideList:do: 2040462040: a(n) Rectangle
0xbf89e8b0 M [] in WorldState>drawWorld:submorphs:invalidAreasOn:
2002919804: a(n) WorldState
0xbf89e8d4 M Array(SequenceableCollection)>do: 2040485848: a(n) Array
0xbf89e90c I WorldState>drawWorld:submorphs:invalidAreasOn: 2002919804:
a(n) WorldState
0xbf89e944 M [] in WorldState>displayWorld:submorphs: 2002919804: a(n)
WorldState
0xbf89e964 I FormCanvas>roundCornersOf:in:during: 2036135040: a(n)
FormCanvas
0xbf89e990 I FormCanvas(Canvas)>roundCornersOf:during: 2036135040: a(n)
FormCanvas
0xbf89e9c0 I WorldState>displayWorld:submorphs: 2002919804: a(n) WorldState
0xbf89e9e8 I PasteUpMorph>privateOuterDisplayWorld 2002920056: a(n)
PasteUpMorph
0xbf89ea08 I PasteUpMorph>displayWorld 2002920056: a(n) PasteUpMorph
0xbf89ea2c I [] in WorldState>displayWorldSafely: 2002919804: a(n)
WorldState
0xbf89ea48 M BlockClosure>on:do: 2040485224: a(n) BlockClosure
0xbf89ea68 M BlockClosure>ifError: 2040485224: a(n) BlockClosure
0xbf89ea8c I WorldState>displayWorldSafely: 2002919804: a(n) WorldState
0xbf89eab4 I WorldState>doOneCycleNowFor: 2002919804: a(n) WorldState
0xbf89ead8 I WorldState>doOneCycleFor: 2002919804: a(n) WorldState
0xbf89eb00 I WorldState>doOneSubCycleFor: 2002919804: a(n) WorldState
0xbf89eb24 I PasteUpMorph>doOneSubCycle 2002920056: a(n) PasteUpMorph
0xbf89eb50 I UserDialogBoxMorph>runModalIn:forHand:at: 2040263020: a(n)
UserDialogBoxMorph
0xbf89eb7c I UserDialogBoxMorph class>inform:title:at: 2017359812: a(n)
UserDialogBoxMorph class
0xbf89eba8 I UserDialogBoxMorph class>inform:title: 2017359812: a(n)
UserDialogBoxMorph class
0xbf89ebd0 I UserDialogBoxMorph class>inform: 2017359812: a(n)
UserDialogBoxMorph class
0xbf89ebf4 I MorphicUIManager>inform: 2032900144: a(n) MorphicUIManager
0xbf89ec18 I FileDirectory class(Object)>inform: 2017278508: a(n)
FileDirectory class
0xbf89ec4c I FileDirectory class>openSources:andChanges:forImage:
2017278508: a(n) FileDirectory class
0xbf89ec78 I SmalltalkImage>openSourceFiles 2021136948: a(n) SmalltalkImage
0xbf89ec98 I FileDirectory class>startUp 2017278508: a(n) FileDirectory
class
0xbf89ecb0 M FileDirectory class(Behavior)>startUp: 2017278508: a(n)
FileDirectory class
0xbf89ecdc M [] in SmalltalkImage>send:toClassesNamedIn:with:
2021136948: a(n) SmalltalkImage
0xbf89ed04 I OrderedCollection>do: 2021496828: a(n) OrderedCollection
0xbf89ed2c I SmalltalkImage>send:toClassesNamedIn:with: 2021136948: a(n)
SmalltalkImage
0xbf89ed58 I SmalltalkImage>processStartUpList: 2021136948: a(n)
SmalltalkImage
0xbf89ed84 I SmalltalkImage>snapshot:andQuit:embedded: 2021136948: a(n)
SmalltalkImage
2036158148 s SmalltalkImage>snapshot:andQuit:
2036158056 s SmalltalkImage>saveSession
2036157940 s TheWorldMenu>doMenuItem:with:
2036157824 s [] in MenuItemMorph>invokeWithEvent:
2036157732 s BlockClosure>ensure:
2036157640 s CursorWithMask(Cursor)>showWhile:
2036157492 s MenuItemMorph>invokeWithEvent:
2036157400 s MenuItemMorph>mouseUp:
2036157308 s MenuItemMorph>handleMouseUp:
2036157176 s MouseButtonEvent>sentTo:
2036157084 s MenuItemMorph(Morph)>handleEvent:
2036156992 s MorphicEventDispatcher>dispatchDefault:with:
2036156900 s MorphicEventDispatcher>dispatchEvent:with:
2036156808 s MenuItemMorph(Morph)>processEvent:using:
2036156700 s MorphicEventDispatcher>dispatchDefault:with:
2036156608 s MorphicEventDispatcher>dispatchEvent:with:
2036156476 s MenuMorph(Morph)>processEvent:using:
2036156384 s MenuMorph(Morph)>processEvent:
2036156292 s MenuMorph>handleFocusEvent:
2036156200 s [] in HandMorph>sendFocusEvent:to:clear:
2036156108 s [] in PasteUpMorph>becomeActiveDuring:
2036155928 s BlockClosure>on:do:
2036155836 s PasteUpMorph>becomeActiveDuring:
2036155716 s HandMorph>sendFocusEvent:to:clear:
2036155624 s HandMorph>sendEvent:focus:clear:
2036155532 s HandMorph>sendMouseEvent:
2036155388 s HandMorph>handleEvent:
2036155084 s HandMorph>processEvents
2036154968 s [] in WorldState>doOneCycleNowFor:
2036154876 s Array(SequenceableCollection)>do:
2036154784 s WorldState>handsDo:
2036154684 s WorldState>doOneCycleNowFor:
2036154592 s WorldState>doOneCycleFor:
2036154500 s PasteUpMorph>doOneCycle
2036123380 s [] in Project class>spawnNewProcess
2036123208 s [] in BlockClosure>newProcess
Most recent primitives
copyBits
copyBits
copyBits
@
primDisplayString:from:to:map:xTable:kern:
@
species
species
basicNew
truncated
fractionPart
fractionPart
truncated
fractionPart
truncated
fractionPart
truncated
basicNew
truncated
fractionPart
fractionPart
truncated
fractionPart
truncated
fractionPart
truncated
new:
at:put:
at:put:
at:put:
at:put:
@
basicNew
basicNew:
@
@
new:
at:put:
at:put:
at:put:
at:put:
value:
@
@
basicNew
@
@
basicNew
basicNew:
at:put:
at:put:
@
basicNew
copyBits
@
@
basicNew
@
@
basicNew
basicNew:
basicNew
@
@
basicNew
copyBits
@
@
basicNew
@
@
basicNew
@
@
basicNew
copyBits
@
@
basicNew
@
@
basicNew
@
@
@
basicNew
copyBits
@
@
@
basicNew
@
copyBits
@
@
@
basicNew
basicNew:
at:put:
at:put:
at:put:
at:put:
basicNew:
at:put:
basicNew:
atAllPut:
at:put:
@
copyBits
value:
at:put:
at:put:
@
clone
basicNew
@
@
basicNew
@
@
@
basicNew
@
@
@
basicNew
shallowCopy
new:
@
@
new:
at:put:
at:put:
at:put:
at:put:
@
@
@
basicNew
@
@
basicNew
basicNew:
basicNew
@
@
basicNew
copyBits
@
@
basicNew
@
@
@
basicNew
basicNew:
at:put:
at:put:
@
basicNew
copyBits
at:put:
@
@
@
basicNew
@
@
basicNew
basicNew:
basicNew
@
@
basicNew
copyBits
@
@
basicNew
@
@
@
basicNew
basicNew:
at:put:
at:put:
@
basicNew
copyBits
at:put:
@
@
@
@
basicNew
@
@
basicNew
basicNew:
basicNew
@
@
basicNew
copyBits
@
@
basicNew
@
@
@
basicNew
basicNew:
at:put:
at:put:
@
basicNew
copyBits
at:put:
@
@
@
basicNew
@
@
basicNew
basicNew:
basicNew
@
@
basicNew
copyBits
@
@
basicNew
@
@
@
basicNew
basicNew:
at:put:
at:put:
@
basicNew
copyBits
at:put:
@
@
basicNew
basicNew:
at:put:
at:put:
at:put:
at:put:
bitAnd:
bitShiftMagnitude:
bitOr:
bitShiftMagnitude:
Abortado (imagem do núcleo gravada)
[casimiro@localhost OpenCobalt]$
>
>
> Lawson
> _______________________________________________
> seaside mailing list
> seaside(a)lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
Best regards,
CdAB