gsDevKit / tode first time setup

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
27 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: gsDevKit / tode first time setup

GLASS mailing list


On 10/19/2015 10:13 PM, Jon Paynter wrote:

> ok I got the session properties updated on the client  - I changed
> "seaside_ldi" to "netldi"
>
> and now i can log in.
> I opened the project list, but when poking around in the menus to try
> and create a new project, something broke and now I get a dictionary
> error "attempt to store nil as a key"
> restarting the tode client doesnt seem to rollback whatever changes
> were made, so now the project list is broken.
>
> not sure how to get a stack dump or I would include one here.
>

Presumably you are getting a dialog box with the error in it and three
buttons labeled "Proceed" "Abort" "Debug" ... if so press the "Debug"
button and a debugger should open go to the window that looks like a
stack trace and us the "Window > print window" menu item to get a text
version of the window (this is available on every tODE window except the
console) copy the stack text and past that in a mail image so I can look
at the stack trace ...

If you are not getting a dialog, then describe how you are being
presented with the "attempt to store nil as a key" message and we'll go
from there...

Dale
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: gsDevKit / tode first time setup

GLASS mailing list
... this tode client has a bit of a learning curve.

here is the stack dump
aTDDebugger
--------------------
1. ArgumentError(AbstractException)>>_signalWith: @5 line 25
2. ArgumentError(AbstractException)>>signal @2 line 47
3. Dictionary(Object)>>_error: @13 line 7
4. Dictionary(AbstractDictionary)>>errorNilKey @2 line 5
5. Dictionary>>at:put: @3 line 9
6. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>mapAdd:into: @4 line 3
7. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
8. MetacelloAddMemberSpec>>applyAdd:copy:merge:remove: @2 line 3
9. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
10. OrderedCollection(Collection)>>do: @5 line 10
11. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @7 line 6
12. MetacelloMCBaselineOfProjectSpec(MetacelloGenericProjectSpec)>>repositorySpecs @5 line 3
13. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpecs @3 line 2
14. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpec @2 line 3
15. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasFileTreeRepo @2 line 2
16. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasGitRepository @2 line 2
17. TDMetacelloUnloadedProjectRegistrationDefinition(TDAbstractProjectRegistrationDefinition)>>isGitDirty @2 line 2
18. TDMetacelloUnloadedProjectRegistrationDefinition>>isDirty @3 line 2
19. [] in ExecBlock2(TDMetacelloTool)>>sortRegistrationList: @30 line 17
20. Array(SequenceableCollection)>>mergeFirst:middle:last:into:by: @15 line 14
21. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @11 line 10
22. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
23. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @8 line 8
24. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
25. Array(SequenceableCollection)>>mergeSortFrom:to:by: @12 line 18
26. Array(SequenceableCollection)>>sort: @3 line 6
27. TDMetacelloTool>>sortRegistrationList: @2 line 8
28. TDMetacelloTool>>projectRegistrationDefinitionList @6 line 4
29. [] in TDMetacelloTool>>projectlist @2 line 13
30. TDMetacelloProjectBrowser>>clientList:listElement: @3 line 4
31. [] in TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>clientListBlock @2 line 2
32. TDMiniToolSpec>>clientList:listElement: @4 line 3
33. TDMiniToolClientListElementBuilder>>clientList: @3 line 2
34. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>firstList: @2 line 2
35. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>buildClientElementUsing:editorAspect: @19 line 15
36. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
37. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
38. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
39. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
40. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
41. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
42. TDTopezServer>>clientElementFor:using: @3 line 4
43. TDTopezServer>>edit:using: @2 line 3
44. TDMetacelloProjectBrowser(Object)>>editUsing: @4 line 3
45. TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>open @3 line 2
46. [] in TDMetacelloTool>>projectlist @8 line 35
47. Dictionary(AbstractDictionary)>>at:ifPresent:ifAbsent: @3 line 5
48. TDMetacelloTool>>projectlist @4 line 27
49. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
50. [] in TDMetacelloTool class>>project @2 line 5
51. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
52. TDTopezServer>>evaluateCommand:objIn: @18 line 22
53. TDTopezServer>>evaluateSTONCommand: @9 line 6
54. Executed Code
55. GsNMethod class>>_gsReturnToC @1 line 1




On Tue, Oct 20, 2015 at 12:10 PM, Dale Henrichs <[hidden email]> wrote:


On 10/19/2015 10:13 PM, Jon Paynter wrote:
ok I got the session properties updated on the client  - I changed "seaside_ldi" to "netldi"

