9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

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

9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

jtuchel
Hi,

I'm porting an app from 9.1 to 9.2.2. A code snippet that has been working before now breaks with a PrimitiveFailed Error.

The method I am calling is implemented on a Subclass of OSStructure and sends itself uint32At:put: like this:

pin: someString
  self uint32At: 8 put: someString asPSZ copyToOSMemory.

This has been working in 9.1 but now fails in OSPtr>>#uint32At:put:. inspecting self primitiveErrorCode reveals 2, which is named PrimErrIndexOutOfRange.

What's interesting is that neither OSStructure>>#uint32At:put: nor OSPtr>>#uint32At:put: have changed since 2015, so I guess something changed in the underlying primitive which makes it less tolerant towards the error I have been making all these years...?

What can I do now? I couldn't find anything in the Migration Guide (at least nothing I would understand. The only mention of uint32At: is associated with EsEntryPoints, which I am not using here, also OSStriucture and OSPtr aren't found in the MG)

Joachim



--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/277694fc-c250-4876-95d3-ba459df6642dn%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: 9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

jtuchel
Maybe I should mention that this code has been running on 9.1x64 bits and now I am also using 9.2.2x64 bits.

Other things I tried and that failed:

  1. passing 'Test' asPSZ (invalid class in argument 2)
  2. passing 'Test' asPSZ copyToOSMemory address (Value out of range)
  3. passing 'Test' asPSZ copyToOSMemory reference (Value out of range)
  4. passing 'Test' (invalid class in argument 2)

Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 10:02:21 UTC+2:
Hi,

I'm porting an app from 9.1 to 9.2.2. A code snippet that has been working before now breaks with a PrimitiveFailed Error.

The method I am calling is implemented on a Subclass of OSStructure and sends itself uint32At:put: like this:

pin: someString
  self uint32At: 8 put: someString asPSZ copyToOSMemory.

This has been working in 9.1 but now fails in OSPtr>>#uint32At:put:. inspecting self primitiveErrorCode reveals 2, which is named PrimErrIndexOutOfRange.

What's interesting is that neither OSStructure>>#uint32At:put: nor OSPtr>>#uint32At:put: have changed since 2015, so I guess something changed in the underlying primitive which makes it less tolerant towards the error I have been making all these years...?

What can I do now? I couldn't find anything in the Migration Guide (at least nothing I would understand. The only mention of uint32At: is associated with EsEntryPoints, which I am not using here, also OSStriucture and OSPtr aren't found in the MG)

Joachim



--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/2ae749df-f809-4ee3-8919-ca3422d0b56bn%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: 9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

jtuchel
I wrote a little Test Class demonstrating my problem. It is just one class named JtOSStructureTest which subclasses OSStructure. It has two members: version and pin.
You can load this Application into a 9.1x64 image and inspect JtOSStructureTest testThisClass

While this runs in 9.1, it yields an error in 9.2, stack is attached

Here is what the Transcript says about the 9.1 image VM (where the code runs):
VA Smalltalk V9.1 (64-bit); Image: 9.1 [413]
VM Timestamp: 4.0, 07/18/18 (100)


And this is where it fails:
VA Smalltalk V9.2.2 (64-bit); Image: 9.2.2 [2]
VM Timestamp: 4.0, 05/15/20 (102)

