futhark-0.25.32: An optimising compiler for a functional, array-oriented language.

Safe Haskell | None
Language | GHC2021

Futhark.CodeGen.Backends.GenericWASM

Synopsis

- data CParts = CParts {
  - cHeader :: Text
  - cUtils :: Text
  - cCLI :: Text
  - cServer :: Text
  - cLib :: Text
  - cJsonManifest :: Text
  }
- asLibrary :: CParts -> (Text, Text, Text)
- asExecutable :: CParts -> Text
- asServer :: CParts -> Text
- type EntryPointType = String
- data JSEntryPoint = JSEntryPoint {
  - name :: String
  - parameters :: [EntryPointType]
  - ret :: [EntryPointType]
  }
- emccExportNames :: [JSEntryPoint] -> [String]
- javascriptWrapper :: [JSEntryPoint] -> Text
- extToString :: ExternalValue -> String
- runServer :: Text
- libraryExports :: Text

# Documentation

data CParts Source #

The result of compilation to C is multiple parts, which can be put together in various ways. The obvious way is to concatenate all of them, which yields a CLI program. Another is to compile the library part by itself, and use the header file to call into it.

Constructors

CParts |

Fields

- cHeader :: Text
- cUtils :: Text

  Utility definitions that must be visible to both CLI and library parts.

- cCLI :: Text
- cServer :: Text
- cLib :: Text
- cJsonManifest :: Text

  The manifest, in JSON format.

asLibrary :: CParts -> (Text, Text, Text) Source #

Produce header, implementation, and manifest files.

asExecutable :: CParts -> Text Source #

As executable with command-line interface.

asServer :: CParts -> Text Source #

As server executable.

type EntryPointType = String Source #

data JSEntryPoint Source #

Constructors

JSEntryPoint |

Fields

- name :: String
- parameters :: [EntryPointType]
- ret :: [EntryPointType]

emccExportNames :: [JSEntryPoint] -> [String] Source #

javascriptWrapper :: [JSEntryPoint] -> Text Source #

extToString :: ExternalValue -> String Source #

runServer :: Text Source #

Javascript code that can be appended to the generated module to run a Futhark server instance on startup.

libraryExports :: Text Source #

The names exported by the generated module.