and now i can log in.
I opened the project list, but when poking around in the menus to try and create a new project, something broke and now I get a dictionary error "attempt to store nil as a key"
restarting the tode client doesnt seem to rollback whatever changes were made, so now the project list is broken.

not sure how to get a stack dump or I would include one here.


Presumably you are getting a dialog box with the error in it and three buttons labeled "Proceed" "Abort" "Debug" ... if so press the "Debug" button and a debugger should open go to the window that looks like a stack trace and us the "Window > print window" menu item to get a text version of the window (this is available on every tODE window except the console) copy the stack text and past that in a mail image so I can look at the stack trace ...

If you are not getting a dialog, then describe how you are being presented with the "attempt to store nil as a key" message and we'll go from there...

Dale


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: gsDevKit / tode first time setup

GLASS mailing list
If you've still got the debugger window open, I need to see the context for frame 5 ... select frame 5 and then "Window > print window" in the context window (pane/window below the stack window)... for frames 12 and 13, I'd like to see (self): click on the frame in the stack window, then click on (self) in the context window and then "Window > print window"

and then we'll go from there ...

re: learning curve ... haha yeah it is a bit different than your father's Smalltalk dev environment ... I'm curious about any aha moments you might have, including the oh crap ones too --- they are be worth sharing ... I've used tODE too long and went through a different learning curve (no menus and only shortcut keys in the very beginning) ...

Dale

On 10/20/2015 11:14 PM, Jon Paynter wrote:
... this tode client has a bit of a learning curve.

here is the stack dump
aTDDebugger
--------------------
1. ArgumentError(AbstractException)>>_signalWith: @5 line 25
2. ArgumentError(AbstractException)>>signal @2 line 47
3. Dictionary(Object)>>_error: @13 line 7
4. Dictionary(AbstractDictionary)>>errorNilKey @2 line 5
5. Dictionary>>at:put: @3 line 9
6. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>mapAdd:into: @4 line 3
7. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
8. MetacelloAddMemberSpec>>applyAdd:copy:merge:remove: @2 line 3
9. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
10. OrderedCollection(Collection)>>do: @5 line 10
11. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @7 line 6
12. MetacelloMCBaselineOfProjectSpec(MetacelloGenericProjectSpec)>>repositorySpecs @5 line 3
13. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpecs @3 line 2
14. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpec @2 line 3
15. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasFileTreeRepo @2 line 2
16. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasGitRepository @2 line 2
17. TDMetacelloUnloadedProjectRegistrationDefinition(TDAbstractProjectRegistrationDefinition)>>isGitDirty @2 line 2
18. TDMetacelloUnloadedProjectRegistrationDefinition>>isDirty @3 line 2
19. [] in ExecBlock2(TDMetacelloTool)>>sortRegistrationList: @30 line 17
20. Array(SequenceableCollection)>>mergeFirst:middle:last:into:by: @15 line 14
21. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @11 line 10
22. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
23. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @8 line 8
24. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
25. Array(SequenceableCollection)>>mergeSortFrom:to:by: @12 line 18
26. Array(SequenceableCollection)>>sort: @3 line 6
27. TDMetacelloTool>>sortRegistrationList: @2 line 8
28. TDMetacelloTool>>projectRegistrationDefinitionList @6 line 4
29. [] in TDMetacelloTool>>projectlist @2 line 13
30. TDMetacelloProjectBrowser>>clientList:listElement: @3 line 4
31. [] in TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>clientListBlock @2 line 2
32. TDMiniToolSpec>>clientList:listElement: @4 line 3
33. TDMiniToolClientListElementBuilder>>clientList: @3 line 2
34. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>firstList: @2 line 2
35. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>buildClientElementUsing:editorAspect: @19 line 15
36. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
37. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
38. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
39. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
40. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
41. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
42. TDTopezServer>>clientElementFor:using: @3 line 4
43. TDTopezServer>>edit:using: @2 line 3
44. TDMetacelloProjectBrowser(Object)>>editUsing: @4 line 3
45. TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>open @3 line 2
46. [] in TDMetacelloTool>>projectlist @8 line 35
47. Dictionary(AbstractDictionary)>>at:ifPresent:ifAbsent: @3 line 5
48. TDMetacelloTool>>projectlist @4 line 27
49. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
50. [] in TDMetacelloTool class>>project @2 line 5
51. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
52. TDTopezServer>>evaluateCommand:objIn: @18 line 22
53. TDTopezServer>>evaluateSTONCommand: @9 line 6
54. Executed Code
55. GsNMethod class>>_gsReturnToC @1 line 1




