C++ in the Cloud
One NIF at a Time with Elixir
Sakshi Verma | Senior Software Engineerhttps://www.linkedin.com/in/sakverma
Functional, concurrent
language built for
scalability.
Ideal for managing managing
large-scale cloud
applications.
Built on the Erlang VM,
ensuring resilience and
fault tolerance.
What is Elixir?https://www.linkedin.com/in/sakverma
The Smooth Sailing…https://www.linkedin
milliseconds)
• High frequency trading (usually nanoseconds)
• Mobile applications battery usage
• Cloud or servers electricity consumptionOther Validations
• Business logic
• Error handling
• Edge cases == [:value:]) {
return callback.template operator()<[:value:]>();
}
};
}
Compiler explorer:
https://godbolt.org/z/vMfo4n8aTFunctional Programming
• Immutability: Data is immutable, meaning and variable.
2. Validate and update all relevant meta states at every
function call.
Compiler Explorer: https://godbolt.org/z/vs7Efshx1Scaling Issues
•
Validation requires global reasoning which isn't
• Service running as high Integrity Level
• Cloud Service to handle the AI OCR processing
UI App
[Medium IL]
Service
[High IL]
Serialized
Data
Cloud AI OCR
Processing
Serialized
DataAdversary DataAdversary Perspective
UI App
[Medium
IL]
Service
[High IL]
Serialized
Data
Cloud AI OCR
Processing
File Input Validation
Maliciously crafted file
Loaded Resource
Integrity Checking
Privilege Escalation Hunting
•Race Between Offense and Defense
•Focus on Higher Value Targets
•Sophisticated Attackers
•Cloud services, Containerization,
Microservices architectures
•Interconnected Components
•Feature Richness
instant dev environment
Sign up today https://aka.ms/codespaces-signup
Code without compromise
Create cloud-hosted development environments for your repository in minutes
Code, build, test & debug with a complete development environment in your
browser
Access your code from anywhere
With your development in the cloud, you can contribute code from any device,
using Visual Studio, Visual Studio Code or in your browser you’re away with roaming settings, themes and Git
identity
Free up resources on your machine
The cloud is the limit to what your dev environment can do
Work on one or multiple projects without worrying
Foo::create(7);
⇒ Technical constraints can be addressed and resolved.
(Code: https://compiler-explorer.com/z/Mvn9h3G88)
3. Because of technical constraints
16
Hiding your Implementation Details, Amir function
void do_meow(const Meowable auto& meowable) {
meowable.meow();
}
Code: https://compiler-explorer.com/z/YnnzKfhYnThe requires keyword
71
A Meander: Concepts
The requires keyword is used for two typename T::inner_type; // 4 -- the typename keyword is required!
};
Code: https://compiler-explorer.com/z/hqedcPPvrThe concept’s param (1)
77
A Meander: Concepts
A concept is always templated over
– CE
gives fast feedbacks
Compiler Explorer will
help you learn conceptsx is Type
• Avoid type traits,
• Avoid negations & parens,
• Use Compiler Explorer!
g++-10
Clang-12
MSVC v19.29
33x is Type Type
• Avoid type traits,
• Avoid negations & parens,
• Use Compiler Explorer!
• Use std::false_type / true_types
g++-10
Clang-12
MSVC v19.29
34355
Subsumption rules selects the
most constraint Compiler Explorer helps in checking overload matches,
• Concepts are powerful!
• Learn them,
• Remember about Compiler Explorer,
• If something is not working as expected -> Compiler Explorer
• Try to
File selection compilation
• Run Build Insights on the selected files directly from
the solution explorer.
• Analyze specific files without running Build Insights
on the entire project.Boost your Productivity applications on both Windows and Linux from a single IDE
CMake Debugger in Visual Studio
Remote File Explorer for Linux
Target View Improvements
Automatically Install WSL from Visual Studio
Debug Linux Console DescriptionsCross-Platform
Remote file explorer improvements
• You can now search for files and folders on
your remote machine
• The Remote File Explorer now supports
viewing and editing files
CMake Debugger
CMake Tasks
GitHub Codespaces
Call Hierarchy
Test Explorer
Multi-language SupportMicrosoft C++
Test Explorer
Interactive view of CMake tests configured
by test presets
•
View detailed