SlideShare a Scribd company logo
1 of 18
Download to read offline
VA Smalltalk Update
**including**
Exploring the Dark Underside of 64-bit Support
Copyright © 2017 Instantiations, Inc.
John O’Keefe
Chief Technical Officer
Instantiations, Inc.
Agenda
• 2017 Release Content
• 64-bit Support
• Next Release
• Q&A
Copyright © 2017 Instantiations, Inc.
2017 Release
Copyright © 2017 Instantiations, Inc.
V9.0 available now for Windows
V9.0 Content
• Windows only
• New 32/64-bit VMs
• Fully backward compatible
• Image adaptation for 64-bits
• Dual, but shared, Environments
Copyright © 2017 Instantiations, Inc.
• Dual Installers
V9.0 Contents
Minor Enhancements
• Grease and Seaside
• Currency
• Cryptography
• Elliptic Curve support added
• SUnit Browser
Copyright © 2017 Instantiations, Inc.
• 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
What Made 64-bit Difficult?
Beyond writing new VMs
• Bootstrap
• Serialize for everyone
• Expose the magic
• Say what you mean
Managing elastic OSStructures
Copyright © 2017 Instantiations, Inc.
• Managing elastic OSStructures
• I don’t have my source
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
Copyright © 2017 Instantiations, Inc.
• 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
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)
Copyright © 2017 Instantiations, Inc.
• 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
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)
• 12 (size of object header)
Copyright © 2017 Instantiations, Inc.
• 12 (size of object header)
• 20 (size of Association)
• Etc.
• Solution:
• Find and fix (parameterize)
• 4 (size of pointer)  System vmPointerSize
• 12 (size of object header)  Object objectHeaderSize
• 20 (size of Association)  self associationSize
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:
Copyright © 2017 Instantiations, Inc.
• Solution:
• Examine ALL PlatformFunction definitions and make
parameter and returnValue types explicitly correct
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
Copyright © 2017 Instantiations, Inc.
• 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
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
Copyright © 2017 Instantiations, Inc.
• 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
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
Copyright © 2017 Instantiations, Inc.
• 3 public betas with significant number of participants
• Exposed problems that in-house testing didn’t find
Looking to the Future
Copyright © 2017 Instantiations, Inc.
Next Release (9.1)
• UNIX 32/64 bit VMs
• Short development cycle
• Beta program expected to start soon
• Unicode
• Initial infrastructure layer (prims and classes)
Copyright © 2017 Instantiations, Inc.
• Initial infrastructure layer (prims and classes)
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
Copyright © 2017 Instantiations, Inc.
• 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
Contact us
• General information
• info@instantiations.com
• Sales
• sales@instantiations.com
• Support
Copyright © 2017 Instantiations, Inc.
• Support
• support@instantiations.com
Thank you for your attention
Copyright © 2017 Instantiations, Inc.
Questions?

More Related Content

What's hot

Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for Beginners
DigitalOcean
 
Digital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The CloudDigital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The Cloud
Velocidex Enterprises
 

What's hot (20)

Nzitf Velociraptor Workshop
Nzitf Velociraptor WorkshopNzitf Velociraptor Workshop
Nzitf Velociraptor Workshop
 
Comprehensive Container Based Service Monitoring with Kubernetes and Istio
Comprehensive Container Based Service Monitoring with Kubernetes and IstioComprehensive Container Based Service Monitoring with Kubernetes and Istio
Comprehensive Container Based Service Monitoring with Kubernetes and Istio
 
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
 
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
 
Netflix OSS Meetup Season 5 Episode 1
Netflix OSS Meetup Season 5 Episode 1Netflix OSS Meetup Season 5 Episode 1
Netflix OSS Meetup Season 5 Episode 1
 
Netflow Analysis using Elastic Stack - 조인중
Netflow Analysis using Elastic Stack - 조인중Netflow Analysis using Elastic Stack - 조인중
Netflow Analysis using Elastic Stack - 조인중
 
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for UnknownsTectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
 
Kubecon 2019_eu-k8s-secrets-csi
Kubecon 2019_eu-k8s-secrets-csiKubecon 2019_eu-k8s-secrets-csi
Kubecon 2019_eu-k8s-secrets-csi
 
Velociraptor - SANS Summit 2019
Velociraptor - SANS Summit 2019Velociraptor - SANS Summit 2019
Velociraptor - SANS Summit 2019
 
FPGA Design with Python and MyHDL
FPGA Design with Python and MyHDLFPGA Design with Python and MyHDL
FPGA Design with Python and MyHDL
 
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
 
The Truth Behind Serverless
The Truth Behind ServerlessThe Truth Behind Serverless
The Truth Behind Serverless
 
Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for Beginners
 