On Tue, Oct 20, 2015 at 12:10 PM, Dale Henrichs <[hidden email]> wrote:


On 10/19/2015 10:13 PM, Jon Paynter wrote:
ok I got the session properties updated on the client  - I changed "seaside_ldi" to "netldi"

and now i can log in.
I opened the project list, but when poking around in the menus to try and create a new project, something broke and now I get a dictionary error "attempt to store nil as a key"
restarting the tode client doesnt seem to rollback whatever changes were made, so now the project list is broken.

not sure how to get a stack dump or I would include one here.


Presumably you are getting a dialog box with the error in it and three buttons labeled "Proceed" "Abort" "Debug" ... if so press the "Debug" button and a debugger should open go to the window that looks like a stack trace and us the "Window > print window" menu item to get a text version of the window (this is available on every tODE window except the console) copy the stack text and past that in a mail image so I can look at the stack trace ...

If you are not getting a dialog, then describe how you are being presented with the "attempt to store nil as a key" message and we'll go from there...

Dale



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: gsDevKit / tode first time setup

GLASS mailing list
ok. context for frame 5
Dictionary>>at:put: @3 line 9
--------------------
.         -> Dictionary>>at:put: @3 line 9
(context) -> aGsNMethod
(self)    -> aDictionary( )
aKey      -> nil
aValue    -> spec repository: nil
anAssoc   -> nil
hashVal   -> nil
.t1       -> aDictionary( )


.... based on my own poking around, its adding a new member spec with a name=nil
when I explore (dive?) into the MetacelloAddMemberSpec instance, everything is nil except for the project & spec, but their instvars are also all nil

Do you have any docs for tode?   - in particular the configuration. Currently I find it rather clunky because I dont know most of the shortcuts.
but the 2 main annoyances:
1) how to shut off the auto code formatter?  it makes a hash of my code whenever I accept a method.  I looked in the image settings but could not find anything.
2) how to re-map "paste" to the normal Control+V instead of Alt+V  -- im copying & pasting code from VW into tode

A "nice to have" -- update the method list window after creating accessors

The auto-window layout is nice.  But I wish I could tell it where to place the various windows.  I frequently wind up with 3-4 Hierarchy windows on top of each other.  It would be nice if they would all tile within their designated space.
But -im hoping a working project browser will let me browse stuff by category instead of having to deal with several of the Hierarchy browsers.

The folder layout paradigm (.  vs ..) for the inspector window is neat once you get used to it.

And lastly - how can i get the image to save the set of open windows when im done for the day?


On Tue, Oct 20, 2015 at 11:48 PM, Dale Henrichs <[hidden email]> wrote:
If you've still got the debugger window open, I need to see the context for frame 5 ... select frame 5 and then "Window > print window" in the context window (pane/window below the stack window)... for frames 12 and 13, I'd like to see (self): click on the frame in the stack window, then click on (self) in the context window and then "Window > print window"

and then we'll go from there ...

re: learning curve ... haha yeah it is a bit different than your father's Smalltalk dev environment ... I'm curious about any aha moments you might have, including the oh crap ones too --- they are be worth sharing ... I've used tODE too long and went through a different learning curve (no menus and only shortcut keys in the very beginning) ...

Dale


On 10/20/2015 11:14 PM, Jon Paynter wrote:
... this tode client has a bit of a learning curve.

