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 |
... 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:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
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:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
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:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On Wed, Oct 21, 2015 at 4:20 AM, Jon Paynter <[hidden email]> wrote:
Poke around the docs folder from here: https://github.com/dalehenrich/tode/blob/master/docs/GettingStarted.md
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.
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.
Well..there is something. Did you see Client -> Edit Windows Layout ?
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.
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
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 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 |
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:
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Free forum by Nabble | Edit this page |