From ce9b2b0515eaf92a9c68c8608fd9bf392c941d50 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Fri, 15 Jun 2018 22:16:09 -0700 Subject: 4258 - undo 4257 --- index.html | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'index.html') diff --git a/index.html b/index.html index dde93753..88e9b14a 100644 --- a/index.html +++ b/index.html @@ -158,16 +158,18 @@ for gradually constructing long strings in a piecemeal fashion. space at run-time as pointers or addresses. All Mu instructions can dereference or lookup addresses of values in addition to operating on regular values. These addresses are -manually managed like C, and can be reclaimed using the abandon -instruction. To ensure that stale addresses aren't used after being -abandoned/reused, each allocation gets a unique alloc id that is also -stored in the address returned. The lookup operation ensures that the alloc id -of an address matches that of its payload. This eliminates a whole class of -undefined behavior and security vulnerabilities that plague C. Compared to -Rust, Mu pays some additional runtime cost in exchange for C-like flexibility -(you can copy addresses around all you like, and write from any copy of an -address) and simpler implementation (no static analysis). Mu by convention -abbreviates type address to &. +manually managed like C. However, all allocations are transparently +reference-counted or refcounted, +with every copy of a pointer updating refcounts appropriately. When the +refcount of an allocation drops to zero it is transparently reclaimed +and made available to future allocations. By construction it is impossible to +reclaim memory prematurely, while some other part of a program is still +pointing to it. This eliminates a whole class of undefined behavior and +security vulnerabilities that plague C. Compared to Rust, Mu pays some +additional runtime cost in exchange for C-like flexibility (you can copy +addresses around all you like, and write from any copy of an address) and +simpler implementation (no static analysis). Mu by convention abbreviates type +address to &.

Support for higher-order recipes that can pass recipes around like any other value. -- cgit 1.4.1-2-gfad0 55cdd5af382e39b66ae09b'>root/tests/unittests/test_cmd_pgp.c

blob: 55130dac068ff03ae7ac1a154a2898f36df5bd72 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119