here is the stack dump
aTDDebugger
--------------------
1. ArgumentError(AbstractException)>>_signalWith: @5 line 25
2. ArgumentError(AbstractException)>>signal @2 line 47
3. Dictionary(Object)>>_error: @13 line 7
4. Dictionary(AbstractDictionary)>>errorNilKey @2 line 5
5. Dictionary>>at:put: @3 line 9
6. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>mapAdd:into: @4 line 3
7. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
8. MetacelloAddMemberSpec>>applyAdd:copy:merge:remove: @2 line 3
9. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
10. OrderedCollection(Collection)>>do: @5 line 10
11. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @7 line 6
12. MetacelloMCBaselineOfProjectSpec(MetacelloGenericProjectSpec)>>repositorySpecs @5 line 3
13. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpecs @3 line 2
14. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpec @2 line 3
15. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasFileTreeRepo @2 line 2
16. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasGitRepository @2 line 2
17. TDMetacelloUnloadedProjectRegistrationDefinition(TDAbstractProjectRegistrationDefinition)>>isGitDirty @2 line 2
18. TDMetacelloUnloadedProjectRegistrationDefinition>>isDirty @3 line 2
19. [] in ExecBlock2(TDMetacelloTool)>>sortRegistrationList: @30 line 17
20. Array(SequenceableCollection)>>mergeFirst:middle:last:into:by: @15 line 14
21. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @11 line 10
22. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
23. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @8 line 8
24. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
25. Array(SequenceableCollection)>>mergeSortFrom:to:by: @12 line 18
26. Array(SequenceableCollection)>>sort: @3 line 6
27. TDMetacelloTool>>sortRegistrationList: @2 line 8
28. TDMetacelloTool>>projectRegistrationDefinitionList @6 line 4
29. [] in TDMetacelloTool>>projectlist @2 line 13
30. TDMetacelloProjectBrowser>>clientList:listElement: @3 line 4
31. [] in TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>clientListBlock @2 line 2
32. TDMiniToolSpec>>clientList:listElement: @4 line 3
33. TDMiniToolClientListElementBuilder>>clientList: @3 line 2
34. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>firstList: @2 line 2
35. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>buildClientElementUsing:editorAspect: @19 line 15
36. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
37. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
38. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
39. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
40. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
41. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
42. TDTopezServer>>clientElementFor:using: @3 line 4
43. TDTopezServer>>edit:using: @2 line 3
44. TDMetacelloProjectBrowser(Object)>>editUsing: @4 line 3
45. TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>open @3 line 2
46. [] in TDMetacelloTool>>projectlist @8 line 35
47. Dictionary(AbstractDictionary)>>at:ifPresent:ifAbsent: @3 line 5
48. TDMetacelloTool>>projectlist @4 line 27
49. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
50. [] in TDMetacelloTool class>>project @2 line 5
51. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
52. TDTopezServer>>evaluateCommand:objIn: @18 line 22
53. TDTopezServer>>evaluateSTONCommand: @9 line 6
54. Executed Code
55. GsNMethod class>>_gsReturnToC @1 line 1




On Tue, Oct 20, 2015 at 12:10 PM, Dale Henrichs <[hidden email]> wrote:


On 10/19/2015 10:13 PM, Jon Paynter wrote:
ok I got the session properties updated on the client  - I changed "seaside_ldi" to "netldi"

and now i can log in.
I opened the project list, but when poking around in the menus to try and create a new project, something broke and now I get a dictionary error "attempt to store nil as a key"
restarting the tode client doesnt seem to rollback whatever changes were made, so now the project list is broken.

not sure how to get a stack dump or I would include one here.


Presumably you are getting a dialog box with the error in it and three buttons labeled "Proceed" "Abort" "Debug" ... if so press the "Debug" button and a debugger should open go to the window that looks like a stack trace and us the "Window > print window" menu item to get a text version of the window (this is available on every tODE window except the console) copy the stack text and past that in a mail image so I can look at the stack trace ...

If you are not getting a dialog, then describe how you are being presented with the "attempt to store nil as a key" message and we'll go from there...

Dale




_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: gsDevKit / tode first time setup

GLASS mailing list

On Wed, Oct 21, 2015 at 4:20 AM, Jon Paynter <[hidden email]> wrote:
ok. context for frame 5
Dictionary>>at:put: @3 line 9
--------------------
.         -> Dictionary>>at:put: @3 line 9
(context) -> aGsNMethod
(self)    -> aDictionary( )
aKey      -> nil
aValue    -> spec repository: nil
anAssoc   -> nil
hashVal   -> nil
.t1       -> aDictionary( )


.... based on my own poking around, its adding a new member spec with a name=nil
when I explore (dive?) into the MetacelloAddMemberSpec instance, everything is nil except for the project & spec, but their instvars are also all nil

Do you have any docs for tode?   - in particular the configuration. Currently I find it rather clunky because I dont know most of the shortcuts.
but the 2 main annoyances:

 
1) how to shut off the auto code formatter?  it makes a hash of my code whenever I accept a method.  I looked in the image settings but could not find anything 

That has been asked. Check the mainling list. The idea was to at some point have this:


But for the moment, you must be satisfy with executing this in the tODE shell:

 limit format false #turn off autoformatting

but that will only work for the lifetime of the shell. As soon as you log out and enter again you must set it again. 
 
.
2) how to re-map "paste" to the normal Control+V instead of Alt+V  -- im copying & pasting code from VW into tode

I think that's a Pharo issue. There used to be a setting to fix that (duplicateControlAltKeys or SwapControlAndAltKeys) but it was deleted because it was a hack. You may need to ask Pharo mailing list, but I doubt there is a solution for 3.0.
 

A "nice to have" -- update the method list window after creating accessors

