Rust Demo, ML workshop at ICFP 2014

58
��

description

Rust is a new programming language for developing reliable and efficient systems. It is designed to support concurrency and parallelism in building applications and libraries that take full advantage of modern hardware. Rust’s static type system is safe, expressive, and provides strong guarantees about isolation, concurrency, and memory safety. Rust also offers a clear performance model, making it easier to predict and reason about program efficiency. One important way it accomplishes this is by allowing fine-grained control over memory representations, with direct support for stack allocation and contiguous record storage. The language balances such controls with the absolute requirement for safety: Rust’s type system and runtime guarantee the absence of data races, buffer overflows, stack overflows, and accesses to uninitialized or deallocated memory. In this demonstration, we will briefly review the language features that Rust leverages to accomplish the above goals, focusing in particular on Rust’s advanced type system, and then show a collection of concrete examples of program sub- routines that are efficient, easy for programmers to reason about, and maintain the above safety property.

Transcript of Rust Demo, ML workshop at ICFP 2014

Page 1: Rust Demo, ML workshop at ICFP 2014

������������������

���������������������

����������������������

Page 2: Rust Demo, ML workshop at ICFP 2014

����������

� ����������������������������������������

� �������������������������������

� ������������������������������������������

� ��������������������

���

Page 3: Rust Demo, ML workshop at ICFP 2014

������������������

��������������������������������

����������������������������������

���������������������������������

Page 4: Rust Demo, ML workshop at ICFP 2014

�������������������

� ����������������������������������������

������� ���� ��������

� �����������������������������

� ���������������������������������������

������ �� ��������� �����������

Page 5: Rust Demo, ML workshop at ICFP 2014

�������������������������

����������������������������������������

������������

� ����������������������������������������������

���������������������������������������

��������������������������

� �������������������������������

���������������������������������������

���������������������

�����������

� ������ ��������������������������

���������������������� ����

���

Page 6: Rust Demo, ML workshop at ICFP 2014

������������������������������������������

� �������������������������������

� �������������������������������������������

����������������������������������������

������ �������

� ���������������������������������������������

��������� ��������� �����������������

�������������������������

���������������������������������������

�����������

����

Page 7: Rust Demo, ML workshop at ICFP 2014

������������������

����������������������������������

�����������������������������

�������� �� ��

���������������������������������

��

Page 8: Rust Demo, ML workshop at ICFP 2014

��������������������������

��������� � � ��� � � � � � �� � � � ���� � ���� � � � ���� � � �

�������� � � � ��� � � � � �� � � � ���� � � � � � � ���� � � � � �

��

Page 9: Rust Demo, ML workshop at ICFP 2014

�����������������������

��������� ���� � � � � � ����� � � ���� � � � �����

������� ����������� �� ��� � � � � ���� � � ������� � ��

��

Page 10: Rust Demo, ML workshop at ICFP 2014

�������������������������������������������

��������� ��������� ��� �� � �� � �� �� ����� � � ��������� �������� � ��������� �����

������� ������������������������ ��� �� ����� �� �

�� � �� ������ � � ������������������� � ����������������� ���������������������

� �����������������������������������������

�����

Page 11: Rust Demo, ML workshop at ICFP 2014

������������������������������

���������� �� ������ � ��� �� �� � ��� �� �� � ������� �������� � �

����� � ������� � �� �

� ��� ��� �� �� � � ��� ���

��������� ��������� � ������� ������ �� ��� ����������� ������������ �� ��� �

����� � ������� �� �������� �� �� � � ��

��������� ���������������������

��

Page 12: Rust Demo, ML workshop at ICFP 2014

����������������������������������������

������� ���������������������

���� ��������� � ������� ������ �� ������ ���� � �� ���������� ���� ����� �� ����� ��� ������������������� ���������� �� � �

����� � ������� �� �������� �� �� ����������

��

��

Page 13: Rust Demo, ML workshop at ICFP 2014

������������������������������������������

� ������������������������������������������

�������� �����������

� ��������������������������������������

���������������������������������������������

