From c5778115d54f8adc0e0fc9c9e0f51046764241a6 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 29 Nov 2022 12:01:32 -0700 Subject: [PATCH 1/3] Enable concise top-level imports --- src/lib.mo | 94 +++++++++++++++++++++++++++++++++++++++++++++++ utils/generate.js | 21 +++++++++++ 2 files changed, 115 insertions(+) create mode 100644 src/lib.mo create mode 100644 utils/generate.js diff --git a/src/lib.mo b/src/lib.mo new file mode 100644 index 000000000..6f4778e78 --- /dev/null +++ b/src/lib.mo @@ -0,0 +1,94 @@ + +import Array_ "Array"; +import AssocList_ "AssocList"; +import Blob_ "Blob"; +import Bool_ "Bool"; +import Buffer_ "Buffer"; +import CertifiedData_ "CertifiedData"; +import Char_ "Char"; +import Debug_ "Debug"; +import Deque_ "Deque"; +import Error_ "Error"; +import ExperimentalCycles_ "ExperimentalCycles"; +import ExperimentalInternetComputer_ "ExperimentalInternetComputer"; +import ExperimentalStableMemory_ "ExperimentalStableMemory"; +import Float_ "Float"; +import Func_ "Func"; +import Hash_ "Hash"; +import HashMap_ "HashMap"; +import Heap_ "Heap"; +import Int_ "Int"; +import Int16_ "Int16"; +import Int32_ "Int32"; +import Int64_ "Int64"; +import Int8_ "Int8"; +import Iter_ "Iter"; +import IterType_ "IterType"; +import List_ "List"; +import Nat_ "Nat"; +import Nat16_ "Nat16"; +import Nat32_ "Nat32"; +import Nat64_ "Nat64"; +import Nat8_ "Nat8"; +import None_ "None"; +import Option_ "Option"; +import Order_ "Order"; +import Prelude_ "Prelude"; +import Principal_ "Principal"; +import RBTree_ "RBTree"; +import Random_ "Random"; +import Result_ "Result"; +import Stack_ "Stack"; +import Text_ "Text"; +import Time_ "Time"; +import Trie_ "Trie"; +import TrieMap_ "TrieMap"; +import TrieSet_ "TrieSet"; + +module Base { + public let Array = Array_; + public let AssocList = AssocList_; + public let Blob = Blob_; + public let Bool = Bool_; + public let Buffer = Buffer_; + public let CertifiedData = CertifiedData_; + public let Char = Char_; + public let Debug = Debug_; + public let Deque = Deque_; + public let Error = Error_; + public let ExperimentalCycles = ExperimentalCycles_; + public let ExperimentalInternetComputer = ExperimentalInternetComputer_; + public let ExperimentalStableMemory = ExperimentalStableMemory_; + public let Float = Float_; + public let Func = Func_; + public let Hash = Hash_; + public let HashMap = HashMap_; + public let Heap = Heap_; + public let Int = Int_; + public let Int16 = Int16_; + public let Int32 = Int32_; + public let Int64 = Int64_; + public let Int8 = Int8_; + public let Iter = Iter_; + public let IterType = IterType_; + public let List = List_; + public let Nat = Nat_; + public let Nat16 = Nat16_; + public let Nat32 = Nat32_; + public let Nat64 = Nat64_; + public let Nat8 = Nat8_; + public let None = None_; + public let Option = Option_; + public let Order = Order_; + public let Prelude = Prelude_; + public let Principal = Principal_; + public let RBTree = RBTree_; + public let Random = Random_; + public let Result = Result_; + public let Stack = Stack_; + public let Text = Text_; + public let Time = Time_; + public let Trie = Trie_; + public let TrieMap = TrieMap_; + public let TrieSet = TrieSet_; +} diff --git a/utils/generate.js b/utils/generate.js new file mode 100644 index 000000000..97d5e8b70 --- /dev/null +++ b/utils/generate.js @@ -0,0 +1,21 @@ +const fs = require("fs"); +const path = require("path"); + +const directory = path.resolve(__dirname, "../src"); + +const names = fs + .readdirSync(directory) + .filter((f) => f.endsWith(".mo") && f !== "lib.mo") + .map((f) => f.slice(0, -".mo".length)); + +const libSource = ` +${names.map((n) => `import ${n}_ "${n}";`).join("\n")} + +module Base { +${names.map((n) => ` public let ${n} = ${n}_;`).join("\n")} +} +`; + +fs.writeFileSync(path.join(directory, "lib.mo"), libSource); + +console.log(libSource); From fb874ea0078deda7c00939a9b3b7cb59ab5f7b08 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 29 Nov 2022 12:25:50 -0700 Subject: [PATCH 2/3] Reduce number of re-exports to appease compiler --- src/lib.mo | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/src/lib.mo b/src/lib.mo index 6f4778e78..ef3954452 100644 --- a/src/lib.mo +++ b/src/lib.mo @@ -1,21 +1,12 @@ import Array_ "Array"; -import AssocList_ "AssocList"; import Blob_ "Blob"; import Bool_ "Bool"; -import Buffer_ "Buffer"; -import CertifiedData_ "CertifiedData"; import Char_ "Char"; import Debug_ "Debug"; -import Deque_ "Deque"; import Error_ "Error"; -import ExperimentalCycles_ "ExperimentalCycles"; -import ExperimentalInternetComputer_ "ExperimentalInternetComputer"; -import ExperimentalStableMemory_ "ExperimentalStableMemory"; import Float_ "Float"; import Func_ "Func"; -import Hash_ "Hash"; -import HashMap_ "HashMap"; import Heap_ "Heap"; import Int_ "Int"; import Int16_ "Int16"; @@ -23,72 +14,39 @@ import Int32_ "Int32"; import Int64_ "Int64"; import Int8_ "Int8"; import Iter_ "Iter"; -import IterType_ "IterType"; import List_ "List"; import Nat_ "Nat"; import Nat16_ "Nat16"; import Nat32_ "Nat32"; import Nat64_ "Nat64"; import Nat8_ "Nat8"; -import None_ "None"; import Option_ "Option"; -import Order_ "Order"; -import Prelude_ "Prelude"; import Principal_ "Principal"; -import RBTree_ "RBTree"; -import Random_ "Random"; import Result_ "Result"; -import Stack_ "Stack"; import Text_ "Text"; -import Time_ "Time"; -import Trie_ "Trie"; -import TrieMap_ "TrieMap"; -import TrieSet_ "TrieSet"; module Base { public let Array = Array_; - public let AssocList = AssocList_; public let Blob = Blob_; public let Bool = Bool_; - public let Buffer = Buffer_; - public let CertifiedData = CertifiedData_; public let Char = Char_; public let Debug = Debug_; - public let Deque = Deque_; - public let Error = Error_; - public let ExperimentalCycles = ExperimentalCycles_; - public let ExperimentalInternetComputer = ExperimentalInternetComputer_; - public let ExperimentalStableMemory = ExperimentalStableMemory_; public let Float = Float_; public let Func = Func_; - public let Hash = Hash_; - public let HashMap = HashMap_; - public let Heap = Heap_; public let Int = Int_; public let Int16 = Int16_; public let Int32 = Int32_; public let Int64 = Int64_; public let Int8 = Int8_; public let Iter = Iter_; - public let IterType = IterType_; public let List = List_; public let Nat = Nat_; public let Nat16 = Nat16_; public let Nat32 = Nat32_; public let Nat64 = Nat64_; public let Nat8 = Nat8_; - public let None = None_; public let Option = Option_; - public let Order = Order_; - public let Prelude = Prelude_; public let Principal = Principal_; - public let RBTree = RBTree_; - public let Random = Random_; public let Result = Result_; - public let Stack = Stack_; public let Text = Text_; - public let Time = Time_; - public let Trie = Trie_; - public let TrieMap = TrieMap_; - public let TrieSet = TrieSet_; } From f1bea13128172ff82e633bfd1244d71e6cf9dedf Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 6 Dec 2022 16:27:55 -0700 Subject: [PATCH 3/3] Include everything in lib.mo except Experimental modules --- src/lib.mo | 36 ++++++++++++++++++++++++++++++++++++ utils/generate.js | 9 ++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/lib.mo b/src/lib.mo index ef3954452..6f2c45e5a 100644 --- a/src/lib.mo +++ b/src/lib.mo @@ -1,12 +1,18 @@ import Array_ "Array"; +import AssocList_ "AssocList"; import Blob_ "Blob"; import Bool_ "Bool"; +import Buffer_ "Buffer"; +import CertifiedData_ "CertifiedData"; import Char_ "Char"; import Debug_ "Debug"; +import Deque_ "Deque"; import Error_ "Error"; import Float_ "Float"; import Func_ "Func"; +import Hash_ "Hash"; +import HashMap_ "HashMap"; import Heap_ "Heap"; import Int_ "Int"; import Int16_ "Int16"; @@ -14,39 +20,69 @@ import Int32_ "Int32"; import Int64_ "Int64"; import Int8_ "Int8"; import Iter_ "Iter"; +import IterType_ "IterType"; import List_ "List"; import Nat_ "Nat"; import Nat16_ "Nat16"; import Nat32_ "Nat32"; import Nat64_ "Nat64"; import Nat8_ "Nat8"; +import None_ "None"; import Option_ "Option"; +import Order_ "Order"; +import Prelude_ "Prelude"; import Principal_ "Principal"; +import RBTree_ "RBTree"; +import Random_ "Random"; import Result_ "Result"; +import Stack_ "Stack"; import Text_ "Text"; +import Time_ "Time"; +import Trie_ "Trie"; +import TrieMap_ "TrieMap"; +import TrieSet_ "TrieSet"; module Base { public let Array = Array_; + public let AssocList = AssocList_; public let Blob = Blob_; public let Bool = Bool_; + public let Buffer = Buffer_; + public let CertifiedData = CertifiedData_; public let Char = Char_; public let Debug = Debug_; + public let Deque = Deque_; + public let Error = Error_; public let Float = Float_; public let Func = Func_; + public let Hash = Hash_; + public let HashMap = HashMap_; + public let Heap = Heap_; public let Int = Int_; public let Int16 = Int16_; public let Int32 = Int32_; public let Int64 = Int64_; public let Int8 = Int8_; public let Iter = Iter_; + public let IterType = IterType_; public let List = List_; public let Nat = Nat_; public let Nat16 = Nat16_; public let Nat32 = Nat32_; public let Nat64 = Nat64_; public let Nat8 = Nat8_; + public let None = None_; public let Option = Option_; + public let Order = Order_; + public let Prelude = Prelude_; public let Principal = Principal_; + public let RBTree = RBTree_; + public let Random = Random_; public let Result = Result_; + public let Stack = Stack_; public let Text = Text_; + public let Time = Time_; + public let Trie = Trie_; + public let TrieMap = TrieMap_; + public let TrieSet = TrieSet_; } diff --git a/utils/generate.js b/utils/generate.js index 97d5e8b70..1606882c1 100644 --- a/utils/generate.js +++ b/utils/generate.js @@ -1,12 +1,19 @@ const fs = require("fs"); const path = require("path"); +const exclude = [ + "ExperimentalCycles", + "ExperimentalInternetComputer", + "ExperimentalStableMemory", +]; + const directory = path.resolve(__dirname, "../src"); const names = fs .readdirSync(directory) .filter((f) => f.endsWith(".mo") && f !== "lib.mo") - .map((f) => f.slice(0, -".mo".length)); + .map((f) => f.slice(0, -".mo".length)) + .filter((n) => !exclude.includes(n)); const libSource = ` ${names.map((n) => `import ${n}_ "${n}";`).join("\n")}