The auto-window layout is nice.  But I wish I could tell it where to place the various windows. 

Well..there is something. Did you see Client -> Edit Windows Layout  ?
 
I frequently wind up with 3-4 Hierarchy windows on top of each other.  It would be nice if they would all tile within their designated space.
But -im hoping a working project browser will let me browse stuff by category instead of having to deal with several of the Hierarchy browsers.

The folder layout paradigm (.  vs ..) for the inspector window is neat once you get used to it.

And lastly - how can i get the image to save the set of open windows when im done for the day?

As far as I know, you can't, because that's part of the gemstone session you have open. I never save the image with a shell opened. I always exit shell for the weird cases I must save the image. I just tried it and even if you save the image with an opened shell, and you open it again, there is no shell. It makes sense, because when you exit todeClient you finish the gem you opened. So opening again, means a new gem, with a new clean shell.  What you want may be possible if the shell gets persisted????   Anyway, that's what I know/think. Maybe Dale has something else to say. 
 


On Tue, Oct 20, 2015 at 11:48 PM, Dale Henrichs <[hidden email]> wrote:
If you've still got the debugger window open, I need to see the context for frame 5 ... select frame 5 and then "Window > print window" in the context window (pane/window below the stack window)... for frames 12 and 13, I'd like to see (self): click on the frame in the stack window, then click on (self) in the context window and then "Window > print window"

and then we'll go from there ...

re: learning curve ... haha yeah it is a bit different than your father's Smalltalk dev environment ... I'm curious about any aha moments you might have, including the oh crap ones too --- they are be worth sharing ... I've used tODE too long and went through a different learning curve (no menus and only shortcut keys in the very beginning) ...

Dale


On 10/20/2015 11:14 PM, Jon Paynter wrote:
... this tode client has a bit of a learning curve.

here is the stack dump
aTDDebugger
--------------------
1. ArgumentError(AbstractException)>>_signalWith: @5 line 25
2. ArgumentError(AbstractException)>>signal @2 line 47
3. Dictionary(Object)>>_error: @13 line 7
4. Dictionary(AbstractDictionary)>>errorNilKey @2 line 5
5. Dictionary>>at:put: @3 line 9
6. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>mapAdd:into: @4 line 3
7. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
8. MetacelloAddMemberSpec>>applyAdd:copy:merge:remove: @2 line 3
9. [] in MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @2 line 8
10. OrderedCollection(Collection)>>do: @5 line 10
11. MetacelloRepositoriesSpec(MetacelloMemberListSpec)>>map @7 line 6
12. MetacelloMCBaselineOfProjectSpec(MetacelloGenericProjectSpec)>>repositorySpecs @5 line 3
13. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpecs @3 line 2
14. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpec @2 line 3
15. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasFileTreeRepo @2 line 2
16. TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>hasGitRepository @2 line 2
17. TDMetacelloUnloadedProjectRegistrationDefinition(TDAbstractProjectRegistrationDefinition)>>isGitDirty @2 line 2
18. TDMetacelloUnloadedProjectRegistrationDefinition>>isDirty @3 line 2
19. [] in ExecBlock2(TDMetacelloTool)>>sortRegistrationList: @30 line 17
20. Array(SequenceableCollection)>>mergeFirst:middle:last:into:by: @15 line 14
21. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @11 line 10
22. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
23. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @8 line 8
24. Array(SequenceableCollection)>>mergeSortFrom:to:src:dst:by: @10 line 9
25. Array(SequenceableCollection)>>mergeSortFrom:to:by: @12 line 18
26. Array(SequenceableCollection)>>sort: @3 line 6
27. TDMetacelloTool>>sortRegistrationList: @2 line 8
28. TDMetacelloTool>>projectRegistrationDefinitionList @6 line 4
29. [] in TDMetacelloTool>>projectlist @2 line 13
30. TDMetacelloProjectBrowser>>clientList:listElement: @3 line 4
31. [] in TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>clientListBlock @2 line 2
32. TDMiniToolSpec>>clientList:listElement: @4 line 3
33. TDMiniToolClientListElementBuilder>>clientList: @3 line 2
34. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>firstList: @2 line 2
35. TDMiniToolClientListElementBuilder(TDClientListElementBuilder)>>buildClientElementUsing:editorAspect: @19 line 15
36. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
37. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
38. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
39. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
40. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
41. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
42. TDTopezServer>>clientElementFor:using: @3 line 4
43. TDTopezServer>>edit:using: @2 line 3
44. TDMetacelloProjectBrowser(Object)>>editUsing: @4 line 3
45. TDMetacelloProjectBrowser(TDAbstractToolBuilder)>>open @3 line 2
46. [] in TDMetacelloTool>>projectlist @8 line 35
47. Dictionary(AbstractDictionary)>>at:ifPresent:ifAbsent: @3 line 5
48. TDMetacelloTool>>projectlist @4 line 27
49. TDMetacelloTool class(TDAbstractDevTool class)>>performSubCommand:objIn:commandOptions:todeCommand: @23 line 22
50. [] in TDMetacelloTool class>>project @2 line 5
51. TDMetacelloTool class(ExecBlock)>>cull:cull:cull:cull: @7 line 4
52. TDTopezServer>>evaluateCommand:objIn: @18 line 22
53. TDTopezServer>>evaluateSTONCommand: @9 line 6
54. Executed Code
55. GsNMethod class>>_gsReturnToC @1 line 1




