Missed builtin array types + transcript changes

This commit is contained in:
Dan Doel 2022-06-09 15:40:43 -04:00
parent dc3d0f75d7
commit 88269997ec
8 changed files with 946 additions and 747 deletions

View File

@ -234,7 +234,11 @@ builtinTypesSrc =
B' "Ref" CT.Data,
B' "Scope" CT.Effect,
B' "TimeSpec" CT.Data,
Rename' "TimeSpec" "io2.Clock.internals.TimeSpec"
Rename' "TimeSpec" "io2.Clock.internals.TimeSpec",
B' "ImmutableArray" CT.Data,
B' "MutableArray" CT.Data,
B' "ImmutableByteArray" CT.Data,
B' "MutableByteArray" CT.Data
]
-- rename these to "builtin" later, when builtin means intrinsic as opposed to

View File

@ -140,351 +140,425 @@ Let's try it!
117. Float.toText : Float -> Text
118. Float.truncate : Float -> Int
119. Handle.toText : Handle -> Text
120. builtin type Int
121. Int.* : Int -> Int -> Int
122. Int.+ : Int -> Int -> Int
123. Int.- : Int -> Int -> Int
124. Int./ : Int -> Int -> Int
125. Int.and : Int -> Int -> Int
126. Int.complement : Int -> Int
127. Int.eq : Int -> Int -> Boolean
128. Int.fromRepresentation : Nat -> Int
129. Int.fromText : Text -> Optional Int
130. Int.gt : Int -> Int -> Boolean
131. Int.gteq : Int -> Int -> Boolean
132. Int.increment : Int -> Int
133. Int.isEven : Int -> Boolean
134. Int.isOdd : Int -> Boolean
135. Int.leadingZeros : Int -> Nat
136. Int.lt : Int -> Int -> Boolean
137. Int.lteq : Int -> Int -> Boolean
138. Int.mod : Int -> Int -> Int
139. Int.negate : Int -> Int
140. Int.or : Int -> Int -> Int
141. Int.popCount : Int -> Nat
142. Int.pow : Int -> Nat -> Int
143. Int.shiftLeft : Int -> Nat -> Int
144. Int.shiftRight : Int -> Nat -> Int
145. Int.signum : Int -> Int
146. Int.toFloat : Int -> Float
147. Int.toRepresentation : Int -> Nat
148. Int.toText : Int -> Text
149. Int.trailingZeros : Int -> Nat
150. Int.truncate0 : Int -> Nat
151. Int.xor : Int -> Int -> Int
152. unique type io2.BufferMode
153. io2.BufferMode.BlockBuffering : BufferMode
154. io2.BufferMode.LineBuffering : BufferMode
155. io2.BufferMode.NoBuffering : BufferMode
156. io2.BufferMode.SizedBlockBuffering : Nat -> BufferMode
157. io2.Clock.internals.monotonic : '{IO} Either
120. builtin type ImmutableArray
121. ImmutableArray.read : ImmutableArray a
-> Nat
->{Exception} a
122. builtin type ImmutableByteArray
123. ImmutableByteArray.read16 : ImmutableByteArray
-> Nat
->{Exception} Nat
124. ImmutableByteArray.read32 : ImmutableByteArray
-> Nat
->{Exception} Nat
125. ImmutableByteArray.read64 : ImmutableByteArray
-> Nat
->{Exception} Nat
126. ImmutableByteArray.read8 : ImmutableByteArray
-> Nat
->{Exception} Nat
127. builtin type Int
128. Int.* : Int -> Int -> Int
129. Int.+ : Int -> Int -> Int
130. Int.- : Int -> Int -> Int
131. Int./ : Int -> Int -> Int
132. Int.and : Int -> Int -> Int
133. Int.complement : Int -> Int
134. Int.eq : Int -> Int -> Boolean
135. Int.fromRepresentation : Nat -> Int
136. Int.fromText : Text -> Optional Int
137. Int.gt : Int -> Int -> Boolean
138. Int.gteq : Int -> Int -> Boolean
139. Int.increment : Int -> Int
140. Int.isEven : Int -> Boolean
141. Int.isOdd : Int -> Boolean
142. Int.leadingZeros : Int -> Nat
143. Int.lt : Int -> Int -> Boolean
144. Int.lteq : Int -> Int -> Boolean
145. Int.mod : Int -> Int -> Int
146. Int.negate : Int -> Int
147. Int.or : Int -> Int -> Int
148. Int.popCount : Int -> Nat
149. Int.pow : Int -> Nat -> Int
150. Int.shiftLeft : Int -> Nat -> Int
151. Int.shiftRight : Int -> Nat -> Int
152. Int.signum : Int -> Int
153. Int.toFloat : Int -> Float
154. Int.toRepresentation : Int -> Nat
155. Int.toText : Int -> Text
156. Int.trailingZeros : Int -> Nat
157. Int.truncate0 : Int -> Nat
158. Int.xor : Int -> Int -> Int
159. IO.arrayOf : a -> Nat ->{IO} MutableArray {IO} a
160. IO.bytearray : Nat ->{IO} ImmutableByteArray {IO}
161. IO.bytearrayOf : Nat
-> Nat
->{IO} ImmutableByteArray {IO}
162. unique type io2.ArrayFailure
163. unique type io2.BufferMode
164. io2.BufferMode.BlockBuffering : BufferMode
165. io2.BufferMode.LineBuffering : BufferMode
166. io2.BufferMode.NoBuffering : BufferMode
167. io2.BufferMode.SizedBlockBuffering : Nat -> BufferMode
168. io2.Clock.internals.monotonic : '{IO} Either
Failure TimeSpec
158. io2.Clock.internals.nsec : TimeSpec -> Nat
159. io2.Clock.internals.processCPUTime : '{IO} Either
169. io2.Clock.internals.nsec : TimeSpec -> Nat
170. io2.Clock.internals.processCPUTime : '{IO} Either
Failure TimeSpec
160. io2.Clock.internals.realtime : '{IO} Either
171. io2.Clock.internals.realtime : '{IO} Either
Failure TimeSpec
161. io2.Clock.internals.sec : TimeSpec -> Int
162. io2.Clock.internals.threadCPUTime : '{IO} Either
172. io2.Clock.internals.sec : TimeSpec -> Int
173. io2.Clock.internals.threadCPUTime : '{IO} Either
Failure TimeSpec
163. builtin type io2.Clock.internals.TimeSpec
164. unique type io2.Failure
165. io2.Failure.Failure : Type -> Text -> Any -> Failure
166. unique type io2.FileMode
167. io2.FileMode.Append : FileMode
168. io2.FileMode.Read : FileMode
169. io2.FileMode.ReadWrite : FileMode
170. io2.FileMode.Write : FileMode
171. builtin type io2.Handle
172. builtin type io2.IO
173. io2.IO.clientSocket.impl : Text
174. builtin type io2.Clock.internals.TimeSpec
175. unique type io2.Failure
176. io2.Failure.Failure : Type -> Text -> Any -> Failure
177. unique type io2.FileMode
178. io2.FileMode.Append : FileMode
179. io2.FileMode.Read : FileMode
180. io2.FileMode.ReadWrite : FileMode
181. io2.FileMode.Write : FileMode
182. builtin type io2.Handle
183. builtin type io2.IO
184. io2.IO.clientSocket.impl : Text
-> Text
->{IO} Either Failure Socket
174. io2.IO.closeFile.impl : Handle ->{IO} Either Failure ()
175. io2.IO.closeSocket.impl : Socket ->{IO} Either Failure ()
176. io2.IO.createDirectory.impl : Text
185. io2.IO.closeFile.impl : Handle ->{IO} Either Failure ()
186. io2.IO.closeSocket.impl : Socket ->{IO} Either Failure ()
187. io2.IO.createDirectory.impl : Text
->{IO} Either Failure ()
177. io2.IO.createTempDirectory.impl : Text
188. io2.IO.createTempDirectory.impl : Text
->{IO} Either
Failure Text
178. io2.IO.delay.impl : Nat ->{IO} Either Failure ()
179. io2.IO.directoryContents.impl : Text
189. io2.IO.delay.impl : Nat ->{IO} Either Failure ()
190. io2.IO.directoryContents.impl : Text
->{IO} Either
Failure [Text]
180. io2.IO.fileExists.impl : Text
191. io2.IO.fileExists.impl : Text
->{IO} Either Failure Boolean
181. io2.IO.forkComp : '{IO} a ->{IO} ThreadId
182. io2.IO.getArgs.impl : '{IO} Either Failure [Text]
183. io2.IO.getBuffering.impl : Handle
192. io2.IO.forkComp : '{IO} a ->{IO} ThreadId
193. io2.IO.getArgs.impl : '{IO} Either Failure [Text]
194. io2.IO.getBuffering.impl : Handle
->{IO} Either
Failure BufferMode
184. io2.IO.getBytes.impl : Handle
195. io2.IO.getBytes.impl : Handle
-> Nat
->{IO} Either Failure Bytes
185. io2.IO.getCurrentDirectory.impl : '{IO} Either
196. io2.IO.getCurrentDirectory.impl : '{IO} Either
Failure Text
186. io2.IO.getEnv.impl : Text ->{IO} Either Failure Text
187. io2.IO.getFileSize.impl : Text ->{IO} Either Failure Nat
188. io2.IO.getFileTimestamp.impl : Text
197. io2.IO.getEnv.impl : Text ->{IO} Either Failure Text
198. io2.IO.getFileSize.impl : Text ->{IO} Either Failure Nat
199. io2.IO.getFileTimestamp.impl : Text
->{IO} Either Failure Nat
189. io2.IO.getLine.impl : Handle ->{IO} Either Failure Text
190. io2.IO.getSomeBytes.impl : Handle
200. io2.IO.getLine.impl : Handle ->{IO} Either Failure Text
201. io2.IO.getSomeBytes.impl : Handle
-> Nat
->{IO} Either Failure Bytes
191. io2.IO.getTempDirectory.impl : '{IO} Either Failure Text
192. io2.IO.handlePosition.impl : Handle
202. io2.IO.getTempDirectory.impl : '{IO} Either Failure Text
203. io2.IO.handlePosition.impl : Handle
->{IO} Either Failure Nat
193. io2.IO.isDirectory.impl : Text
204. io2.IO.isDirectory.impl : Text
->{IO} Either Failure Boolean
194. io2.IO.isFileEOF.impl : Handle
205. io2.IO.isFileEOF.impl : Handle
->{IO} Either Failure Boolean
195. io2.IO.isFileOpen.impl : Handle
206. io2.IO.isFileOpen.impl : Handle
->{IO} Either Failure Boolean
196. io2.IO.isSeekable.impl : Handle
207. io2.IO.isSeekable.impl : Handle
->{IO} Either Failure Boolean
197. io2.IO.kill.impl : ThreadId ->{IO} Either Failure ()
198. io2.IO.listen.impl : Socket ->{IO} Either Failure ()
199. io2.IO.openFile.impl : Text
208. io2.IO.kill.impl : ThreadId ->{IO} Either Failure ()
209. io2.IO.listen.impl : Socket ->{IO} Either Failure ()
210. io2.IO.openFile.impl : Text
-> FileMode
->{IO} Either Failure Handle
200. io2.IO.putBytes.impl : Handle
211. io2.IO.putBytes.impl : Handle
-> Bytes
->{IO} Either Failure ()
201. io2.IO.ref : a ->{IO} Ref {IO} a
202. io2.IO.removeDirectory.impl : Text
212. io2.IO.ref : a ->{IO} Ref {IO} a
213. io2.IO.removeDirectory.impl : Text
->{IO} Either Failure ()
203. io2.IO.removeFile.impl : Text ->{IO} Either Failure ()
204. io2.IO.renameDirectory.impl : Text
214. io2.IO.removeFile.impl : Text ->{IO} Either Failure ()
215. io2.IO.renameDirectory.impl : Text
-> Text
->{IO} Either Failure ()
205. io2.IO.renameFile.impl : Text
216. io2.IO.renameFile.impl : Text
-> Text
->{IO} Either Failure ()
206. io2.IO.seekHandle.impl : Handle
217. io2.IO.seekHandle.impl : Handle
-> SeekMode
-> Int
->{IO} Either Failure ()
207. io2.IO.serverSocket.impl : Optional Text
218. io2.IO.serverSocket.impl : Optional Text
-> Text
->{IO} Either Failure Socket
208. io2.IO.setBuffering.impl : Handle
219. io2.IO.setBuffering.impl : Handle
-> BufferMode
->{IO} Either Failure ()
209. io2.IO.setCurrentDirectory.impl : Text
220. io2.IO.setCurrentDirectory.impl : Text
->{IO} Either
Failure ()
210. io2.IO.socketAccept.impl : Socket
221. io2.IO.socketAccept.impl : Socket
->{IO} Either Failure Socket
211. io2.IO.socketPort.impl : Socket ->{IO} Either Failure Nat
212. io2.IO.socketReceive.impl : Socket
222. io2.IO.socketPort.impl : Socket ->{IO} Either Failure Nat
223. io2.IO.socketReceive.impl : Socket
-> Nat
->{IO} Either Failure Bytes
213. io2.IO.socketSend.impl : Socket
224. io2.IO.socketSend.impl : Socket
-> Bytes
->{IO} Either Failure ()
214. io2.IO.stdHandle : StdHandle -> Handle
215. io2.IO.systemTime.impl : '{IO} Either Failure Nat
216. io2.IO.systemTimeMicroseconds : '{IO} Int
217. unique type io2.IOError
218. io2.IOError.AlreadyExists : IOError
219. io2.IOError.EOF : IOError
220. io2.IOError.IllegalOperation : IOError
221. io2.IOError.NoSuchThing : IOError
222. io2.IOError.PermissionDenied : IOError
223. io2.IOError.ResourceBusy : IOError
224. io2.IOError.ResourceExhausted : IOError
225. io2.IOError.UserError : IOError
226. unique type io2.IOFailure
227. builtin type io2.MVar
228. io2.MVar.isEmpty : MVar a ->{IO} Boolean
229. io2.MVar.new : a ->{IO} MVar a
230. io2.MVar.newEmpty : '{IO} MVar a
231. io2.MVar.put.impl : MVar a -> a ->{IO} Either Failure ()
232. io2.MVar.read.impl : MVar a ->{IO} Either Failure a
233. io2.MVar.swap.impl : MVar a -> a ->{IO} Either Failure a
234. io2.MVar.take.impl : MVar a ->{IO} Either Failure a
235. io2.MVar.tryPut.impl : MVar a
225. io2.IO.stdHandle : StdHandle -> Handle
226. io2.IO.systemTime.impl : '{IO} Either Failure Nat
227. io2.IO.systemTimeMicroseconds : '{IO} Int
228. unique type io2.IOError
229. io2.IOError.AlreadyExists : IOError
230. io2.IOError.EOF : IOError
231. io2.IOError.IllegalOperation : IOError
232. io2.IOError.NoSuchThing : IOError
233. io2.IOError.PermissionDenied : IOError
234. io2.IOError.ResourceBusy : IOError
235. io2.IOError.ResourceExhausted : IOError
236. io2.IOError.UserError : IOError
237. unique type io2.IOFailure
238. builtin type io2.MVar
239. io2.MVar.isEmpty : MVar a ->{IO} Boolean
240. io2.MVar.new : a ->{IO} MVar a
241. io2.MVar.newEmpty : '{IO} MVar a
242. io2.MVar.put.impl : MVar a -> a ->{IO} Either Failure ()
243. io2.MVar.read.impl : MVar a ->{IO} Either Failure a
244. io2.MVar.swap.impl : MVar a -> a ->{IO} Either Failure a
245. io2.MVar.take.impl : MVar a ->{IO} Either Failure a
246. io2.MVar.tryPut.impl : MVar a
-> a
->{IO} Either Failure Boolean
236. io2.MVar.tryRead.impl : MVar a
247. io2.MVar.tryRead.impl : MVar a
->{IO} Either
Failure (Optional a)
237. io2.MVar.tryTake : MVar a ->{IO} Optional a
238. unique type io2.SeekMode
239. io2.SeekMode.AbsoluteSeek : SeekMode
240. io2.SeekMode.RelativeSeek : SeekMode
241. io2.SeekMode.SeekFromEnd : SeekMode
242. builtin type io2.Socket
243. unique type io2.StdHandle
244. io2.StdHandle.StdErr : StdHandle
245. io2.StdHandle.StdIn : StdHandle
246. io2.StdHandle.StdOut : StdHandle
247. builtin type io2.STM
248. io2.STM.atomically : '{STM} a ->{IO} a
249. io2.STM.retry : '{STM} a
250. builtin type io2.ThreadId
251. builtin type io2.Tls
252. builtin type io2.Tls.Cipher
253. builtin type io2.Tls.ClientConfig
254. io2.Tls.ClientConfig.certificates.set : [SignedCert]
248. io2.MVar.tryTake : MVar a ->{IO} Optional a
249. unique type io2.SeekMode
250. io2.SeekMode.AbsoluteSeek : SeekMode
251. io2.SeekMode.RelativeSeek : SeekMode
252. io2.SeekMode.SeekFromEnd : SeekMode
253. builtin type io2.Socket
254. unique type io2.StdHandle
255. io2.StdHandle.StdErr : StdHandle
256. io2.StdHandle.StdIn : StdHandle
257. io2.StdHandle.StdOut : StdHandle
258. builtin type io2.STM
259. io2.STM.atomically : '{STM} a ->{IO} a
260. io2.STM.retry : '{STM} a
261. builtin type io2.ThreadId
262. builtin type io2.Tls
263. builtin type io2.Tls.Cipher
264. builtin type io2.Tls.ClientConfig
265. io2.Tls.ClientConfig.certificates.set : [SignedCert]
-> ClientConfig
-> ClientConfig
255. io2.TLS.ClientConfig.ciphers.set : [Cipher]
266. io2.TLS.ClientConfig.ciphers.set : [Cipher]
-> ClientConfig
-> ClientConfig
256. io2.Tls.ClientConfig.default : Text
267. io2.Tls.ClientConfig.default : Text
-> Bytes
-> ClientConfig
257. io2.Tls.ClientConfig.versions.set : [Version]
268. io2.Tls.ClientConfig.versions.set : [Version]
-> ClientConfig
-> ClientConfig
258. io2.Tls.decodeCert.impl : Bytes
269. io2.Tls.decodeCert.impl : Bytes
-> Either Failure SignedCert
259. io2.Tls.decodePrivateKey : Bytes -> [PrivateKey]
260. io2.Tls.encodeCert : SignedCert -> Bytes
261. io2.Tls.encodePrivateKey : PrivateKey -> Bytes
262. io2.Tls.handshake.impl : Tls ->{IO} Either Failure ()
263. io2.Tls.newClient.impl : ClientConfig
270. io2.Tls.decodePrivateKey : Bytes -> [PrivateKey]
271. io2.Tls.encodeCert : SignedCert -> Bytes
272. io2.Tls.encodePrivateKey : PrivateKey -> Bytes
273. io2.Tls.handshake.impl : Tls ->{IO} Either Failure ()
274. io2.Tls.newClient.impl : ClientConfig
-> Socket
->{IO} Either Failure Tls
264. io2.Tls.newServer.impl : ServerConfig
275. io2.Tls.newServer.impl : ServerConfig
-> Socket
->{IO} Either Failure Tls
265. builtin type io2.Tls.PrivateKey
266. io2.Tls.receive.impl : Tls ->{IO} Either Failure Bytes
267. io2.Tls.send.impl : Tls -> Bytes ->{IO} Either Failure ()
268. builtin type io2.Tls.ServerConfig
269. io2.Tls.ServerConfig.certificates.set : [SignedCert]
276. builtin type io2.Tls.PrivateKey
277. io2.Tls.receive.impl : Tls ->{IO} Either Failure Bytes
278. io2.Tls.send.impl : Tls -> Bytes ->{IO} Either Failure ()
279. builtin type io2.Tls.ServerConfig
280. io2.Tls.ServerConfig.certificates.set : [SignedCert]
-> ServerConfig
-> ServerConfig
270. io2.Tls.ServerConfig.ciphers.set : [Cipher]
281. io2.Tls.ServerConfig.ciphers.set : [Cipher]
-> ServerConfig
-> ServerConfig
271. io2.Tls.ServerConfig.default : [SignedCert]
282. io2.Tls.ServerConfig.default : [SignedCert]
-> PrivateKey
-> ServerConfig
272. io2.Tls.ServerConfig.versions.set : [Version]
283. io2.Tls.ServerConfig.versions.set : [Version]
-> ServerConfig
-> ServerConfig
273. builtin type io2.Tls.SignedCert
274. io2.Tls.terminate.impl : Tls ->{IO} Either Failure ()
275. builtin type io2.Tls.Version
276. unique type io2.TlsFailure
277. builtin type io2.TVar
278. io2.TVar.new : a ->{STM} TVar a
279. io2.TVar.newIO : a ->{IO} TVar a
280. io2.TVar.read : TVar a ->{STM} a
281. io2.TVar.readIO : TVar a ->{IO} a
282. io2.TVar.swap : TVar a -> a ->{STM} a
283. io2.TVar.write : TVar a -> a ->{STM} ()
284. io2.validateSandboxed : [Term] -> a -> Boolean
285. unique type IsPropagated
286. IsPropagated.IsPropagated : IsPropagated
287. unique type IsTest
288. IsTest.IsTest : IsTest
289. unique type Link
290. builtin type Link.Term
291. Link.Term : Term -> Link
292. Link.Term.toText : Term -> Text
293. builtin type Link.Type
294. Link.Type : Type -> Link
295. builtin type List
296. List.++ : [a] -> [a] -> [a]
297. List.+: : a -> [a] -> [a]
298. List.:+ : [a] -> a -> [a]
299. List.at : Nat -> [a] -> Optional a
300. List.cons : a -> [a] -> [a]
301. List.drop : Nat -> [a] -> [a]
302. List.empty : [a]
303. List.size : [a] -> Nat
304. List.snoc : [a] -> a -> [a]
305. List.take : Nat -> [a] -> [a]
306. metadata.isPropagated : IsPropagated
307. metadata.isTest : IsTest
308. builtin type Nat
309. Nat.* : Nat -> Nat -> Nat
310. Nat.+ : Nat -> Nat -> Nat
311. Nat./ : Nat -> Nat -> Nat
312. Nat.and : Nat -> Nat -> Nat
313. Nat.complement : Nat -> Nat
314. Nat.drop : Nat -> Nat -> Nat
315. Nat.eq : Nat -> Nat -> Boolean
316. Nat.fromText : Text -> Optional Nat
317. Nat.gt : Nat -> Nat -> Boolean
318. Nat.gteq : Nat -> Nat -> Boolean
319. Nat.increment : Nat -> Nat
320. Nat.isEven : Nat -> Boolean
321. Nat.isOdd : Nat -> Boolean
322. Nat.leadingZeros : Nat -> Nat
323. Nat.lt : Nat -> Nat -> Boolean
324. Nat.lteq : Nat -> Nat -> Boolean
325. Nat.mod : Nat -> Nat -> Nat
326. Nat.or : Nat -> Nat -> Nat
327. Nat.popCount : Nat -> Nat
328. Nat.pow : Nat -> Nat -> Nat
329. Nat.shiftLeft : Nat -> Nat -> Nat
330. Nat.shiftRight : Nat -> Nat -> Nat
331. Nat.sub : Nat -> Nat -> Int
332. Nat.toFloat : Nat -> Float
333. Nat.toInt : Nat -> Int
334. Nat.toText : Nat -> Text
335. Nat.trailingZeros : Nat -> Nat
336. Nat.xor : Nat -> Nat -> Nat
337. structural type Optional a
338. Optional.None : Optional a
339. Optional.Some : a -> Optional a
340. builtin type Ref
341. Ref.read : Ref g a ->{g} a
342. Ref.write : Ref g a -> a ->{g} ()
343. builtin type Request
344. builtin type Scope
345. Scope.ref : a ->{Scope s} Ref {Scope s} a
346. Scope.run : (∀ s. '{g, Scope s} r) ->{g} r
347. structural type SeqView a b
348. SeqView.VElem : a -> b -> SeqView a b
349. SeqView.VEmpty : SeqView a b
350. Socket.toText : Socket -> Text
351. unique type Test.Result
352. Test.Result.Fail : Text -> Result
353. Test.Result.Ok : Text -> Result
354. builtin type Text
355. Text.!= : Text -> Text -> Boolean
356. Text.++ : Text -> Text -> Text
357. Text.drop : Nat -> Text -> Text
358. Text.empty : Text
359. Text.eq : Text -> Text -> Boolean
360. Text.fromCharList : [Char] -> Text
361. Text.fromUtf8.impl : Bytes -> Either Failure Text
362. Text.gt : Text -> Text -> Boolean
363. Text.gteq : Text -> Text -> Boolean
364. Text.lt : Text -> Text -> Boolean
365. Text.lteq : Text -> Text -> Boolean
366. Text.repeat : Nat -> Text -> Text
367. Text.size : Text -> Nat
368. Text.take : Nat -> Text -> Text
369. Text.toCharList : Text -> [Char]
370. Text.toUtf8 : Text -> Bytes
371. Text.uncons : Text -> Optional (Char, Text)
372. Text.unsnoc : Text -> Optional (Text, Char)
373. ThreadId.toText : ThreadId -> Text
374. todo : a -> b
375. structural type Tuple a b
376. Tuple.Cons : a -> b -> Tuple a b
377. structural type Unit
378. Unit.Unit : ()
379. Universal.< : a -> a -> Boolean
380. Universal.<= : a -> a -> Boolean
381. Universal.== : a -> a -> Boolean
382. Universal.> : a -> a -> Boolean
383. Universal.>= : a -> a -> Boolean
384. Universal.compare : a -> a -> Int
385. unsafe.coerceAbilities : (a ->{e1} b) -> a ->{e2} b
386. builtin type Value
387. Value.dependencies : Value -> [Term]
388. Value.deserialize : Bytes -> Either Text Value
389. Value.load : Value ->{IO} Either [Term] a
390. Value.serialize : Value -> Bytes
391. Value.value : a -> Value
284. builtin type io2.Tls.SignedCert
285. io2.Tls.terminate.impl : Tls ->{IO} Either Failure ()
286. builtin type io2.Tls.Version
287. unique type io2.TlsFailure
288. builtin type io2.TVar
289. io2.TVar.new : a ->{STM} TVar a
290. io2.TVar.newIO : a ->{IO} TVar a
291. io2.TVar.read : TVar a ->{STM} a
292. io2.TVar.readIO : TVar a ->{IO} a
293. io2.TVar.swap : TVar a -> a ->{STM} a
294. io2.TVar.write : TVar a -> a ->{STM} ()
295. io2.validateSandboxed : [Term] -> a -> Boolean
296. unique type IsPropagated
297. IsPropagated.IsPropagated : IsPropagated
298. unique type IsTest
299. IsTest.IsTest : IsTest
300. unique type Link
301. builtin type Link.Term
302. Link.Term : Term -> Link
303. Link.Term.toText : Term -> Text
304. builtin type Link.Type
305. Link.Type : Type -> Link
306. builtin type List
307. List.++ : [a] -> [a] -> [a]
308. List.+: : a -> [a] -> [a]
309. List.:+ : [a] -> a -> [a]
310. List.at : Nat -> [a] -> Optional a
311. List.cons : a -> [a] -> [a]
312. List.drop : Nat -> [a] -> [a]
313. List.empty : [a]
314. List.size : [a] -> Nat
315. List.snoc : [a] -> a -> [a]
316. List.take : Nat -> [a] -> [a]
317. metadata.isPropagated : IsPropagated
318. metadata.isTest : IsTest
319. builtin type MutableArray
320. MutableArray.freeze! : MutableArray g a
->{g} ImmutableArray a
321. MutableArray.read : MutableArray g a
-> Nat
->{g, Exception} a
322. MutableArray.write : MutableArray g a
-> Nat
-> a
->{g, Exception} ()
323. builtin type MutableByteArray
324. MutableByteArray.freeze! : ImmutableByteArray g
->{g} ImmutableByteArray
325. MutableByteArray.read16 : ImmutableByteArray g
-> Nat
->{g, Exception} Nat
326. MutableByteArray.read32 : ImmutableByteArray g
-> Nat
->{g, Exception} Nat
327. MutableByteArray.read64 : ImmutableByteArray g
-> Nat
->{g, Exception} Nat
328. MutableByteArray.read8 : ImmutableByteArray g
-> Nat
->{g, Exception} Nat
329. MutableByteArray.write16 : ImmutableByteArray g
-> Nat
-> Nat
->{g, Exception} ()
330. MutableByteArray.write32 : ImmutableByteArray g
-> Nat
-> Nat
->{g, Exception} ()
331. MutableByteArray.write64 : ImmutableByteArray g
-> Nat
-> Nat
->{g, Exception} ()
332. MutableByteArray.write8 : ImmutableByteArray g
-> Nat
-> Nat
->{g, Exception} ()
333. builtin type Nat
334. Nat.* : Nat -> Nat -> Nat
335. Nat.+ : Nat -> Nat -> Nat
336. Nat./ : Nat -> Nat -> Nat
337. Nat.and : Nat -> Nat -> Nat
338. Nat.complement : Nat -> Nat
339. Nat.drop : Nat -> Nat -> Nat
340. Nat.eq : Nat -> Nat -> Boolean
341. Nat.fromText : Text -> Optional Nat
342. Nat.gt : Nat -> Nat -> Boolean
343. Nat.gteq : Nat -> Nat -> Boolean
344. Nat.increment : Nat -> Nat
345. Nat.isEven : Nat -> Boolean
346. Nat.isOdd : Nat -> Boolean
347. Nat.leadingZeros : Nat -> Nat
348. Nat.lt : Nat -> Nat -> Boolean
349. Nat.lteq : Nat -> Nat -> Boolean
350. Nat.mod : Nat -> Nat -> Nat
351. Nat.or : Nat -> Nat -> Nat
352. Nat.popCount : Nat -> Nat
353. Nat.pow : Nat -> Nat -> Nat
354. Nat.shiftLeft : Nat -> Nat -> Nat
355. Nat.shiftRight : Nat -> Nat -> Nat
356. Nat.sub : Nat -> Nat -> Int
357. Nat.toFloat : Nat -> Float
358. Nat.toInt : Nat -> Int
359. Nat.toText : Nat -> Text
360. Nat.trailingZeros : Nat -> Nat
361. Nat.xor : Nat -> Nat -> Nat
362. structural type Optional a
363. Optional.None : Optional a
364. Optional.Some : a -> Optional a
365. builtin type Ref
366. Ref.read : Ref g a ->{g} a
367. Ref.write : Ref g a -> a ->{g} ()
368. builtin type Request
369. builtin type Scope
370. Scope.arrayOf : a
-> Nat
->{Scope s} MutableArray (Scope s) a
371. Scope.bytearray : Nat
->{Scope s} ImmutableByteArray
(Scope s)
372. Scope.bytearrayOf : Nat
-> Nat
->{Scope s} ImmutableByteArray
(Scope s)
373. Scope.ref : a ->{Scope s} Ref {Scope s} a
374. Scope.run : (∀ s. '{g, Scope s} r) ->{g} r
375. structural type SeqView a b
376. SeqView.VElem : a -> b -> SeqView a b
377. SeqView.VEmpty : SeqView a b
378. Socket.toText : Socket -> Text
379. unique type Test.Result
380. Test.Result.Fail : Text -> Result
381. Test.Result.Ok : Text -> Result
382. builtin type Text
383. Text.!= : Text -> Text -> Boolean
384. Text.++ : Text -> Text -> Text
385. Text.drop : Nat -> Text -> Text
386. Text.empty : Text
387. Text.eq : Text -> Text -> Boolean
388. Text.fromCharList : [Char] -> Text
389. Text.fromUtf8.impl : Bytes -> Either Failure Text
390. Text.gt : Text -> Text -> Boolean
391. Text.gteq : Text -> Text -> Boolean
392. Text.lt : Text -> Text -> Boolean
393. Text.lteq : Text -> Text -> Boolean
394. Text.repeat : Nat -> Text -> Text
395. Text.size : Text -> Nat
396. Text.take : Nat -> Text -> Text
397. Text.toCharList : Text -> [Char]
398. Text.toUtf8 : Text -> Bytes
399. Text.uncons : Text -> Optional (Char, Text)
400. Text.unsnoc : Text -> Optional (Text, Char)
401. ThreadId.toText : ThreadId -> Text
402. todo : a -> b
403. structural type Tuple a b
404. Tuple.Cons : a -> b -> Tuple a b
405. structural type Unit
406. Unit.Unit : ()
407. Universal.< : a -> a -> Boolean
408. Universal.<= : a -> a -> Boolean
409. Universal.== : a -> a -> Boolean
410. Universal.> : a -> a -> Boolean
411. Universal.>= : a -> a -> Boolean
412. Universal.compare : a -> a -> Int
413. unsafe.coerceAbilities : (a ->{e1} b) -> a ->{e2} b
414. builtin type Value
415. Value.dependencies : Value -> [Term]
416. Value.deserialize : Bytes -> Either Text Value
417. Value.load : Value ->{IO} Either [Term] a
418. Value.serialize : Value -> Bytes
419. Value.value : a -> Value
.builtin> alias.many 94-104 .mylib

View File

@ -9,64 +9,73 @@ The `builtins.merge` command adds the known builtins to a `builtin` subnamespace
.tmp> ls builtin
1. Any (builtin type)
2. Any/ (2 definitions)
3. Boolean (builtin type)
4. Boolean/ (1 definition)
5. Bytes (builtin type)
6. Bytes/ (33 definitions)
7. Char (builtin type)
8. Char/ (3 definitions)
9. Code (builtin type)
10. Code/ (8 definitions)
11. Debug/ (2 definitions)
12. Doc (type)
13. Doc/ (6 definitions)
14. Either (type)
15. Either/ (2 definitions)
16. Exception (type)
17. Exception/ (1 definition)
18. Float (builtin type)
19. Float/ (38 definitions)
20. Handle/ (1 definition)
21. Int (builtin type)
22. Int/ (31 definitions)
23. IsPropagated (type)
24. IsPropagated/ (1 definition)
25. IsTest (type)
26. IsTest/ (1 definition)
27. Link (type)
28. Link/ (5 definitions)
29. List (builtin type)
30. List/ (10 definitions)
31. Nat (builtin type)
32. Nat/ (28 definitions)
33. Optional (type)
34. Optional/ (2 definitions)
35. Ref (builtin type)
36. Ref/ (2 definitions)
37. Request (builtin type)
38. Scope (builtin type)
39. Scope/ (2 definitions)
40. SeqView (type)
41. SeqView/ (2 definitions)
42. Socket/ (1 definition)
43. Test/ (3 definitions)
44. Text (builtin type)
45. Text/ (18 definitions)
46. ThreadId/ (1 definition)
47. Tuple (type)
48. Tuple/ (1 definition)
49. Unit (type)
50. Unit/ (1 definition)
51. Universal/ (6 definitions)
52. Value (builtin type)
53. Value/ (5 definitions)
54. bug (a -> b)
55. crypto/ (12 definitions)
56. io2/ (133 definitions)
57. metadata/ (2 definitions)
58. todo (a -> b)
59. unsafe/ (1 definition)
1. Any (builtin type)
2. Any/ (2 definitions)
3. Boolean (builtin type)
4. Boolean/ (1 definition)
5. Bytes (builtin type)
6. Bytes/ (33 definitions)
7. Char (builtin type)
8. Char/ (3 definitions)
9. Code (builtin type)
10. Code/ (8 definitions)
11. Debug/ (2 definitions)
12. Doc (type)
13. Doc/ (6 definitions)
14. Either (type)
15. Either/ (2 definitions)
16. Exception (type)
17. Exception/ (1 definition)
18. Float (builtin type)
19. Float/ (38 definitions)
20. Handle/ (1 definition)
21. IO/ (3 definitions)
22. ImmutableArray (builtin type)
23. ImmutableArray/ (1 definition)
24. ImmutableByteArray (builtin type)
25. ImmutableByteArray/ (4 definitions)
26. Int (builtin type)
27. Int/ (31 definitions)
28. IsPropagated (type)
29. IsPropagated/ (1 definition)
30. IsTest (type)
31. IsTest/ (1 definition)
32. Link (type)
33. Link/ (5 definitions)
34. List (builtin type)
35. List/ (10 definitions)
36. MutableArray (builtin type)
37. MutableArray/ (3 definitions)
38. MutableByteArray (builtin type)
39. MutableByteArray/ (9 definitions)
40. Nat (builtin type)
41. Nat/ (28 definitions)
42. Optional (type)
43. Optional/ (2 definitions)
44. Ref (builtin type)
45. Ref/ (2 definitions)
46. Request (builtin type)
47. Scope (builtin type)
48. Scope/ (5 definitions)
49. SeqView (type)
50. SeqView/ (2 definitions)
51. Socket/ (1 definition)
52. Test/ (3 definitions)
53. Text (builtin type)
54. Text/ (18 definitions)
55. ThreadId/ (1 definition)
56. Tuple (type)
57. Tuple/ (1 definition)
58. Unit (type)
59. Unit/ (1 definition)
60. Universal/ (6 definitions)
61. Value (builtin type)
62. Value/ (5 definitions)
63. bug (a -> b)
64. crypto/ (12 definitions)
65. io2/ (134 definitions)
66. metadata/ (2 definitions)
67. todo (a -> b)
68. unsafe/ (1 definition)
```

View File

@ -23,7 +23,7 @@ Technically, the definitions all exist, but they have no names. `builtins.merge`
.foo> ls
1. builtin/ (391 definitions)
1. builtin/ (419 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/ (577 definitions)
1. builtin/ (605 definitions)
```
More typically, you'd start out by pulling `base.

View File

@ -121,13 +121,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.
⊙ 1. #1q6g6u3m73
⊙ 1. #1s8a7bk9ta
- Deletes:
feature1.y
⊙ 2. #9e4kqo72l2
⊙ 2. #1c6m7928vs
+ Adds / updates:
@ -138,26 +138,26 @@ 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
⊙ 3. #n59irrs1fe
⊙ 3. #j0qoj3r276
+ Adds / updates:
feature1.y
⊙ 4. #7qstntsn5f
⊙ 4. #h3kqn9af5i
> Moves:
Original name New name
x master.x
⊙ 5. #4360t4806a
⊙ 5. #argto4qqhg
+ Adds / updates:
x
□ 6. #n38tt1aodo (start of history)
□ 6. #ou466aob20 (start of history)
```
To resurrect an old version of a namespace, you can learn its hash via the `history` command, then use `fork #namespacehash .newname`.

File diff suppressed because it is too large Load Diff

View File

@ -59,16 +59,16 @@ y = 2
most recent, along with the command that got us there. Try:
`fork 2 .old`
`fork #j7ar890fgd .old` to make an old namespace
`fork #8e6k8q9nsu .old` to make an old namespace
accessible again,
`reset-root #j7ar890fgd` to reset the root namespace and
`reset-root #8e6k8q9nsu` to reset the root namespace and
its history to that of the
specified namespace.
1. #396ap2v898 : add
2. #j7ar890fgd : add
3. #7eacs027uv : builtins.merge
1. #r2injt702j : add
2. #8e6k8q9nsu : add
3. #tgct85ingr : builtins.merge
4. #sg60bvjo91 : (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
□ 1. #4vt616ak19 (start of history)
□ 1. #svtklo709a (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.
⊙ 1. #6k85v9fd02
⊙ 1. #k7oo4v3lfh
> Moves:
Original name New name
Nat.frobnicate Nat.+
⊙ 2. #0rpodsf1gq
⊙ 2. #cvqfq5n5g8
> Moves:
Original name New name
Nat.+ Nat.frobnicate
□ 3. #4vt616ak19 (start of history)
□ 3. #svtklo709a (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.
⊙ 1. #6k85v9fd02
⊙ 1. #k7oo4v3lfh
> Moves:
Original name New name
Nat.frobnicate Nat.+
⊙ 2. #0rpodsf1gq
⊙ 2. #cvqfq5n5g8
> Moves:
Original name New name
Nat.+ Nat.frobnicate
□ 3. #4vt616ak19 (start of history)
□ 3. #svtklo709a (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
□ 1. #4vt616ak19 (start of history)
□ 1. #svtklo709a (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.
@ -485,13 +485,13 @@ This checks to see that squashing correctly preserves deletions:
Note: The most recent namespace hash is immediately below this
message.
⊙ 1. #h1ecefevst
⊙ 1. #feds6g84di
- Deletes:
Nat.* Nat.+
□ 2. #4vt616ak19 (start of history)
□ 2. #svtklo709a (start of history)
```
Notice that `Nat.+` and `Nat.*` are deleted by the squash, and we see them deleted in one atomic step in the history.