<img src="data:text/plain;base64,NDMyMQbJP+3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChjKSBPYmplY3QgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsLCBJbmMuICAxOTg5LTIwMjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwUAABEAAAAAAAAANDMyMQAEAAA7AAAAOwAAAF0EAABdBAAABVVzZXJzawQAAGsEAAAMQXBwbGljYXRpb25zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARIAAAAAAAADQzMjFcAAAAXAAAAFwAAAA0AEIAAAAAAAAAAABHBAAARwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASm9hY2hpbSBUdWNoZWxqdHYPX7mhAAAAAAAAADQzMjEaAAAAGgAAABoAAABubwAAAAAAAGEAAAAAAAAANDMyMTwgAAA8IAAAPCAAAAAUH6AEAwIUAAAAAAAAAAAAAAAANwEAAPwfAAAWSReKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAkAvlsEAAAAEAAAAEALAAAIAMxmDAAAAMMAAAAoAAAAtAUAAAcAAAAJAMdpgAUAAIQLAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAKALAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAMALAAAOAAAA5AsAAA4AAAAOAAAADgAAAA4AAAD8CwAADgAAAA4AAAAOAAAADgAAABAMAAAOAAAADgAAADAMAAAOAAAADgAAAFAMAAAOAAAADgAAAHAMAACUDAAAuAwAAA4AAAAOAAAA2AwAAPgMAAAOAAAADgAAAA4AAAAOAAAAJA0AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAEQNAAAOAAAADgAAAA4AAABgDQAADgAAAA4AAACMDQAAvA0AAA4AAAAOAAAADgAAANQNAAD0DQAADgAAAA4AAAAOAAAADA4AAA4AAAAOAAAADgAAAA4AAAAOAAAANA4AAFAOAAB0DgAADgAAAA4AAACQDgAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAALgOAAAOAAAADgAAAA4AAAAOAAAADgAAANgOAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAA/A4AABAPAAAOAAAADgAAAA4AAAAOAAAANA8AAA4AAAAOAAAAUA8AAA4AAAAOAAAADgAAAGwPAAAOAAAADgAAAA4AAACQDwAAtA8AAA4AAAAOAAAADgAAAA4AAAAOAAAA1A8AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAA9A8AABAQAAAOAAAAKBAAAEwQAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAHAQAAAOAAAADgAAAA4AAAAOAAAAjBAAAA4AAACoEAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAADAEAAA4BAAAPQQAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAAwRAAAOAAAADgAAAA4AAAA0EQAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAWBEAAIARAAAOAAAADgAAAA4AAAAOAAAADgAAAJQRAAAOAAAADgAAALQRAAAOAAAADgAAANQRAAD8EQAADgAAAA4AAAAUEgAADgAAADgSAABYEgAAeBIAAA4AAAAOAAAADgAAAA4AAACUEgAADgAAALgSAADYEgAA7BIAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAAwTAAAOAAAADgAAAA4AAAAOAAAADgAAACwTAAAOAAAAUBMAAA4AAAAOAAAADgAAAA4AAAAOAAAAaBMAAA4AAAAOAAAADgAAAA4AAACAEwAAnBMAAA4AAACwEwAA1BMAAA4AAAAOAAAA+BMAABwUAAAOAAAANBQAAFgUAAAOAAAADgAAAHQUAACMFAAAqBQAAMQUAAAOAAAA5BQAAA4AAAAOAAAABBUAACgVAABAFQAAXBUAAHQVAACMFQAAqBUAAMAVAADcFQAADgAAAPwVAAAOAAAADgAAAA4AAAAYFgAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAADQWAAAOAAAADgAAAA4AAABIFgAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAABkFgAADgAAAA4AAAAOAAAADgAAAIgWAAAOAAAADgAAAKAWAAAOAAAADgAAAA4AAAC8FgAADgAAAA4AAAAOAAAA3BYAAPwWAAAHAAAACQB4aoAFAAADAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAuAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAgFwAADgAAADgXAAAOAAAADgAAAA4AAAAOAAAAHgAAAA4AAAAOAAAADgAAAA4AAAAeAAAADgAAAA4AAABQFwAADgAAAA4AAABoFwAADgAAAA4AAAAuAAAADgAAAA4AAAAOAAAADgAAAIQXAACcFwAADgAAAA4AAAAOAAAADgAAALQXAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAuAAAADgAAAA4AAAAOAAAAHgAAAA4AAAAOAAAALgAAAB4AAAAOAAAADgAAAA4AAAAeAAAALgAAAA4AAAAOAAAADgAAAB4AAAAOAAAADgAAAA4AAAAOAAAADgAAAB4AAADMFwAAHgAAAA4AAAAOAAAAHgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAeAAAADgAAAA4AAAAOAAAADgAAAA4AAAAuAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAC4AAAAOAAAADgAAAA4AAAAOAAAADgAAAB4AAAAOAAAADgAAAIEAAAAOAAAADgAAAA4AAAAeAAAADgAAAA4AAAAOAAAAHgAAAB4AAAAOAAAADgAAAA4AAAAOAAAADgAAAC4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAOQXAAAOAAAADgAAAB4AAAD8FwAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAQGAAADgAAAA4AAAAOAAAADgAAACgYAAAOAAAAHgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAQBgAAC4AAAAeAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAABUGAAADgAAAA4AAAAOAAAALgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAAF9AABgGAAADgAAAA4AAAAOAAAADgAAAA4AAAB4GAAADgAAAA4AAAAOAAAADgAAAA4AAACQGAAAqBgAAA4AAAAOAAAAwBgAAA4AAADYGAAA6BgAAB4AAAAOAAAADgAAAA4AAAAOAAAALgAAAA4AAAAAGQAAFBkAAB4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAsGQAADgAAAA4AAAAOAAAADgAAAA4AAABIGQAADgAAAGAZAAAOAAAADgAAAA4AAAAOAAAADgAAAC4AAAAOAAAADgAAAA4AAAAOAAAAeBkAAIgZAAAOAAAALgAAAKAZAAAOAAAADgAAAMgZAABJAAAADgAAAA0AAAAuAAAADgAAAA4AAAAeAAAA4BkAAPwZAAAuAAAADgAAABQaAAAOAAAADgAAACAaAAAuAAAAHgAAAB4AAAAeAAAALgAAAB4AAAAeAAAAMBoAAA4AAABIGgAADgAAAA4AAAAOAAAAHgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAFAAAADgAAAA4AAAAOAAAAHgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAALgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAACgGgAADgAAAA4AAAAOAAAAHgAAAA4AAAAOAAAADgAAALwaAAAuAAAACQAAAAAATxY4AAAADgAAAA4AAAAOAAAABwAAAAEAAAAOAAAADgAAAA4AAAAOAAAA1BoAAA4AAADsGgAADgAAAA4AAAAFAAAAAwCeFA4AAABEcmFnRHJvcEJ1dHRvbgAABQAAAAMAKVwUAAAAU2hvd1ZhbGlkRXhwcmVzc2lvbnMFAAAAAwD4HBgAAABDb2xvckFwcGxpY2F0aW9uRWRpdGlvbnMFAAAAAwD6SAsAAABJY29uV2FybmluZwAFAAAAAwB/TggAAABBdXRvU2F2ZQUAAAADAMRLEgAAAFVzZVNjaW50aWxsYUVkaXRvcgAABQAAAAMAx0sSAAAAQ29sb3JIaWRkZW5DbGFzc2VzAAAFAAAAAwDqRBIAAABDb25maWd1cmF0aW9uc1ZpZXcAAAUAAAADAC0sFgAAAEF1dG9Td2l0Y2hBcHBsaWNhdGlvbnMAAAUAAAADAE0lFgAAAENvbG9yQ2hhbmdlZENhdGVnb3JpZXMAAAUAAAADAK1+EwAAAEJyb3dzZXJDb2RlRm9udE5hbWUABQAAAAMAMmMTAAAAQ29sb3JTY3JhdGNoQ2xhc3NlcwAFAAAAAwCzMR8AAABDb2xvckFwcGxpY2F0aW9uU2NyYXRjaEVkaXRpb25zAAUAAAADAJh6FAAAAENvbG9yRW1wdHlDYXRlZ29yaWVzBQAAAAMAf3YPAAAASW5zcGVjdG9yU29ydGVkAAUAAAADAENYHgAAAENvbmZpZ01hcFByZXNlbGVjdEZpcnN0RWRpdGlvbgAABQAAAAMAhjQhAAAAU2hvd1NjcmF0Y2hBcHBsaWNhdGlvbkhpZXJhcmNoaWVzAAAABQAAAAMAR3kLAAAAQXV0b0NvcnJlY3QABQAAAAMA60ARAAAAQ3JlYXRlTmV3RWRpdGlvbnMAAAAFAAAAAwAsSQkAAABNYXRjaENhc2UAAAAFAAAAAwBQYxsAAABQcm9wb2dhdGVBcHBsaWNhdGlvbkNoYW5nZXMABQAAAAMAFkUOAAAAQWxsb3dTdXBlclVzZXIAAAUAAAADAPdAGAAAAENvbmZpZ3VyYXRpb25zRmlsdGVyTGlzdAUAAAADALciDgAAAFNob3dBdHRyaWJ1dGVzAAAFAAAAAwB7XBkAAABDYXNlU2Vuc2l0aXZlU3RyaW5nU2VhcmNoAAAABQAAAAMADGISAAAAU2hvdWxkU2V0TGlzdEZvbnRzAAAFAAAAAwBSKBYAAABTaG93QnJvd3NlckxpbmVOdW1iZXJzAAAFAAAAAwC6PwgAAABEcmFnRHJvcAUAAAADAJoEFgAAAEljb25TdWJjbGFzc2VzUmVkZWZpbmUAAAUAAAADAKBnEAAAAFVzZUFiYnJldmlhdGlvbnMFAAAAAwDDNA4AAABNZXRob2RMaXN0U2l6ZQAABQAAAAMAZ0kYAAAAU2hvd1dvcmtzcGFjZUxpbmVOdW1iZXJzBQAAAAMAK0EWAAAAVXNlRW5oYW5jZWRMaXN0V2lkZ2V0cwAABQAAAAMA7EMUAAAAVXNlRW5oYW5jZWRQcm9tcHRlcnMFAAAAAwCyBBMAAABVc2VBYmJyZXZpYXRlZE5hbWVzAAUAAAADAL5yEAAAAENvbG9yQ3VycmVudFVzZXIFAAAAAwB+KAwAAABJY29uQWJzdHJhY3QFAAAAAwChCxUAAABFbmhhbmNlZExpc3RIb3ZlckhlbHAAAAAFAAAAAwDCXBUAAABDb25maWdNYXBMb2FkZWRTdGF0dXMAAAAFAAAAAwCLPg4AAABJbXBvcnROZXdOYW1lcwAABQAAAAMA0GcOAAAAU25hcHNob3RUYXJnZXQAAAUAAAADAJJfCgAAAEF1dG9JbmRlbnQAAAUAAAADABsuEgAAAEN1cnJlbnRFZGl0b3JUaGVtZQAABQAAAAMA/GAIAAAAQXV0b0ZpbGwFAAAAAwB8fAsAAABVc2VUb29sQmFycwAFAAAAAwAsDRoAAABEZWZhdWx0VmVyc2lvbk5hbWVUZW1wbGF0ZQAABQAAAAMA8DsYAAAAU2hvd0luc3BlY3RvckxpbmVOdW1iZXJzBQAAAAMANy4aAAAAUGFyc2VUcmVlTWF4TWV0aG9kVGV4dFNpemUAAAUAAAADABhhCAAAAFRvb2xCYXJzBQAAAAMAHmESAAAAUmVxdWlyZWRNYXBGaWx0ZXJzAAAFAAAAAwAhFBEAAABFbmhhbmNlZExpc3RDb2xvcgAAAAUAAAADAGRTHAAAAENvbG9yVW5yZWxlYXNlZENsYXNzVmVyc2lvbnMFAAAAAwBFTwoAAABIYXNUb29sQmFyAAAFAAAAAwBoHBYAAABDb2xvckNvbmZpZ01hcEVkaXRpb25zAAAFAAAAAwDqWBIAAABJbml0aWFsVmVyc2lvbk5hbWUAAAUAAAADAOsWEwAAAENvbG9yQ2hhbmdlZE1ldGhvZHMABQAAAAMA624PAAAASWdub3JlUGFydE5hbWVzAAUAAAADAPEAFwAAAE9ubHlSZWxlYXNlQ2xlYW5DbGFzc2VzAAUAAAADAFMuEQAAAERlZmF1bHREYXRlRm9ybWF0AAAABQAAAAMAdEgGAAAAU29ydGVkAAAFAAAAAwB1JxIAAABVc2VJbnNwZWN0b3JDb2xvcnMAAAUAAAADANxUFAAAAEljb25TdWJjbGFzc092ZXJyaWRlBQAAAAMAwlsWAAAAQXBwbGljYXRpb25zRmlsdGVyTGlzdAAABQAAAAMABGQKAAAAQXV0b1VwZGF0ZQAABQAAAAMAyhkJAAAAU3VwZXJVc2VyAAAABQAAAAMAD28PAAAAQXBwUHJlZml4U3RyaW5nAAUAAAADAPBJCAAAAFNvcnRlZEJ5BQAAAAMA8l8VAAAAU2hvd0d1aVR5cGVBdHRyaWJ1dGVzAAAABQAAAAMAExcYAAAAQ2xhc3NEb3VibGVDbGlja1NlbGVjdG9yBQAAAAMA9nUWAAAAQ29sb3JVbnJlbGVhc2VkQ2xhc3NlcwAABQAAAAMAtyALAAAASGlzdG9yeVNpemUABQAAAAMA+R0VAAAARGVmYXVsdExpYnJhcnlWZXJzaW9uAAAABQAAAAMAWgkQAAAAU3VnZ2VzdFdoZW5FbXB0eQUAAAADAL1MCwAAAFVzZUVkaXRCYXJzAAUAAAADAD4mEAAAAEFwcGxpY2F0aW9uc1NvcnQFAAAAAwB/ZQ8AAABEZWZhdWx0Q2F0ZWdvcnkABQAAAAMAQAUTAAAAUmVsZWFzZVZlcnNpb25zT25seQAFAAAAAwCCexEAAABNYXJrZWRDbGFzc1ByZWZpeAAAAAUAAAADAKVeGAAAAFVwZGF0ZVJlcXVpcmVkTWFwTGluZXVwcwUAAAADAEYmDAAAAEFsbG93QW55TmFtZQUAAAADAAY/DgAAAENhblVzZVRvb2xCYXJzAAAFAAAAAwDocQwAAABDaGVja0dsb2JhbHMFAAAAAwCnXgwAAABJZ25vcmVOT05OTFMFAAAAAwBKBRAAAABJbmNsdWRlVGltZVN0YW1wBQAAAAMAaGwLAAAAU3luY2hyb25pemUABQAAAAMAjAINAAAAQ2hlY2tTcGVsbGluZwAAAAUAAAADAIw5EwAAAENvbG9yU2NyYXRjaE1ldGhvZHMABQAAAAMAb0sPAAAAQnJvd3NlckZvbnROYW1lAAUAAAADAHMqDgAAAFVzZUNvbG9yU3ludGF4AAAFAAAAAwAhKQUAAABEZWxheQAAAAUAAAADAKUC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BQAAAAMAMwYLAAAAZGVzY3JpcHRpb24AGQAAAAkAJDcMAAAAlAUAAKgFAADABQAAGwAAAAsAaDMRAAAAT3JkZXJlZENvbGxlY3Rpb24AAAADAAAACwBPIhoAAABodHRwOi8vd3d3Lm9iamVrdGZhYnJpay5kZQAAAwAAAAsA4hciAAAAaHR0cDovL2pvYWNoaW10dWNoZWwud29yZHByZXNzLmNvbQAAAwAAAAsAPEQsAAAAanR1Y2hlbC1kZWxldGV0aGlzLUBvYmpla3RmYWJyaWstYW5kdGhpcy0uZGUDAAAACwAwAjQBAABKb2FjaGltIFR1Y2hlbCBpcyBhIFNtYWxsdGFsayBkZXZlbG9wZXIgc2luY2UgMTk5NiwgbWFpbmx5IGluIFZBIFNtYWxsdGFsaywgVmlzdWFsV29ya3MgYW5kIFBoYXJvLg0KSGlzIGNvbXBhbnksIG9iamVrdGZhYnJpaywgc3BlY2lhbGl6ZXMgaW4gdHJhaW5pbmcsIGNvbnN1bHRpbmcgYW5kIGRldmVsb3BtZW50IHVzaW5nIGR5bmFtaWMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiANCllvdSBjYW4gbGVhcm4gbW9yZSBhdCBodHRwOi8vd3d3Lm9iamVrdGZhYnJpay5kZSANCm9yIGh0dHA6Ly9qb2FjaGltdHVjaGVsLndvcmRwcmVzcy5jb20NChkAAAAJADY5DAAAANgFAADwBQAAAAYAABsAAAALAHIzCwAAAExvb2t1cFRhYmxlABsAAAALACg1EAAAAHNlcXVlbmNlYWJsZUtleXMbAAAACwAwNRIAAABzZXF1ZW5jZWFibGVWYWx1ZXMAABsAAAALADo1CwAAAGxvb2t1cFRhYmxlABsAAAALAD43CAAAAGVsZW1lbnRzGwAAAAsARDcKAAAAZmlyc3RJbmRleAAAGwAAAAsATDcJAAAAbGFzdEluZGV4AAAAGwAAAAsAUDkMAAAAZWxlbWVudENvdW50GwAAAAsAWDkEAAAAa2V5cxsAAAALAF45BgAAAHZhbHVlcwAAAAAAAAAAAAAAAAAAYQAAAAAAAAA0MzIxBBcAAAQXAAAEFwAAABQfoAQDAhQAAAAAAAAAAAAAAAA3AQAAxBYAAB7DrTAAAAAAAAAAANACpxcAAAAAAAAAAAAAAAAhAAAA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GwAAAE1ldGhvZCBSZWNlaXZlciBTb3J0IFBvbGljeQADAAAACwDrBgcAAABDQV9WUkJXAAMAAAALAI8mGQAAAFVzZSBFbmhhbmNlZCBMaXN0IFdpZGdldHMAAAADAAAACwC2SSAAAABXcmFwIENvbXBsZXRpb24gUG9wdXAgU2VsZWN0aW9ucwMAAAALALdGEwAAAE1hdGNoZWQgUmVnaW9uIEZvbnQAAwAAAAsA41UUAAAATWF0Y2hlZCBSZWdpb24gQ29sb3IDAAAACwAVGhsAAABFbmFibGUgU3VnZ2VzdGlvbiBEcmFnTkRyb3AAAwAAAAsAHDEgAAAARW5hYmxlIFBvb2wgVmFyaWFibGUgQ29tcGxldGlvbnMDAAAACwCMJBsAAABDb21wbGV0aW9uIFBvcHVwIEJhY2tncm91bmQAAwAAAAsAw14YAAAAQ29tcGxldGlvbiBJbnNlcnQgUG9saWN5AwAAAAsAyjMbAAAAQ29tcGxldGlvbiBQb3B1cCBGb3JlZ3JvdW5kAAMAAAALAL8IGQAAAEVuYWJsZSBTeW1ib2wgQ29tcGxldGlvbnMAAAADAAAACwDEUAYAAABDQV9VU00AAAMAAAALALMbFwAAAENGX0FVVE9fQ09MTEFQU0VfUE9MSUNZAAMAAAALADITGQAAAEVuYWJsZSBEZWJ1Z2dlciBDYWxsIFRpcHMAAAADAAAACwCeHBUAAABVbm1hdGNoZWQgUmVnaW9uIEZvbnQAAAADAAAACwCTDxgAAABNZXRob2QgVmlzaWJpbGl0eSBQb2xpY3kDAAAACwBvexEAAABDRl9DT0xMQVBTRV9JTkRJQwAAAAMAAAALAKJQIgAAAFByZWZlciBDbGFzcyBIaWVyYXJjaHkgTWV0aG9kIFNvcnQAAAMAAAALAO0ZHQAAAFNlbGVjdGVkIE1hdGNoZWQgUmVnaW9uIENvbG9yAAAAAwAAAAsABjUeAAAAU2VsZWN0ZWQgU3VnZ2VzdGlvbiBGb3JlZ3JvdW5kAAADAAAACwCbbyEAAABIaWdobGlnaHQgTmV4dCBDaGFyYWN0ZXIgVG8gTWF0Y2gAAAADAAAACwClSRMAAABQcmVmaXggTWF0Y2ggUG9saWN5AAMAAAALAGdpHwAAAEVuYWJsZSBCbG9jayBBcmd1bWVudCBEZXRlY3Rpb24AAwAAAAsA9CAjAAAARW5hYmxlIEdsb2JhbCBOYW1lc3BhY2UgQ29tcGxldGlvbnMAAwAAAAsAVE8QAAAAQ0ZfQ09MTEFQU0VfVEVYVAMAAAALAMdGFwAAAE1heCBWaXNpYmxlIFN1Z2dlc3Rpb25zAAMAAAALAFFDGQAAAEVuYWJsZSBNYXRjaCBIaWdobGlnaHRpbmcAAAADAAAACwBwbiAAAABCcmFja2V0IEhpZ2hsaWdodCB3aXRoaW4gU3RyaW5ncwMAAAALAD17BwAAAENBX05WSUEAAwAAAAsAqWUUAAAARW5hYmxlIE1hcmdpbiBNYXJrZXIDAAAACwAYDhsAAABFbmFibGUgSW5jcmVtZW50YWwgQ29tcGlsZXIAAwAAAAsAJAweAAAAQ29tcGxldGlvbiBQb3B1cCBMYXlvdXQgUG9saWN5AAADAAAACwAbARYAAABUcmF2ZXJzYWwgS2V5cyBFbmFibGVkAAADAAAACwAhKxsAAABFbmFibGUgVmFyaWFibGUgQ29tcGxldGlvbnMAAwAAAAsAdm0QAAAAQ0ZfVEhSRVNIT0xEX05VTQMAAAALAGYoGwAAAEVuYWJsZSBCcmFja2V0IEhpZ2hsaWdodGluZwADAAAACwBVJB8AAABBcHBseSBGaWx0ZXJzIHRvIEVtcHR5IFBhcnRpYWxzAAMAAAALAHNFIwAAAEVuYWJsZSBTZWxlY3Rpb24gQmxvY2sgSGlnaGxpZ2h0aW5nAAMAAAALAH1wHwAAAFNtYXJ0IFNwYWNlIEFmdGVyIEluc2VydCBQb2xpY3kAAwAAAAsAQjYTAAAAU2hvdyBNYXJnaW4gTWFya2VycwADAAAACwD5AhoAAABFbmhhbmNlZCBMaXN0IFdpZGdldCBTdHlsZQAAAwAAAAsAMAoVAAAAQ29tcGxldGlvbiBQb3B1cCBGb250AAAAAwAAAAsA034dAAAAQXBwbGljYXRpb24gVmlzaWJpbGl0eSBQb2xpY3kAAAADAAAACwBwQBkAAABFbmFibGUgTWV0aG9kIENvbXBsZXRpb25zAAAAAwAAAAsA9EYdAAAAQXV0byBDb21wbGV0aW9uIFBvcHVwIEVuYWJsZWQAAAADAAAACwCAchYAAABVbm1hdGNoZWQgUmVnaW9uIENvbG9yAAADAAAACwDfIiQAAABPYmplY3QgQXBwbGljYXRpb24gVmlzaWJpbGl0eSBQb2xpY3kDAAAACwAcJCIAAABBdXRvIENvbXBsZXRlIE9uIFNpbmdsZSBTdWdnZXN0aW9uAAADAAAACwBLLRIAAABTaG93IGluIEluc3BlY3RvcnMAAAMAAAALAElxFwAAAFJlcXVlc3QgQ29kZSBDb21wbGV0aW9uAAMAAAALANsYFgAAAEVuYWJsZSBDb2RlIENvbXBsZXRpb24AAAMAAAALALxBIgAAAEhpZ2hsaWdodCBEaXN0aW5jdCBNYXRjaGVkIFJlZ2lvbnMAAAMAAAALAGpuEgAAAFNob3cgaW4gV29ya3NwYWNlcwAAAwAAAAsA3UQWAAAAQ2FtZWxDYXNlIE1hdGNoIFBvbGljeQAAAwAAAAsAWRgVAAAAQWNjZXB0IFN1Z2dlc3Rpb24gS2V5AAAAAwAAAAsArXIZAAAARW5hYmxlIFNtYXJ0IEhpZ2hsaWdodGluZwAAAAMAAAALAPkIDAAAAFNIX1NUWUxFX1NFTAMAAAALAGgrBgAAAENBX1VSTQAAAwAAAAsAexghAAAAQnJhY2tldCBIaWdobGlnaHQgd2l0aGluIENvbW1lbnRzAAAAAwAAAAsAyXAgAAAAQXV0byBDb21wbGV0aW9uIFBvcHVwIERlbGF5IChtcykDAAAACwCnFwcAAABDQV9WV05SAAMAAAALAHRrHwAAAEF1dG8gQ29tcGxldGlvbiBQb3B1cCBUaHJlc2hvbGQAAwAAAAsAanUNAAAAQ0FfVU5VU0VEX1ZBUgAAAAMAAAALAOsXHwAAAFNlbGVjdGVkIFVubWF0Y2hlZCBSZWdpb24gQ29sb3IAAwAAAAsAKiQRAAAAU2hvdyBpbiBEZWJ1Z2dlcnMAAAADAAAACwBxLQQAAABJbmZvAwAAAAsAan4HAAAARGVmYXVsdAADAAAACwDmWCYAAABJbm5lciBGaXJzdCBVbmxlc3MgQmluYXJ5IE91dGVyIEV4aXN0cwAAAwAAAAsAVy0HAAAAV2FybmluZwADAAAACwAoKQcAAABEZWZhdWx0APQWpxcIAEl1CAAAAAMAAAC8FqcXAwAAAAsAQVgHAAAARGVmYXVsdAADAAAACwAzKAcAAABEZWZhdWx0AAMAAAALAKMqCQAAAE92ZXJ3cml0ZQAAAAMAAAALAHE3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" alt="">

I am almost sure I am doing it wrong. But I don't see where. Any hint is greatly appreciated


--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/fa7286d9-e472-4cde-a4c1-315959ba15b4n%40googlegroups.com.

stack_922.txt (11K) Download Attachment
JtOSStructureTest.dat.txt (28K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: 9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

jtuchel
Just for completeness: if I do:

self uint32At: #pin put: someString asPSZ copyToOSMemory.

I also get a PrimitiveFailed

Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 11:03:33 UTC+2:
I wrote a little Test Class demonstrating my problem. It is just one class named JtOSStructureTest which subclasses OSStructure. It has two members: version and pin.
You can load this Application into a 9.1x64 image and inspect JtOSStructureTest testThisClass

While this runs in 9.1, it yields an error in 9.2, stack is attached

Here is what the Transcript says about the 9.1 image VM (where the code runs):
VA Smalltalk V9.1 (64-bit); Image: 9.1 [413]
VM Timestamp: 4.0, 07/18/18 (100)


And this is where it fails:
VA Smalltalk V9.2.2 (64-bit); Image: 9.2.2 [2]
VM Timestamp: 4.0, 05/15/20 (102)


I am almost sure I am doing it wrong. But I don't see where. Any hint is greatly appreciated


--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/a20b7e26-0d9c-416a-8e5d-36965b24c5e4n%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

SOLVED! Re: 9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

jtuchel
Okay, thanks for reading, or at least giving me the opportunity to write my progress down. I found my error. I shouldn't use uint32At: for pointers. It's muuuuch better to use pointerAt:

A bit emberassed but happy ;-)

