Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
January 2012
- 118 participants
- 1442 messages
[Pharo-project] End of startup script behavior
by Sven Van Caekenberghe
Guys,
Maybe I missed this, but did something change with the behavior at the end of a startup script between 1.3 and 1.4 ?
It used to be that the image kept on running unless you asked it to quit explicitly, now it seems that the image automatically quits unless you keep it busy. Can someone confirm this ? Was this intentional ?
What would be the recommended way to keep the image open ?
Somehow something like
[ (Delay forDuration: 1 hour) wait ] repeat.
seems so silly, but it works.
Thx,
Sven
Jan. 31, 2012
Re: [Pharo-project] Morpheas , bringing Morphic to Opengl (3d GUIs)
by dimitris chloupis
I wanted to ask if NB and COG will support windows as well, I see no windows build.Â
and here we go with first problem. I am in linux mint 12 32 bit with a graphic card NVIDIA GEFORCE 6200 .Â
I got Cog VM with the Nativeboost plugin + Pharo 1.4 image + Nativeboost + NBOpenGLÂ
This is my workspaceÂ
----
Gofer it
    squeaksource: 'NativeBoost';
    package: 'NativeBoost-Installer';
    load.
NBInstaller install.
Gofer it
    squeaksource: 'NBOpenGL';
    package: 'ConfigurationOfNBOpenGL';
    load.