����� �� �����

� ����������������������������

��

Page 14: Rust Demo, ML workshop at ICFP 2014

�������������

� ���������������������

������� ���� �� ������ � ��� �� �� � ��� �� �� � ����� �������������������������������� � ��� � �� ����������������������������������

����������������

� �������

� � ��� � �

�����

Page 15: Rust Demo, ML workshop at ICFP 2014

�����������������

� ���� �� ������ � ��� �� �� � ��� �� �� � ��� �������������������������������� � ��� � �� ����������������������������������

����������������� � ��� � �

� ������������������������������� ���

�����

� � � � �

� � � � �

��

Page 16: Rust Demo, ML workshop at ICFP 2014

�����������������������

������� ���������������������

��� ���������������������� ��������� � ������� ������ �� ���� ���� �

���������������������������������������������� ��������� � ��������������������������������� ���� ���� � �����������

� ������� ������ ��

� ������������������������������ ���

����� � � � � � � � � � �

� ������������������������������ ���

����� � � � � �

�����

Page 17: Rust Demo, ML workshop at ICFP 2014

������������

��

Page 18: Rust Demo, ML workshop at ICFP 2014

�������������������

������������� ������� ���������������������

�� ���������������� �� �� �� ��� �� �� �� � ���� � � ������������������� �� ���� ������ � � ������������������� �� ���� ������ � � ����� ������ ��

������ ��� �� ����� ������ ������ � � �����

������ ��� ����� ���� ������� �� ��� ������������

���� ��� �������� ��� ������������ � � �����

������

Page 19: Rust Demo, ML workshop at ICFP 2014

�����������������������������

� ������������������������������������������������

���� �������

� ������������������������������������������������

��� � � � ��� � � � � �� � � � ���� � � � � � � ���� � � � � �

� ��������� � �������������������������� �����

� ������

�����

Page 20: Rust Demo, ML workshop at ICFP 2014

������������������

� ������������������������������������

��

Page 21: Rust Demo, ML workshop at ICFP 2014

������������������

� ��������������� �������������������� ���������������

����� ������

� ��� ���� �������������������������������������

��������

���������������������������������

� ����������������������������� �������

� ���������������������������������������������

���� ����

�����

Page 22: Rust Demo, ML workshop at ICFP 2014

������������������������

��������� ������� ���������������������

�� ��������������������� �� �� �� ��� �� �� �� � ��� ����� ��� ���� ����

��� � � ������������������� �� ���� ������ � � ������������������� �� ���� ������ � � ����� ������ ��

�������������������������

� �������������������������� ���� �������

�����

Page 23: Rust Demo, ML workshop at ICFP 2014

��������������������������������������

��

Page 24: Rust Demo, ML workshop at ICFP 2014

������������������

����������������������������������

���������������������������������

�������������������������

��

Page 25: Rust Demo, ML workshop at ICFP 2014

���������������������������

�������������������������

�������������������������� � ���������������

� � ��������������

� �� �����������������

� ���� � ����������������������������

������������� �� ���������� ������ ��������

�������������������������������� ������ ��

������ ����������������� �����

�����

Page 26: Rust Demo, ML workshop at ICFP 2014

���������������������

������� ���������������������

��� �� ��� � ����� �� ���� � ������������� �� ����� ��������� �� ��� �� ���� ��� ���������� ��

������ ��������� � �� �� �� � ���� � � ���� � �� �� �� ���� ����� �� ���� � �������� ���� ��� � ��� ��� �� �� ������ ���� ��� ��� ������������ �� ���

��

Page 27: Rust Demo, ML workshop at ICFP 2014

�������������������������������������

������� ���������������������

��� ��� �� ��� � ���

��� � � ���� ���������������

���������� �� ���

�� ������������ ���� ���� ��� � �� � ��

��� � � ���� ���� ��� ���� ��� � ��� ��� �� ���� ��� ���������� ��

��

Page 28: Rust Demo, ML workshop at ICFP 2014

������������������������������

������� ���������������������

������ ��������� � �� �� �� � ��� ����������������� ������������

�� �� ���� �� ���� �� ��� ������ � �

����� �� � � �� ��� � ����� �� ����� ���� ��� ����� ���� ������ �������� ��� �� ����� ������ ������ � ����� � �������

��

��

Page 29: Rust Demo, ML workshop at ICFP 2014

������������������������������

������� ���������������������

������ ��������� � �� �� �� � ��� ����������������� ������������

�� �� ���� �� ���� �� ��� ������ � �

����� �� ��� � � �� ��� � ��� ����� �� ���� �� ������ ����� ��� �� ����� �� � ���� ������� �� � ������ ����� ������� ���� ��� �� ������� � ���� � �������

��

��

Page 30: Rust Demo, ML workshop at ICFP 2014

��������������������������������

��

Page 31: Rust Demo, ML workshop at ICFP 2014

������������������������

��

Page 32: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ����

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

�� ������ �� ��� � ��������������������������� ��������������

� � �

� ������������������������� ����� ����������������

Page 33: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ����

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

�� ��� �� �� ��� � ��������������������������� ��������������

� � �

��

Page 34: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ����

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

�� ��� �� �� ��� � ��������������������������� ��������������

� � �

� ����������������������������� ����� ����������������

Page 35: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ����

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

������ � ���� �� ���� �������� ��������������� ��������������

� � �

��

Page 36: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ����

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

������ � ���� �� ���� �������� ��������������� ��������������

� � �

� ��������� �����������������������������

Page 37: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ����

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

�� ������ �� ��� � ��������������������������� ��������������

� � �

� ������������������������ ����� �������������

Page 38: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ����

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

�� ������ �� ��� � ��������������������������� ��������������

� � �

� ������������������������ ��������

Page 39: Rust Demo, ML workshop at ICFP 2014

����������������������������������

������� ���������������������

���� � � ���� ����� �� ����� ������ ��� ����������� �� ��� � � � � ���� ��� � � �������� ��� ��� � � ��������� �� � ���� �� ��� �� � ���� ��������� ���� �� ��� ������

�� ������� ���� �� ��� ���� �� ������ �� �

������ �� ������������� ��������������� ������ �� �

�� ������ �� ��� � ��������������������������� ��������������

� � �

� ����������������������������� ����� ����������������

Page 40: Rust Demo, ML workshop at ICFP 2014

��������������������������������������

��

Page 41: Rust Demo, ML workshop at ICFP 2014

����������������������������������

��

Page 42: Rust Demo, ML workshop at ICFP 2014

���������

� �������������� �� �������������������

� �������������������������������������������

�����

� ����������������������������������������������

�����

Page 43: Rust Demo, ML workshop at ICFP 2014

����������������

� ������������������������� �� ��� ���� �

� ��������������� ��� � ��� ��� ��� �

������ ������������������������������������

����������

������������������������������������������

�����

� �� ��� ���������������������������������

������� �� ������� �� ���� �� �� �����������

������

����������� � �������������������������������

�����

Page 44: Rust Demo, ML workshop at ICFP 2014

��������������������

����������

�� ������ ����� �� �����

������������������������������������������

�� ������������� ��� ���� �� ��� ����

���������������������������

�� ���������������� ��� ���� �� ��� ����

������� �� ������������������������� �� ����

������� �������

�����

Page 45: Rust Demo, ML workshop at ICFP 2014

��������������������������

� ��������������������������������������������

���������� ������ ��������

� �����������������������������������

��������������� �� ������

�������������������������������������������

�� �������������������

��� � � ��� � �������� ����� � �� ��� ��� ���� � � � � � � �� �� ��

������� ���������������������

�����

Page 46: Rust Demo, ML workshop at ICFP 2014

��������������������������������������������������

������ �����

��

Page 47: Rust Demo, ML workshop at ICFP 2014

����������������������������������������

� ���������

� ��������

������������������������������������������������

��������� �����������

��

Page 48: Rust Demo, ML workshop at ICFP 2014

��������������������

������� ���������������������

������ � � �� ���� �� ��� ���� � � � � �� �� �� � �� �� ��� ��� ��� �������������� ��� � � �� �� ��� ��� ��� ��� ���������� ��� � � �� �� ��� ��� ��� ��� ���������� � �� ��� � ��

������ ����� � �� ��� ���� ��� ��� � �

��� ��� � � � �� ��� �� ���� � ������� � ��

��

Page 49: Rust Demo, ML workshop at ICFP 2014

��������������������

������� ���������������������

������ � � �� ���� �� ��� ���� � � � � �� �� �� � �� �� ��� ��� ��� �������������� ��� � � �� �� ��� ��� ��� ��� ���������� ��� � � �� �� ��� ��� ��� ��� ���������� � �� ��� � ��

������ ����� � �� ��� ���� ��� ��� � �

��� ��� � � � �� ��� �� ���� � ������� � ��

���������������� ����� ��������� � �������������

���

�����

Page 50: Rust Demo, ML workshop at ICFP 2014

��������������������

������� ���������������������

������ � � �� ���� �� ��� ���� � � � � �� �� �� � �� �� ��� ��� ��� �������������� ��� � � �� �� ��� ��� ��� ��� ���������� ��� � � �� �� ��� ��� ��� ��� ���������� � �� ��� � ��

������ ����� � �� ��� ���� ��� ��� � �

��� ��� ��� � � � �� ��� �� ���� � ������� � ��

��

Page 51: Rust Demo, ML workshop at ICFP 2014

��������������������

������� ���������������������

������ � � �� ���� �� ��� ���� � � � � �� �� �� � �� �� ��� ��� ��� �������������� ��� � � �� �� ��� ��� ��� ��� ���������� ��� � � �� �� ��� ��� ��� ��� ���������� � �� ��� � ��

������ ����� � �� ��� ���� ��� ��� � �

��� ��� ��� � � � �� ��� �� ���� � ������� � ��

���������������� ����� ��������� ��� ������ ����

�����

Page 52: Rust Demo, ML workshop at ICFP 2014

��������������������

������� ���������������������

������ � � �� ���� �� ��� ���� � � � � �� �� �� � �� �� ��� ��� ��� �������������� ��� � � �� �� ��� ��� ��� ��� ���������� ��� � � �� �� ��� ��� ��� ��� ���������� � �� ��� � ��

������ ����� � �� ��� ���� ��� ��� � �

��� ��� ��� � � � �� ��� �� ���� � ������� � ��

���������������������������������� ����� ��

������ ����

�����

Page 53: Rust Demo, ML workshop at ICFP 2014

�������������������������������

���������������������������������������������

���� ��������� ��������������������������������

� ��������������������������� ��������������������

������ ��� �����

� ������������������������������

�����

Page 54: Rust Demo, ML workshop at ICFP 2014

�������������������

������������� ���� ��� ������� ��������������

��� ������ ����������

� �������� �������� ��� ��� ����������

�������������������������������� � � ����

�����������������������������

� ����������� �����������������������������

�������

�����������������������������������

����������������������������������������

����� ������

�����

Page 55: Rust Demo, ML workshop at ICFP 2014

���������������

������� ���������������������

���� � � ������� ������ ���� � � ����������������� ��� � � �������������������� �� � ��� ��� ��� � ���������� ����

�� ������� ��������� ��� ��������� �������������������������� �������� �

����� ���� � ����� ���� �� ����������������� ������

��

�������� ����������

Page 56: Rust Demo, ML workshop at ICFP 2014

�����������������������������

���������������� ������������������������

� ��� �����������������������������������

��������

��������������������������������������������

������� ����� ���������� ������� �����

���� ��������� ������ ����������

�����

Page 57: Rust Demo, ML workshop at ICFP 2014

������������������

� ������������������� ��� � ��� ��� � �������

�� �����

� �������������������������������������������������

� �������������������������������������

� �����������������

��

Page 58: Rust Demo, ML workshop at ICFP 2014

�������������

�������������

����������������������������������

������������������������������� �� �����

��