ОЛЕКСАНДР ЛИПКО «Graceful Shutdown Node.js + k8s» Online WDDay 2021
ОЛЕКСАНДР ЛИПКО «Graceful Shutdown Node.js + k8s» Online WDDay 2021ОЛЕКСАНДР ЛИПКО «Graceful Shutdown Node.js + k8s» Online WDDay 2021
ОЛЕКСАНДР ЛИПКО «Graceful Shutdown Node.js + k8s» Online WDDay 2021
 
Сергей Калинец "Не SQL-ом единым..."
Сергей Калинец "Не SQL-ом единым..."Сергей Калинец "Не SQL-ом единым..."
Сергей Калинец "Не SQL-ом единым..."
 
Digital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The CloudDigital Forensics and Incident Response in The Cloud
Digital Forensics and Incident Response in The Cloud
 
Nodejs Chapter 3 - Design Pattern
Nodejs Chapter 3 - Design PatternNodejs Chapter 3 - Design Pattern
Nodejs Chapter 3 - Design Pattern
 
Kubernetes scheduling and QoS
Kubernetes scheduling and QoSKubernetes scheduling and QoS
Kubernetes scheduling and QoS
 
stackconf 2021 | Embracing change: Policy-as-code for Kubernetes with OPA and...
stackconf 2021 | Embracing change: Policy-as-code for Kubernetes with OPA and...stackconf 2021 | Embracing change: Policy-as-code for Kubernetes with OPA and...
stackconf 2021 | Embracing change: Policy-as-code for Kubernetes with OPA and...
 
Beyond OpenStack | OpenStack in Real Life
Beyond OpenStack | OpenStack in Real LifeBeyond OpenStack | OpenStack in Real Life
Beyond OpenStack | OpenStack in Real Life
 

Similar to VA Smalltalk Product Update and Roadmap by John O'Keefe

Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessenAlles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
panagenda
 
Live Content: Finding new ways to publish
Live Content: Finding new ways to publishLive Content: Finding new ways to publish
Live Content: Finding new ways to publish
ckimrie
 
Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3
ArdenCST
 
Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2
ArdenCST
 

Similar to VA Smalltalk Product Update and Roadmap by John O'Keefe (20)

Cs4 Production Premium 64bit Wp
Cs4 Production Premium 64bit WpCs4 Production Premium 64bit Wp
Cs4 Production Premium 64bit Wp
 
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineDino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
 
Advanced GitHub Enterprise Administration
Advanced GitHub Enterprise AdministrationAdvanced GitHub Enterprise Administration
Advanced GitHub Enterprise Administration
 
How to Port a 9 Million Code Line Project to 64 bits?
How to Port a 9 Million Code Line Project to 64 bits? How to Port a 9 Million Code Line Project to 64 bits?
How to Port a 9 Million Code Line Project to 64 bits?
 
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
 
Linux: embarquement immédiat pour le cloud
Linux: embarquement immédiat pour le cloudLinux: embarquement immédiat pour le cloud
Linux: embarquement immédiat pour le cloud
 
Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessenAlles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
 
Live Content: Finding new ways to publish
Live Content: Finding new ways to publishLive Content: Finding new ways to publish
Live Content: Finding new ways to publish
 
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
Matrix, The Year To Date, Ben Parsons, TADSummit 2018Matrix, The Year To Date, Ben Parsons, TADSummit 2018
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
 
BSides Leeds - Performing JavaScript Static Analysis
BSides Leeds -  Performing JavaScript Static AnalysisBSides Leeds -  Performing JavaScript Static Analysis
BSides Leeds - Performing JavaScript Static Analysis
 
DITA versus DITA-OT
DITA versus DITA-OTDITA versus DITA-OT
DITA versus DITA-OT
 
I Have a NoSQL toaster - DC - August 2017
I Have a NoSQL toaster - DC - August 2017I Have a NoSQL toaster - DC - August 2017
I Have a NoSQL toaster - DC - August 2017
 
Cincom Smalltalk Roadmap 2015
Cincom Smalltalk Roadmap 2015Cincom Smalltalk Roadmap 2015
Cincom Smalltalk Roadmap 2015
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
Implement DevOps Like a Unicorn—Even If You’re Not One
Implement DevOps Like a Unicorn—Even If You’re Not OneImplement DevOps Like a Unicorn—Even If You’re Not One
Implement DevOps Like a Unicorn—Even If You’re Not One
 
Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3Cincom smalltalk roadmap 2015 draft3
Cincom smalltalk roadmap 2015 draft3
 
Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 

More from FAST

Powerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming LanguagesPowerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming Languages
FAST
 
Constructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden EngineConstructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden Engine
FAST
 
Demystifying the creation of coding tools
Demystifying the creation of coding toolsDemystifying the creation of coding tools
Demystifying the creation of coding tools
FAST
 
Application Starter: the entry point for your application
Application Starter: the entry point for your applicationApplication Starter: the entry point for your application
Application Starter: the entry point for your application
FAST
 
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
FAST
 
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the worldVASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
FAST
 
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting WorkshopHands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
FAST
 

More from FAST (20)

Threads, Critical Sections, and Termination
Threads, Critical Sections, and TerminationThreads, Critical Sections, and Termination
Threads, Critical Sections, and Termination
 
OOP with Smalltalk
OOP with SmalltalkOOP with Smalltalk
OOP with Smalltalk
 
Powerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming LanguagesPowerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming Languages
 
Constructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden EngineConstructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden Engine
 
Demystifying the creation of coding tools
Demystifying the creation of coding toolsDemystifying the creation of coding tools
Demystifying the creation of coding tools
 
Application Starter: the entry point for your application
Application Starter: the entry point for your applicationApplication Starter: the entry point for your application
Application Starter: the entry point for your application
 
Improving the Pharo VM
Improving the Pharo VMImproving the Pharo VM
Improving the Pharo VM
 
What is (not) Pharo 8?
What is (not) Pharo 8?What is (not) Pharo 8?
What is (not) Pharo 8?
 
Stargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIsStargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIs
 
Opening Smalltalks 2019
Opening Smalltalks 2019Opening Smalltalks 2019
Opening Smalltalks 2019
 
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção JrSmalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
 
Adaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção JrAdaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção Jr
 
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
 
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
 
Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...
 
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the worldVASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
 
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting WorkshopHands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
 
Live typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan WilkinsonLive typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan Wilkinson
 
Enhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth BermanEnhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth Berman
 
VA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth BermanVA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth Berman
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

VA Smalltalk Product Update and Roadmap by John O'Keefe

  • 1. VA Smalltalk Update **including** Exploring the Dark Underside of 64-bit Support Copyright © 2017 Instantiations, Inc. John O’Keefe Chief Technical Officer Instantiations, Inc.
  • 2. Agenda • 2017 Release Content • 64-bit Support • Next Release • Q&A Copyright © 2017 Instantiations, Inc.
  • 3. 2017 Release Copyright © 2017 Instantiations, Inc. V9.0 available now for Windows
  • 4. V9.0 Content • Windows only • New 32/64-bit VMs • Fully backward compatible • Image adaptation for 64-bits • Dual, but shared, Environments Copyright © 2017 Instantiations, Inc. • Dual Installers
  • 5. V9.0 Contents Minor Enhancements • Grease and Seaside • Currency • Cryptography • Elliptic Curve support added • SUnit Browser Copyright © 2017 Instantiations, Inc. • 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. What Made 64-bit Difficult? Beyond writing new VMs • Bootstrap • Serialize for everyone • Expose the magic • Say what you mean Managing elastic OSStructures Copyright © 2017 Instantiations, Inc. • Managing elastic OSStructures • I don’t have my source
  • 7. 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 Copyright © 2017 Instantiations, Inc. • 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. 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) Copyright © 2017 Instantiations, Inc. • 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. 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) • 12 (size of object header) Copyright © 2017 Instantiations, Inc. • 12 (size of object header) • 20 (size of Association) • Etc. • Solution: • Find and fix (parameterize) • 4 (size of pointer)  System vmPointerSize • 12 (size of object header)  Object objectHeaderSize • 20 (size of Association)  self associationSize
  • 10. 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: Copyright © 2017 Instantiations, Inc. • Solution: • Examine ALL PlatformFunction definitions and make parameter and returnValue types explicitly correct
  • 11. 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 Copyright © 2017 Instantiations, Inc. • 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. 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 Copyright © 2017 Instantiations, Inc. • 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. 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 Copyright © 2017 Instantiations, Inc. • 3 public betas with significant number of participants • Exposed problems that in-house testing didn’t find
  • 14. Looking to the Future Copyright © 2017 Instantiations, Inc.
  • 15. Next Release (9.1) • UNIX 32/64 bit VMs • Short development cycle • Beta program expected to start soon • Unicode • Initial infrastructure layer (prims and classes) Copyright © 2017 Instantiations, Inc. • Initial infrastructure layer (prims and classes)
  • 16. 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 Copyright © 2017 Instantiations, Inc. • 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. Contact us • General information • info@instantiations.com • Sales • sales@instantiations.com • Support Copyright © 2017 Instantiations, Inc. • Support • support@instantiations.com
  • 18. Thank you for your attention Copyright © 2017 Instantiations, Inc. Questions?