Skip to content

Commit 1881a3a

Browse files
Your Nameclaude
andcommitted
refactor: align examples with hyperpolymath language policy
Replace banned languages with approved alternatives: Python → Julia: - Removed python/ example (banned per language policy) - Added julia/ example with Project.toml and example.jl - Julia used for data processing and batch scripts per RSR npm → Deno: - Removed package.json from javascript/ example - Added deno.json for Deno package management - Updated index.js to use Deno-native import.meta.main - Deno replaces Node.js/npm per language policy JavaScript → ReScript in multi-language: - Removed utils.js from multi-language example - Added Utils.res (ReScript file with MIT license) - Added rescript.json configuration - ReScript is primary application language, compiles to JS - Updated multi-language README to reflect ReScript usage Documentation updates: - Updated v1.0/examples/README.adoc to list Julia and Deno - Updated usage examples for all three languages - Clarified multi-language example now uses Rust + ReScript All changes align with hyperpolymath language policy: - No Python (use Julia instead) - No npm/Node.js (use Deno instead) - No plain JavaScript where ReScript can be used - TypeScript banned (ReScript is the replacement) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 711674c commit 1881a3a

File tree

12 files changed

+148
-102
lines changed

12 files changed

+148
-102
lines changed

v1.0/examples/README.adoc

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414
| Rust
1515

1616
| link:javascript/[javascript/]
17-
| JavaScript/TypeScript project with PMPL
18-
| JavaScript/TypeScript
17+
| Deno/JavaScript project with PMPL
18+
| JavaScript (Deno)
1919

20-
| link:python/[python/]
21-
| Python package with PMPL licensing
22-
| Python
20+
| link:julia/[julia/]
21+
| Julia package with PMPL licensing
22+
| Julia
2323

2424
| link:multi-language/[multi-language/]
25-
| Multi-language project combining PMPL with other licenses
26-
| Mixed
25+
| Multi-language project: PMPL (Rust) + MIT (ReScript)
26+
| Rust + ReScript
2727
|===
2828

2929
== Quick Start
@@ -40,8 +40,14 @@ Each example includes:
4040

4141
[source,bash]
4242
----
43-
cd v1.0/examples/rust
44-
cargo build
43+
# Rust example
44+
cd v1.0/examples/rust && cargo build
45+
46+
# Julia example
47+
cd v1.0/examples/julia && julia example.jl
48+
49+
# Deno example
50+
cd v1.0/examples/javascript && deno run index.js
4551
----
4652

4753
== Common Patterns

v1.0/examples/javascript/deno.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "@pmpl/example",
3+
"version": "0.1.0",
4+
"exports": "./index.js",
5+
"tasks": {
6+
"dev": "deno run --watch index.js",
7+
"test": "deno test"
8+
},
9+
"fmt": {
10+
"useTabs": false,
11+
"lineWidth": 100,
12+
"indentWidth": 2,
13+
"semiColons": true
14+
},
15+
"lint": {
16+
"rules": {
17+
"tags": ["recommended"]
18+
}
19+
}
20+
}

v1.0/examples/javascript/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ export function getLicenseInfo() {
2929
};
3030
}
3131

