SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
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?

Contenu connexe

Plus 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
 

Plus 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
 

Dernier

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Dernier (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

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?