Joachim


 


Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 14:39:23 UTC+2:
Just for completeness: if I do:

self uint32At: #pin put: someString asPSZ copyToOSMemory.

I also get a PrimitiveFailed

Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 11:03:33 UTC+2:
I wrote a little Test Class demonstrating my problem. It is just one class named JtOSStructureTest which subclasses OSStructure. It has two members: version and pin.
You can load this Application into a 9.1x64 image and inspect JtOSStructureTest testThisClass

While this runs in 9.1, it yields an error in 9.2, stack is attached

Here is what the Transcript says about the 9.1 image VM (where the code runs):
VA Smalltalk V9.1 (64-bit); Image: 9.1 [413]
VM Timestamp: 4.0, 07/18/18 (100)


And this is where it fails:
VA Smalltalk V9.2.2 (64-bit); Image: 9.2.2 [2]
VM Timestamp: 4.0, 05/15/20 (102)


I am almost sure I am doing it wrong. But I don't see where. Any hint is greatly appreciated


--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/0db11495-a569-44bc-9d76-ae95838206a1n%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: SOLVED! Re: 9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

Seth Berman
Hi Joachim,

You are correct, pointerAt:, pointerAt:put: for addresses.

We've had several changes since that time which may be the reason you are now seeing it in 9.2
1. We use the clang compiler now...which has a different allocator.
2. We compile with security features like high-entropy 64-bit address space layout randomization (ASLR) that would also impact this.

