Add global imports to Dhall files

This commit is contained in:
Emery Hemingway 2021-04-21 09:59:27 +02:00
parent c7a64a59ef
commit efa6cd7274
14 changed files with 69 additions and 43 deletions

View File

@ -1,5 +1,6 @@
let Sigil =
let Sigil = env:DHALL_SIGIL env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Prelude = Sigil.Prelude let Prelude = Sigil.Prelude
@ -8,10 +9,10 @@ let BootModules = Sigil.BootModules
let RomEntry = Prelude.Map.Entry Text BootModules.ROM.Type let RomEntry = Prelude.Map.Entry Text BootModules.ROM.Type
let compile = let compile =
λ(addressType : Text) λ(addressType : Text)
λ(boot : Sigil.Boot.Type) λ(boot : Sigil.Boot.Type)
λ(out : Text) λ(out : Text)
let NaturalIndex = { index : Natural, value : Text } let NaturalIndex = { index : Natural, value : Text }
let TextIndex = { index : Text, value : Text } let TextIndex = { index : Text, value : Text }
@ -20,8 +21,8 @@ let compile =
let moduleValues = let moduleValues =
let f = let f =
λ(e : RomEntry) λ(e : RomEntry)
merge merge
{ RomText = λ(text : Text) → ".ascii ${Text/show text}" { RomText = λ(text : Text) → ".ascii ${Text/show text}"
, RomPath = λ(path : Text) → ".incbin ${Text/show path}" , RomPath = λ(path : Text) → ".incbin ${Text/show path}"
} }
@ -31,16 +32,16 @@ let compile =
# [ ".incbin \"${out}/config\"" ] # [ ".incbin \"${out}/config\"" ]
let map = let map =
λ(list : List Text) λ(list : List Text)
λ(f : TextIndex → Text) λ(f : TextIndex → Text)
let indexedNatural = Prelude.List.indexed Text list let indexedNatural = Prelude.List.indexed Text list
let indexed = let indexed =
Prelude.List.map Prelude.List.map
NaturalIndex NaturalIndex
TextIndex TextIndex
( λ(x : NaturalIndex) ( λ(x : NaturalIndex)
{ index = Prelude.Natural.show x.index { index = Prelude.Natural.show x.index
, value = x.value , value = x.value
} }
) )
@ -67,8 +68,8 @@ let compile =
'' ''
++ mapNames ++ mapNames
( λ(m : TextIndex) ( λ(m : TextIndex)
'' ''
${addressType} _boot_module_${m.index}_name ${addressType} _boot_module_${m.index}_name
${addressType} _boot_module_${m.index}_begin ${addressType} _boot_module_${m.index}_begin
${addressType} _boot_module_${m.index}_end - _boot_module_${m.index}_begin ${addressType} _boot_module_${m.index}_end - _boot_module_${m.index}_begin
@ -80,8 +81,8 @@ let compile =
'' ''
++ mapNames ++ mapNames
( λ(m : TextIndex) ( λ(m : TextIndex)
'' ''
.p2align DATA_ACCESS_ALIGNM_LOG2 .p2align DATA_ACCESS_ALIGNM_LOG2
_boot_module_${m.index}_name: _boot_module_${m.index}_name:
.string "${m.value}" .string "${m.value}"
@ -97,8 +98,8 @@ let compile =
'' ''
++ mapValues ++ mapValues
( λ(m : TextIndex) ( λ(m : TextIndex)
'' ''
.p2align MIN_PAGE_SIZE_LOG2 .p2align MIN_PAGE_SIZE_LOG2
_boot_module_${m.index}_begin: _boot_module_${m.index}_begin:
${m.value} ${m.value}

View File

@ -1,5 +1,6 @@
let Sigil =
let Sigil = env:DHALL_SIGIL env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Prelude = Sigil.Prelude let Prelude = Sigil.Prelude
@ -8,27 +9,27 @@ let Args = { config : Sigil.Init.Type, rom : Sigil.BootModules.Type } : Type
let RomEntry = Prelude.Map.Entry Text Sigil.BootModules.ROM.Type let RomEntry = Prelude.Map.Entry Text Sigil.BootModules.ROM.Type
let addLine = let addLine =
λ(e : RomEntry) λ(e : RomEntry)
λ(script : Text) λ(script : Text)
merge merge
{ RomText = { RomText =
λ(rom : Text) λ(rom : Text)
'' ''
${script} ${script}
echo ${Text/show rom} > ${Text/show e.mapKey} echo ${Text/show rom} > ${Text/show e.mapKey}
'' ''
, RomPath = , RomPath =
λ(rom : Text) λ(rom : Text)
'' ''
${script} ${script}
ln -s ${Text/show rom} ${Text/show e.mapKey} ln -s ${Text/show rom} ${Text/show e.mapKey}
'' ''
} }
e.mapValue e.mapValue
in λ(args : Args) in λ(args : Args)
λ(out : Text) λ(out : Text)
{ config = Sigil.Init.render args.config { config = Sigil.Init.render args.config
, script = , script =
Prelude.List.fold Prelude.List.fold
RomEntry RomEntry

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Init = Sigil.Init let Init = Sigil.Init

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Init = Sigil.Init let Init = Sigil.Init

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Prelude = Sigil.Prelude let Prelude = Sigil.Prelude

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Init = Sigil.Init let Init = Sigil.Init

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Init = Sigil.Init let Init = Sigil.Init

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Prelude = Sigil.Prelude let Prelude = Sigil.Prelude

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Prelude = Sigil.Prelude let Prelude = Sigil.Prelude

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Init = Sigil.Init let Init = Sigil.Init

View File

@ -1,4 +1,6 @@
let Test = ./test.dhall ? env:DHALL_SIGIL_TEST let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Prelude = Sigil.Prelude let Prelude = Sigil.Prelude

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Prelude = Sigil.Prelude let Prelude = Sigil.Prelude

View File

@ -1,4 +1,6 @@
let Test = ./test.dhall ? env:DHALL_SIGIL_TEST let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let XML = Sigil.Prelude.XML let XML = Sigil.Prelude.XML

View File

@ -1,4 +1,6 @@
let Sigil = env:DHALL_SIGIL let Sigil =
env:DHALL_SIGIL
? https://git.sr.ht/~ehmry/dhall-sigil/blob/trunk/package.dhall
let Init = Sigil.Init let Init = Sigil.Init