SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
24th ESUG Conference
Prague, Czech Republic
August 23, 2016
Copyright © 2016 Instantiations, Inc.
VA Smalltalk Update
John O’Keefe
Chief Technical Officer
Instantiations, Inc.
Agenda
• Company Update
• Current Release Content
• Next Release Candidates
• Q&A
Copyright © 2016 Instantiations, Inc.
Company Updates
VAST remains strong - new technology and users
• Intense new technology development
• Upcoming product release
• New 32/64-bit VM
• Community Outreach
• Conference/workshop sponsors and participants
Copyright © 2016 Instantiations, Inc.
• Conference/workshop sponsors and participants
• ESUG, FAST Smalltalks
• Sponsoring Marquette Camp Smalltalk
• September 15 – 18, 2016
• Hosting North Carolina Camp Smalltalk
• Spring 2017
2015-2016
Engineering Focus
• Enhanced Cryptography Support
• TCP IPv6 Support
• Fast Reliable Headless Installation
• Build System Re-engineering
New 32/64-bit VM
Copyright © 2016 Instantiations, Inc.
• New 32/64-bit VM
New Release
Copyright © 2016 Instantiations, Inc.
V8.6.3 available Q4 2016!
V8.6.3 Content
Base Class Libraries
• Zip/Unzip support
• Inflate/deflate convenience APIs added
• OSLong class added
• Simplifies handing of 64-bit data and pointers
• Transparent resizing on 32/64 bit systems
Copyright © 2016 Instantiations, Inc.
• Transparent resizing on 32/64 bit systems
• Transparent platform adaptation
V8.6.3 Contents
Communications Enhancements
• IPv6 support
• All layers enabled
• SocketCommunicationsInterface
• Server Smalltalk (SST)
• Parts
• UI handles IPv4 and IPv6 addressing syntax
Copyright © 2016 Instantiations, Inc.
• UI handles IPv4 and IPv6 addressing syntax
• .INI file preference controls addressing behavior
• IPv4 is default
V8.6.3 Contents
Seaside and Grease
• Small currency updates
• Adapted to IPv6
Copyright © 2016 Instantiations, Inc.
V8.6.3 Contents
Cryptography
• OpenSSL 1.1 Compatibility
• Lots of new algorithms available
• Continue to support/enhance 1.0.x
• Compatibility layer to handle API breakage
• OpenSSL 1.1 is a significant overhaul
Copyright © 2016 Instantiations, Inc.
• OpenSSL 1.1 is a significant overhaul
• Good amount of API breakage from 1.0.x
• We have handled that internally
• No code changes required for the user to move up
V8.6.3 Contents
Cryptography Cont…
• Secure Memory Support
• Windows
• User can request bytes that are encrypted in-memory
• Auto-decrypt-encrypt during OpenSSL native calls
• Uses Microsoft Crypto API
• UNIX/Linux
Copyright © 2016 Instantiations, Inc.
• UNIX/Linux
• Secure Arena
• Page-guarded on either side
• Pinned to RAM (won’t swap to disk)
• Won’t show up in a core-dump
V8.6.3 Contents
SQLite
• Update SQLite to 3.14.0
• Transparent performance improvements
Copyright © 2016 Instantiations, Inc.
V8.6.3 Contents
Environments Management Tool
• New popup menu on Environments list pane
provides new actions:
• Open a file explorer on the VA Smalltalk installation
folder associated with the selected Environment
• Open a command (terminal) window on the selected
Environment’s folder
Copyright © 2016 Instantiations, Inc.
Environment’s folder
• Open a command (terminal) window on the VA Smalltalk
installation folder associated with the selected
Environment
• Duplicate the selected Environment
• Setup and use standardized images
• Take checkpoint of development activity
V8.6.3 Contents
Installers
• All UNIX installers are headless
• .RPM (Fedora RedHat derivatives)
• .DEB (Debian derivaties)
• .PKG (Solaris)
• Windows installer can be scripted
Copyright © 2016 Instantiations, Inc.
• Windows installer can be scripted
• Supports standard installation across multiple machines
V8.6.3 Content
New Supported Platforms
• Ubuntu 16.04
• Fedora 24
• RedHat Enterprise Linux 6
Copyright © 2016 Instantiations, Inc.
Reengineered Build System
• Old Image Build and Installation Build
• All custom Smalltalk code
• Dates to mid-90’s with relatively small changes since
• Not the best code quality
• Builds were slow with significant manual intervention
• Windows and UNIX builds were sequential
• Difficult to restart if problem occurred
Installation artifacts were unmanaged
Copyright © 2016 Instantiations, Inc.
• Installation artifacts were unmanaged
Reengineered Build System
• Old Image Build and Installation Build
• All custom Smalltalk code
• Dates to mid-90’s with relatively small changes since
• Not the best code quality
• Builds were slow with significant manual intervention
• Windows and UNIX builds were sequential
• Difficult to restart if problem occurred
Installation artifacts were unmanaged
Copyright © 2016 Instantiations, Inc.
• Installation artifacts were unmanaged
• New Image Build and Installation Build
• Cmake-based system used to script build
• Can restart at any job step
• Duplicate and redundant processing removed
• Still uses Smalltalk function where appropriate
• Driven using abt.cnf scripting
• Fully-automated nightly builds (if changes occurred)
• Installable artifacts will be managed in Git repository
Reengineered Build System (cont)
• Old Installation
• Smalltalk packaged image
• Difficult to maintain
• Slow install
• File-by-file copying
• File attributes in separate shadow file
Copyright © 2016 Instantiations, Inc.
• New Installation
• ‘Standard’ installers
• Windows MSI
• UNIX RPM/DEB/PKG
• Documentation in separate packages
• Smaller download packages
• FAST install
Reengineered
Build System (cont)
• Old Build Testing
• Only VM Build testing was automated
• New Build Testing
• Automated build testing using CMake/CTest
Copyright © 2016 Instantiations, Inc.
• Automated build testing using CMake/CTest
• Install Verification Tests
• VM Tests
• Image Tests
• All platforms can be tested in parallel
• Currently over 10,000 mainline testcases (and growing)
• Additional non-automated testcases for features
Looking to the Future
Copyright © 2016 Instantiations, Inc.
Future Releases
• Release schedule is about once a year
• Depends on volume of content
• Current content information in Product Roadmap
• http://www.instantiations.com/products/roadmap.html
• Content based on requirements from:
Copyright © 2016 Instantiations, Inc.
• Content based on requirements from:
• Surveys
• Direct customer interactions
• Forums
• Support cases
• Internals
Next Release
Candidate Items
• Web interface
• Seaside 3.x
• Continuation support
• Middleware
• Postgres
NOSql (Voyage/MongoDB or ???)
Copyright © 2016 Instantiations, Inc.
• NOSql (Voyage/MongoDB or ???)
Next Release
Candidate Items
• GUI Look-and-Feel
• Common Widgets Application Window framework
• Useful for SUnit, Seaside, etc.
• Windows Common Controls
• TreeView improvements
GTK to replace Motif on UNIX platforms
Copyright © 2016 Instantiations, Inc.
• GTK to replace Motif on UNIX platforms
• Communications
• HTTP/2
• 0MQ
• Server
• Easy to use server farm support
Next Release
Candidate Items
• Development Tools
• Improved code library access over WAN
• Revamped Changes Browser
• New Code Merge Engine
• Performance and Scalability
Copyright © 2016 Instantiations, Inc.
• Performance and Scalability
• Incremental garbage collection
• 64-bit Smalltalk
Dino2 32/64 Bit VM Project
Overview
• Project Goals
• 64-bit VMs for x86, PowerPC and SPARC
• 32-bit VMs with performance at least as good as
production
• Improve build systems and testing infrastructure
Copyright © 2016 Instantiations, Inc.
• Production VM Review
• Proprietary Smalltalk Model (generates assembly)
• VM Interpreter/JIT/Primitives is generated assembly
• Supporting Modules written in C
• @135,000 lines of ASM
• @50,000 lines of C
Dino2 32/64 Bit VM Project
Current Status
• Build/Compiler Infrastructure
• CMake-Based Build System
• GCC, MinGW and MSVC compilers
• 32/64-bit Virtual Machine
• Running on Windows and Linux
Copyright © 2016 Instantiations, Inc.
• Running on Windows and Linux
• Current Focus: Interpreter Performance
• 32/64-bit Smalltalk Image
• 32-bit -> 64-bit Image Translation Complete
• Core Smalltalk Image and many libraries are 64-bit
prepped
• Current Focus: Continued 64-bit library prep
Dino2 32/64 Bit VM Project
The Journey Forward
• Raptor
• 1st Generation C-Interpreter
• Slow but 64-bit Clean
• 80% bytecode speed (32-bit)
• 50% message send speed (32-bit)
Copyright © 2016 Instantiations, Inc.
• 50% message send speed (32-bit)
• Primitive call machinery slow
• Smalltalk process switching slow
• Primitive implementation often faster than production
• Allowed us to move forward with Image work
• @90,000 lines of C code
Dino2 32/64 Bit VM Project
The Journey Forward
• Indominus-Rex
• 2nd Generation C-Interpreter
• Faster C-Implementation
• 85% bytecode speed (32-bit)
• 75% message send speed (32-bit)
• Primitive implementation often faster than production
Copyright © 2016 Instantiations, Inc.
• Primitive implementation often faster than production
• Stable - good reference implementation for new
platforms
• Small changes to large interpreter loop resulted in
unpredictable behavior
• Register allocator having a difficult time
• Constant fight with the compiler
• @85,000 lines of C Code
Dino2 32/64 Bit VM Project
The Journey Forward
• Coelo
• LLVM Code-Generated Interpreter
• Compiler toolkit
• SSA Abstract Assembly Representation
• Still down one register on X86 compared to production VM
• Can’t use hardware-stack register (ESP)
Superior Code-Gen makes up for it
Copyright © 2016 Instantiations, Inc.
• Superior Code-Gen makes up for it
• 100% bytecode speed (32-bit)
• 110% message send speed (32-bit)
• At least 20% performance jump in primitives
• For many prims (Floats) the production VM used call-outs to C
• These are described directly in LLVM
• Speedups are more like 4-6x
• @19,000 of C++ Code (Interpreter Code-Gen)
• @75,000 of C Code
Dino2 32/64 Bit VM Project
Customer Involvement
• Early Customer Access Program (ECAP)
• Kicked off our ECAP program in July, 2016
• Select customer involvement
• Opportunity for feedback and collaboration
Copyright © 2016 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
Copyright © 2016 Instantiations, Inc.
• Download development build
• Announced in VA Smalltalk Google Group
• 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 © 2016 Instantiations, Inc.
• Support
• support@instantiations.com
• Me
• john_okeefe@instantiations.com
Thank you for your attention
Copyright © 2016 Instantiations, Inc.
Questions?

