Skip to content

Commit 0b7c675

Browse files
committed
Update for 1.10.0 release
1 parent 954b6c0 commit 0b7c675

86 files changed

Lines changed: 9801 additions & 49 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Change Log
22

3+
## [1.10.0](https://github.com/nicklockwood/ShapeScript/releases/tag/1.10.0) (2026-02-07)
4+
5+
- Added optional message parameter for `assert` command
6+
- Added support for loading lights from external scene files
7+
- Textures and fonts can now be imported for later use
8+
- Fixed bug with off-center convex hull calculations
9+
- Fixed bug in expression and function scope transforms
10+
- Added Quick Look extension for previewing ShapeScript files in the Finder
11+
- You can now use `if`, `switch` and `for` statements inside expressions
12+
- Fixed bug where editing texture image files wouldn't trigger a reload
13+
- Improved logging of tuple values
14+
- Bumped Euclid to version 0.8.14
15+
316
## [1.9.3](https://github.com/nicklockwood/ShapeScript/releases/tag/1.9.3) (2025-11-13)
417

518
- Fixed misalignment when using `twist` option with `extrude` command

LRUCache/LRUCache.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@
348348
016FAB3B21BFE78100AF60DC /* Debug */ = {
349349
isa = XCBuildConfiguration;
350350
buildSettings = {
351+
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
351352
ALWAYS_SEARCH_USER_PATHS = NO;
352353
CLANG_ANALYZER_NONNULL = YES;
353354
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@@ -405,6 +406,8 @@
405406
MTL_FAST_MATH = YES;
406407
ONLY_ACTIVE_ARCH = YES;
407408
SDKROOT = macosx;
409+
SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos";
410+
SUPPORTS_MACCATALYST = YES;
408411
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
409412
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
410413
SWIFT_STRICT_CONCURRENCY = complete;
@@ -420,6 +423,7 @@
420423
016FAB3C21BFE78100AF60DC /* Release */ = {
421424
isa = XCBuildConfiguration;
422425
buildSettings = {
426+
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
423427
ALWAYS_SEARCH_USER_PATHS = NO;
424428
CLANG_ANALYZER_NONNULL = YES;
425429
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@@ -470,6 +474,8 @@
470474
MTL_ENABLE_DEBUG_INFO = NO;
471475
MTL_FAST_MATH = YES;
472476
SDKROOT = macosx;
477+
SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos";
478+
SUPPORTS_MACCATALYST = YES;
473479
SWIFT_COMPILATION_MODE = wholemodule;
474480
SWIFT_OPTIMIZATION_LEVEL = "-O";
475481
SWIFT_STRICT_CONCURRENCY = complete;

Package.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ let package = Package(
55
name: "ShapeScript",
66
platforms: [
77
.macOS(.v10_15),
8-
.iOS(.v11),
9-
.tvOS(.v11),
8+
.iOS(.v14),
9+
.tvOS(.v14),
1010
],
1111
products: [
1212
.library(name: "ShapeScript", targets: ["ShapeScript"]),
@@ -15,7 +15,7 @@ let package = Package(
1515
dependencies: [
1616
.package(
1717
url: "https://github.com/nicklockwood/Euclid.git",
18-
.upToNextMinor(from: "0.8.13")
18+
.upToNextMinor(from: "0.8.14")
1919
),
2020
.package(
2121
url: "https://github.com/nicklockwood/LRUCache.git",

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,19 @@ ShapeScript is packaged as a Swift framework, which itself depends on the [Eucli
3434
To install the ShapeScript framework using CocoaPods, add the following to your Podfile:
3535

3636
```ruby
37-
pod 'ShapeScript', '~> 1.9.3'
37+
pod 'ShapeScript', '~> 1.10.0'
3838
```
3939

4040
To install using Carthage, add this to your Cartfile:
4141

4242
```ogdl
43-
github "nicklockwood/ShapeScript" ~> 1.9.3
43+
github "nicklockwood/ShapeScript" ~> 1.10.0
4444
```
4545

4646
To install using Swift Package Manager, add this to the `dependencies:` section in your Package.swift file:
4747

4848
```swift
49-
.package(url: "https://github.com/nicklockwood/ShapeScript.git", .upToNextMinor(from: "1.9.3")),
49+
.package(url: "https://github.com/nicklockwood/ShapeScript.git", .upToNextMinor(from: "1.10.0")),
5050
```
5151

5252
The repository also includes ShapeScript Viewer apps for iOS and macOS, a cut-down version of the full ShapeScript apps available on the [Mac](https://apps.apple.com/app/id1441135869) and [iOS](https://apps.apple.com/app/id1606439346) app stores. It is not currently possible to install or run these apps using CocoaPods, Carthage or Swift Package Manager but you can run them by opening the included Xcode project and selecting the `Viewer (Mac)` or `Viewer (iOS)` schemes. For Linux, see [usage instructions](#usage-linux) below.

SVGPath/SVGPath.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@
277277
016FAB3B21BFE78100AF60DC /* Debug */ = {
278278
isa = XCBuildConfiguration;
279279
buildSettings = {
280+
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
280281
ALWAYS_SEARCH_USER_PATHS = NO;
281282
CLANG_ANALYZER_NONNULL = YES;
282283
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@@ -335,6 +336,8 @@
335336
MTL_FAST_MATH = YES;
336337
ONLY_ACTIVE_ARCH = YES;
337338
SDKROOT = macosx;
339+
SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos";
340+
SUPPORTS_MACCATALYST = YES;
338341
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
339342
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
340343
SWIFT_STRICT_CONCURRENCY = complete;
@@ -350,6 +353,7 @@
350353
016FAB3C21BFE78100AF60DC /* Release */ = {
351354
isa = XCBuildConfiguration;
352355
buildSettings = {
356+
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
353357
ALWAYS_SEARCH_USER_PATHS = NO;
354358
CLANG_ANALYZER_NONNULL = YES;
355359
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@@ -401,6 +405,8 @@
401405
MTL_ENABLE_DEBUG_INFO = NO;
402406
MTL_FAST_MATH = YES;
403407
SDKROOT = macosx;
408+
SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos";
409+
SUPPORTS_MACCATALYST = YES;
404410
SWIFT_COMPILATION_MODE = wholemodule;
405411
SWIFT_OPTIMIZATION_LEVEL = "-O";
406412
SWIFT_STRICT_CONCURRENCY = complete;

ShapeScript.podspec.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ShapeScript",
3-
"version": "1.9.3",
3+
"version": "1.10.0",
44
"license": {
55
"type": "MIT",
66
"file": "LICENSE.md"
@@ -10,7 +10,7 @@
1010
"authors": "Nick Lockwood",
1111
"source": {
1212
"git": "https://github.com/nicklockwood/ShapeScript.git",
13-
"tag": "1.9.3"
13+
"tag": "1.10.0"
1414
},
1515
"source_files": ["ShapeScript", "LRUCache/Sources", "SVGPath/Sources"],
1616
"requires_arc": true,

ShapeScript.xcodeproj/project.pbxproj

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
012B51B52E8093C100D69BA4 /* ShapeScript.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D9682E8072C400C53A29 /* ShapeScript.framework */; platformFilters = (ios, maccatalyst, macos, xros, ); };
10+
012B51B52E8093C100D69BA4 /* ShapeScript.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D9682E8072C400C53A29 /* ShapeScript.framework */; };
1111
012B51B62E8093CD00D69BA4 /* Euclid.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D83E2E806BB600C53A29 /* Euclid.framework */; };
1212
012B51B72E8093CD00D69BA4 /* LRUCache.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D8562E806BEE00C53A29 /* LRUCache.framework */; };
13-
012B51B82E8093CD00D69BA4 /* SVGPath.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D84B2E806BCF00C53A29 /* SVGPath.framework */; platformFilters = (ios, maccatalyst, macos, tvos, xros, ); };
13+
012B51B82E8093CD00D69BA4 /* SVGPath.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D84B2E806BCF00C53A29 /* SVGPath.framework */; };
1414
012B51B92E80942200D69BA4 /* Examples in Resources */ = {isa = PBXBuildFile; fileRef = 01D435A22E807CBA008B915E /* Examples */; };
1515
012B51BB2E8094B000D69BA4 /* LRUCache.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D8562E806BEE00C53A29 /* LRUCache.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
16-
012B51BC2E8094B000D69BA4 /* SVGPath.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D84B2E806BCF00C53A29 /* SVGPath.framework */; platformFilters = (ios, maccatalyst, macos, tvos, xros, ); settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
16+
012B51BC2E8094B000D69BA4 /* SVGPath.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D84B2E806BCF00C53A29 /* SVGPath.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1717
012B51BD2E8094B000D69BA4 /* Euclid.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D83E2E806BB600C53A29 /* Euclid.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18-
012B51BE2E8094B000D69BA4 /* ShapeScript.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D9682E8072C400C53A29 /* ShapeScript.framework */; platformFilters = (ios, maccatalyst, macos, xros, ); settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18+
012B51BE2E8094B000D69BA4 /* ShapeScript.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 0158D9682E8072C400C53A29 /* ShapeScript.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1919
012B51BF2E80975900D69BA4 /* DocumentBrowserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0158DAF92E80783500C53A29 /* DocumentBrowserViewController.swift */; };
2020
012B51C02E80975900D69BA4 /* DocumentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0158DAFA2E80783500C53A29 /* DocumentViewController.swift */; };
2121
012B51C12E80975900D69BA4 /* Document.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0158DAF82E80783500C53A29 /* Document.swift */; };
@@ -1151,7 +1151,7 @@
11511151
"$(inherited)",
11521152
"@executable_path/Frameworks",
11531153
);
1154-
MARKETING_VERSION = 1.9.3;
1154+
MARKETING_VERSION = 1.10.0;
11551155
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptViewer;
11561156
PRODUCT_MODULE_NAME = Viewer;
11571157
PRODUCT_NAME = ShapeScript;
@@ -1189,7 +1189,7 @@
11891189
"$(inherited)",
11901190
"@executable_path/Frameworks",
11911191
);
1192-
MARKETING_VERSION = 1.9.3;
1192+
MARKETING_VERSION = 1.10.0;
11931193
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptViewer;
11941194
PRODUCT_MODULE_NAME = Viewer;
11951195
PRODUCT_NAME = ShapeScript;
@@ -1400,7 +1400,7 @@
14001400
"@executable_path/../Frameworks",
14011401
"@loader_path/Frameworks",
14021402
);
1403-
MARKETING_VERSION = 1.9.3;
1403+
MARKETING_VERSION = 1.10.0;
14041404
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
14051405
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
14061406
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptLib;
@@ -1444,7 +1444,7 @@
14441444
"@executable_path/../Frameworks",
14451445
"@loader_path/Frameworks",
14461446
);
1447-
MARKETING_VERSION = 1.9.3;
1447+
MARKETING_VERSION = 1.10.0;
14481448
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
14491449
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
14501450
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptLib;
@@ -1539,7 +1539,7 @@
15391539
"$(inherited)",
15401540
"@executable_path/../Frameworks",
15411541
);
1542-
MARKETING_VERSION = 1.9.3;
1542+
MARKETING_VERSION = 1.10.0;
15431543
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptViewer;
15441544
PRODUCT_MODULE_NAME = Viewer;
15451545
PRODUCT_NAME = "ShapeScript Viewer";
@@ -1586,7 +1586,7 @@
15861586
"$(inherited)",
15871587
"@executable_path/../Frameworks",
15881588
);
1589-
MARKETING_VERSION = 1.9.3;
1589+
MARKETING_VERSION = 1.10.0;
15901590
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptViewer;
15911591
PRODUCT_MODULE_NAME = Viewer;
15921592
PRODUCT_NAME = "ShapeScript Viewer";
@@ -1620,7 +1620,7 @@
16201620
"@executable_path/../../../../Frameworks",
16211621
);
16221622
MACOSX_DEPLOYMENT_TARGET = 10.15;
1623-
MARKETING_VERSION = 1.9.3;
1623+
MARKETING_VERSION = 1.10.0;
16241624
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptViewer.Preview;
16251625
PRODUCT_NAME = "$(TARGET_NAME)";
16261626
SDKROOT = macosx;
@@ -1657,7 +1657,7 @@
16571657
"@executable_path/../../../../Frameworks",
16581658
);
16591659
MACOSX_DEPLOYMENT_TARGET = 10.15;
1660-
MARKETING_VERSION = 1.9.3;
1660+
MARKETING_VERSION = 1.10.0;
16611661
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.ShapeScriptViewer.Preview;
16621662
PRODUCT_NAME = "$(TARGET_NAME)";
16631663
SDKROOT = macosx;

