aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux.lux')
-rw-r--r--stdlib/source/library/lux.lux264
1 files changed, 132 insertions, 132 deletions
diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux
index e2ac5790e..bf922ec17 100644
--- a/stdlib/source/library/lux.lux
+++ b/stdlib/source/library/lux.lux
@@ -5,14 +5,6 @@
["" 0 0]
#0)
-(.def# double_quote
- (.int_char# +34)
- #0)
-
-(.def# \n
- (.int_char# +10)
- #0)
-
(.def# prelude
"library/lux"
#1)
@@ -981,18 +973,23 @@
([_ full_name]
({[module name]
({"" name
- _ (text#composite module (text#composite ..symbol_separator name))}
+ _ (.text_composite# module ..symbol_separator name)}
module)}
full_name)))
#0)
+(.def# \''
+ (.is# Text
+ (.int_char# +34))
+ #0)
+
... TODO: Allow asking the compiler for the name of the definition
... currently being defined. That name can then be fed into
... 'wrong_syntax_error' for easier maintenance of the error_messages.
(.def# wrong_syntax_error
(.is# {#Function Symbol Text}
([_ it]
- (text#composite "Wrong syntax for " (symbol#encoded it))))
+ (.text_composite# "Wrong syntax for " \'' (symbol#encoded it) \'' ".")))
#0)
(.def# let''
@@ -1225,7 +1222,7 @@
syntax}
syntax))
-(def' .private (n/* param subject)
+(def' .private (n#* param subject)
{#Function Nat {#Function Nat Nat}}
(.as# Nat
(.int_*# (.as# Int param)
@@ -1262,9 +1259,7 @@
(def' .private quantification_level
Text
- (.text_composite# double_quote
- "quantification_level"
- double_quote))
+ (.text_composite# \'' "quantification_level" \''))
(def' .private quantified
{#Function Code Code}
@@ -1879,15 +1874,15 @@
{#Right [state real_name]}
{#Default _}
- {#Left (all text#composite "Unknown definition: " (symbol#encoded full_name))}}
+ {#Left (.text_composite# "Unknown definition: " (symbol#encoded full_name))}}
constant)
{#None}
- {#Left (all text#composite "Unknown definition: " (symbol#encoded full_name))}}
+ {#Left (.text_composite# "Unknown definition: " (symbol#encoded full_name))}}
(property#value name definitions))
{#None}
- {#Left (all text#composite "Unknown module: " module " @ " (symbol#encoded full_name))}}
+ {#Left (.text_composite# "Unknown module: " module " @ " (symbol#encoded full_name))}}
(property#value module modules))))
(def' .private (|List<Code>| expression)
@@ -1992,7 +1987,7 @@
..#scope_type_vars scope_type_vars
..#eval _eval] state]
({{#None}
- {#Left (text#composite "Unknown definition: " (symbol#encoded name))}
+ {#Left (.text_composite# "Unknown definition: " (symbol#encoded name))}
{#Some [..#definitions definitions
..#module_hash _
@@ -2000,7 +1995,7 @@
..#imports _
..#module_state _]}
({{#None}
- {#Left (text#composite "Unknown definition: " (symbol#encoded name))}
+ {#Left (.text_composite# "Unknown definition: " (symbol#encoded name))}
{#Some [exported? definition]}
({{#Alias real_name}
@@ -2009,10 +2004,10 @@
{#Definition [def_type def_value]}
(if (available? expected_module current_module exported?)
{#Right [state [def_type def_value]]}
- {#Left (text#composite "Unavailable definition: " (symbol#encoded name))})
+ {#Left (.text_composite# "Unavailable definition: " (symbol#encoded name))})
{#Default _}
- {#Left (text#composite "Unknown definition: " (symbol#encoded name))}}
+ {#Left (.text_composite# "Unknown definition: " (symbol#encoded name))}}
definition)}
(property#value expected_short definitions))}
(property#value expected_module modules))))
@@ -2029,7 +2024,7 @@
(definition_value global lux)
{#Some _}
- {#Left (text#composite "Not a global value: " (symbol#encoded global))}}
+ {#Left (.text_composite# "Not a global value: " (symbol#encoded global))}}
(in_env short lux))
_
@@ -2551,7 +2546,7 @@
(-> ($ I64 Any) I64)
(.i64_and# low_mask value))
-(def' .private (n/< reference sample)
+(def' .private (n#< reference sample)
(-> Nat Nat Bit)
(let' [referenceH (high_bits reference)
sampleH (high_bits sample)]
@@ -2602,10 +2597,10 @@
(failure (..wrong_syntax_error (symbol ..with_template)))}
tokens)))
-(def' .private (n// param subject)
+(def' .private (n#/ param subject)
(-> Nat Nat Nat)
(if (.int_<# +0 (.as# Int param))
- (if (n/< param subject)
+ (if (n#< param subject)
0
1)
(let' [quotient (|> subject
@@ -2615,19 +2610,19 @@
flat (.int_*# (.as# Int param)
(.as# Int quotient))
remainder (.i64_-# flat subject)]
- (if (n/< param remainder)
+ (if (n#< param remainder)
quotient
(.i64_+# 1 quotient)))))
-(def' .private (n/% param subject)
+(def' .private (n#% param subject)
(-> Nat Nat Nat)
(let' [flat (.int_*# (.as# Int param)
- (.as# Int (n// param subject)))]
+ (.as# Int (n#/ param subject)))]
(.i64_-# flat subject)))
-(def' .private (n/min left right)
+(def' .private (n#min left right)
(-> Nat Nat Nat)
- (if (n/< right left)
+ (if (n#< right left)
left
right))
@@ -2651,9 +2646,9 @@
(function' again [input output]
(if (.i64_=# 0 input)
output
- (again (n// 10 input)
- (text#composite (|> input (n/% 10) digit::format)
- output)))))]
+ (again (n#/ 10 input)
+ (.text_composite# (|> input (n#% 10) digit::format)
+ output)))))]
(loop value ""))}
value))
@@ -2673,10 +2668,10 @@
((.is# (-> Int Text Text)
(function' again [input output]
(if (.i64_=# +0 input)
- (text#composite sign output)
+ (.text_composite# sign output)
(again (.int_/# +10 input)
- (text#composite (|> input (.int_%# +10) (.as# Nat) digit::format)
- output)))))
+ (.text_composite# (|> input (.int_%# +10) (.as# Nat) digit::format)
+ output)))))
(|> value (.int_/# +10) int#abs)
(|> value (.int_%# +10) int#abs (.as# Nat) digit::format)))))
@@ -2758,7 +2753,7 @@
(def' .private (text#encoded original)
(-> Text Text)
- (all text#composite ..double_quote original ..double_quote))
+ (.text_composite# \'' original \''))
(def' .private (code#encoded code)
(-> Code Text)
@@ -2784,25 +2779,34 @@
(symbol#encoded [module name])
[_ {#Form xs}]
- (all text#composite "(" (|> xs
- (list#each code#encoded)
- (list#interposed " ")
- list#reversed
- (list#mix text#composite "")) ")")
+ (.text_composite#
+ "("
+ (|> xs
+ (list#each code#encoded)
+ (list#interposed " ")
+ list#reversed
+ (list#mix text#composite ""))
+ ")")
[_ {#Tuple xs}]
- (all text#composite "[" (|> xs
- (list#each code#encoded)
- (list#interposed " ")
- list#reversed
- (list#mix text#composite "")) "]")
+ (.text_composite#
+ "["
+ (|> xs
+ (list#each code#encoded)
+ (list#interposed " ")
+ list#reversed
+ (list#mix text#composite ""))
+ "]")
[_ {#Variant xs}]
- (all text#composite "{" (|> xs
- (list#each code#encoded)
- (list#interposed " ")
- list#reversed
- (list#mix text#composite "")) "}")}
+ (.text_composite#
+ "{"
+ (|> xs
+ (list#each code#encoded)
+ (list#interposed " ")
+ list#reversed
+ (list#mix text#composite ""))
+ "}")}
code))
(def' .private (single_expansion token)
@@ -3135,7 +3139,7 @@
..#seed (.i64_+# 1 seed) ..#expected expected
..#location location ..#extensions extensions
..#scope_type_vars scope_type_vars ..#eval _eval]
- (local$ (all text#composite "__gensym__" prefix (nat#encoded seed)))}}
+ (local$ (.text_composite# "__gensym__" prefix (nat#encoded seed)))}}
state))
(with_template [<name> <tag>]
@@ -3166,44 +3170,44 @@
(def' .private (type#encoded type)
(-> Type Text)
({{#Nominal name params}
- (all text#composite
- "(Nominal " (text#encoded name)
- (|> params
- (list#each (function' [it] (|> it type#encoded (text#composite " "))))
- list#reversed
- (list#mix text#composite ""))
- ")")
+ (.text_composite#
+ "(Nominal " (text#encoded name)
+ (|> params
+ (list#each (function' [it] (|> it type#encoded (.text_composite# " "))))
+ list#reversed
+ (list#mix text#composite ""))
+ ")")
{#Sum _}
- (all text#composite "{" (|> (flat_variant type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) "}")
+ (.text_composite# "{" (|> (flat_variant type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) "}")
{#Product _}
- (all text#composite "[" (|> (flat_tuple type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) "]")
+ (.text_composite# "[" (|> (flat_tuple type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) "]")
{#Function _}
- (all text#composite "(-> " (|> (flat_lambda type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) ")")
+ (.text_composite# "(-> " (|> (flat_lambda type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) ")")
{#Parameter id}
(nat#encoded id)
{#Var id}
- (all text#composite "-" (nat#encoded id))
+ (.text_composite# "-" (nat#encoded id))
{#Ex id}
- (all text#composite "+" (nat#encoded id))
+ (.text_composite# "+" (nat#encoded id))
{#UnivQ env body}
- (all text#composite "(All " (type#encoded body) ")")
+ (.text_composite# "(All " (type#encoded body) ")")
{#ExQ env body}
- (all text#composite "(Ex " (type#encoded body) ")")
+ (.text_composite# "(Ex " (type#encoded body) ")")
{#Apply _}
(let' [[func args] (flat_application type)]
- (all text#composite
- "(" (type#encoded func) " "
- (|> args (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite ""))
- ")"))
+ (.text_composite#
+ "(" (type#encoded func) " "
+ (|> args (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite ""))
+ ")"))
{#Named name _}
(symbol#encoded name)}
@@ -3263,9 +3267,8 @@
(in (symbol$ name))
_
- (failure (all text#composite
- "Invalid static value: " (symbol#encoded name)
- " : " (type#encoded type)))}
+ (failure (.text_composite# "Invalid static value: " (symbol#encoded name)
+ " : " (type#encoded type)))}
(anonymous_type type))}
type+value))))]
(function' literal [only_global? token]
@@ -3361,11 +3364,12 @@
(meta#in (list))
_
- (failure (all text#composite "'when' expects an even number of tokens: " (|> branches
- (list#each code#encoded)
- (list#interposed " ")
- list#reversed
- (list#mix text#composite ""))))}
+ (failure (.text_composite# "'when' expects an even number of tokens: "
+ (|> branches
+ (list#each code#encoded)
+ (list#interposed " ")
+ list#reversed
+ (list#mix text#composite ""))))}
branches))
(def' .public when
@@ -3939,7 +3943,7 @@
{#Right state module}
_
- {#Left (all text#composite "Unknown module: " name)}))))
+ {#Left (.text_composite# "Unknown module: " name)}))))
(def (type_slot [module name])
(-> Symbol (Meta [Bit Label]))
@@ -3955,7 +3959,7 @@
(meta#in [exported (as Label value)])
_
- (failure (text#composite "Unknown slot: " (symbol#encoded [module name]))))))
+ (failure (.text_composite# "Unknown slot: " (symbol#encoded [module name]))))))
(def (slot_family expected_module expected_record)
(-> Text Type (Meta (Maybe (List Symbol))))
@@ -4060,9 +4064,8 @@
(meta#in tags)
_
- (failure (all text#composite
- "No tags available for type: "
- (type#encoded implementation_type)))))
+ (failure (.text_composite# "No tags available for type: "
+ (type#encoded implementation_type)))))
.let [tag_mappings (is (List [Text Code])
(list#each (function (_ tag)
[(product#right tag)
@@ -4077,7 +4080,7 @@
(in (list tag value))
_
- (failure (text#composite "Unknown implementation member: " slot_name)))
+ (failure (.text_composite# "Unknown implementation member: " slot_name)))
_
(failure "Invalid implementation member."))))
@@ -4092,7 +4095,7 @@
{#Item head tail}
(list#mix (function (_ right left)
- (all text#composite left separator right))
+ (.text_composite# left separator right))
head
tail)))
@@ -4391,7 +4394,7 @@
_
(when root
"" hierarchy
- _ (all text#composite root ..module_separator hierarchy))))
+ _ (.text_composite# root ..module_separator hierarchy))))
(def (normal_parallel_path hierarchy root)
(-> Text Text (Maybe Text))
@@ -4423,6 +4426,10 @@
[_ {#Item _ tail}]
(list#after (.i64_-# 1 amount) tail)))
+(def \n
+ Text
+ (.int_char# +10))
+
(def (absolute_module_name nested? relative_root module)
(-> Bit Text Text (Meta Text))
(when (relative_ups 0 module)
@@ -4434,7 +4441,7 @@
relatives
(let [parts (text#all_split_by ..module_separator relative_root)
jumps (.i64_-# 1 relatives)]
- (if (n/< (list#size parts) jumps)
+ (if (n#< (list#size parts) jumps)
(let [prefix (|> parts
list#reversed
(list#after jumps)
@@ -4443,7 +4450,7 @@
clean (.text_clip# relatives (|> module .text_size# (.i64_-# relatives)) module)
output (when (.text_size# clean)
0 prefix
- _ (all text#composite prefix ..module_separator clean))]
+ _ (.text_composite# prefix ..module_separator clean))]
(meta#in output))
(failure (.text_composite# "Cannot climb the module hierarchy..." \n
"Importing module: " module \n
@@ -4513,9 +4520,8 @@
_
(do meta#monad
[current_module current_module_name]
- (failure (all text#composite
- "Wrong syntax for import @ " current_module
- \n (code#encoded token)))))))
+ (failure (.text_composite# "Wrong syntax for import @ " current_module
+ \n (code#encoded token)))))))
imports)]
(in (list#conjoint imports'))))
@@ -4550,19 +4556,18 @@
{#Right state (list#conjoint to_alias)})
{#None}
- {#Left (all text#composite
- "Unknown module: " (text#encoded module) \n
- "Current module: " (when current_module
- {#Some current_module}
- (text#encoded current_module)
-
- {#None}
- "???") \n
- "Known modules: " (|> modules
- (list#each (function (_ [name module])
- (text$ name)))
- tuple$
- code#encoded))})
+ {#Left (.text_composite# "Unknown module: " (text#encoded module) \n
+ "Current module: " (when current_module
+ {#Some current_module}
+ (text#encoded current_module)
+
+ {#None}
+ "???") \n
+ "Known modules: " (|> modules
+ (list#each (function (_ [name module])
+ (text$ name)))
+ tuple$
+ code#encoded))})
))
(def (list#only p xs)
@@ -4592,7 +4597,7 @@
(function (_ _def)
(if (is_member? all_defs _def)
(meta#in [])
- (failure (all text#composite _def " is not defined in module " imported_module " @ " current_module)))))
+ (failure (.text_composite# _def " is not defined in module " imported_module " @ " current_module)))))
referred_defs))
(def (alias_definition imported_module def)
@@ -4761,13 +4766,13 @@
{#Right [compiler implementation_type]}
_
- {#Left (all text#composite "Unknown var: " (symbol#encoded full_name))}))
+ {#Left (.text_composite# "Unknown var: " (symbol#encoded full_name))}))
(when (definition_type full_name compiler)
{#Some implementation_type}
{#Right [compiler implementation_type]}
_
- {#Left (all text#composite "Unknown var: " (symbol#encoded full_name))})))]
+ {#Left (.text_composite# "Unknown var: " (symbol#encoded full_name))})))]
(when temp
{#Right [compiler temp]}
(let [[..#info _ ..#source _ ..#current_module _ ..#modules _
@@ -4861,7 +4866,7 @@
implementation_evidence (record_slots init_type)]
(when implementation_evidence
{#None}
- (failure (text#composite "Can only 'open' implementations: " (type#encoded init_type)))
+ (failure (.text_composite# "Can only 'open' implementations: " (type#encoded init_type)))
{#Some tags,members}
(do meta#monad
@@ -5007,9 +5012,8 @@
(in (list#conjoint declarations)))
_
- (failure (all text#composite
- "Can only 'use' implementations: " (symbol#encoded implementation)
- " : " (type#encoded interface))))))
+ (failure (.text_composite# "Can only 'use' implementations: " (symbol#encoded implementation)
+ " : " (type#encoded interface))))))
(def (localized module global)
(-> Text Symbol Symbol)
@@ -5101,13 +5105,12 @@
(in referral)
_
- (failure (all text#composite
- (..wrong_syntax_error (symbol ..refer))
- \n "@ " current_module
- \n (|> extra
- (list#each code#encoded)
- (list#interposed " ")
- (list#mix text#composite "")))))))
+ (failure (.text_composite# (..wrong_syntax_error (symbol ..refer))
+ \n "@ " current_module
+ \n (|> extra
+ (list#each code#encoded)
+ (list#interposed " ")
+ (list#mix text#composite "")))))))
(def .public refer
(macro (_ tokens)
@@ -5475,10 +5478,9 @@
(single_expansion expr)
_
- (failure (all text#composite
- "Incorrect expansion in with_expansions"
- " | Binding: " (text#encoded var_name)
- " | Expression: " (code#encoded expr))))]
+ (failure (.text_composite# "Incorrect expansion in with_expansions"
+ " | Binding: " (text#encoded var_name)
+ " | Expression: " (code#encoded expr))))]
(again &rest (property#with var_name expansion map)))
{#End}
@@ -5627,21 +5629,19 @@
(in (as ..Text value))
_
- (failure (all text#composite
- "Invalid target platform (must be a value of type Text): " (symbol#encoded symbol)
- " : " (..code#encoded (..type_code type))))))
+ (failure (.text_composite# "Invalid target platform (must be a value of type Text): " (symbol#encoded symbol)
+ " : " (..code#encoded (..type_code type))))))
_
- (failure (all text#composite
- "Invalid target platform syntax: " (..code#encoded choice)
- \n "Must be either a text literal or a symbol.")))))
+ (failure (.text_composite# "Invalid target platform syntax: " (..code#encoded choice)
+ \n "Must be either a text literal or a symbol.")))))
target_pick (is (-> Text (List [Code Code]) (Maybe Code) (Meta (List Code)))
(function (target_pick target options default)
(when options
{#End}
(when default
{#None}
- (failure (all text#composite "No code for target platform: " target))
+ (failure (.text_composite# "No code for target platform: " target))
{#Some default}
(meta#in (list default)))
@@ -5685,7 +5685,7 @@
(in (list (` {.#Ex (, (nat$ var_id))})))
{#None}
- (failure (text#composite "Indexed-type does not exist: " (nat#encoded idx)))))
+ (failure (.text_composite# "Indexed-type does not exist: " (nat#encoded idx)))))
_
(failure (..wrong_syntax_error (symbol ..$)))))))
@@ -5874,7 +5874,7 @@
Type
(let [[_ short] (symbol <type>)]
{#Named [..prelude short]
- {.#Nominal (text#composite "#Extension/" short) (list)}}))]
+ {.#Nominal (.text_composite# "#Extension/" short) (list)}}))]
[Analysis]
[Synthesis]