The bottom line is, you were just getting lucky in 9.1 that the allocator happened to be allocating memory < 4GB on 64-bit.

In any case, glad you found it.

- Seth

On Friday, July 31, 2020 at 8:53:19 AM UTC-4, Joachim Tuchel wrote:
Okay, thanks for reading, or at least giving me the opportunity to write my progress down. I found my error. I shouldn't use uint32At: for pointers. It's muuuuch better to use pointerAt:

A bit emberassed but happy ;-)

Joachim


 


Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 14:39:23 UTC+2:
Just for completeness: if I do:

self uint32At: #pin put: someString asPSZ copyToOSMemory.

I also get a PrimitiveFailed

Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 11:03:33 UTC+2:
I wrote a little Test Class demonstrating my problem. It is just one class named JtOSStructureTest which subclasses OSStructure. It has two members: version and pin.
You can load this Application into a 9.1x64 image and inspect JtOSStructureTest testThisClass

While this runs in 9.1, it yields an error in 9.2, stack is attached

Here is what the Transcript says about the 9.1 image VM (where the code runs):
VA Smalltalk V9.1 (64-bit); Image: 9.1 [413]
VM Timestamp: 4.0, 07/18/18 (100)


And this is where it fails:
VA Smalltalk V9.2.2 (64-bit); Image: 9.2.2 [2]
VM Timestamp: 4.0, 05/15/20 (102)


I am almost sure I am doing it wrong. But I don't see where. Any hint is greatly appreciated


--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/47a672a6-a94e-438e-9a06-3c94c4efb233o%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: SOLVED! Re: 9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

jtuchel
Seth,

Yeah, I was suspecting that it is something that had been working in 9.1 "by accident"... it just took me some time to find out what this something might be. I can't even tell any more what triggered the idea that my use of uint32At:/put: could be the problem...

Just a side comment: I am more or less done porting Kontolino! from VAST 9.1 to VA 9.2.2 and this one was my hardest issue. The rest went smooth and everything was documented in the migration guide. I have two more areas to look at:

  • Glorp: I have added quite a few "fixes" to Glorp over the years, and since there is no obvious process of getting such things back into the Glorp code base (or not if the idea is dumb), but some of the topics had been discussed with Niall Ross and others a few years ago, some changes in the "official" Glorp version might be fixes to problems I reported, but a different implementation from mine
  • XD Packaging a headless image. I can't comment on this yet, haven't tried yet. I can load the code into a passive image but have been dsitracted from next steps.
So I must say the transition went really well. Good job guys! I am impressed by how smooth migrations go every time.


Joachim



Seth Berman schrieb am Freitag, 31. Juli 2020 um 15:35:30 UTC+2:
Hi Joachim,