Más contenido relacionado

Más de ESUG

The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalkESUG
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social MediaESUG
 

Más de ESUG (20)

The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalk
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Media
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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.pptxEarley Information Science
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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 Nanonetsnaman860154
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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 RobisonAnna Loughnan Colquhoun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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 MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

VA Smalltalk Product Update and Roadmap

  • 1. 24th ESUG Conference Prague, Czech Republic August 23, 2016 Copyright © 2016 Instantiations, Inc. VA Smalltalk Update John O’Keefe Chief Technical Officer Instantiations, Inc.
  • 2. Agenda • Company Update • Current Release Content • Next Release Candidates • Q&A Copyright © 2016 Instantiations, Inc.
  • 3. Company Updates VAST remains strong - new technology and users • Intense new technology development • Upcoming product release • New 32/64-bit VM • Community Outreach • Conference/workshop sponsors and participants Copyright © 2016 Instantiations, Inc. • Conference/workshop sponsors and participants • ESUG, FAST Smalltalks • Sponsoring Marquette Camp Smalltalk • September 15 – 18, 2016 • Hosting North Carolina Camp Smalltalk • Spring 2017
  • 4. 2015-2016 Engineering Focus • Enhanced Cryptography Support • TCP IPv6 Support • Fast Reliable Headless Installation • Build System Re-engineering New 32/64-bit VM Copyright © 2016 Instantiations, Inc. • New 32/64-bit VM
  • 5. New Release Copyright © 2016 Instantiations, Inc. V8.6.3 available Q4 2016!
  • 6. V8.6.3 Content Base Class Libraries • Zip/Unzip support • Inflate/deflate convenience APIs added • OSLong class added • Simplifies handing of 64-bit data and pointers • Transparent resizing on 32/64 bit systems Copyright © 2016 Instantiations, Inc. • Transparent resizing on 32/64 bit systems • Transparent platform adaptation
  • 7. V8.6.3 Contents Communications Enhancements • IPv6 support • All layers enabled • SocketCommunicationsInterface • Server Smalltalk (SST) • Parts • UI handles IPv4 and IPv6 addressing syntax Copyright © 2016 Instantiations, Inc. • UI handles IPv4 and IPv6 addressing syntax • .INI file preference controls addressing behavior • IPv4 is default
  • 8. V8.6.3 Contents Seaside and Grease • Small currency updates • Adapted to IPv6 Copyright © 2016 Instantiations, Inc.
  • 9. V8.6.3 Contents Cryptography • OpenSSL 1.1 Compatibility • Lots of new algorithms available • Continue to support/enhance 1.0.x • Compatibility layer to handle API breakage • OpenSSL 1.1 is a significant overhaul Copyright © 2016 Instantiations, Inc. • OpenSSL 1.1 is a significant overhaul • Good amount of API breakage from 1.0.x • We have handled that internally • No code changes required for the user to move up
  • 10. V8.6.3 Contents Cryptography Cont… • Secure Memory Support • Windows • User can request bytes that are encrypted in-memory • Auto-decrypt-encrypt during OpenSSL native calls • Uses Microsoft Crypto API • UNIX/Linux Copyright © 2016 Instantiations, Inc. • UNIX/Linux • Secure Arena • Page-guarded on either side • Pinned to RAM (won’t swap to disk) • Won’t show up in a core-dump
  • 11. V8.6.3 Contents SQLite • Update SQLite to 3.14.0 • Transparent performance improvements Copyright © 2016 Instantiations, Inc.
  • 12. V8.6.3 Contents Environments Management Tool • New popup menu on Environments list pane provides new actions: • Open a file explorer on the VA Smalltalk installation folder associated with the selected Environment • Open a command (terminal) window on the selected Environment’s folder Copyright © 2016 Instantiations, Inc. Environment’s folder • Open a command (terminal) window on the VA Smalltalk installation folder associated with the selected Environment • Duplicate the selected Environment • Setup and use standardized images • Take checkpoint of development activity
  • 13. V8.6.3 Contents Installers • All UNIX installers are headless • .RPM (Fedora RedHat derivatives) • .DEB (Debian derivaties) • .PKG (Solaris) • Windows installer can be scripted Copyright © 2016 Instantiations, Inc. • Windows installer can be scripted • Supports standard installation across multiple machines
  • 14. V8.6.3 Content New Supported Platforms • Ubuntu 16.04 • Fedora 24 • RedHat Enterprise Linux 6 Copyright © 2016 Instantiations, Inc.
  • 15. Reengineered Build System • Old Image Build and Installation Build • All custom Smalltalk code • Dates to mid-90’s with relatively small changes since • Not the best code quality • Builds were slow with significant manual intervention • Windows and UNIX builds were sequential • Difficult to restart if problem occurred Installation artifacts were unmanaged Copyright © 2016 Instantiations, Inc. • Installation artifacts were unmanaged
  • 16. Reengineered Build System • Old Image Build and Installation Build • All custom Smalltalk code • Dates to mid-90’s with relatively small changes since • Not the best code quality • Builds were slow with significant manual intervention • Windows and UNIX builds were sequential • Difficult to restart if problem occurred Installation artifacts were unmanaged Copyright © 2016 Instantiations, Inc. • Installation artifacts were unmanaged • New Image Build and Installation Build • Cmake-based system used to script build • Can restart at any job step • Duplicate and redundant processing removed • Still uses Smalltalk function where appropriate • Driven using abt.cnf scripting • Fully-automated nightly builds (if changes occurred) • Installable artifacts will be managed in Git repository
  • 17. Reengineered Build System (cont) • Old Installation • Smalltalk packaged image • Difficult to maintain • Slow install • File-by-file copying • File attributes in separate shadow file Copyright © 2016 Instantiations, Inc. • New Installation • ‘Standard’ installers • Windows MSI • UNIX RPM/DEB/PKG • Documentation in separate packages • Smaller download packages • FAST install
  • 18. Reengineered Build System (cont) • Old Build Testing • Only VM Build testing was automated • New Build Testing • Automated build testing using CMake/CTest Copyright © 2016 Instantiations, Inc. • Automated build testing using CMake/CTest • Install Verification Tests • VM Tests • Image Tests • All platforms can be tested in parallel • Currently over 10,000 mainline testcases (and growing) • Additional non-automated testcases for features
  • 19. Looking to the Future Copyright © 2016 Instantiations, Inc.
  • 20. Future Releases • Release schedule is about once a year • Depends on volume of content • Current content information in Product Roadmap • http://www.instantiations.com/products/roadmap.html • Content based on requirements from: Copyright © 2016 Instantiations, Inc. • Content based on requirements from: • Surveys • Direct customer interactions • Forums • Support cases • Internals
  • 21. Next Release Candidate Items • Web interface • Seaside 3.x • Continuation support • Middleware • Postgres NOSql (Voyage/MongoDB or ???) Copyright © 2016 Instantiations, Inc. • NOSql (Voyage/MongoDB or ???)
  • 22. Next Release Candidate Items • GUI Look-and-Feel • Common Widgets Application Window framework • Useful for SUnit, Seaside, etc. • Windows Common Controls • TreeView improvements GTK to replace Motif on UNIX platforms Copyright © 2016 Instantiations, Inc. • GTK to replace Motif on UNIX platforms • Communications • HTTP/2 • 0MQ • Server • Easy to use server farm support
  • 23. Next Release Candidate Items • Development Tools • Improved code library access over WAN • Revamped Changes Browser • New Code Merge Engine • Performance and Scalability Copyright © 2016 Instantiations, Inc. • Performance and Scalability • Incremental garbage collection • 64-bit Smalltalk
  • 24. Dino2 32/64 Bit VM Project Overview • Project Goals • 64-bit VMs for x86, PowerPC and SPARC • 32-bit VMs with performance at least as good as production • Improve build systems and testing infrastructure Copyright © 2016 Instantiations, Inc. • Production VM Review • Proprietary Smalltalk Model (generates assembly) • VM Interpreter/JIT/Primitives is generated assembly • Supporting Modules written in C • @135,000 lines of ASM • @50,000 lines of C
  • 25. Dino2 32/64 Bit VM Project Current Status • Build/Compiler Infrastructure • CMake-Based Build System • GCC, MinGW and MSVC compilers • 32/64-bit Virtual Machine • Running on Windows and Linux Copyright © 2016 Instantiations, Inc. • Running on Windows and Linux • Current Focus: Interpreter Performance • 32/64-bit Smalltalk Image • 32-bit -> 64-bit Image Translation Complete • Core Smalltalk Image and many libraries are 64-bit prepped • Current Focus: Continued 64-bit library prep
  • 26. Dino2 32/64 Bit VM Project The Journey Forward • Raptor • 1st Generation C-Interpreter • Slow but 64-bit Clean • 80% bytecode speed (32-bit) • 50% message send speed (32-bit) Copyright © 2016 Instantiations, Inc. • 50% message send speed (32-bit) • Primitive call machinery slow • Smalltalk process switching slow • Primitive implementation often faster than production • Allowed us to move forward with Image work • @90,000 lines of C code
  • 27. Dino2 32/64 Bit VM Project The Journey Forward • Indominus-Rex • 2nd Generation C-Interpreter • Faster C-Implementation • 85% bytecode speed (32-bit) • 75% message send speed (32-bit) • Primitive implementation often faster than production Copyright © 2016 Instantiations, Inc. • Primitive implementation often faster than production • Stable - good reference implementation for new platforms • Small changes to large interpreter loop resulted in unpredictable behavior • Register allocator having a difficult time • Constant fight with the compiler • @85,000 lines of C Code
  • 28. Dino2 32/64 Bit VM Project The Journey Forward • Coelo • LLVM Code-Generated Interpreter • Compiler toolkit • SSA Abstract Assembly Representation • Still down one register on X86 compared to production VM • Can’t use hardware-stack register (ESP) Superior Code-Gen makes up for it Copyright © 2016 Instantiations, Inc. • Superior Code-Gen makes up for it • 100% bytecode speed (32-bit) • 110% message send speed (32-bit) • At least 20% performance jump in primitives • For many prims (Floats) the production VM used call-outs to C • These are described directly in LLVM • Speedups are more like 4-6x • @19,000 of C++ Code (Interpreter Code-Gen) • @75,000 of C Code
  • 29. Dino2 32/64 Bit VM Project Customer Involvement • Early Customer Access Program (ECAP) • Kicked off our ECAP program in July, 2016 • Select customer involvement • Opportunity for feedback and collaboration Copyright © 2016 Instantiations, Inc.
  • 30. 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 Copyright © 2016 Instantiations, Inc. • Download development build • Announced in VA Smalltalk Google Group • 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
  • 31. Contact us • General information • info@instantiations.com • Sales • sales@instantiations.com • Support Copyright © 2016 Instantiations, Inc. • Support • support@instantiations.com • Me • john_okeefe@instantiations.com
  • 32. Thank you for your attention Copyright © 2016 Instantiations, Inc. Questions?