Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

VA Smalltalk Product Update and Roadmap

123 views

Published on

ESUG 2017
First Name: John
Last Name: O'Keefe

Title: VA Smalltalk Product Update and Roadmap
Type: Talk
Video: https://youtu.be/7jAFE1WBwEQ

Abstract:
VA Smalltalk continues to evolve, and I'm going to share the current state of this evolution. During this last year, we have all been working on 64-bit support. I will be describing this new capability (and some of the pitfalls along the way). And, as usual you will see the “Roadmap to the Future” for VA Smalltalk.

Bio:
I have been developing software for over 50 years and Smalltalk for over half that time.. I joined the original IBM Smalltalk prototype team in 1990 and was a founding member of the IBM VisualAge Smalltalk development team. I was Team Lead and Chief Architect of IBM VisualAge Smalltalk from 1997 to 2007. In February 2007, I joined Instantiations to lead the VA Smalltalk development team. I am currently the CTO and Principal Smalltalk Architect (aka Old Dude Who Knows Smalltalk) focusing on future product architecture and development. I live in Durham, NC and work in Raleigh, NC.

Published in: Software
  • youtube: https://youtu.be/7jAFE1WBwEQ
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

VA Smalltalk Product Update and Roadmap

  1. 1. Copyright © 2017 Instantiations, Inc. 25th ESUG Conference
 Maribor, Slovenia
 September 6, 2017
 
 VA Smalltalk Update
 
 **including**
 Exploring the Dark Underside of 64-bit Support
 
 John O’Keefe Chief Technical Officer Instantiations, Inc.
  2. 2. Copyright © 2017 Instantiations, Inc. Agenda • 2017 Release Content • 64-bit Support • Next Release • Q&A
  3. 3. Copyright © 2017 Instantiations, Inc. 2017 Release V9.0 available soon for Windows
  4. 4. Copyright © 2017 Instantiations, Inc. V9.0 Content • Windows only • New 32/64-bit VMs • Fully backward compatible • Image adaptation for 64-bits • Dual, but shared, Environments • Dual Installers
  5. 5. Copyright © 2017 Instantiations, Inc. V9.0 Contents
 Minor Enhancements • Grease and Seaside • Currency • Cryptography • Elliptic Curve support added • SUnit Browser • Performance improvement for large test sets • Scintilla • Full Code Assist support in Workspaces for 25+ languages • HTTP multipart forms • Optimized memory usage and speed
  6. 6. Copyright © 2017 Instantiations, Inc. What Made 64-bit Difficult?
 Beyond writing new VMs • Bootstrap • Serialize for everyone • Expose the magic • Say what you mean • Managing elastic OSStructures • I don’t have my source
  7. 7. Copyright © 2017 Instantiations, Inc. What Made 64-bit Difficult?
 Bootstrap • Problem: All I have is a 32-bit image • Solution: • Mark image file as 32- or 64-bit • Provide multiple image file loaders • 32-bit image loader for 32-bit VM • 32-bit image loader for 64-bit VM (dynamic conversion) • 64-bit image loader for 64-bit VM • Depend on #preStartUp/#startUp for fixup of converted image • Offline 32-to-64 bit conversion tool available
  8. 8. Copyright © 2017 Instantiations, Inc. What Made 64-bit Difficult?
 Serialization for everyone
 • Problem: Serialized data (files and library objects) must be sharable between 32- and 64-bit images • Solution: • All serialization is 32-bit by default (compatibility mode) • If 64-bit serialized object is required; temporarily turn off compatible mode • 64-bit serialized object cannot be read by 32-bit image
  9. 9. Copyright © 2017 Instantiations, Inc. What Made 64-bit Difficult?
 Expose the magic • Problem: Images are littered with magic numbers conforming to 32-bit representations • Example: • 4 (size of pointer) ➔ System vmPointerSize • 12 (size of object header) ➔ Object objectHeaderSize • 20 (size of Association) ➔ self associationSize • Etc. • Solution: • Find and fix (parameterize)
  10. 10. Copyright © 2017 Instantiations, Inc. What Made 64-bit Difficult?
 Say what you mean
 • Problem: PlatformFunction parameter and returnValue definition semantics are too loose • Example: #uint8, #uint16 and #uint32 widened to 32-bits • Solution: • Examine ALL PlatformFunction definitions and make parameter and returnValue types explicitly correct
  11. 11. Copyright © 2017 Instantiations, Inc. What Made 64-bit Difficult?
 Managing elastic OSStructures
 • Problem: Static OSStructure definitions (mapping C structs) need to be dynamic • Field sizes may change for 64-bit • Field order may change for 64-bit • Number of fields may change for 64-bit • Field alignment may change for 64-bit • Solution: • Explicitly identify field sizes, order, and occurrence • Change field references from offset based to field name based • Compute offsets for field names when starting image • Completely backward compatible
  12. 12. Copyright © 2017 Instantiations, Inc. What Made 64-bit Difficult?
 I don’t have my source • Problem: Method source code is hidden (3rd party add-ons) or lost • Solution: • Obtain source code from 3rd party providers • Dynamic 32-to-64 bit conversion may work at runtime • Immediate access to additional memory • Doesn’t handle access to 64-bit DLLs • Run only 32-bit images
  13. 13. Copyright © 2017 Instantiations, Inc. What Helped with 64-bit? • Early Customer Access Program • Invitation only to limit overhead • Small number of high-impact customers • Beta Releases • 3 public betas with significant number of participants • Exposed problems that in-house testing couldn’t find
  14. 14. Copyright © 2017 Instantiations, Inc. Looking to the Future
  15. 15. Copyright © 2017 Instantiations, Inc. Next Release • UNIX 32/64 bit VMs • Short development cycle • Beta program expected to start soon • Unicode
  16. 16. Copyright © 2017 Instantiations, Inc. How Do You Get VA Smalltalk? • Download evaluation copy • http://www.instantiations.com/products/vasmalltalk/download.html • Buy development licenses • http://www.instantiations.com/products/purchase.html • Download development build/beta • Announced in VA Smalltalk Google Group or by email • Be a committer on an Open Source project • http://www.instantiations.com/company/open-source.html • Work for an educational institution • http://www.instantiations.com/products/academic-license- program.html
  17. 17. Copyright © 2017 Instantiations, Inc. Contact us • General information • info@instantiations.com • Sales • sales@instantiations.com • Support • support@instantiations.com • Me • john_okeefe@instantiations.com
  18. 18. Copyright © 2017 Instantiations, Inc. Thank you for your attention Questions?
  19. 19. Copyright © 2017 Instantiations, Inc. Backup
  20. 20. Copyright © 2017 Instantiations, Inc. Future Releases
 Candidate Items • Web interface • Web services debugging support/doc • Web services tooling improvements • Validating XML parser • GUI Look-and-Feel • GTK+ 3.x on Linux • Windows Common Controls additions • Back-port widgets from add-ons (ex: UML Designer)
  21. 21. Copyright © 2017 Instantiations, Inc. Future Releases
 Candidate Items • Infrastructure • Consolidate product settings using Settings Framework • Settings Dialogs to complement Settings Framework • Consolidate product logging using Logging Framework • Middleware • GLORP Programmer’s Reference • MQ currency • TCP/IP V6 • 0MQ
  22. 22. Copyright © 2017 Instantiations, Inc. Future Releases
 Candidate Items • Development Tools • Redesigned Change Browser & Merge Tool • C API wrapper generation tool • Security • ‘Full’ security framework -- OpenSSL 1.0.2 or later wrappers • Performance and Scalability • Parallel garbage collection • Class library performance hotspots • Integrate KES/Stats goodie for object monitoring • Platform • Windows Services control moved from C to Smalltalk
  23. 23. Copyright © 2017 Instantiations, Inc. Future Releases
 Candidate Items • External Interfaces • JNIport (currently available on VAStGoodies.com) • .NET/C# • Other • Class Libraries • Collection hashing policies • Sorted collection sorting policies • Other • We’re always looking for suggestions
  24. 24. Copyright © 2017 Instantiations, Inc. Open Source Project Committer • Instantiations will donate a perpetual VA Smalltalk license • to committers • working on non-commercial open source project • Hint: release something to VAStGoodies.com • No charge • Details • http://www.instantiations.com/company/open-source.html
  25. 25. Copyright © 2017 Instantiations, Inc. Academic Licenses • Accredited educational institutions • Teaching staff • Students • No charge • Details • http://www.instantiations.com/products/academic-license- program.html

×