ShapeScript/Interpreter.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Foundation
1111

1212
// MARK: Public interface
1313

14-
public let version: String = "1.9.3"
14+
public let version: String = "1.10.0"
1515

1616
public func evaluate(
1717
_ program: Program,

Viewer/Mac/WhatsNew.rtf

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,40 @@ What's New in ShapeScript?\
1111
\
1212
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
1313

14+
\f1\b\fs28 \cf2 ShapeScript 1.10.0 \'97 2026-02-07\
15+
\
16+
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
17+
\cf2 \kerning1\expnd0\expndtw0 \'95
18+
\f0\b0 \expnd0\expndtw0\kerning0
19+
Added optional message parameter for `assert` command.\
20+
\ \'95
21+
\f0\b0 \expnd0\expndtw0\kerning0
22+
Added support for loading lights from external scene files.\
23+
\ \'95
24+
\f0\b0 \expnd0\expndtw0\kerning0
25+
Textures and fonts can now be imported for later use.\
26+
\ \'95
27+
\f0\b0 \expnd0\expndtw0\kerning0
28+
Fixed bug with off-center convex hull calculations.\
29+
\ \'95
30+
\f0\b0 \expnd0\expndtw0\kerning0
31+
Fixed bug in expression and function scope transforms.\
32+
\ \'95
33+
\f0\b0 \expnd0\expndtw0\kerning0
34+
Added Quick Look extension for previewing ShapeScript files in the Finder.\
35+
\ \'95
36+
\f0\b0 \expnd0\expndtw0\kerning0
37+
You can now use `if`, `switch` and `for` statements inside expressions.\
38+
\ \'95
39+
\f0\b0 \expnd0\expndtw0\kerning0
40+
Fixed bug where editing texture image files wouldn't trigger a reload.\
41+
\ \'95
42+
\f0\b0 \expnd0\expndtw0\kerning0
43+
Improved logging of tuple values.\
44+
\ \'95
45+
\f0\b0 \expnd0\expndtw0\kerning0
46+
Bumped Euclid to version 0.8.14.\
47+
\
1448
\f1\b\fs28 \cf2 ShapeScript 1.9.3 \'97 2025-11-13\
1549
\
1650
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0

Viewer/iOS/WhatsNew.rtf

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,41 @@
55
\paperw11900\paperh16840\margl1440\margr1440\vieww24140\viewh18420\viewkind0
66
\deftab720
77

8+
\f0\b \cf2 ShapeScript 1.10.0 \'97 2026-02-07\
9+
\
10+
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
11+
\cf2 \kerning1\expnd0\expndtw0
12+
\f1\b0 \expnd0\expndtw0\kerning0 \'95
13+
\f1\b0 \expnd0\expndtw0\kerning0
14+
Added optional message parameter for `assert` command.\
15+
\ \'95
16+
\f1\b0 \expnd0\expndtw0\kerning0
17+
Added support for loading lights from external scene files.\
18+
\ \'95
19+
\f1\b0 \expnd0\expndtw0\kerning0
20+
Textures and fonts can now be imported for later use.\
21+
\ \'95
22+
\f1\b0 \expnd0\expndtw0\kerning0
23+
Fixed bug with off-center convex hull calculations.\
24+
\ \'95
25+
\f1\b0 \expnd0\expndtw0\kerning0
26+
Fixed bug in expression and function scope transforms.\
27+
\ \'95
28+
\f1\b0 \expnd0\expndtw0\kerning0
29+
Added Quick Look extension for previewing ShapeScript files in the Finder.\
30+
\ \'95
31+
\f1\b0 \expnd0\expndtw0\kerning0
32+
You can now use `if`, `switch` and `for` statements inside expressions.\
33+
\ \'95
34+
\f1\b0 \expnd0\expndtw0\kerning0
35+
Fixed bug where editing texture image files wouldn't trigger a reload.\
36+
\ \'95
37+
\f1\b0 \expnd0\expndtw0\kerning0
38+
Improved logging of tuple values.\
39+
\ \'95
40+
\f1\b0 \expnd0\expndtw0\kerning0
41+
Bumped Euclid to version 0.8.14.\
42+
\
843
\f0\b \cf2 ShapeScript 1.9.3 \'97 2025-11-13\
944
\
1045
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0

0 commit comments

Comments
 (0)