Commit transcript changes for new builtins

- These were generated using the existing runtime
This commit is contained in:
Dan Doel 2020-08-18 15:16:52 -04:00
parent 7a33467f9f
commit 3091d34b34
6 changed files with 419 additions and 270 deletions

View File

@ -18,174 +18,251 @@ Let's try it!
.builtin> find
1. builtin type Boolean
2. Boolean.not : Boolean -> Boolean
3. builtin type Bytes
4. Bytes.++ : Bytes -> Bytes -> Bytes
5. Bytes.at : Nat -> Bytes -> Optional Nat
6. Bytes.drop : Nat -> Bytes -> Bytes
7. Bytes.empty : Bytes
8. Bytes.flatten : Bytes -> Bytes
9. Bytes.fromList : [Nat] -> Bytes
10. Bytes.size : Bytes -> Nat
11. Bytes.take : Nat -> Bytes -> Bytes
12. Bytes.toList : Bytes -> [Nat]
13. builtin type Char
14. Char.fromNat : Nat -> Char
15. Char.toNat : Char -> Nat
16. Debug.watch : Text -> a -> a
17. unique type Doc
18. Doc.Blob : Text -> Doc
19. Doc.Evaluate : Term -> Doc
20. Doc.Join : [Doc] -> Doc
21. Doc.Link : Link -> Doc
22. Doc.Signature : Term -> Doc
23. Doc.Source : Link -> Doc
24. builtin type Float
25. Float.* : Float -> Float -> Float
26. Float.+ : Float -> Float -> Float
27. Float.- : Float -> Float -> Float
28. Float./ : Float -> Float -> Float
29. Float.abs : Float -> Float
30. Float.acos : Float -> Float
31. Float.acosh : Float -> Float
32. Float.asin : Float -> Float
33. Float.asinh : Float -> Float
34. Float.atan : Float -> Float
35. Float.atan2 : Float -> Float -> Float
36. Float.atanh : Float -> Float
37. Float.ceiling : Float -> Int
38. Float.cos : Float -> Float
39. Float.cosh : Float -> Float
40. Float.eq : Float -> Float -> Boolean
41. Float.exp : Float -> Float
42. Float.floor : Float -> Int
43. Float.fromText : Text -> Optional Float
44. Float.gt : Float -> Float -> Boolean
45. Float.gteq : Float -> Float -> Boolean
46. Float.log : Float -> Float
47. Float.logBase : Float -> Float -> Float
48. Float.lt : Float -> Float -> Boolean
49. Float.lteq : Float -> Float -> Boolean
50. Float.max : Float -> Float -> Float
51. Float.min : Float -> Float -> Float
52. Float.pow : Float -> Float -> Float
53. Float.round : Float -> Int
54. Float.sin : Float -> Float
55. Float.sinh : Float -> Float
56. Float.sqrt : Float -> Float
57. Float.tan : Float -> Float
58. Float.tanh : Float -> Float
59. Float.toText : Float -> Text
60. Float.truncate : Float -> Int
61. builtin type Int
62. Int.* : Int -> Int -> Int
63. Int.+ : Int -> Int -> Int
64. Int.- : Int -> Int -> Int
65. Int./ : Int -> Int -> Int
66. Int.and : Int -> Int -> Int
67. Int.complement : Int -> Int
68. Int.eq : Int -> Int -> Boolean
69. Int.fromText : Text -> Optional Int
70. Int.gt : Int -> Int -> Boolean
71. Int.gteq : Int -> Int -> Boolean
72. Int.increment : Int -> Int
73. Int.isEven : Int -> Boolean
74. Int.isOdd : Int -> Boolean
75. Int.leadingZeros : Int -> Nat
76. Int.lt : Int -> Int -> Boolean
77. Int.lteq : Int -> Int -> Boolean
78. Int.mod : Int -> Int -> Int
79. Int.negate : Int -> Int
80. Int.or : Int -> Int -> Int
81. Int.pow : Int -> Nat -> Int
82. Int.shiftLeft : Int -> Nat -> Int
83. Int.shiftRight : Int -> Nat -> Int
84. Int.signum : Int -> Int
85. Int.toFloat : Int -> Float
86. Int.toText : Int -> Text
87. Int.trailingZeros : Int -> Nat
88. Int.truncate0 : Int -> Nat
89. Int.xor : Int -> Int -> Int
90. unique type Link
91. builtin type Link.Term
92. Link.Term : Term -> Link
93. builtin type Link.Type
94. Link.Type : Type -> Link
95. builtin type List
96. List.++ : [a] -> [a] -> [a]
97. List.+: : a -> [a] -> [a]
98. List.:+ : [a] -> a -> [a]
99. List.at : Nat -> [a] -> Optional a
100. List.cons : a -> [a] -> [a]
101. List.drop : Nat -> [a] -> [a]
102. List.empty : [a]
103. List.size : [a] -> Nat
104. List.snoc : [a] -> a -> [a]
105. List.take : Nat -> [a] -> [a]
106. builtin type Nat
107. Nat.* : Nat -> Nat -> Nat
108. Nat.+ : Nat -> Nat -> Nat
109. Nat./ : Nat -> Nat -> Nat
110. Nat.and : Nat -> Nat -> Nat
111. Nat.complement : Nat -> Nat
112. Nat.drop : Nat -> Nat -> Nat
113. Nat.eq : Nat -> Nat -> Boolean
114. Nat.fromText : Text -> Optional Nat
115. Nat.gt : Nat -> Nat -> Boolean
116. Nat.gteq : Nat -> Nat -> Boolean
117. Nat.increment : Nat -> Nat
118. Nat.isEven : Nat -> Boolean
119. Nat.isOdd : Nat -> Boolean
120. Nat.leadingZeros : Nat -> Nat
121. Nat.lt : Nat -> Nat -> Boolean
122. Nat.lteq : Nat -> Nat -> Boolean
123. Nat.mod : Nat -> Nat -> Nat
124. Nat.or : Nat -> Nat -> Nat
125. Nat.pow : Nat -> Nat -> Nat
126. Nat.shiftLeft : Nat -> Nat -> Nat
127. Nat.shiftRight : Nat -> Nat -> Nat
128. Nat.sub : Nat -> Nat -> Int
129. Nat.toFloat : Nat -> Float
130. Nat.toInt : Nat -> Int
131. Nat.toText : Nat -> Text
132. Nat.trailingZeros : Nat -> Nat
133. Nat.xor : Nat -> Nat -> Nat
134. type Optional a
135. Optional.None : Optional a
136. Optional.Some : a -> Optional a
137. builtin type Request
138. unique type Test.Result
139. Test.Result.Fail : Text -> Result
140. Test.Result.Ok : Text -> Result
141. builtin type Text
142. Text.!= : Text -> Text -> Boolean
143. Text.++ : Text -> Text -> Text
144. Text.drop : Nat -> Text -> Text
145. Text.empty : Text
146. Text.eq : Text -> Text -> Boolean
147. Text.fromCharList : [Char] -> Text
148. Text.gt : Text -> Text -> Boolean
149. Text.gteq : Text -> Text -> Boolean
150. Text.lt : Text -> Text -> Boolean
151. Text.lteq : Text -> Text -> Boolean
152. Text.size : Text -> Nat
153. Text.take : Nat -> Text -> Text
154. Text.toCharList : Text -> [Char]
155. Text.uncons : Text -> Optional (Char, Text)
156. Text.unsnoc : Text -> Optional (Text, Char)
157. type Tuple a b
158. Tuple.Cons : a -> b -> Tuple a b
159. type Unit
160. Unit.Unit : ()
161. Universal.< : a -> a -> Boolean
162. Universal.<= : a -> a -> Boolean
163. Universal.== : a -> a -> Boolean
164. Universal.> : a -> a -> Boolean
165. Universal.>= : a -> a -> Boolean
166. Universal.compare : a -> a -> Int
167. bug : a -> b
168. todo : a -> b
1. AlreadyExists : IOError
2. builtin type Boolean
3. Boolean.not : Boolean -> Boolean
4. type BufferMode
5. BufferMode.BlockBuffering : BufferMode
6. BufferMode.LineBuffering : BufferMode
7. BufferMode.NoBuffering : BufferMode
8. BufferMode.SizedBlockBuffering : Nat -> BufferMode
9. builtin type Bytes
10. Bytes.++ : Bytes -> Bytes -> Bytes
11. Bytes.at : Nat -> Bytes -> Optional Nat
12. Bytes.drop : Nat -> Bytes -> Bytes
13. Bytes.empty : Bytes
14. Bytes.flatten : Bytes -> Bytes
15. Bytes.fromList : [Nat] -> Bytes
16. Bytes.size : Bytes -> Nat
17. Bytes.take : Nat -> Bytes -> Bytes
18. Bytes.toList : Bytes -> [Nat]
19. builtin type Char
20. Char.fromNat : Nat -> Char
21. Char.toNat : Char -> Nat
22. Debug.watch : Text -> a -> a
23. unique type Doc
24. Doc.Blob : Text -> Doc
25. Doc.Evaluate : Term -> Doc
26. Doc.Join : [Doc] -> Doc
27. Doc.Link : Link -> Doc
28. Doc.Signature : Term -> Doc
29. Doc.Source : Link -> Doc
30. EOF : IOError
31. type Either a b
32. Either.Left : a -> Either a b
33. Either.Right : b -> Either a b
34. type FileMode
35. FileMode.Append : FileMode
36. FileMode.Read : FileMode
37. FileMode.ReadWrite : FileMode
38. FileMode.Write : FileMode
39. builtin type Float
40. Float.* : Float -> Float -> Float
41. Float.+ : Float -> Float -> Float
42. Float.- : Float -> Float -> Float
43. Float./ : Float -> Float -> Float
44. Float.abs : Float -> Float
45. Float.acos : Float -> Float
46. Float.acosh : Float -> Float
47. Float.asin : Float -> Float
48. Float.asinh : Float -> Float
49. Float.atan : Float -> Float
50. Float.atan2 : Float -> Float -> Float
51. Float.atanh : Float -> Float
52. Float.ceiling : Float -> Int
53. Float.cos : Float -> Float
54. Float.cosh : Float -> Float
55. Float.eq : Float -> Float -> Boolean
56. Float.exp : Float -> Float
57. Float.floor : Float -> Int
58. Float.fromText : Text -> Optional Float
59. Float.gt : Float -> Float -> Boolean
60. Float.gteq : Float -> Float -> Boolean
61. Float.log : Float -> Float
62. Float.logBase : Float -> Float -> Float
63. Float.lt : Float -> Float -> Boolean
64. Float.lteq : Float -> Float -> Boolean
65. Float.max : Float -> Float -> Float
66. Float.min : Float -> Float -> Float
67. Float.pow : Float -> Float -> Float
68. Float.round : Float -> Int
69. Float.sin : Float -> Float
70. Float.sinh : Float -> Float
71. Float.sqrt : Float -> Float
72. Float.tan : Float -> Float
73. Float.tanh : Float -> Float
74. Float.toText : Float -> Text
75. Float.truncate : Float -> Int
76. IO.clientSocket : Text
-> Text
->{##IO} Either IOError ##Socket
77. IO.closeFile : ##Handle ->{##IO} Either IOError ()
78. IO.closeSocket : ##Socket ->{##IO} Either IOError ()
79. IO.createDirectory : Text ->{##IO} Either IOError ()
80. IO.fileExists : Text ->{##IO} Either IOError Boolean
81. IO.forkComp : '{##IO} Either IOError a
->{##IO} Either IOError ##ThreadId
82. IO.getBuffering : ##Handle
->{##IO} Either IOError BufferMode
83. IO.getCurrentDirectory : '{##IO} Either IOError Text
84. IO.getFileSize : Text ->{##IO} Either IOError Nat
85. IO.getFileTimestamp : Text ->{##IO} Either IOError Nat
86. IO.getLine : ##Handle ->{##IO} Either IOError Text
87. IO.getTempDirectory : '{##IO} Either IOError Text
88. IO.getText : ##Handle ->{##IO} Either IOError Text
89. IO.handlePosition : ##Handle ->{##IO} Either IOError Int
90. IO.isDirectory : Text ->{##IO} Either IOError Boolean
91. IO.isFileEOF : ##Handle ->{##IO} Either IOError Boolean
92. IO.isFileOpen : ##Handle ->{##IO} Either IOError Boolean
93. IO.isSeekable : ##Handle ->{##IO} Either IOError Boolean
94. IO.listen : ##Socket ->{##IO} Either IOError ()
95. IO.openFile : Text ->{##IO} Either IOError ##Handle
96. IO.putText : ##Handle -> Text ->{##IO} Either IOError ()
97. IO.removeDirectory : Text ->{##IO} Either IOError ()
98. IO.removeFile : Text ->{##IO} Either IOError ()
99. IO.renameDirectory : Text
-> Text
->{##IO} Either IOError ()
100. IO.renameFile : Text -> Text ->{##IO} Either IOError ()
101. IO.seekHandle : ##Handle
-> FileMode
-> Int
->{##IO} Either IOError ()
102. IO.serverSocket : Text
-> Text
->{##IO} Either IOError ##Socket
103. IO.setBuffering : ##Handle
-> BufferMode
->{##IO} Either IOError ()
104. IO.setCurrentDirectory : Text ->{##IO} Either IOError ()
105. IO.socketAccept : ##Socket
->{##IO} Either IOError ##Socket
106. IO.socketReceive : ##Socket
-> Nat
->{##IO} Either IOError Bytes
107. IO.socketSend : ##Socket
-> Bytes
->{##IO} Either IOError ()
108. IO.stdHandle : Nat -> Optional ##Handle
109. IO.systemTime : '{##IO} Either IOError Nat
110. type IOError
111. IllegalOperation : IOError
112. builtin type Int
113. Int.* : Int -> Int -> Int
114. Int.+ : Int -> Int -> Int
115. Int.- : Int -> Int -> Int
116. Int./ : Int -> Int -> Int
117. Int.and : Int -> Int -> Int
118. Int.complement : Int -> Int
119. Int.eq : Int -> Int -> Boolean
120. Int.fromText : Text -> Optional Int
121. Int.gt : Int -> Int -> Boolean
122. Int.gteq : Int -> Int -> Boolean
123. Int.increment : Int -> Int
124. Int.isEven : Int -> Boolean
125. Int.isOdd : Int -> Boolean
126. Int.leadingZeros : Int -> Nat
127. Int.lt : Int -> Int -> Boolean
128. Int.lteq : Int -> Int -> Boolean
129. Int.mod : Int -> Int -> Int
130. Int.negate : Int -> Int
131. Int.or : Int -> Int -> Int
132. Int.pow : Int -> Nat -> Int
133. Int.shiftLeft : Int -> Nat -> Int
134. Int.shiftRight : Int -> Nat -> Int
135. Int.signum : Int -> Int
136. Int.toFloat : Int -> Float
137. Int.toText : Int -> Text
138. Int.trailingZeros : Int -> Nat
139. Int.truncate0 : Int -> Nat
140. Int.xor : Int -> Int -> Int
141. unique type Link
142. builtin type Link.Term
143. Link.Term : Term -> Link
144. builtin type Link.Type
145. Link.Type : Type -> Link
146. builtin type List
147. List.++ : [a] -> [a] -> [a]
148. List.+: : a -> [a] -> [a]
149. List.:+ : [a] -> a -> [a]
150. List.at : Nat -> [a] -> Optional a
151. List.cons : a -> [a] -> [a]
152. List.drop : Nat -> [a] -> [a]
153. List.empty : [a]
154. List.size : [a] -> Nat
155. List.snoc : [a] -> a -> [a]
156. List.take : Nat -> [a] -> [a]
157. builtin type Nat
158. Nat.* : Nat -> Nat -> Nat
159. Nat.+ : Nat -> Nat -> Nat
160. Nat./ : Nat -> Nat -> Nat
161. Nat.and : Nat -> Nat -> Nat
162. Nat.complement : Nat -> Nat
163. Nat.drop : Nat -> Nat -> Nat
164. Nat.eq : Nat -> Nat -> Boolean
165. Nat.fromText : Text -> Optional Nat
166. Nat.gt : Nat -> Nat -> Boolean
167. Nat.gteq : Nat -> Nat -> Boolean
168. Nat.increment : Nat -> Nat
169. Nat.isEven : Nat -> Boolean
170. Nat.isOdd : Nat -> Boolean
171. Nat.leadingZeros : Nat -> Nat
172. Nat.lt : Nat -> Nat -> Boolean
173. Nat.lteq : Nat -> Nat -> Boolean
174. Nat.mod : Nat -> Nat -> Nat
175. Nat.or : Nat -> Nat -> Nat
176. Nat.pow : Nat -> Nat -> Nat
177. Nat.shiftLeft : Nat -> Nat -> Nat
178. Nat.shiftRight : Nat -> Nat -> Nat
179. Nat.sub : Nat -> Nat -> Int
180. Nat.toFloat : Nat -> Float
181. Nat.toInt : Nat -> Int
182. Nat.toText : Nat -> Text
183. Nat.trailingZeros : Nat -> Nat
184. Nat.xor : Nat -> Nat -> Nat
185. NoSuchThing : IOError
186. type Optional a
187. Optional.None : Optional a
188. Optional.Some : a -> Optional a
189. PermissionDenied : IOError
190. builtin type Request
191. ResourceBusy : IOError
192. ResourceExhausted : IOError
193. type SeqView a
194. SeqView.VElem : a -> SeqView a -> SeqView a
195. SeqView.VEmpty : SeqView a
196. unique type Test.Result
197. Test.Result.Fail : Text -> Result
198. Test.Result.Ok : Text -> Result
199. builtin type Text
200. Text.!= : Text -> Text -> Boolean
201. Text.++ : Text -> Text -> Text
202. Text.drop : Nat -> Text -> Text
203. Text.empty : Text
204. Text.eq : Text -> Text -> Boolean
205. Text.fromCharList : [Char] -> Text
206. Text.gt : Text -> Text -> Boolean
207. Text.gteq : Text -> Text -> Boolean
208. Text.lt : Text -> Text -> Boolean
209. Text.lteq : Text -> Text -> Boolean
210. Text.size : Text -> Nat
211. Text.take : Nat -> Text -> Text
212. Text.toCharList : Text -> [Char]
213. Text.uncons : Text -> Optional (Char, Text)
214. Text.unsnoc : Text -> Optional (Text, Char)
215. type Tuple a b
216. Tuple.Cons : a -> b -> Tuple a b
217. type Unit
218. Unit.Unit : ()
219. Universal.< : a -> a -> Boolean
220. Universal.<= : a -> a -> Boolean
221. Universal.== : a -> a -> Boolean
222. Universal.> : a -> a -> Boolean
223. Universal.>= : a -> a -> Boolean
224. Universal.compare : a -> a -> Int
225. UserError : IOError
226. bug : a -> b
227. todo : a -> b
.builtin> alias.many 94-104 .mylib
@ -194,17 +271,32 @@ Let's try it!
Added definitions:
1. builtin type List
2. Link.Type : Type -> Link
3. List.++ : [a] -> [a] -> [a]
4. ┌ List.+: : a -> [a] -> [a]
5. └ List.cons : a -> [a] -> [a]
6. ┌ List.:+ : [a] -> a -> [a]
7. └ List.snoc : [a] -> a -> [a]
8. List.at : Nat -> [a] -> Optional a
9. List.drop : Nat -> [a] -> [a]
10. List.empty : [a]
11. List.size : [a] -> Nat
1. IO.listen : ##Socket
->{##IO} Either IOError ()
2. IO.openFile : Text
->{##IO} Either IOError ##Handle
3. IO.putText : ##Handle
-> Text
->{##IO} Either IOError ()
4. IO.removeDirectory : Text ->{##IO} Either IOError ()
5. IO.removeFile : Text ->{##IO} Either IOError ()
6. IO.renameDirectory : Text
-> Text
->{##IO} Either IOError ()
7. IO.renameFile : Text
-> Text
->{##IO} Either IOError ()
8. IO.seekHandle : ##Handle
-> FileMode
-> Int
->{##IO} Either IOError ()
9. IO.serverSocket : Text
-> Text
->{##IO} Either IOError ##Socket
10. IO.setBuffering : ##Handle
-> BufferMode
->{##IO} Either IOError ()
11. IO.setCurrentDirectory : Text ->{##IO} Either IOError ()
Tip: You can use `undo` or `reflog` to undo this change.
@ -266,29 +358,38 @@ I want to incorporate a few more from another namespace:
.mylib> find
1. Link.Type : Type -> Link
2. builtin type List
3. List.++ : [a] -> [a] -> [a]
4. List.+: : a -> [a] -> [a]
5. List.:+ : [a] -> a -> [a]
6. List.adjacentPairs : [a] -> [(a, a)]
7. List.all : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean
8. List.any : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean
9. List.at : Nat -> [a] -> Optional a
10. List.chunk : Nat -> [a] -> [[a]]
11. List.chunksOf : Nat -> [a] -> [[a]]
12. List.cons : a -> [a] -> [a]
13. List.drop : Nat -> [a] -> [a]
14. List.dropWhile : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} [a]
15. List.empty : [a]
16. List.first : [a] -> Optional a
17. List.init : [a] -> Optional [a]
18. List.intersperse : a -> [a] -> [a]
19. List.isEmpty : [a] -> Boolean
20. List.last : [a] -> Optional a
21. List.replicate : Nat -> a -> [a]
22. List.size : [a] -> Nat
23. List.snoc : [a] -> a -> [a]
1. IO.listen : ##Socket ->{##IO} Either IOError ()
2. IO.openFile : Text ->{##IO} Either IOError ##Handle
3. IO.putText : ##Handle -> Text ->{##IO} Either IOError ()
4. IO.removeDirectory : Text ->{##IO} Either IOError ()
5. IO.removeFile : Text ->{##IO} Either IOError ()
6. IO.renameDirectory : Text
-> Text
->{##IO} Either IOError ()
7. IO.renameFile : Text -> Text ->{##IO} Either IOError ()
8. IO.seekHandle : ##Handle
-> FileMode
-> Int
->{##IO} Either IOError ()
9. IO.serverSocket : Text
-> Text
->{##IO} Either IOError ##Socket
10. IO.setBuffering : ##Handle
-> BufferMode
->{##IO} Either IOError ()
11. IO.setCurrentDirectory : Text ->{##IO} Either IOError ()
12. List.adjacentPairs : [a] -> [(a, a)]
13. List.all : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean
14. List.any : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} Boolean
15. List.chunk : Nat -> [a] -> [[a]]
16. List.chunksOf : Nat -> [a] -> [[a]]
17. List.dropWhile : (a ->{𝕖} Boolean) ->{𝕖} [a] ->{𝕖} [a]
18. List.first : [a] -> Optional a
19. List.init : [a] -> Optional [a]
20. List.intersperse : a -> [a] -> [a]
21. List.isEmpty : [a] -> Boolean
22. List.last : [a] -> Optional a
23. List.replicate : Nat -> a -> [a]
24. List.splitAt : Nat -> [a] -> ([a], [a])
25. List.tail : [a] -> Optional [a]
26. List.takeWhile : (a ->{𝕖} Boolean) -> [a] ->{𝕖} [a]

View File

@ -9,37 +9,55 @@ The `builtins.merge` command adds the known builtins to a `builtin` subnamespace
.tmp> ls builtin
1. Boolean (builtin type)
2. Boolean/ (1 definition)
3. Bytes (builtin type)
4. Bytes/ (9 definitions)
5. Char (builtin type)
6. Char/ (2 definitions)
7. Debug/ (1 definition)
8. Doc (type)
9. Doc/ (6 definitions)
10. Float (builtin type)
11. Float/ (36 definitions)
12. Int (builtin type)
13. Int/ (28 definitions)
14. Link (type)
15. Link/ (4 definitions)
16. List (builtin type)
17. List/ (10 definitions)
18. Nat (builtin type)
19. Nat/ (27 definitions)
20. Optional (type)
21. Optional/ (2 definitions)
22. Request (builtin type)
23. Test/ (3 definitions)
24. Text (builtin type)
25. Text/ (15 definitions)
26. Tuple (type)
27. Tuple/ (1 definition)
28. Unit (type)
29. Unit/ (1 definition)
30. Universal/ (6 definitions)
31. bug (a -> b)
32. todo (a -> b)
1. AlreadyExists (IOError)
2. Boolean (builtin type)
3. Boolean/ (1 definition)
4. BufferMode (type)
5. BufferMode/ (4 definitions)
6. Bytes (builtin type)
7. Bytes/ (9 definitions)
8. Char (builtin type)
9. Char/ (2 definitions)
10. Debug/ (1 definition)
11. Doc (type)
12. Doc/ (6 definitions)
13. EOF (IOError)
14. Either (type)
15. Either/ (2 definitions)
16. FileMode (type)
17. FileMode/ (4 definitions)
18. Float (builtin type)
19. Float/ (36 definitions)
20. IO/ (34 definitions)
21. IOError (type)
22. IllegalOperation (IOError)
23. Int (builtin type)
24. Int/ (28 definitions)
25. Link (type)
26. Link/ (4 definitions)
27. List (builtin type)
28. List/ (10 definitions)
29. Nat (builtin type)
30. Nat/ (27 definitions)
31. NoSuchThing (IOError)
32. Optional (type)
33. Optional/ (2 definitions)
34. PermissionDenied (IOError)
35. Request (builtin type)
36. ResourceBusy (IOError)
37. ResourceExhausted (IOError)
38. SeqView (type)
39. SeqView/ (2 definitions)
40. Test/ (3 definitions)
41. Text (builtin type)
42. Text/ (15 definitions)
43. Tuple (type)
44. Tuple/ (1 definition)
45. Unit (type)
46. Unit/ (1 definition)
47. Universal/ (6 definitions)
48. UserError (IOError)
49. bug (a -> b)
50. todo (a -> b)
```

View File

@ -23,7 +23,7 @@ Technically, the definitions all exist, but they have no names. `builtins.merge`
.foo> ls
1. builtin/ (168 definitions)
1. builtin/ (227 definitions)
```
And for a limited time, you can get even more builtin goodies:
@ -35,7 +35,7 @@ And for a limited time, you can get even more builtin goodies:
.foo> ls
1. builtin/ (334 definitions)
1. builtin/ (390 definitions)
```
More typically, you'd start out by pulling `base.

View File

@ -112,13 +112,13 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t
Note: The most recent namespace hash is immediately below this
message.
#1pdgtsicq9
#gjkmcnvfuh
- Deletes:
feature1.y
#9e8gvv7r3e
#kqloe7510g
+ Adds / updates:
@ -129,30 +129,34 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t
Original name New name(s)
feature1.y master.y
#6sqsddkikv
#aj79ekpoo3
+ Adds / updates:
feature1.y
#loe9apjdis
#tlh9bnckss
> Moves:
Original name New name
x master.x
#p90pbjip7l
#om14e19o1o
+ Adds / updates:
x
#givahf3f6f
#1ggq0kemne
+ Adds / updates:
builtin.Boolean builtin.Boolean.not builtin.Bytes
builtin.AlreadyExists builtin.Boolean builtin.Boolean.not
builtin.BufferMode builtin.BufferMode.BlockBuffering
builtin.BufferMode.LineBuffering
builtin.BufferMode.NoBuffering
builtin.BufferMode.SizedBlockBuffering builtin.Bytes
builtin.Bytes.++ builtin.Bytes.at builtin.Bytes.drop
builtin.Bytes.empty builtin.Bytes.flatten
builtin.Bytes.fromList builtin.Bytes.size
@ -160,11 +164,15 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t
builtin.Char.fromNat builtin.Char.toNat
builtin.Debug.watch builtin.Doc builtin.Doc.Blob
builtin.Doc.Evaluate builtin.Doc.Join builtin.Doc.Link
builtin.Doc.Signature builtin.Doc.Source builtin.Float
builtin.Float.* builtin.Float.+ builtin.Float.-
builtin.Float./ builtin.Float.abs builtin.Float.acos
builtin.Float.acosh builtin.Float.asin builtin.Float.asinh
builtin.Float.atan builtin.Float.atan2 builtin.Float.atanh
builtin.Doc.Signature builtin.Doc.Source builtin.EOF
builtin.Either builtin.Either.Left builtin.Either.Right
builtin.FileMode builtin.FileMode.Append
builtin.FileMode.Read builtin.FileMode.ReadWrite
builtin.FileMode.Write builtin.Float builtin.Float.*
builtin.Float.+ builtin.Float.- builtin.Float./
builtin.Float.abs builtin.Float.acos builtin.Float.acosh
builtin.Float.asin builtin.Float.asinh builtin.Float.atan
builtin.Float.atan2 builtin.Float.atanh
builtin.Float.ceiling builtin.Float.cos builtin.Float.cosh
builtin.Float.eq builtin.Float.exp builtin.Float.floor
builtin.Float.fromText builtin.Float.gt builtin.Float.gteq
@ -173,7 +181,25 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t
builtin.Float.pow builtin.Float.round builtin.Float.sin
builtin.Float.sinh builtin.Float.sqrt builtin.Float.tan
builtin.Float.tanh builtin.Float.toText
builtin.Float.truncate builtin.Int builtin.Int.*
builtin.Float.truncate builtin.IO.clientSocket
builtin.IO.closeFile builtin.IO.closeSocket
builtin.IO.createDirectory builtin.IO.fileExists
builtin.IO.forkComp builtin.IO.getBuffering
builtin.IO.getCurrentDirectory builtin.IO.getFileSize
builtin.IO.getFileTimestamp builtin.IO.getLine
builtin.IO.getTempDirectory builtin.IO.getText
builtin.IO.handlePosition builtin.IO.isDirectory
builtin.IO.isFileEOF builtin.IO.isFileOpen
builtin.IO.isSeekable builtin.IO.listen
builtin.IO.openFile builtin.IO.putText
builtin.IO.removeDirectory builtin.IO.removeFile
builtin.IO.renameDirectory builtin.IO.renameFile
builtin.IO.seekHandle builtin.IO.serverSocket
builtin.IO.setBuffering builtin.IO.setCurrentDirectory
builtin.IO.socketAccept builtin.IO.socketReceive
builtin.IO.socketSend builtin.IO.stdHandle
builtin.IO.systemTime builtin.IOError
builtin.IllegalOperation builtin.Int builtin.Int.*
builtin.Int.+ builtin.Int.- builtin.Int./ builtin.Int.and
builtin.Int.complement builtin.Int.eq builtin.Int.fromText
builtin.Int.gt builtin.Int.gteq builtin.Int.increment
@ -199,13 +225,16 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t
builtin.Nat.pow builtin.Nat.shiftLeft
builtin.Nat.shiftRight builtin.Nat.sub builtin.Nat.toFloat
builtin.Nat.toInt builtin.Nat.toText
builtin.Nat.trailingZeros builtin.Nat.xor builtin.Optional
builtin.Optional.None builtin.Optional.Some
builtin.Request builtin.Test.Result
builtin.Test.Result.Fail builtin.Test.Result.Ok
builtin.Text builtin.Text.!= builtin.Text.++
builtin.Text.drop builtin.Text.empty builtin.Text.eq
builtin.Text.fromCharList builtin.Text.gt
builtin.Nat.trailingZeros builtin.Nat.xor
builtin.NoSuchThing builtin.Optional builtin.Optional.None
builtin.Optional.Some builtin.PermissionDenied
builtin.Request builtin.ResourceBusy
builtin.ResourceExhausted builtin.SeqView
builtin.SeqView.VElem builtin.SeqView.VEmpty
builtin.Test.Result builtin.Test.Result.Fail
builtin.Test.Result.Ok builtin.Text builtin.Text.!=
builtin.Text.++ builtin.Text.drop builtin.Text.empty
builtin.Text.eq builtin.Text.fromCharList builtin.Text.gt
builtin.Text.gteq builtin.Text.lt builtin.Text.lteq
builtin.Text.size builtin.Text.take
builtin.Text.toCharList builtin.Text.uncons
@ -213,7 +242,8 @@ We can also delete the fork if we're done with it. (Don't worry, it's still in t
builtin.Unit builtin.Unit.Unit builtin.Universal.<
builtin.Universal.<= builtin.Universal.==
builtin.Universal.> builtin.Universal.>=
builtin.Universal.compare builtin.bug builtin.todo
builtin.Universal.compare builtin.UserError builtin.bug
builtin.todo
#7asfbtqmoj (start of history)

View File

@ -59,16 +59,16 @@ y = 2
most recent, along with the command that got us there. Try:
`fork 2 .old`
`fork #akq10qch4d .old` to make an old namespace
`fork #jm7aftpo4a .old` to make an old namespace
accessible again,
`reset-root #akq10qch4d` to reset the root namespace and
`reset-root #jm7aftpo4a` to reset the root namespace and
its history to that of the
specified namespace.
1. #c7f5p7bir3 : add
2. #akq10qch4d : add
3. #givahf3f6f : builtins.merge
1. #matsdm7js8 : add
2. #jm7aftpo4a : add
3. #1ggq0kemne : builtins.merge
4. #7asfbtqmoj : (initial reflogged namespace)
```

View File

@ -13,7 +13,7 @@ Let's look at some examples. We'll start with a namespace with just the builtins
#huqm38uob6 (start of history)
#70ji6gqmer (start of history)
.> fork builtin builtin2
@ -42,21 +42,21 @@ Now suppose we `fork` a copy of builtin, then rename `Nat.+` to `frobnicate`, th
Note: The most recent namespace hash is immediately below this
message.
#sd7g31r8v9
#mgfejr51nc
> Moves:
Original name New name
Nat.frobnicate Nat.+
#d8qganh7nh
#2f8m4slvjf
> Moves:
Original name New name
Nat.+ Nat.frobnicate
#huqm38uob6 (start of history)
#70ji6gqmer (start of history)
```
If we merge that back into `builtin`, we get that same chain of history:
@ -71,21 +71,21 @@ If we merge that back into `builtin`, we get that same chain of history:
Note: The most recent namespace hash is immediately below this
message.
#sd7g31r8v9
#mgfejr51nc
> Moves:
Original name New name
Nat.frobnicate Nat.+
#d8qganh7nh
#2f8m4slvjf
> Moves:
Original name New name
Nat.+ Nat.frobnicate
#huqm38uob6 (start of history)
#70ji6gqmer (start of history)
```
Let's try again, but using a `merge.squash` (or just `squash`) instead. The history will be unchanged:
@ -106,7 +106,7 @@ Let's try again, but using a `merge.squash` (or just `squash`) instead. The hist
#huqm38uob6 (start of history)
#70ji6gqmer (start of history)
```
The churn that happened in `mybuiltin` namespace ended up back in the same spot, so the squash merge of that namespace with our original namespace had no effect.