On Tue, Oct 20, 2015 at 12:10 PM, Dale Henrichs <[hidden email]> wrote:


On 10/19/2015 10:13 PM, Jon Paynter wrote:
ok I got the session properties updated on the client  - I changed "seaside_ldi" to "netldi"

and now i can log in.
I opened the project list, but when poking around in the menus to try and create a new project, something broke and now I get a dictionary error "attempt to store nil as a key"
restarting the tode client doesnt seem to rollback whatever changes were made, so now the project list is broken.

not sure how to get a stack dump or I would include one here.


Presumably you are getting a dialog box with the error in it and three buttons labeled "Proceed" "Abort" "Debug" ... if so press the "Debug" button and a debugger should open go to the window that looks like a stack trace and us the "Window > print window" menu item to get a text version of the window (this is available on every tODE window except the console) copy the stack text and past that in a mail image so I can look at the stack trace ...

If you are not getting a dialog, then describe how you are being presented with the "attempt to store nil as a key" message and we'll go from there...

Dale






--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: gsDevKit / tode first time setup

GLASS mailing list
In reply to this post by GLASS mailing list


On 10/21/15 12:20 AM, Jon Paynter wrote:

> ok. context for frame 5
> Dictionary>>at:put: @3 line 9
> --------------------
> .         -> Dictionary>>at:put: @3 line 9
> (context) -> aGsNMethod
> (self)    -> aDictionary( )
> aKey      -> nil
> aValue    -> spec repository: nil
> anAssoc   -> nil
> hashVal   -> nil
> .t1       -> aDictionary( )
>
>
> .... based on my own poking around, its adding a new member spec with
> a name=nil
> when I explore (dive?) into the MetacelloAddMemberSpec instance,
> everything is nil except for the project & spec, but their instvars
> are also all nil
And Jon what are the values in frame 13? ... that's the guy that is the
source of the nils and I want to know which of the
TDMetacelloUnloadedProjectRegistrationDefinition instances is causing
the problem ... then I have a chance of reproducing the problem and/or
understanding why the nils are being produced
>
> Do you have any docs for tode?   - in particular the configuration.
Man pages are the main source of documentation... there are several
videos[1] that might give you insight (let me know if there is one that
really helps:)... the newest is at the bottom ... be aware that all of
the vids were done with older versions of tODE:)

[1]
https://github.com/dalehenrich/tode/blob/master/docs/videos/videoHistory.md
> Currently I find it rather clunky because I dont know most of the
> shortcuts.
Well all of the keyboard shortcuts (are you referring to keyboard
shortcuts?) are on displayed on the menu (bug if they are not) ...

Otherwise I understand that getting used to a new system can be
difficult... I plan to make videos, but I want to stabilize the Early
Access first and your help and patience is greatly appreciated!
> but the 2 main annoyances:
> 1) how to shut off the auto code formatter?  it makes a hash of my
> code whenever I accept a method.  I looked in the image settings but
> could not find anything.
Good question ... you want the limit command ... `man limit` ... you can
write a script in your home directory that you can run at login (yes I
will have a kind of .toderc that automatically runs ... but not right
now) I call mine go:

   touch tpz go
   edit go

add the following:

   limit format false

then save (ALT-S) ... then `/home/go` or `./go` when you login will
clear autoformat ...
> 2) how to re-map "paste" to the normal Control+V instead of Alt+V  --
> im copying & pasting code from VW into tode
Yeah that is actually an unfortunate "bug/feature" of Pharo3.0 ... I've
made several attempts to try to work around the problem to no avail ...
Pharo4.0 seems to have the same problem and Pharo5.0 isn't ready for use
...