You are correct, pointerAt:, pointerAt:put: for addresses.

We've had several changes since that time which may be the reason you are now seeing it in 9.2
1. We use the clang compiler now...which has a different allocator.
2. We compile with security features like high-entropy 64-bit address space layout randomization (ASLR) that would also impact this.

The bottom line is, you were just getting lucky in 9.1 that the allocator happened to be allocating memory < 4GB on 64-bit.

In any case, glad you found it.

- Seth


On Friday, July 31, 2020 at 8:53:19 AM UTC-4, Joachim Tuchel wrote:
Okay, thanks for reading, or at least giving me the opportunity to write my progress down. I found my error. I shouldn't use uint32At: for pointers. It's muuuuch better to use pointerAt:

A bit emberassed but happy ;-)

Joachim


 


Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 14:39:23 UTC+2:
Just for completeness: if I do:

self uint32At: #pin put: someString asPSZ copyToOSMemory.

I also get a PrimitiveFailed

Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 11:03:33 UTC+2:
I wrote a little Test Class demonstrating my problem. It is just one class named JtOSStructureTest which subclasses OSStructure. It has two members: version and pin.
You can load this Application into a 9.1x64 image and inspect JtOSStructureTest testThisClass

While this runs in 9.1, it yields an error in 9.2, stack is attached

