Skip to content

Commit 156a5ae

Browse files
committed
Implement SRFI 69 from scratch.
1 parent 2a4272a commit 156a5ae

File tree

6 files changed

+540
-3
lines changed

6 files changed

+540
-3
lines changed

LispKit.xcodeproj/project.pbxproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@
8686
CC5E473920C51E0A00F21B03 /* CommandLineKit.framework.dSYM in Copy dSYM data */ = {isa = PBXBuildFile; fileRef = CC5E473820C51C2D00F21B03 /* CommandLineKit.framework.dSYM */; };
8787
CC5E473A20C51EC400F21B03 /* CommandLineKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CC5E473420C51BFE00F21B03 /* CommandLineKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
8888
CC5E473B20C51ED900F21B03 /* CommandLineKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CC5E473420C51BFE00F21B03 /* CommandLineKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
89+
CC5E473D20D2D92900F21B03 /* 69.sld in Copy pre-installed SRFI libraries */ = {isa = PBXBuildFile; fileRef = CC5E473C20D2D8B600F21B03 /* 69.sld */; };
90+
CC5E473F20D2DF5400F21B03 /* SRFI69.scm in Resources */ = {isa = PBXBuildFile; fileRef = CC5E473E20D2D95E00F21B03 /* SRFI69.scm */; };
8991
CC68B3A91FCCCDEE00EB4AF9 /* object.sld in Copy pre-installed LispKit libraries */ = {isa = PBXBuildFile; fileRef = CC68B3A81FCC73C300EB4AF9 /* object.sld */; };
9092
CC6A3B5C1C52E71F00E962E2 /* ListLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC6A3B5B1C52E71F00E962E2 /* ListLibrary.swift */; };
9193
CC6A3B5E1C52E8EF00E962E2 /* VectorLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC6A3B5D1C52E8EF00E962E2 /* VectorLibrary.swift */; };
@@ -367,6 +369,7 @@
367369
dstPath = LispKit/Resources/Libraries/srfi;
368370
dstSubfolderSpec = 7;
369371
files = (
372+
CC5E473D20D2D92900F21B03 /* 69.sld in Copy pre-installed SRFI libraries */,
370373
CC96D1092038B17A006AA27B /* 137.sld in Copy pre-installed SRFI libraries */,
371374
CC96D1072038AC59006AA27B /* 145.sld in Copy pre-installed SRFI libraries */,
372375
CC96D10520386A40006AA27B /* 151.sld in Copy pre-installed SRFI libraries */,
@@ -477,6 +480,8 @@
477480
CC5C71431EBD3F3F00280CF4 /* Cartfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Cartfile; sourceTree = "<group>"; };
478481
CC5E473420C51BFE00F21B03 /* CommandLineKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CommandLineKit.framework; path = Carthage/Build/Mac/CommandLineKit.framework; sourceTree = "<group>"; };
479482
CC5E473820C51C2D00F21B03 /* CommandLineKit.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = CommandLineKit.framework.dSYM; path = Carthage/Build/Mac/CommandLineKit.framework.dSYM; sourceTree = "<group>"; };
483+
CC5E473C20D2D8B600F21B03 /* 69.sld */ = {isa = PBXFileReference; lastKnownFileType = text; path = 69.sld; sourceTree = "<group>"; };
484+
CC5E473E20D2D95E00F21B03 /* SRFI69.scm */ = {isa = PBXFileReference; lastKnownFileType = text; path = SRFI69.scm; sourceTree = "<group>"; };
480485
CC68B3A81FCC73C300EB4AF9 /* object.sld */ = {isa = PBXFileReference; lastKnownFileType = text; path = object.sld; sourceTree = "<group>"; };
481486
CC6A3B5B1C52E71F00E962E2 /* ListLibrary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = ListLibrary.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
482487
CC6A3B5D1C52E8EF00E962E2 /* VectorLibrary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = VectorLibrary.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
@@ -674,6 +679,7 @@
674679
CC2345421F655C0A00C38817 /* Datatypes.scm */,
675680
CC436C411FFD94870095559E /* Logic.scm */,
676681
CC8218901E3FFFAB009CA653 /* SRFI19.scm */,
682+
CC5E473E20D2D95E00F21B03 /* SRFI69.scm */,
677683
CC48EBC51F3E437300233FA9 /* SRFI35.scm */,
678684
CC7AAE6D1EC8AEBE00B0F66C /* SRFI121.scm */,
679685
CC5847F91E4FC55700BE6497 /* SRFI132.scm */,
@@ -748,6 +754,7 @@
748754
CC8A2AB01F40672700D1E4D8 /* 48.sld */,
749755
CC79DE031F883FED00CE7A5D /* 63.sld */,
750756
CCC072451F9AA8B70063974E /* 64.sld */,
757+
CC5E473C20D2D8B600F21B03 /* 69.sld */,
751758
CC7AAE6B1EC859E100B0F66C /* 121.sld */,
752759
CCC072471F9C047D0063974E /* 128.sld */,
753760
CC58480C1E56BD1800BE6497 /* 132.sld */,
@@ -1140,6 +1147,7 @@
11401147
buildActionMask = 2147483647;
11411148
files = (
11421149
CCC41DC41D2649E9003CB4D0 /* DelayedEvaluation.scm in Resources */,
1150+
CC5E473F20D2DF5400F21B03 /* SRFI69.scm in Resources */,
11431151
CC131C521CDE840C006C030C /* LocalSyntaxRules.scm in Resources */,
11441152
CC48EBC61F3E460900233FA9 /* SRFI35.scm in Resources */,
11451153
CC8C6EC81CFA65F200126BDD /* ControlFlow.scm in Resources */,

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,7 @@ The following [SRFI](https://srfi.schemers.org/) libraries have been ported to
6969
framework:
7070

7171
- [SRFI 1: List Library](https://srfi.schemers.org/srfi-1/srfi-1.html)
72-
- [SRFI 2: AND-LET* - an AND with local bindings, a guarded LET* special
73-
form](https://srfi.schemers.org/srfi-2/srfi-2.html)
72+
- [SRFI 2: AND-LET* - an AND with local bindings, a guarded LET* special form](https://srfi.schemers.org/srfi-2/srfi-2.html)
7473
- [SRFI 8: receive - Binding to multiple values](https://srfi.schemers.org/srfi-8/srfi-8.html)
7574
- [SRFI 17: Generalized set!](https://srfi.schemers.org/srfi-17/srfi-17.html)
7675
- [SRFI 19: Time Data Types and Procedures](https://srfi.schemers.org/srfi-19/srfi-19.html)
@@ -82,6 +81,7 @@ framework:
8281
- [SRFI 48: Intermediate Format Strings](https://srfi.schemers.org/srfi-48/srfi-48.html)
8382
- [SRFI 63: Homogeneous and Heterogeneous Arrays](https://srfi.schemers.org/srfi-63/srfi-63.html)
8483
- [SRFI 64: A Scheme API for test suites](https://srfi.schemers.org/srfi-64/srfi-64.html)
84+
- [SRFI 69: Basic hash tables](https://srfi.schemers.org/srfi-69/srfi-69.html)
8585
- [SRFI 121: Generators](https://srfi.schemers.org/srfi-121/srfi-121.html)
8686
- [SRFI 128: Comparators](https://srfi.schemers.org/srfi-128/srfi-128.html)
8787
- [SRFI 132: Sort Libraries](https://srfi.schemers.org/srfi-132/srfi-132.html)

Sources/LispKit/Primitives/HashTableLibrary.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public final class HashTableLibrary: NativeLibrary {
5151
public override func dependencies() {
5252
self.`import`(from: ["lispkit", "core"], "define", "lambda", "equal?", "eqv?", "eq?", "not",
5353
"call-with-values")
54-
self.`import`(from: ["lispkit", "control"], "let*", "letrec", "if", "do")
54+
self.`import`(from: ["lispkit", "control"], "let", "let*", "letrec", "if", "do")
5555
self.`import`(from: ["lispkit", "list"], "cons", "car", "cdr", "pair?", "for-each", "value",
5656
"null?")
5757
self.`import`(from: ["lispkit", "math"], ">", "+", "*")

0 commit comments

Comments
 (0)