When other things stabilize in the Early Access I can swing back around
and take another crack at it ...
>
> A "nice to have" -- update the method list window after creating accessors
Yes ... I need to add events, but I have to be careful, since the
updates to windows are going to cost in terms of network round trips
...I have some ideas but not the time:)
>
> The auto-window layout is nice.  But I wish I could tell it where to
> place the various windows.  I frequently wind up with 3-4 Hierarchy
> windows on top of each other.  It would be nice if they would all tile
> within their designated space.
Yeah, I use the blank space on the right to move the hierarchy windows
to a separate spot ... the window layout is a work in progress (as are
many things:) ... I suggest you also play around with "Window > history"
... for the fixed position windows you can visit any older version (from
the current session) of the window akin to the back button in a web
browser ... it works in any window other that than the button bar ...
and I wouldn't recommend using it with the debugger:) I haven't put a
keyboard shortcut on it yet, but if folks find it useful I will ...
> But -im hoping a working project browser will let me browse stuff by
> category instead of having to deal with several of the Hierarchy browsers.
Yeah ... I need to know which
TDMetacelloUnloadedProjectRegistrationDefinition is causing the problemj:)
>
> The folder layout paradigm (.  vs ..) for the inspector window is neat
> once you get used to it.
Good I'm glad that it's working for you ... Note that the "Parents" menu
will allow you to quickly navigate up the chain once you've navigated in ...


Also I recommend playing with  the "Window > clone window" menu item as
you can peel off a window instance (this works for all windows ...
except console) especially useful for a method window if you want to
look at several methods "side by side" ...  And finally "Window > open
workspace" is how you can write expressions against any object (like
from the context window of the debugger) ... also works with any window
>
> And lastly - how can i get the image to save the set of open windows
> when im done for the day?
>

`windows restore` is my attempt at this ...  when you login at your next
session, `windows restore` should restore all of the windows that were
open when you logged out ... some windows are not persisted, like
debuggers, but most of the other windows can be restored ... There seem
to be a couple of glitches in that occasionally a window doesn't get
reconnected, but I think it's the functionarlity that you are looking
for and I will eventually get rid of the glitches:)

Until then you might want to play with the rich variety of `browse`
commands (`man browse`) and add them to your `go` script then you can
basically pre-open a set of windows for your current working set ...
here are some examples:

   browse category --exact Topez-Server-Core
   browse class --hier method|stream
   browse method --regex at\:put\:|nextPutAll\:

and the following is often useful:

     browse diff TDShellTool>>findMethods: `TDShellTool class>>browse`


Well I really appreciate your feedback and I plan to use this post as a
template for a FAQ question or two ... again when I things settle down a
bit in the Early Access

Dale
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: gsDevKit / tode first time setup

GLASS mailing list
Thanks for the tode tips - much to chew on!

Stack frame 13 shows:
TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpecs @3 line 2
--------------------
.         -> TDMetacelloUnloadedProjectRegistrationDefinition(TDMetacelloProjectRegistrationDefinition)>>repositorySpecs @3 line 2
(context) -> aGsNMethod
(self)    -> TDMetacelloUnloadedProjectRegistrationDefinition(PharoCompatibility)
.t1       -> error printing

and t1 shows  as:
.               -> error printing
..              -> TDMetacelloUnloadedProjectRegistrationDefinition(PharoCompatibility)
(class)@        -> MetacelloMCBaselineOfProjectSpec
(oop)@          -> 326983681
className@      -> 'BaselineOfPharoCompatibility'
file@           -> nil
loader@         -> nil
loads@          -> anArray( 'default')
mutable@        -> nil
name@           -> 'PharoCompatibility'
operator@       -> nil
postLoadDoIt@   -> nil
preLoadDoIt@    -> nil
project@        -> error printing
projectPackage@ -> nil
repositories@   -> error printing
versionString@  -> nil

With project and repositories also 'mostly' nil.  
project -> configuration seems to point to itself (the inspector goes into a loop)
repositories -> list has a single element:  MetacelloAddMemberSpec with "(spec repository: nil)"

hopefully that helps.

On Wed, Oct 21, 2015 at 7:39 AM, Dale Henrichs <[hidden email]> wrote:


On 10/21/15 12:20 AM, Jon Paynter wrote:
ok. context for frame 5
Dictionary>>at:put: @3 line 9
--------------------
.         -> Dictionary>>at:put: @3 line 9
(context) -> aGsNMethod
(self)    -> aDictionary( )
aKey      -> nil
aValue    -> spec repository: nil
anAssoc   -> nil
hashVal   -> nil
.t1       -> aDictionary( )