Here is what the Transcript says about the 9.1 image VM (where the code runs):
VA Smalltalk V9.1 (64-bit); Image: 9.1 [413]
VM Timestamp: 4.0, 07/18/18 (100)


And this is where it fails:
VA Smalltalk V9.2.2 (64-bit); Image: 9.2.2 [2]
VM Timestamp: 4.0, 05/15/20 (102)


I am almost sure I am doing it wrong. But I don't see where. Any hint is greatly appreciated


--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/fe9e8463-0e8f-427d-8821-aa106b4321e1n%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: SOLVED! Re: 9.2.2 OSStructure>>#uint32At:put: yields PrimitiveFailed

Seth Berman
Thank you Joachim,

That means a lot to the team to hear.  We spend a lot of energy keeping a migration path available
for reasons like this.  There have been a couple of new customers this year that successfully
migrated their systems from Visualage 6.0 with minimal difficulty.  And that's a big deal.

We don't think we're perfect at it, but as far as an industry-standard goes, we think we do it better than most.
And the reason we do this, rather than taking the easy path of just breaking old stuff, is that we recognize how
much investment has gone into these systems over the many years.  And its in our company DNA to respect
and support that.

So the team says "Much appreciated!"

- Seth


On Friday, July 31, 2020 at 10:51:10 AM UTC-4, Joachim Tuchel wrote:
Seth,

Yeah, I was suspecting that it is something that had been working in 9.1 "by accident"... it just took me some time to find out what this something might be. I can't even tell any more what triggered the idea that my use of uint32At:/put: could be the problem...

Just a side comment: I am more or less done porting Kontolino! from VAST 9.1 to VA 9.2.2 and this one was my hardest issue. The rest went smooth and everything was documented in the migration guide. I have two more areas to look at:

  • Glorp: I have added quite a few "fixes" to Glorp over the years, and since there is no obvious process of getting such things back into the Glorp code base (or not if the idea is dumb), but some of the topics had been discussed with Niall Ross and others a few years ago, some changes in the "official" Glorp version might be fixes to problems I reported, but a different implementation from mine
  • XD Packaging a headless image. I can't comment on this yet, haven't tried yet. I can load the code into a passive image but have been dsitracted from next steps.
So I must say the transition went really well. Good job guys! I am impressed by how smooth migrations go every time.


Joachim



Seth Berman schrieb am Freitag, 31. Juli 2020 um 15:35:30 UTC+2:
Hi Joachim,

You are correct, pointerAt:, pointerAt:put: for addresses.

We've had several changes since that time which may be the reason you are now seeing it in 9.2
1. We use the clang compiler now...which has a different allocator.
2. We compile with security features like high-entropy 64-bit address space layout randomization (ASLR) that would also impact this.

The bottom line is, you were just getting lucky in 9.1 that the allocator happened to be allocating memory < 4GB on 64-bit.

In any case, glad you found it.

- Seth


On Friday, July 31, 2020 at 8:53:19 AM UTC-4, Joachim Tuchel wrote:
Okay, thanks for reading, or at least giving me the opportunity to write my progress down. I found my error. I shouldn't use uint32At: for pointers. It's muuuuch better to use pointerAt:

A bit emberassed but happy ;-)

Joachim


 


Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 14:39:23 UTC+2:
Just for completeness: if I do:

self uint32At: #pin put: someString asPSZ copyToOSMemory.

I also get a PrimitiveFailed

Joachim Tuchel schrieb am Freitag, 31. Juli 2020 um 11:03:33 UTC+2:
I wrote a little Test Class demonstrating my problem. It is just one class named JtOSStructureTest which subclasses OSStructure. It has two members: version and pin.
You can load this Application into a 9.1x64 image and inspect JtOSStructureTest testThisClass

While this runs in 9.1, it yields an error in 9.2, stack is attached

Here is what the Transcript says about the 9.1 image VM (where the code runs):
VA Smalltalk V9.1 (64-bit); Image: 9.1 [413]
VM Timestamp: 4.0, 07/18/18 (100)


And this is where it fails:
VA Smalltalk V9.2.2 (64-bit); Image: 9.2.2 [2]
VM Timestamp: 4.0, 05/15/20 (102)


I am almost sure I am doing it wrong. But I don't see where. Any hint is greatly appreciated


--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/3273a08e-2444-4552-9553-e2bfe88d9907o%40googlegroups.com.