32-
// Example usage
33-
if (import.meta.url === `file://${process.argv[1]}`) {
32+
// Example usage (Deno)
33+
if (import.meta.main) {
3434
console.log(greet("World"));
3535
console.log("License info:", getLicenseInfo());
3636
}

v1.0/examples/javascript/package.json

Lines changed: 0 additions & 17 deletions
This file was deleted.

v1.0/examples/julia/Project.toml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# SPDX-FileCopyrightText: 2025 Palimpsest Stewardship Council
3+
4+
name = "PMPLJuliaExample"
5+
uuid = "12345678-1234-5678-1234-567812345678"
6+
authors = ["Palimpsest Stewardship Council"]
7+
version = "0.1.0"
8+
9+
[compat]
10+
julia = "1.6"
11+
12+
# Note: Julia packages use SPDX identifiers
13+
# This project demonstrates PMPL-1.0-or-later licensing
14+
#
15+
# File-level copyleft means:
16+
# - This file and modifications to it must remain PMPL-1.0-or-later
17+
# - You can combine this with files under MIT, BSD, Apache-2.0, etc.
18+
# - The combined project can be distributed under your choice of compatible license

v1.0/examples/julia/example.jl

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# SPDX-FileCopyrightText: 2025 Palimpsest Stewardship Council
3+
4+
"""
5+
greet(name::String) -> String
6+
7+
Example Julia function demonstrating PMPL-1.0 licensing.
8+
9+
This file is licensed under PMPL-1.0-or-later. Any modifications to this
10+
file must retain the PMPL license, but you can combine it with other
11+
files under different licenses in the same project.
12+
"""
13+
function greet(name::String)
14+
println("Hello, $name! This code is licensed under PMPL-1.0-or-later.")
15+
end
16+
17+
"""
18+
get_license_info() -> Dict{String, Any}
19+
20+
Returns license information for this code.
21+
"""
22+
function get_license_info()
23+
Dict(
24+
"identifier" => "PMPL-1.0-or-later",
25+
"name" => "Palimpsest-MPL License v1.0 or later",
26+
"compatible_with" => ["MIT", "BSD", "Apache-2.0", "GPL", "MPL-2.0", "LGPL"],
27+
"copyleft_scope" => "file-level"
28+
)
29+
end
30+
31+
# Example usage
32+
if abspath(PROGRAM_FILE) == @__FILE__
33+
greet("Julia Developer")
34+
info = get_license_info()
35+
println("\nLicense Information:")
36+
for (key, value) in info
37+
println(" $key: $value")
38+
end
39+
end

v1.0/examples/multi-language/README.adoc

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,19 @@ multi-language/
1111
├── LICENSES/ ← Individual license texts
1212
│ ├── PMPL-1.0-or-later.txt
1313
│ └── MIT.txt
14+
├── rescript.json ← ReScript config
1415
├── src/
15-
│ ├── core.rs ← PMPL-1.0-or-later
16-
│ └── utils.js ← MIT
16+
│ ├── core.rs ← PMPL-1.0-or-later (Rust)
17+
│ └── Utils.res ← MIT (ReScript)
1718
└── README.adoc
1819
----
1920

2021
== File Licensing
2122

2223
Each file has its own license declared via SPDX headers:
2324

24-
* `src/core.rs` - PMPL-1.0-or-later (file-level copyleft)
25-
* `src/utils.js` - MIT (permissive)
25+
* `src/core.rs` - PMPL-1.0-or-later (file-level copyleft, Rust)
26+
* `src/Utils.res` - MIT (permissive, ReScript → compiles to JavaScript)
2627

2728
== Distribution
2829

@@ -49,8 +50,11 @@ See link:../../docs/COMPATIBILITY.adoc[] for details.
4950
[source,bash]
5051
----
5152
# PMPL file (copyleft)
52-
./src/core.rs → Must stay PMPL if modified
53+
./src/core.rs → Must stay PMPL if modified
5354
5455
# MIT file (permissive)
55-
./src/utils.js → Can be relicensed if needed
56+
./src/Utils.res → Can be relicensed if needed
57+
58+
# Build ReScript
59+
rescript → Compiles Utils.res to Utils.res.js
5660
----
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "pmpl-multi-language-example",
3+
"version": "0.1.0",
4+
"sources": [
5+
{
6+
"dir": "src",
7+
"subdirs": true
8+
}
9+
],
10+
"package-specs": [
11+
{
12+
"module": "es6",
13+
"in-source": true
14+
}
15+
],
16+
"suffix": ".res.js",
17+
"bs-dependencies": []
18+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// SPDX-License-Identifier: MIT
2+
// SPDX-FileCopyrightText: 2025 Example Contributor
3+
4+
/**
5+
* Utility functions under MIT license.
6+
*
7+
* This file uses permissive MIT licensing and can be freely used.
8+
* ReScript code compiles to JavaScript.
9+
*/
10+
11+
@val external log: string => unit = "console.log"
12+
13+
let mitFunction = () => {
14+
log("This function is licensed under MIT")
15+
log("Permissive: Can be relicensed if needed")
16+
log("ReScript compiles to clean, readable JavaScript")
17+
}
18+
19+
let getLicenseInfo = () => {
20+
{
21+
"identifier": "MIT",
22+
"name": "MIT License",
23+
"compatible_with_pmpl": true,
24+
"file_type": "permissive",
25+
}
26+
}

v1.0/examples/multi-language/src/utils.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)