.... based on my own poking around, its adding a new member spec with a name=nil
when I explore (dive?) into the MetacelloAddMemberSpec instance, everything is nil except for the project & spec, but their instvars are also all nil
And Jon what are the values in frame 13? ... that's the guy that is the source of the nils and I want to know which of the TDMetacelloUnloadedProjectRegistrationDefinition instances is causing the problem ... then I have a chance of reproducing the problem and/or understanding why the nils are being produced

Do you have any docs for tode?   - in particular the configuration.
Man pages are the main source of documentation... there are several videos[1] that might give you insight (let me know if there is one that really helps:)... the newest is at the bottom ... be aware that all of the vids were done with older versions of tODE:)

[1] https://github.com/dalehenrich/tode/blob/master/docs/videos/videoHistory.md
Currently I find it rather clunky because I dont know most of the shortcuts.
Well all of the keyboard shortcuts (are you referring to keyboard shortcuts?) are on displayed on the menu (bug if they are not) ...

Otherwise I understand that getting used to a new system can be difficult... I plan to make videos, but I want to stabilize the Early Access first and your help and patience is greatly appreciated!
but the 2 main annoyances:
1) how to shut off the auto code formatter?  it makes a hash of my code whenever I accept a method.  I looked in the image settings but could not find anything.
Good question ... you want the limit command ... `man limit` ... you can write a script in your home directory that you can run at login (yes I will have a kind of .toderc that automatically runs ... but not right now) I call mine go:

  touch tpz go
  edit go

add the following:

  limit format false

then save (ALT-S) ... then `/home/go` or `./go` when you login will clear autoformat ...
2) how to re-map "paste" to the normal Control+V instead of Alt+V  -- im copying & pasting code from VW into tode
Yeah that is actually an unfortunate "bug/feature" of Pharo3.0 ... I've made several attempts to try to work around the problem to no avail ... Pharo4.0 seems to have the same problem and Pharo5.0 isn't ready for use ...

When other things stabilize in the Early Access I can swing back around and take another crack at it ...

A "nice to have" -- update the method list window after creating accessors
Yes ... I need to add events, but I have to be careful, since the updates to windows are going to cost in terms of network round trips ...I have some ideas but not the time:)

The auto-window layout is nice.  But I wish I could tell it where to place the various windows.  I frequently wind up with 3-4 Hierarchy windows on top of each other.  It would be nice if they would all tile within their designated space.
Yeah, I use the blank space on the right to move the hierarchy windows to a separate spot ... the window layout is a work in progress (as are many things:) ... I suggest you also play around with "Window > history" ... for the fixed position windows you can visit any older version (from the current session) of the window akin to the back button in a web browser ... it works in any window other that than the button bar ... and I wouldn't recommend using it with the debugger:) I haven't put a keyboard shortcut on it yet, but if folks find it useful I will ...
But -im hoping a working project browser will let me browse stuff by category instead of having to deal with several of the Hierarchy browsers.
Yeah ... I need to know which TDMetacelloUnloadedProjectRegistrationDefinition is causing the problemj:)

The folder layout paradigm (.  vs ..) for the inspector window is neat once you get used to it.
Good I'm glad that it's working for you ... Note that the "Parents" menu will allow you to quickly navigate up the chain once you've navigated in ...


Also I recommend playing with  the "Window > clone window" menu item as you can peel off a window instance (this works for all windows ... except console) especially useful for a method window if you want to look at several methods "side by side" ...  And finally "Window > open workspace" is how you can write expressions against any object (like from the context window of the debugger) ... also works with any window

And lastly - how can i get the image to save the set of open windows when im done for the day?


`windows restore` is my attempt at this ...  when you login at your next session, `windows restore` should restore all of the windows that were open when you logged out ... some windows are not persisted, like debuggers, but most of the other windows can be restored ... There seem to be a couple of glitches in that occasionally a window doesn't get reconnected, but I think it's the functionarlity that you are looking for and I will eventually get rid of the glitches:)

Until then you might want to play with the rich variety of `browse` commands (`man browse`) and add them to your `go` script then you can basically pre-open a set of windows for your current working set ... here are some examples:

  browse category --exact Topez-Server-Core
  browse class --hier method|stream
  browse method --regex at\:put\:|nextPutAll\:

and the following is often useful:

    browse diff TDShellTool>>findMethods: `TDShellTool class>>browse`


Well I really appreciate your feedback and I plan to use this post as a template for a FAQ question or two ... again when I things settle down a bit in the Early Access

Dale


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
12