Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
rust
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
orestis.malaspin
rust
Commits
054d20c4
Commit
054d20c4
authored
6 years ago
by
orestis.malaspin
Browse files
Options
Downloads
Patches
Plain Diff
adde stuff in slides
parent
6d4445ad
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
cours.md
+52
-2
52 additions, 2 deletions
cours.md
figs/rustacean-orig-noshadow.svg
+0
-47
0 additions, 47 deletions
figs/rustacean-orig-noshadow.svg
with
52 additions
and
49 deletions
cours.md
+
52
−
2
View file @
054d20c4
...
...
@@ -47,10 +47,11 @@ Contient certaines iformations qui peuvent être pratiques.
# Brève histoire du rust
-
Créé comme projet personnel par Graydon Hoare chez Mozilla en 2006.
-
Financé par Mozilla
assez rapidement
.
-
Financé par Mozilla
dès 2010
.
-
Rendu public la première fois en 2012 (version 0.4).
-
Orientation vers la programmation système.
-
Première version stable (1.0) en 2015.
-
La très grande majorité des fonctionnalités du langages ont été retirées.
-
Stabilisation de fonctionalités tous les 6 semaines.
-
Version stable actuelle 1.26.2.
<!-- TODO UPDATE -->
...
...
@@ -65,4 +66,53 @@ Contient certaines iformations qui peuvent être pratiques.
# Développement
-
Le développement est fait via des "Request for Comments" (RFC)
-
*
<https://github.com/rust-lang/rfcs>
-
Processus transparent (Pull requests sur github).
-
Grande contribution de la communauté.
-
Mais décision finale du comité directeur.
# Projets basés sur Rust
-
Firefox:
*
Servo (moteur parallèle de navigateur en collaboration avec Samsung)
*
Quantum (Moteur du navigateur de Firefox)
-
Tor (en phase de tests).
-
Redox (microkernel).
-
Gnome (en remplacement du C).
-
Dropbox.
-
<https://www.rust-lang.org/en-US/friends.html>
# Concepts de base
-
Sûr
-
Concurrent
-
Rapide
# Sûr
-
Fortement typé.
-
Pas d'accès mémoire illégal.
-
La déallocation est automatique.
-
Les fuites de mémoires sont donc TRÈS difficile à faire.
# Concurrent
-
*Concurrency without fear*
.
-
Le système de type empêche un accès concurrent à des données.
-
La synchronisation des données doit être explicitement faite.
-
Détection si l'accès asynchrone est sûr.
-
Protection contre les accès concurrents.
# Rapide
-
Les conditions de sécurité sont gérées
*à la compilation*
(pas de ĉoût à l'exécution).
-
Le compilateur est basé sur la LLVM.
-
Abstractions à coût nul.
-
On paie pour ce qu'on utilise seulement.
# On peut contourner les règles
-
Le compilateur a des règles très stricte...
-
... Mais il est possible de contourner les règles.
-
Syntaxe spéciale pour autoriser les comportement potentiellement dangereux.
-
Un guide pour bien vivre dangereusement.
This diff is collapsed.
Click to expand it.
figs/rustacean-orig-noshadow.svg
deleted
100644 → 0
+
0
−
47
View file @
6d4445ad
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
width=
"100%"
height=
"100%"
viewBox=
"0 0 1200 800"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
xml:space=
"preserve"
xmlns:serif=
"http://www.serif.com/"
style=
"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"
>
<g
id=
"Layer-1"
serif:id=
"Layer 1"
>
<g
transform=
"matrix(1,0,0,1,597.344,637.02)"
>
<path
d=
"M0,-279.559C-121.238,-279.559 -231.39,-264.983 -312.939,-241.23L-312.939,-38.329C-231.39,-14.575 -121.238,0 0,0C138.76,0 262.987,-19.092 346.431,-49.186L346.431,-230.37C262.987,-260.465 138.76,-279.559 0,-279.559"
style=
"fill:rgb(165,43,0);fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,1068.75,575.642)"
>
<path
d=
"M0,-53.32L-14.211,-82.761C-14.138,-83.879 -14.08,-84.998 -14.08,-86.121C-14.08,-119.496 -48.786,-150.256 -107.177,-174.883L-107.177,2.643C-79.932,-8.849 -57.829,-21.674 -42.021,-35.482C-46.673,-16.775 -62.585,21.071 -75.271,47.686C-96.121,85.752 -103.671,118.889 -102.703,120.53C-102.086,121.563 -94.973,110.59 -84.484,92.809C-60.074,58.028 -13.82,-8.373 -4.575,-25.287C5.897,-44.461 0,-53.32 0,-53.32"
style=
"fill:rgb(165,43,0);fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,149.064,591.421)"
>
<path
d=
"M0,-99.954C0,-93.526 1.293,-87.194 3.788,-80.985L-4.723,-65.835C-4.723,-65.835 -11.541,-56.989 0.465,-38.327C11.055,-21.872 64.1,42.54 92.097,76.271C104.123,93.564 112.276,104.216 112.99,103.187C114.114,101.554 105.514,69.087 81.631,32.046C70.487,12.151 57.177,-14.206 49.189,-33.675C71.492,-19.559 100.672,-6.755 135.341,4.265L135.341,-204.17C51.797,-177.622 0,-140.737 0,-99.954"
style=
"fill:rgb(165,43,0);fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(-65.8097,-752.207,-752.207,65.8097,621.707,796.312)"
>
<path
d=
"M0.991,-0.034L0.933,0.008C0.933,0.014 0.933,0.02 0.933,0.026L0.99,0.069C0.996,0.073 0.999,0.08 0.998,0.087C0.997,0.094 0.992,0.1 0.986,0.103L0.92,0.133C0.919,0.139 0.918,0.145 0.916,0.15L0.964,0.203C0.968,0.208 0.97,0.216 0.968,0.222C0.965,0.229 0.96,0.234 0.953,0.236L0.882,0.254C0.88,0.259 0.877,0.264 0.875,0.27L0.91,0.33C0.914,0.336 0.914,0.344 0.91,0.35C0.907,0.356 0.9,0.36 0.893,0.361L0.82,0.365C0.817,0.369 0.813,0.374 0.81,0.379L0.832,0.445C0.835,0.452 0.833,0.459 0.828,0.465C0.824,0.47 0.816,0.473 0.809,0.472L0.737,0.462C0.733,0.466 0.729,0.47 0.724,0.474L0.733,0.544C0.734,0.551 0.731,0.558 0.725,0.562C0.719,0.566 0.711,0.568 0.704,0.565L0.636,0.542C0.631,0.546 0.626,0.549 0.621,0.552L0.615,0.621C0.615,0.629 0.61,0.635 0.604,0.638C0.597,0.641 0.589,0.641 0.583,0.638L0.521,0.602C0.52,0.603 0.519,0.603 0.518,0.603L0.406,0.729C0.406,0.729 0.394,0.747 0.359,0.725C0.329,0.705 0.206,0.599 0.141,0.543C0.109,0.52 0.089,0.504 0.09,0.502C0.093,0.499 0.149,0.509 0.217,0.554C0.278,0.588 0.371,0.631 0.38,0.619C0.38,0.619 0.396,0.604 0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575C0.407,0.576 0.407,0.576 0.406,0.575C0.406,0.575 0.091,0.024 0.305,-0.531C0.311,-0.593 0.275,-0.627 0.275,-0.627C0.266,-0.639 0.178,-0.598 0.12,-0.566C0.055,-0.523 0.002,-0.513 0,-0.516C-0.001,-0.518 0.018,-0.533 0.049,-0.555C0.11,-0.608 0.227,-0.707 0.256,-0.726C0.289,-0.748 0.301,-0.73 0.301,-0.73L0.402,-0.615C0.406,-0.614 0.41,-0.613 0.415,-0.613L0.47,-0.658C0.475,-0.663 0.483,-0.664 0.49,-0.662C0.497,-0.66 0.502,-0.655 0.504,-0.648L0.522,-0.58C0.527,-0.578 0.533,-0.576 0.538,-0.574L0.602,-0.608C0.608,-0.612 0.616,-0.612 0.623,-0.608C0.629,-0.605 0.633,-0.599 0.633,-0.592L0.637,-0.522C0.642,-0.519 0.647,-0.515 0.652,-0.512L0.721,-0.534C0.728,-0.536 0.736,-0.535 0.741,-0.531C0.747,-0.526 0.75,-0.519 0.749,-0.512L0.738,-0.443C0.742,-0.439 0.746,-0.435 0.751,-0.431L0.823,-0.439C0.83,-0.44 0.837,-0.437 0.842,-0.432C0.847,-0.426 0.848,-0.419 0.845,-0.412L0.821,-0.347C0.824,-0.342 0.828,-0.337 0.831,-0.332L0.903,-0.327C0.911,-0.327 0.917,-0.322 0.92,-0.316C0.924,-0.31 0.924,-0.302 0.92,-0.296L0.883,-0.236C0.885,-0.231 0.887,-0.226 0.889,-0.22L0.959,-0.202C0.966,-0.2 0.972,-0.195 0.974,-0.188C0.976,-0.181 0.974,-0.174 0.969,-0.168L0.92,-0.116C0.921,-0.111 0.923,-0.105 0.924,-0.099L0.988,-0.068C0.995,-0.065 0.999,-0.059 1,-0.052C1.001,-0.045 0.997,-0.038 0.991,-0.034ZM0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575Z"
style=
"fill:url(#_Linear1);fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,450.328,483.629)"
>
<path
d=
"M0,167.33C-1.664,165.91 -2.536,165.068 -2.536,165.068L140.006,153.391C23.733,0 -69.418,122.193 -79.333,135.855L-79.333,167.33L0,167.33Z"
style=
"fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,747.12,477.333)"
>
<path
d=
"M0,171.974C1.663,170.554 2.536,169.71 2.536,169.71L-134.448,159.687C-18.12,0 69.421,126.835 79.335,140.497L79.335,171.974L0,171.974Z"
style=
"fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(-1.53e-05,-267.211,-267.211,1.53e-05,809.465,764.23)"
>
<path
d=
"M1,-0.586C1,-0.586 0.768,-0.528 0.524,-0.165L0.5,-0.064C0.5,-0.064 1.1,0.265 0.424,0.731C0.424,0.731 0.508,0.586 0.405,0.197C0.405,0.197 0.131,0.376 0.14,0.736C0.14,0.736 -0.275,0.391 0.324,-0.135C0.324,-0.135 0.539,-0.691 1,-0.736L1,-0.586Z"
style=
"fill:url(#_Linear2);fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,677.392,509.61)"
>
<path
d=
"M0,-92.063C0,-92.063 43.486,-139.678 86.974,-92.063C86.974,-92.063 121.144,-28.571 86.974,3.171C86.974,3.171 31.062,47.615 0,3.171C0,3.171 -37.275,-31.75 0,-92.063"
style=
"fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,727.738,435.209)"
>
<path
d=
"M0,0.002C0,18.543 -10.93,33.574 -24.408,33.574C-37.885,33.574 -48.814,18.543 -48.814,0.002C-48.814,-18.539 -37.885,-33.572 -24.408,-33.572C-10.93,-33.572 0,-18.539 0,0.002"
style=
"fill:white;fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,483.3,502.984)"
>
<path
d=
"M0,-98.439C0,-98.439 74.596,-131.467 94.956,-57.748C94.956,-57.748 116.283,28.178 33.697,33.028C33.697,33.028 -71.613,12.745 0,-98.439"
style=
"fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(1,0,0,1,520.766,436.428)"
>
<path
d=
"M0,0C0,19.119 -11.27,34.627 -25.173,34.627C-39.071,34.627 -50.344,19.119 -50.344,0C-50.344,-19.124 -39.071,-34.627 -25.173,-34.627C-11.27,-34.627 0,-19.124 0,0"
style=
"fill:white;fill-rule:nonzero;"
/>
</g>
<g
transform=
"matrix(-1.53e-05,-239.021,-239.021,1.53e-05,402.161,775.388)"
>
<path
d=
"M0.367,0.129C-0.364,-0.441 0.223,-0.711 0.223,-0.711C0.259,-0.391 0.472,-0.164 0.472,-0.164C0.521,-0.548 0.525,-0.77 0.525,-0.77C1.203,-0.256 0.589,0.161 0.589,0.161C0.627,0.265 0.772,0.372 0.906,0.451L1,0.77C0.376,0.403 0.367,0.129 0.367,0.129Z"
style=
"fill:url(#_Linear3);fill-rule:nonzero;"
/>
</g>
</g>
<defs>
<linearGradient
id=
"_Linear1"
x1=
"0"
y1=
"0"
x2=
"1"
y2=
"0"
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(1,0,1.38778e-17,-1,0,-0.000650515)"
><stop
offset=
"0"
style=
"stop-color:rgb(247,76,0);stop-opacity:1"
/><stop
offset=
"0.33"
style=
"stop-color:rgb(247,76,0);stop-opacity:1"
/><stop
offset=
"1"
style=
"stop-color:rgb(244,150,0);stop-opacity:1"
/></linearGradient>
<linearGradient
id=
"_Linear2"
x1=
"0"
y1=
"0"
x2=
"1"
y2=
"0"
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(1,0,0,-1,0,1.23438e-06)"
><stop
offset=
"0"
style=
"stop-color:rgb(204,58,0);stop-opacity:1"
/><stop
offset=
"0.15"
style=
"stop-color:rgb(204,58,0);stop-opacity:1"
/><stop
offset=
"0.74"
style=
"stop-color:rgb(247,76,0);stop-opacity:1"
/><stop
offset=
"1"
style=
"stop-color:rgb(247,76,0);stop-opacity:1"
/></linearGradient>
<linearGradient
id=
"_Linear3"
x1=
"0"
y1=
"0"
x2=
"1"
y2=
"0"
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(1,1.32349e-23,1.32349e-23,-1,0,-9.1568e-07)"
><stop
offset=
"0"
style=
"stop-color:rgb(204,58,0);stop-opacity:1"
/><stop
offset=
"0.15"
style=
"stop-color:rgb(204,58,0);stop-opacity:1"
/><stop
offset=
"0.74"
style=
"stop-color:rgb(247,76,0);stop-opacity:1"
/><stop
offset=
"1"
style=
"stop-color:rgb(247,76,0);stop-opacity:1"
/></linearGradient>
</defs>
</svg>
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment