tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

consumer_native_mixed.tri (1142B)


      1 -- Two explicit frontend selections share one CAS and neutral manifests.
      2 -- This is immutable cross-surface import, not implicit local-file dispatch.
      3 !import "prelude" !Local
      4 !import "io" !Local
      5 !import "source.build" G
      6 !import "source.module" M
      7 !import "consumers.unit-build" U
      8 !import "consumers.lexical-worker" L
      9 root = "__ROOT__"
     10 workspace = "__WORKSPACE__"
     11 compiler = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
     12 scenario = do onOk_
     13   _ <- writeFile (append workspace "/treeData.tri") "!export payload\npayload = 42\n"
     14   data <- G.sourceBuildGraph workspace root compiler "treeData"
     15   _ <- writeFile (append workspace "/mixed.scp")
     16     (append "!import " (append (fst data)
     17       " as Data\n!export box\nconsumer box\n _ @ _ => (Data.payload, leaf)\n"))
     18   compiled <- U.scpUnitBuildGraph workspace root compiler "mixed"
     19   entry <- M.sourceModuleLoadSelected root (fst compiled) "box"
     20   pure (ok (equal? (L.lRunChecked (L.lWorker t entry) t) (ok (pair 42 t) t)) t)
     21 main = io (onResult_ scenario (_ : putStrLn "native-mixed-ERROR")
     22   (passed : putStrLn (matchBool "native-mixed-ok" "native-mixed-DIFF" passed)))
     23 main