ConfigurationOfNBOpenGL project lastVersion load.
test := (GLTTRenderingDemo new) openInWorld; yourself.
---
the problem appears in the last line with an error "No suitable implementation found for initlising OpenGL context" . Should I assume it can find OpenGL libraries or is it a problem with the graphic card drivers. CC has been given me problem, but Blender works okish considering it completely reliant on OpenGLÂ
Here is all debug infoÂ
----
31 January 2012 11:27:51 am
VM: unix - i686 - linux-gnu - NBCoInterpreter NativeBoost-CogPlugin-IgorStasenko.8 uuid: f47ef546-de3d-4415-850e-6437d67bfb5c Aug  9 2011, StackToRegisterMappingCogit VMMaker-oscog-IgorStasenko.108 uuid: 384f4108-f1f4-4954-8357-0b3005cb81e2 Aug  9 2011, https://git.gitorious.org/cogvm/blessed.git Commit: f6deabba4432fa22b767dc17718a0fb84c9f3e88 Date: Tue Aug 9 14:47:19 2011 +0200 By: Igor Stasenko <siguctua(a)gmail.com>
Image: Pharo1.4a [Latest update: #14284]
NBGLContextDriver class(Object)>>error:
Receiver: NBGLContextDriver
Arguments and temporary variables:Â
aString: 'No suitable implementation found for initializing OpenGL context for ...etc...
Receiver's instance variables:Â
superclass: Object
methodDict: a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
format: 132
instanceVariables: #('gl')
organization: ('viewport' changeViewportSize:)
('initialize-release' createCont...etc...
subclasses: {NBMacGLContextDriver}
name: #NBGLContextDriver
classPool: nil
sharedPools: an OrderedCollection(NBGLConstants)
environment: a SystemDictionary(lots of globals)
category: #'NBOpenGL-Display'
traitComposition: {}
localSelectors: nil
[self error: 'No suitable implementation found for initializing OpenGL context for your platform'] in NBGLContextDriver class>>forCurrentPlatform
Receiver: NBGLContextDriver
Arguments and temporary variables:Â
Receiver's instance variables:Â
superclass: Object
methodDict: a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
format: 132
instanceVariables: #('gl')
organization: ('viewport' changeViewportSize:)
('initialize-release' createCont...etc...
subclasses: {NBMacGLContextDriver}
name: #NBGLContextDriver
classPool: nil
sharedPools: an OrderedCollection(NBGLConstants)
environment: a SystemDictionary(lots of globals)
category: #'NBOpenGL-Display'
traitComposition: {}
localSelectors: nil
OrderedCollection(Collection)>>detect:ifNone:
Receiver: an OrderedCollection(NBMacGLContextDriver)
Arguments and temporary variables:Â
aBlock: [:cls | cls supportsCurrentPlatform]
exceptionBlock: [self error: 'No suitable implementation found for initializing...etc...
Receiver's instance variables:Â
array: {NBMacGLContextDriver}
firstIndex: 1
lastIndex: 1
NBGLContextDriver class>>forCurrentPlatform
Receiver: NBGLContextDriver
Arguments and temporary variables:Â
driver: nil
Receiver's instance variables:Â
superclass: Object
methodDict: a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
format: 132
instanceVariables: #('gl')
organization: ('viewport' changeViewportSize:)
('initialize-release' createCont...etc...
subclasses: {NBMacGLContextDriver}
name: #NBGLContextDriver
classPool: nil
sharedPools: an OrderedCollection(NBGLConstants)
environment: a SystemDictionary(lots of globals)
category: #'NBOpenGL-Display'
traitComposition: {}
localSelectors: nil
NBGLContextDriver class>>createContext:
Receiver: NBGLContextDriver
Arguments and temporary variables:Â
initialExtent: (50@40)
Receiver's instance variables:Â
superclass: Object
methodDict: a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
format: 132
instanceVariables: #('gl')
organization: ('viewport' changeViewportSize:)
('initialize-release' createCont...etc...
subclasses: {NBMacGLContextDriver}
name: #NBGLContextDriver
classPool: nil
sharedPools: an OrderedCollection(NBGLConstants)
environment: a SystemDictionary(lots of globals)
category: #'NBOpenGL-Display'
traitComposition: {}
localSelectors: nil
NBGLDisplay class>>extent:
Receiver: NBGLDisplay
Arguments and temporary variables:Â
anInitialExtent: (50@40)
driver: nil
extensions: nil
disp: nil
ext: (50@40)
Receiver's instance variables:Â
superclass: Object
methodDict: a MethodDictionary(#canUseForm:->(NBGLDisplay>>#canUseForm: "a Comp...etc...
format: 136
instanceVariables: #('session' 'extent' 'driver')
organization: ('reading pixels' canUseForm: updateForm:bounds:)
('viewport' cha...etc...
subclasses: {NBMSAAOffscreenDisplay. NBOffscreenDisplay}
name: #NBGLDisplay
classPool: nil
sharedPools: an OrderedCollection(NBGLConstants)
environment: a SystemDictionary(lots of globals)
category: #'NBOpenGL-Display'
traitComposition: {}
localSelectors: nil
GLTTRenderingDemo(GLViewportMorph)>>initializeForNewSession
Receiver: a GLTTRenderingDemo(979369984)
Arguments and temporary variables:Â
Receiver's instance variables:Â
bounds: (0@0) corner: (50@40)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (50@40)
color: Color blue
extension: a MorphExtension (987496448)
session: nil
form: nil
useOwnForm: nil
display: nil
d: nil
glyphCache: nil
font: nil
curveRenderer: nil
GLTTRenderingDemo>>initializeForNewSession
Receiver: a GLTTRenderingDemo(979369984)
Arguments and temporary variables:Â
Receiver's instance variables:Â
bounds: (0@0) corner: (50@40)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (50@40)
color: Color blue
extension: a MorphExtension (987496448)
session: nil
form: nil
useOwnForm: nil
display: nil
d: nil
glyphCache: nil
font: nil
curveRenderer: nil
GLTTRenderingDemo(GLViewportMorph)>>initialize
Receiver: a GLTTRenderingDemo(979369984)
Arguments and temporary variables:Â
Receiver's instance variables:Â
bounds: (0@0) corner: (50@40)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (50@40)
color: Color blue
extension: a MorphExtension (987496448)
session: nil
form: nil
useOwnForm: nil
display: nil
d: nil
glyphCache: nil
font: nil
curveRenderer: nil
GLTTRenderingDemo>>initialize
Receiver: a GLTTRenderingDemo(979369984)
Arguments and temporary variables:Â
fontPath: nil
Receiver's instance variables:Â
bounds: (0@0) corner: (50@40)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (50@40)
color: Color blue
extension: a MorphExtension (987496448)
session: nil
form: nil
useOwnForm: nil
display: nil
d: nil
glyphCache: nil
font: nil
curveRenderer: nil
GLTTRenderingDemo class(Behavior)>>new
Receiver: GLTTRenderingDemo
Arguments and temporary variables:Â
Receiver's instance variables:Â
superclass: GLViewportMorph
methodDict: a MethodDictionary(#initialize->(GLTTRenderingDemo>>#initialize "a ...etc...
format: 158
instanceVariables: #('d' 'glyphCache' 'font' 'curveRenderer')
organization: ('as yet unclassified' initialize initializeForNewSession openInW...etc...
subclasses: nil
name: #GLTTRenderingDemo
classPool: nil
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'NBOpenGL-Morphic-Demo'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:Â
Receiver's instance variables:Â
nil
Compiler>>evaluate:in:to:notifying:ifFail:logged:
Receiver: a Compiler
Arguments and temporary variables:Â
textOrStream: a ReadWriteStream
aContext: nil
receiver: nil
aRequestor: a TextMorphForEditView(50593792)
failBlock: [self morph flash.
^ nil]
logFlag: true
methodNode: DoIt
^ test := GLTTRenderingDemo new openInWorld; yourself
method: (UndefinedObject>>#DoIt "a CompiledMethod(970457088)")
value: nil
toLog: nil
itsSelection: nil
itsSelectionString: nil
Receiver's instance variables:Â
sourceStream: a ReadWriteStream
requestor: a TextMorphForEditView(50593792)
class: UndefinedObject
category: nil
context: nil
parser: a Parser
[rcvr class evaluatorClass new
evaluate: self selectionForDoitAsStream
in: ctxt
to: rcvr
notifying: self morph
ifFail: [self morph flash.
^ nil]
logged: true] in SmalltalkEditor>>evaluateSelectionAndDo:
Receiver: a SmalltalkEditor
Arguments and temporary variables:Â
rcvr: nil
ctxt: nil
Receiver's instance variables:Â
morph: a TextMorphForEditView(50593792)
selectionShowing: true
model: a Workspace
editingState: a SmalltalkEditingState
BlockClosure>>on:do:
Receiver: [rcvr class evaluatorClass new
evaluate: self selectionForDoitAsStream
in: ctxt
to: ...etc...
Arguments and temporary variables:Â
exception: OutOfScopeNotification
handlerAction: [:ex | ex resume: true]
handlerActive: true
Receiver's instance variables:Â
outerContext: SmalltalkEditor>>evaluateSelectionAndDo:
startpc: 110
numArgs: 0
SmalltalkEditor>>evaluateSelectionAndDo:
Receiver: a SmalltalkEditor
Arguments and temporary variables:Â
aBlock: [:result | result]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:Â
morph: a TextMorphForEditView(50593792)
selectionShowing: true
model: a Workspace
editingState: a SmalltalkEditingState
SmalltalkEditor>>evaluateSelection
Receiver: a SmalltalkEditor
Arguments and temporary variables:Â
Receiver's instance variables:Â
morph: a TextMorphForEditView(50593792)
selectionShowing: true
model: a Workspace
editingState: a SmalltalkEditingState
[textMorph editor evaluateSelection] in PluggableTextMorph>>doIt
Receiver: a PluggableTextMorph(268173312)
Arguments and temporary variables:Â
Receiver's instance variables:Â
bounds: (509.0(a)25.0) corner: (951.0(a)388.0)
owner: a SystemWindow(672137216)
submorphs: an Array(a TransformMorph(428343296))
fullBounds: (509@25) corner: (951@388)
color: (Color r: 0.804 g: 0.864 b: 0.857)
extension: a MorphExtension (45350912) [locked]Â
borderWidth: 1
borderColor: #inset
model: a Workspace
open: false
accessor: nil
scrollBar: a ScrollBar(274989056)
scroller: a TransformMorph(428343296)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #codePaneMenu:shifted:
getMenuTitleSelector: nil
hasFocus: false
hScrollBar: a ScrollBar(668205056)
textMorph: a TextMorphForEditView(50593792)
getTextSelector: #contents
setTextSelector: #acceptContents:
getSelectionSelector: nil
hasUnacceptedEdits: true
askBeforeDiscardingEdits: true
selectionInterval: (1 to: 333)
hasEditingConflicts: false
acceptAction: nil
getColorSelector: nil
unstyledAcceptText: nil
styler: a SHTextStylerST80
autoAccept: nil
enabled: true
getEnabledSelector: nil
highlights: an OrderedCollection()
acceptOnFocusChange: nil
selectionColor: nil
alwaysAccept: nil
changedAction: nil
[result := editBlock value] in PluggableTextMorph>>handleEdit:
Receiver: a PluggableTextMorph(268173312)
Arguments and temporary variables:Â
editBlock: [textMorph editor evaluateSelection]
result: #(nil)
Receiver's instance variables:Â
bounds: (509.0(a)25.0) corner: (951.0(a)388.0)
owner: a SystemWindow(672137216)
submorphs: an Array(a TransformMorph(428343296))
fullBounds: (509@25) corner: (951@388)
color: (Color r: 0.804 g: 0.864 b: 0.857)
extension: a MorphExtension (45350912) [locked]Â
borderWidth: 1
borderColor: #inset
model: a Workspace
open: false
accessor: nil
scrollBar: a ScrollBar(274989056)
scroller: a TransformMorph(428343296)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #codePaneMenu:shifted:
getMenuTitleSelector: nil
hasFocus: false
hScrollBar: a ScrollBar(668205056)
textMorph: a TextMorphForEditView(50593792)
getTextSelector: #contents
setTextSelector: #acceptContents:
getSelectionSelector: nil
hasUnacceptedEdits: true
askBeforeDiscardingEdits: true
selectionInterval: (1 to: 333)
hasEditingConflicts: false
acceptAction: nil
getColorSelector: nil
unstyledAcceptText: nil
styler: a SHTextStylerST80
autoAccept: nil
enabled: true
getEnabledSelector: nil
highlights: an OrderedCollection()
acceptOnFocusChange: nil
selectionColor: nil
alwaysAccept: nil
changedAction: nil
TextMorphForEditView(TextMorph)>>handleEdit:
Receiver: a TextMorphForEditView(50593792)
Arguments and temporary variables:Â
editBlock: [result := editBlock value]
Receiver's instance variables:Â
bounds: (0@0) corner: (434@274)
owner: a TransformMorph(428343296)
submorphs: #()
fullBounds: (0@0) corner: (434@274)
color: Color black
extension: a MorphExtension (70778880) [other: Â (blinkStart -> 2690020) (myDepe...etc...
borderWidth: 0
borderColor: Color black
textStyle: a TextStyle Bitmap DejaVu Sans 9
text: a Text for 'Gofer it
    squeaksource: ''NativeBoost'';
    packa...etc...
wrapFlag: true
paragraph: a Paragraph
editor: a SmalltalkEditor
container: nil
predecessor: nil
successor: nil
backgroundColor: nil
margins: nil
editView: a PluggableTextMorph(268173312)
acceptOnCR: false
autoAccept: false
acceptOnFocusChange: false
selectionColor: nil
PluggableTextMorph>>handleEdit:
Receiver: a PluggableTextMorph(268173312)
Arguments and temporary variables:Â
editBlock: [textMorph editor evaluateSelection]
result: #(nil)
Receiver's instance variables:Â
bounds: (509.0(a)25.0) corner: (951.0(a)388.0)
owner: a SystemWindow(672137216)
submorphs: an Array(a TransformMorph(428343296))
fullBounds: (509@25) corner: (951@388)
color: (Color r: 0.804 g: 0.864 b: 0.857)
extension: a MorphExtension (45350912) [locked]Â
borderWidth: 1
borderColor: #inset
model: a Workspace
open: false
accessor: nil
scrollBar: a ScrollBar(274989056)
scroller: a TransformMorph(428343296)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #codePaneMenu:shifted:
getMenuTitleSelector: nil
hasFocus: false
hScrollBar: a ScrollBar(668205056)
textMorph: a TextMorphForEditView(50593792)
getTextSelector: #contents
setTextSelector: #acceptContents:
getSelectionSelector: nil
hasUnacceptedEdits: true
askBeforeDiscardingEdits: true
selectionInterval: (1 to: 333)
hasEditingConflicts: false
acceptAction: nil
getColorSelector: nil
unstyledAcceptText: nil
styler: a SHTextStylerST80
autoAccept: nil
enabled: true
getEnabledSelector: nil
highlights: an OrderedCollection()
acceptOnFocusChange: nil
selectionColor: nil
alwaysAccept: nil
changedAction: nil
PluggableTextMorph>>doIt
Receiver: a PluggableTextMorph(268173312)
Arguments and temporary variables:Â
Receiver's instance variables:Â
bounds: (509.0(a)25.0) corner: (951.0(a)388.0)
owner: a SystemWindow(672137216)
submorphs: an Array(a TransformMorph(428343296))
fullBounds: (509@25) corner: (951@388)
color: (Color r: 0.804 g: 0.864 b: 0.857)
extension: a MorphExtension (45350912) [locked]Â
borderWidth: 1
borderColor: #inset
model: a Workspace
open: false
accessor: nil
scrollBar: a ScrollBar(274989056)
scroller: a TransformMorph(428343296)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #codePaneMenu:shifted:
getMenuTitleSelector: nil
hasFocus: false
hScrollBar: a ScrollBar(668205056)
textMorph: a TextMorphForEditView(50593792)
getTextSelector: #contents
setTextSelector: #acceptContents:
getSelectionSelector: nil
hasUnacceptedEdits: true
askBeforeDiscardingEdits: true
selectionInterval: (1 to: 333)
hasEditingConflicts: false
acceptAction: nil
getColorSelector: nil
unstyledAcceptText: nil
styler: a SHTextStylerST80
autoAccept: nil
enabled: true
getEnabledSelector: nil
highlights: an OrderedCollection()
acceptOnFocusChange: nil
selectionColor: nil
alwaysAccept: nil
changedAction: nil
Workspace(StringHolder)>>perform:orSendTo:
Receiver: a Workspace
Arguments and temporary variables:Â
selector: #doIt
otherTarget: a PluggableTextMorph(268173312)
Receiver's instance variables:Â
dependents: a DependentsArray(a SystemWindow(672137216) a PluggableTextMorph(26...etc...
contents: ''
bindings: a Dictionary('test'->nil )
acceptDroppedMorphs: false
acceptAction: nil
mustDeclareVariables: false
fileName: nil
lineEnding: #lf
encoding: 'utf-8'
stylingActive: true
[| selArgCount |
(selArgCount := selector numArgs) = 0
ifTrue: [target perform: selector]
ifFalse: [selArgCount = arguments size
ifTrue: [target perform: selector withArguments: arguments]
ifFalse: [target
perform: selector
withArguments: (arguments copyWith: evt)]].
self changed] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
Arguments and temporary variables:Â
evt: [(560@321) mouseUp 828114 nil]
selArgCount: 2
Receiver's instance variables:Â
bounds: (541.0(a)310.0) corner: (678.0(a)328.0)
owner: a MenuMorph(954466304)
submorphs: #()
fullBounds: (541.0(a)310.0) corner: (678.0(a)328.0)
color: Color black
extension: a MorphExtension (289931264)
font: a StrikeFont(Bitmap DejaVu Sans 9 14)
emphasis: 0
contents: 'Do it (d)'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a Workspace
selector: #perform:orSendTo:
arguments: an Array(#doIt a PluggableTextMorph(268173312))
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
BlockClosure>>ensure:
Receiver: [| selArgCount |
(selArgCount := selector numArgs) = 0
ifTrue: [target perform: selector...etc...
Arguments and temporary variables:Â
aBlock: [oldcursor show]
complete: nil
returnValue: nil
Receiver's instance variables:Â
outerContext: ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
startpc: 160
numArgs: 0
CursorWithMask(Cursor)>>showWhile:
Receiver: ((CursorWithMask
extent: (16@16)
depth: 1
fromArray: #(
2r0
2r100000000000000000000...etc...
Arguments and temporary variables:Â
aBlock: [| selArgCount |
(selArgCount := selector numArgs) = 0
ifTrue: [targe...etc...
oldcursor: ((CursorWithMask
extent: (16@16)
depth: 1
fromArray: #(
2r0
2...etc...
Receiver's instance variables:Â
bits: a Bitmap of length 16
width: 16
height: 16
depth: 1
offset: (-1@ -1)
maskForm: Form(16x16x1)
ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
Arguments and temporary variables:Â
evt: [(560@321) mouseUp 828114 nil]
w: a PasteUpMorph(425197568) [world]
Receiver's instance variables:Â
bounds: (541.0(a)310.0) corner: (678.0(a)328.0)
owner: a MenuMorph(954466304)
submorphs: #()
fullBounds: (541.0(a)310.0) corner: (678.0(a)328.0)
color: Color black
extension: a MorphExtension (289931264)
font: a StrikeFont(Bitmap DejaVu Sans 9 14)
emphasis: 0
contents: 'Do it (d)'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a Workspace
selector: #perform:orSendTo:
arguments: an Array(#doIt a PluggableTextMorph(268173312))
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
Arguments and temporary variables:Â
evt: [(560@321) mouseUp 828114 nil]
Receiver's instance variables:Â
bounds: (541.0(a)310.0) corner: (678.0(a)328.0)
owner: a MenuMorph(954466304)
submorphs: #()
fullBounds: (541.0(a)310.0) corner: (678.0(a)328.0)
color: Color black
extension: a MorphExtension (289931264)
font: a StrikeFont(Bitmap DejaVu Sans 9 14)
emphasis: 0
contents: 'Do it (d)'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a Workspace
selector: #perform:orSendTo:
arguments: an Array(#doIt a PluggableTextMorph(268173312))
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
Receiver's instance variables:Â
bounds: (541.0(a)310.0) corner: (678.0(a)328.0)
owner: a MenuMorph(954466304)
submorphs: #()
fullBounds: (541.0(a)310.0) corner: (678.0(a)328.0)
color: Color black
extension: a MorphExtension (289931264)
font: a StrikeFont(Bitmap DejaVu Sans 9 14)
emphasis: 0
contents: 'Do it (d)'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a Workspace
selector: #perform:orSendTo:
arguments: an Array(#doIt a PluggableTextMorph(268173312))
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
MouseButtonEvent>>sentTo:
Receiver: [(560@321) mouseUp 828114 nil]
Arguments and temporary variables:Â
anObject: a ToggleMenuItemMorph(287309824)'Do it (d)'
Receiver's instance variables:Â
timeStamp: 828114
source: a HandMorph(843055104)
windowIndex: nil
type: #mouseUp
buttons: 0
position: (560@321)
handler: nil
wasHandled: true
whichButton: 4
ToggleMenuItemMorph(Morph)>>handleEvent:
Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
Receiver's instance variables:Â
bounds: (541.0(a)310.0) corner: (678.0(a)328.0)
owner: a MenuMorph(954466304)
submorphs: #()
fullBounds: (541.0(a)310.0) corner: (678.0(a)328.0)
color: Color black
extension: a MorphExtension (289931264)
font: a StrikeFont(Bitmap DejaVu Sans 9 14)
emphasis: 0
contents: 'Do it (d)'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a Workspace
selector: #perform:orSendTo:
arguments: an Array(#doIt a PluggableTextMorph(268173312))
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
MorphicEventDispatcher>>dispatchDefault:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
aMorph: a ToggleMenuItemMorph(287309824)'Do it (d)'
localEvt: nil
index: 1
child: nil
morphs: #()
inside: true
Receiver's instance variables:Â
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
aMorph: a ToggleMenuItemMorph(287309824)'Do it (d)'
Receiver's instance variables:Â
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
ToggleMenuItemMorph(Morph)>>processEvent:using:
Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
defaultDispatcher: a MorphicEventDispatcher
Receiver's instance variables:Â
bounds: (541.0(a)310.0) corner: (678.0(a)328.0)
owner: a MenuMorph(954466304)
submorphs: #()
fullBounds: (541.0(a)310.0) corner: (678.0(a)328.0)
color: Color black
extension: a MorphExtension (289931264)
font: a StrikeFont(Bitmap DejaVu Sans 9 14)
emphasis: 0
contents: 'Do it (d)'
hasFocus: false
isEnabled: true
subMenu: nil
isSelected: false
target: a Workspace
selector: #perform:orSendTo:
arguments: an Array(#doIt a PluggableTextMorph(268173312))
icon: Form(16x16x32)
getStateSelector: nil
enablementSelector: nil
keyText: nil
MorphicEventDispatcher>>dispatchDefault:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
aMorph: a MenuMorph(954466304)
localEvt: [(560@321) mouseUp 828114 nil]
index: 1
child: a ToggleMenuItemMorph(287309824)'Do it (d)'
morphs: an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuItemMo...etc...
inside: false
Receiver's instance variables:Â
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
aMorph: a MenuMorph(954466304)
Receiver's instance variables:Â
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
MenuMorph(Morph)>>processEvent:using:
Receiver: a MenuMorph(954466304)
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
defaultDispatcher: a MorphicEventDispatcher
Receiver's instance variables:Â
bounds: (537.0(a)306.0) corner: (682.0(a)644.0)
owner: nil
submorphs: an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuIte...etc...
fullBounds: (537.0(a)306.0) corner: (683.0(a)645.0)
color: (Color r: 0.775 g: 0.775 b: 0.775)
extension: a MorphExtension (958136320) [other: Â (basicColor -> Color lightGray...etc...
borderWidth: 1
borderColor: Color gray
defaultTarget: a Workspace
selectedItem: a ToggleMenuItemMorph(287309824)'Do it (d)'
stayUp: false
popUpOwner: nil
activeSubMenu: nil
activatorDockingBar: nil
embeddable: nil
menuItems: an OrderedCollection(a ToggleMenuItemMorph(287309824)'Do it (d)' a T...etc...
MenuMorph(Morph)>>processEvent:
Receiver: a MenuMorph(954466304)
Arguments and temporary variables:Â
anEvent: [(560@321) mouseUp 828114 nil]
Receiver's instance variables:Â
bounds: (537.0(a)306.0) corner: (682.0(a)644.0)
owner: nil
submorphs: an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuIte...etc...
fullBounds: (537.0(a)306.0) corner: (683.0(a)645.0)
color: (Color r: 0.775 g: 0.775 b: 0.775)
extension: a MorphExtension (958136320) [other: Â (basicColor -> Color lightGray...etc...
borderWidth: 1
borderColor: Color gray
defaultTarget: a Workspace
selectedItem: a ToggleMenuItemMorph(287309824)'Do it (d)'
stayUp: false
popUpOwner: nil
activeSubMenu: nil
activatorDockingBar: nil
embeddable: nil
menuItems: an OrderedCollection(a ToggleMenuItemMorph(287309824)'Do it (d)' a T...etc...
MenuMorph>>handleFocusEvent:
Receiver: a MenuMorph(954466304)
Arguments and temporary variables:Â
evt: [(560@321) mouseUp 828114 nil]
Receiver's instance variables:Â
bounds: (537.0(a)306.0) corner: (682.0(a)644.0)
owner: nil
submorphs: an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuIte...etc...
fullBounds: (537.0(a)306.0) corner: (683.0(a)645.0)
color: (Color r: 0.775 g: 0.775 b: 0.775)
extension: a MorphExtension (958136320) [other: Â (basicColor -> Color lightGray...etc...
borderWidth: 1
borderColor: Color gray
defaultTarget: a Workspace
selectedItem: a ToggleMenuItemMorph(287309824)'Do it (d)'
stayUp: false
popUpOwner: nil
activeSubMenu: nil
activatorDockingBar: nil
embeddable: nil
menuItems: an OrderedCollection(a ToggleMenuItemMorph(287309824)'Do it (d)' a T...etc...
--- The full stack ---
NBGLContextDriver class(Object)>>error:
[self error: 'No suitable implementation found for initializing OpenGL context for your platform'] in NBGLContextDriver class>>forCurrentPlatform
OrderedCollection(Collection)>>detect:ifNone:
NBGLContextDriver class>>forCurrentPlatform
NBGLContextDriver class>>createContext:
NBGLDisplay class>>extent:
GLTTRenderingDemo(GLViewportMorph)>>initializeForNewSession
GLTTRenderingDemo>>initializeForNewSession
GLTTRenderingDemo(GLViewportMorph)>>initialize
GLTTRenderingDemo>>initialize
GLTTRenderingDemo class(Behavior)>>new
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[rcvr class evaluatorClass new
evaluate: self selectionForDoitAsStream
in: ctxt
to: rcvr
notifying: self morph
ifFail: [self morph flash.
^ nil]
logged: true] in SmalltalkEditor>>evaluateSelectionAndDo:
BlockClosure>>on:do:
SmalltalkEditor>>evaluateSelectionAndDo:
SmalltalkEditor>>evaluateSelection
[textMorph editor evaluateSelection] in PluggableTextMorph>>doIt
[result := editBlock value] in PluggableTextMorph>>handleEdit:
TextMorphForEditView(TextMorph)>>handleEdit:
PluggableTextMorph>>handleEdit:
PluggableTextMorph>>doIt
Workspace(StringHolder)>>perform:orSendTo:
[| selArgCount |
(selArgCount := selector numArgs) = 0
ifTrue: [target perform: selector]
ifFalse: [selArgCount = arguments size
ifTrue: [target perform: selector withArguments: arguments]
ifFalse: [target
perform: selector
withArguments: (arguments copyWith: evt)]].
self changed] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
ToggleMenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
ToggleMenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
 - - - - - - - - - - - - - - - Â
- - - - - - - - - - - - - - - - - -
[ActiveHand := self.
ActiveEvent := anEvent.
result := focusHolder
handleFocusEvent: (anEvent
transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
[aBlock value] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[:h |Â
ActiveHand := h.
h processEvents.
ActiveHand := nil] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldState>>doOneSubCycleFor:
PasteUpMorph>>doOneSubCycle
MenuMorph>>invokeModalAt:in:allowKeyboard:
MenuMorph>>invokeModal:
MenuMorph>>invokeModal
PluggableTextMorph>>yellowButtonActivity:
TextMorphForEditView>>mouseDown:
TextMorphForEditView(Morph)>>handleMouseDown:
MouseButtonEvent>>sentTo:
TextMorphForEditView(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
TextMorphForEditView(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
TransformMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
PluggableTextMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
SystemWindow(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
PasteUpMorph(Morph)>>processEvent:using:
PasteUpMorph>>processEvent:using:
PasteUpMorph(Morph)>>processEvent:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[:h |Â
ActiveHand := h.
h processEvents.
ActiveHand := nil] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[[World doOneCycle.
Processor yield.
false] whileFalse.
nil] in MorphicUIManager>>spawnNewProcess
[self value.
Processor terminateActive] in BlockClosure>>newProcess
Jan. 31, 2012
Re: [Pharo-project] Cog+linux: external module not found
by Schwab,Wilhelm K
Göran,
Thanks for what you do, and for noticing what I (at least try) to contribute. Some other "tangible" items in my queue *will* be worth the wait[*]. I sincerely hope you are correct about a misunderstanding being at the base of thread.
Hopefully, we can all dust ourselves off [**] and make FFI robust everywhere.
Best regards,
Bill
[*] I know I've said this for essentially Pharo's entire life cycle, but it's true... Callbacks, my kingdom for callbacks.
[**] Some US slang for Stef's benefit :)
________________________________________
From: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr] on behalf of Göran Krampe [goran(a)krampe.se]
Sent: Tuesday, January 31, 2012 3:05 AM
To: pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] Cog+linux: external module not found
Hi guys!
On 01/09/2012 09:36 PM, Sven Van Caekenberghe wrote:
> On 09 Jan 2012, at 20:06, Schwab,Wilhelm K wrote:
>> I think you have the situation very much in reverse. You are flying off the handle, not me.
>>
>> Cog deserves better than to ignore feedback from motivated users. Motivated users deserve better than to be insulted for their efforts to improve it.
>
> Pharo, Squeak, Cog, Seaside, and most other Smalltalk software on SqueakSource is open source, written almost exclusively by people in their free time. And although most of them will try to help the users of their software the best they can, they cannot and should not do just anything unless they want to. The relation between open source authors and their users should be mutually productive. Using software and giving feedback if one thing, but it is not enough. It can't be one way all the time.
>
> I might be wrong, but I fail to find
>
> - any issues you put in the issue tracker(s)
> - any issues you solved
> - any open source software you published on SqueakSource or anywhere else
> - any blog post or web pages with documentation, tutorials, .. that you wrote
>
> I hope you get the point: there are many more ways to contribute than what you are doing now.
>
> Pharo and other projects need all the help they can get, give back to the community, we are all using software written by others in the same spirit, it is only fair to honor these contributions.
>
> My 2c,
This thread is long dead but I just wanted to mention that Wilhelm
Schwab is a long time Squeaker and has been active in the community long
before Pharo was even born. ;)
Now, it seems to me that the "heat" in this particular thread was based
on a misunderstanding, I know Eliot and it didn't seem to me he was
trying to insult.
General observation: Try taking it easy on the "what the heck have you
done for us?"-talk. I have made several such similar posts too over the
years when I got frustrated, but it might backfire if you aren't
shooting at the "right people". We take pride in being a friendly
community (Smalltalk at large) and I presume Pharo does too :)
regards, Göran
Jan. 31, 2012
[Pharo-project] CogVM driver vs executable
by Sven Van Caekenberghe
In response to my posting
http://lists.gforge.inria.fr/pipermail/pharo-project/2012-January/058790.ht…
I got feedback from people trying to use SSL with Eliot's CogVM
http://www.mirandabanda.org/files/Cog/VM/VM.r2522/coglinux.tgz
instead of the Pharo one that I normally use
http://gforge.inria.fr/frs/download.php/29042/CogVM-Unix-13307.zip
They reported that it did not work for them.
So I tried this myself on my Ubuntu 11.10 (GNU/Linux 3.0.0-14-virtual i686) server and yes it fails with 'can't infer base LD_LIBRARY_PATH. Aborting.' which was discussed in this list before. I am not qualified to really understand those discussions.
But when I used the executable 'inside' coglinux/lib/squeak/4.0-2522/squeak everything worked as expected.
So the question is what does the driver (I don't know if that is the right word) coglinux/squeak or coglinux/bin/squeak do ?
Since the pharo variant seems to operate fine without it, do we need the driver ?
Sven
Jan. 31, 2012
Re: [Pharo-project] [Pharo-users] Pharo Morphic View Application Framework
by Stéphane Ducasse
did you see what benjamin is doing with Spec.
Because you should join effort
the idea is that we can define object with spec and compose them and their logic using value holder.
Stef
On Jan 31, 2012, at 5:58 AM, S Krish wrote:
> http://skrishnamachari.wordpress.com/2012/01/31/pharo-application-framework…
>
> Obliged for feedback ...
>
> For details and links..
> Sharing this little framework that should go some way to ease creating large applications ( currently morphic oriented).
>
> AbstractMorphicView subclass: #MyNewView â¦
>
> #createMorphsSpecs
>
> ^{
>
> âpanel1â² -> #SomeOtherView.
> âlabel1â² -> #LabelMorph.
> âtext1â² -> #PluggableTextMorph.
> âbutton1â² -> #PluggableButtonMorph.
> }
>
> layoutSpecsArray
>
> ^{
> âwidgetNameInMorphsDictionaryâ -> {
> #fractions -> (0 @ 0 corner: 1 @ 0.5). â fractional value 0 to 1 range â
> #offsets -> (10 @ 10 corner: 0 @ 0). â offsets relative to the fractional position â
> }.
>
> â⦠add other widgetspecsâ¦â
> }
>
> Thats it.. you should have a prototype UI neatly laid out.. and then specify: #morphsPrimaryPropertiesSpecs and #morphsSecondaryPropertiesSpecs for full functionality that composes views inside views and scales well.
>
> AbstractSimpleMorphicView can make it simpler for TableLayout stuff without requiring #layoutSpecsArray.
>
> ..... the main post has other details and links to package...
>
Jan. 31, 2012
Re: [Pharo-project] Following context execution
by Stéphane Ducasse
Thanks I will definitively play with that.
On Jan 31, 2012, at 12:28 AM, Eliot Miranda wrote:
>
>
> On Sun, Jan 29, 2012 at 1:25 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> Hi
>
> I would like to write some tests about MethodContext and BlockClosure activation.
> To start I wanted to write a simple invocation and step in from context to context.
>
> I could manually annotate the code with thisContext and store the resulting contexts
> somewhere. But does anybody has some magic information so that I can reuse the debugger logic?
>
> ContextPart>runSimulated:atEachStep:, e.g.
>
> | last |
> last := thisContext.
> thisContext runSimulated: [#(1 2 3) detect: [:e| e even]] contextAtEachStep: [:c| c ~~ last ifTrue: [Transcript print: c; cr; flush. last := c]]
>
> =>
>
> [] in UndefinedObject>>DoIt
> Array(Collection)>>detect:
> Array(Collection)>>detect:ifNone:
> Array(SequenceableCollection)>>do:
> [] in Array(Collection)>>detect:ifNone:
> [] in [] in UndefinedObject>>DoIt
> SmallInteger>>even
> [] in [] in UndefinedObject>>DoIt
> [] in Array(Collection)>>detect:ifNone:
> Array(SequenceableCollection)>>do:
> [] in Array(Collection)>>detect:ifNone:
> [] in [] in UndefinedObject>>DoIt
> SmallInteger>>even
> [] in [] in UndefinedObject>>DoIt
> [] in Array(Collection)>>detect:ifNone:
> Array(Collection)>>detect:
> [] in UndefinedObject>>DoIt
>
>
> or...
>
>
> | last home indent |
> last := nil.
> home := thisContext.
> indent := 0.
> thisContext
> runSimulated: [#(1 2 3) detect: [:e| e even]]
> contextAtEachStep:
> [:c| | ctxt |
> c ~~ last ifTrue:
> [last := c.
> indent := 0. ctxt := c sender.
> [ctxt ~~ home] whileTrue:
> [ctxt := ctxt sender. indent := indent + 1].
> Transcript crtab: indent; print: c; flush]]
>
> [] in UndefinedObject>>DoIt
> Array(Collection)>>detect:
> Array(Collection)>>detect:ifNone:
> Array(SequenceableCollection)>>do:
> [] in Array(Collection)>>detect:ifNone:
> [] in [] in UndefinedObject>>DoIt
> SmallInteger>>even
> [] in [] in UndefinedObject>>DoIt
> [] in Array(Collection)>>detect:ifNone:
> Array(SequenceableCollection)>>do:
> [] in Array(Collection)>>detect:ifNone:
> [] in [] in UndefinedObject>>DoIt
> SmallInteger>>even
> [] in [] in UndefinedObject>>DoIt
> [] in Array(Collection)>>detect:ifNone:
> Array(Collection)>>detect:
> [] in UndefinedObject>>DoIt
>
>
>
> --
> best,
> Eliot
>
Jan. 31, 2012
Re: [Pharo-project] Cog+linux: external module not found
by Göran Krampe
Hi guys!
On 01/09/2012 09:36 PM, Sven Van Caekenberghe wrote:
> On 09 Jan 2012, at 20:06, Schwab,Wilhelm K wrote:
>> I think you have the situation very much in reverse. You are flying off the handle, not me.
>>
>> Cog deserves better than to ignore feedback from motivated users. Motivated users deserve better than to be insulted for their efforts to improve it.
>
> Pharo, Squeak, Cog, Seaside, and most other Smalltalk software on SqueakSource is open source, written almost exclusively by people in their free time. And although most of them will try to help the users of their software the best they can, they cannot and should not do just anything unless they want to. The relation between open source authors and their users should be mutually productive. Using software and giving feedback if one thing, but it is not enough. It can't be one way all the time.
>
> I might be wrong, but I fail to find
>
> - any issues you put in the issue tracker(s)
> - any issues you solved
> - any open source software you published on SqueakSource or anywhere else
> - any blog post or web pages with documentation, tutorials, .. that you wrote
>
> I hope you get the point: there are many more ways to contribute than what you are doing now.
>
> Pharo and other projects need all the help they can get, give back to the community, we are all using software written by others in the same spirit, it is only fair to honor these contributions.
>
> My 2c,
This thread is long dead but I just wanted to mention that Wilhelm
Schwab is a long time Squeaker and has been active in the community long
before Pharo was even born. ;)
Now, it seems to me that the "heat" in this particular thread was based
on a misunderstanding, I know Eliot and it didn't seem to me he was
trying to insult.
General observation: Try taking it easy on the "what the heck have you
done for us?"-talk. I have made several such similar posts too over the
years when I got frustrated, but it might backfire if you aren't
shooting at the "right people". We take pride in being a friendly
community (Smalltalk at large) and I presume Pharo does too :)
regards, Göran
Jan. 31, 2012
Re: [Pharo-project] pharo vision
by Stéphane Ducasse
excellent!
On Jan 30, 2012, at 11:48 PM, Henrik Sperre Johansen wrote:
> On 30.01.2012 23:02, Stéphane Ducasse wrote:
>> On Jan 30, 2012, at 5:10 PM, Henrik Johansen wrote:
>>
>>> Going back to pure ANSI-streams as provided by FSFileStream is not really an option.
>> Can you elaborate on your previous sentence?
>> Because the underlying reason is not 100% clear to me.
> FSFileStreams are pure ansi-protocol compliant streams.
> No buffering, no optimization, strange concoction of the underlying primitives (like Nicolas mentioned, always pairing seek and read), no "built-in" way to translate using encodings, no other bells, no whistles.
>
> Creating such streams from the FSPath stream creation API makes little to no sense, lest the goal is to provide a simple API for accessing streams in a cross-platform manner, in which case I guess you'd leave the rest of the work to other non-ansi, but cross-platform libraries.
>
> Cheers,
> Henry
>
Jan. 31, 2012
Re: [Pharo-project] Help with markdown is coming...
by Olivier Auverlot
Le 30/01/12 19:47, Igor Stasenko a écrit :
> a bit messy, because Camillo is a bad guy! ;)
>
cool ! It's a very usefull tool to build documentation.
Olivier ;-)
www.auverlot.fr
Jan. 31, 2012
Re: [Pharo-project] Collection new
by S Krish
In general why is there not a catch all for Stack Overflow and infinite
loops.
Thats very annoying for newbie.. and infact gives a bad feel to using
Pharo. The image they are working for say 3-4 hours and the crash just
pushes them out of all the code they are working on with.. small as it
maybe..
Recover / and other options are fallbacks but invariably newbies have it
messed up and are not very clear on how to recover either .. thats a job
for the experienced user actually...
This occurs so often from all of the polling code.. and if anyone
unknowingly puts in a debug point in the methods that loop infinitely.. and
so many of them lurk all around the image..
Just stop the loop and throw up a debugger if say 100 calls have gone to
very same method..? or detect a clear loopback to the same method..
On Tue, Jan 31, 2012 at 12:01 AM, Andrew P. Black <black(a)cs.pdx.edu> wrote:
> Teaching a class of novices, it's not surprising that someone tried
> "Collection new". What was surprising is that this got the VM is a loop of
> some kind, with emergency stack dumps and so on.
>
> Here is my reply:
>
>
> > On 30 Jan 2012, at 01:18 , Xingzhi Harry Pan wrote:
> >
> >> ...it's pretty innocent:
> >> Collection new
> >
> >
> > OK. I looked at this. The problem comes when trying to print the
> collection. Somehow the VM gets confused when trying to do do: ... I'm not
> quite clear why.
> >
> > The quick fix is to change the Collection>>new method to
> >
> > self error: 'Collection is an abstract class, and cannot be
> instantiated'
> >
> > However this will break Heap>>new: , which sends super new. It ought to
> send self basicNew instead.
> >
> > These two changes seem to avoid the problem, but I'm waiting to see ...
> >
> > Andrew
>
> But I don't understand the root cause. Printing eventually sends do:,
> which is self subclassResponsibility. Why don't we get a clean failure?
>
> Andrew
>
>
>
Jan. 31, 2012