Created
April 10, 2026 13:39
-
-
Save pscollins/4915be8a94957b4af2c71a8f0c99384e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (* MLton [mpl] 20260406.124910-g78555d580-dirty *) | |
| (* control flags: *) | |
| (* align: 8 *) | |
| (* atMLtons: (@MLton, --) *) | |
| (* bounceRssaLimit: Some 8 *) | |
| (* bounceRssaLiveCutoff: Some 12 *) | |
| (* bounceRssaLoopCutoff: Some 40 *) | |
| (* bounceRssaUsageCutoff: Some 15 *) | |
| (* chunkBatch: 32768 *) | |
| (* chunkify: coalesce4096 *) | |
| (* chunkJumpTable: false *) | |
| (* chunkMayRToSelfOpt: true *) | |
| (* chunkMustRToOtherOpt: true *) | |
| (* chunkMustRToSelfOpt: true *) | |
| (* chunkMustRToSingOpt: true *) | |
| (* chunkTailCall: false *) | |
| (* closureConvertGlobalize: true *) | |
| (* closureConvertShrink: true *) | |
| (* codegen: c *) | |
| (* codegen comments: 0 *) | |
| (* fuse `op` and `opCheckP` primitives in codegen: false *) | |
| (* cut-off depth for printing of abstract values in`ConstantPropagation`: 2 *) | |
| (* contifyIntoMain: false *) | |
| (* debug: false *) | |
| (* defaultChar: char8 *) | |
| (* defaultWideChar: widechar32 *) | |
| (* defaultInt: int32 *) | |
| (* defaultReal: real64 *) | |
| (* defaultWord: word32 *) | |
| (* detect-entanglement: true *) | |
| (* detect-entanglement-runtime: true *) | |
| (* diag passes: [Or [Seq [Seq [Star [.]]]]] *) | |
| (* execute passes: [] *) | |
| (* elaborate allowConstant (default): false *) | |
| (* elaborate allowConstant (enabled): true *) | |
| (* elaborate allowFFI (default): false *) | |
| (* elaborate allowFFI (enabled): true *) | |
| (* elaborate allowPrim (default): false *) | |
| (* elaborate allowPrim (enabled): true *) | |
| (* elaborate allowOverload (default): false *) | |
| (* elaborate allowOverload (enabled): true *) | |
| (* elaborate allowRedefineSpecialIds (default): false *) | |
| (* elaborate allowRedefineSpecialIds (enabled): true *) | |
| (* elaborate allowSpecifySpecialIds (default): false *) | |
| (* elaborate allowSpecifySpecialIds (enabled): true *) | |
| (* elaborate deadCode (default): false *) | |
| (* elaborate deadCode (enabled): true *) | |
| (* elaborate exnDecElab (default): gen *) | |
| (* elaborate exnDecElab (enabled): true *) | |
| (* elaborate forceUsed (default): false *) | |
| (* elaborate forceUsed (enabled): true *) | |
| (* elaborate ffiStr (default): *) | |
| (* elaborate ffiStr (enabled): true *) | |
| (* elaborate nonexhaustiveBind (default): warn *) | |
| (* elaborate nonexhaustiveBind (enabled): true *) | |
| (* elaborate nonexhaustiveExnBind (default): default *) | |
| (* elaborate nonexhaustiveExnBind (enabled): true *) | |
| (* elaborate redundantBind (default): warn *) | |
| (* elaborate redundantBind (enabled): true *) | |
| (* elaborate nonexhaustiveMatch (default): warn *) | |
| (* elaborate nonexhaustiveMatch (enabled): true *) | |
| (* elaborate nonexhaustiveExnMatch (default): default *) | |
| (* elaborate nonexhaustiveExnMatch (enabled): true *) | |
| (* elaborate redundantMatch (default): warn *) | |
| (* elaborate redundantMatch (enabled): true *) | |
| (* elaborate nonexhaustiveRaise (default): ignore *) | |
| (* elaborate nonexhaustiveRaise (enabled): true *) | |
| (* elaborate nonexhaustiveExnRaise (default): ignore *) | |
| (* elaborate nonexhaustiveExnRaise (enabled): true *) | |
| (* elaborate redundantRaise (default): warn *) | |
| (* elaborate redundantRaise (enabled): true *) | |
| (* elaborate resolveScope (default): strdec *) | |
| (* elaborate resolveScope (enabled): true *) | |
| (* elaborate sequenceNonUnit (default): ignore *) | |
| (* elaborate sequenceNonUnit (enabled): true *) | |
| (* elaborate valrecConstr (default): warn *) | |
| (* elaborate valrecConstr (enabled): true *) | |
| (* elaborate warnUnused (default): false *) | |
| (* elaborate warnUnused (enabled): true *) | |
| (* elaborate allowDoDecls (default): false *) | |
| (* elaborate allowDoDecls (enabled): true *) | |
| (* elaborate allowExtendedNumConsts (default): false *) | |
| (* elaborate allowExtendedNumConsts (enabled): true *) | |
| (* elaborate allowExtendedTextConsts (default): false *) | |
| (* elaborate allowExtendedTextConsts (enabled): true *) | |
| (* elaborate allowLineComments (default): false *) | |
| (* elaborate allowLineComments (enabled): true *) | |
| (* elaborate allowOptBar (default): false *) | |
| (* elaborate allowOptBar (enabled): true *) | |
| (* elaborate allowOptSemicolon (default): false *) | |
| (* elaborate allowOptSemicolon (enabled): true *) | |
| (* elaborate allowOrPats (default): false *) | |
| (* elaborate allowOrPats (enabled): true *) | |
| (* elaborate allowRecordPunExps (default): false *) | |
| (* elaborate allowRecordPunExps (enabled): true *) | |
| (* elaborate allowSigWithtype (default): false *) | |
| (* elaborate allowSigWithtype (enabled): true *) | |
| (* elaborate allowVectorExps (default): false *) | |
| (* elaborate allowVectorExps (enabled): true *) | |
| (* elaborate allowVectorPats (default): false *) | |
| (* elaborate allowVectorPats (enabled): true *) | |
| (* emit main: true *) | |
| (* export header: None *) | |
| (* exn history: false *) | |
| (* force handles signals: false *) | |
| (* generated output format: executable *) | |
| (* gc check: Limit *) | |
| (* globalize arrays: false *) | |
| (* globalize refs: true *) | |
| (* globalize int-inf as small type): true *) | |
| (* globalize small type: 1 *) | |
| (* indentation: 3 *) | |
| (* inlineIntoMain: true *) | |
| (* inlineLeafA: {loops = true, repeat = true, size = Some 20} *) | |
| (* inlineLeafB: {loops = true, repeat = true, size = Some 40} *) | |
| (* inlineNonRec: {small = 60, product = 320} *) | |
| (* input file: repro-crash.toRssa.pre.ssa2 *) | |
| (* keep AST: false *) | |
| (* keep CoreML: false *) | |
| (* keep def use: true *) | |
| (* keep dot: false *) | |
| (* keep Machine: false *) | |
| (* keep passes: [Or [Seq [Seq [Star [.]]]]] *) | |
| (* keep RSSA: false *) | |
| (* keep SSA: false *) | |
| (* keep SSA2: false *) | |
| (* keep SXML: false *) | |
| (* keep XML: false *) | |
| (* extra_: false *) | |
| (* lib dir: /home/patrick/code/mpl/build/lib/mlton *) | |
| (* lib target dir: /home/patrick/code/mpl/build/lib/mlton/targets/self *) | |
| (* limit check expect: None *) | |
| (* llvmAAMD: none *) | |
| (* llvm 'cc10': false *) | |
| (* loop unrolling limit: 150 *) | |
| (* loop unswitching limit: 300 *) | |
| (* mark cards: false *) | |
| (* max function size: 10000 *) | |
| (* mlb path vars: [{var = SML_LIB, path = $(LIB_MLTON_DIR)/sml}] *) | |
| (* elim AL redundant: true *) | |
| (* native live stack: false *) | |
| (* native optimize: 1 *) | |
| (* native move hoist: true *) | |
| (* native copy prop: true *) | |
| (* native copy prop cutoff: 1000 *) | |
| (* native cutoff: 100 *) | |
| (* native live transfer: 8 *) | |
| (* native shuffle: true *) | |
| (* native ieee fp: false *) | |
| (* native split: Some 20000 *) | |
| (* native pic: true *) | |
| (* optFuel: None *) | |
| (* optimizationPasses: [] *) | |
| (* polyvariance: Some {hofo = true, rounds = 2, small = 30, product = 300} *) | |
| (* position independent style: None *) | |
| (* prefer abs paths: false *) | |
| (* prof passes: [] *) | |
| (* profile: None *) | |
| (* profile block: false *) | |
| (* profile branch: false *) | |
| (* profile C: [] *) | |
| (* profile IL: ProfileSource *) | |
| (* profile include/exclude: [(Seq [Star [.], Or [Seq [Seq [[$], [(], [S], [M], [L], [_], [L], [I], [B], [)]]]], Star [.]], false)] *) | |
| (* profile raise: false *) | |
| (* profile stack: false *) | |
| (* profile val: false *) | |
| (* show basis: None *) | |
| (* show basis compact: false *) | |
| (* show basis def: true *) | |
| (* show basis flat: true *) | |
| (* show def-use: None *) | |
| (* show types: true *) | |
| (* signal check: if-handles-signals *) | |
| (* signal check at limit check: true *) | |
| (* signal check expect: None *) | |
| (* bool type splitting method: smart *) | |
| (* stack check expect: None *) | |
| (* stop passes: [] *) | |
| (* target: self *) | |
| (* target arch: AMD64 *) | |
| (* target OS: Linux *) | |
| (* verbosity: Detail *) | |
| (* warn unrecognized annotation: true *) | |
| (* warn deprecated features: true *) | |
| (* zone cut depth: 100 *) | |
| (* Datatypes: *) | |
| datatype lambdas_0 = () xEnv_208 | () xEnv_207 | () xEnv_206 | |
| datatype lambdas_23 = () xEnv_57 | |
| | (word32, (word16, (unit mut) tuple) tuple) xEnv_56 | |
| datatype list_11 = () nil_7 | (list_11) ::_7 | |
| datatype list_9 = () nil_5 | (list_9, (word8) sequence) ::_5 | |
| datatype list_5 = () nil_1 | (list_5, (word8, word8) tuple) ::_1 | |
| datatype list_4 = () nil_0 | (list_4, lambdas_0) ::_0 | |
| datatype bool = () false | () true | |
| datatype exn = () Die_1 | ((word8) sequence) Fail_1 | () Overflow_2 | |
| (* Globals: *) | |
| val x_48915: unit = obj () | |
| val global_7: (word8) sequence = "Die" | |
| val global_8: (word8) sequence = "Fail" | |
| val global_12: (word8) sequence = "Overflow" | |
| val global_54: word32 = 0x1:w32 | |
| val global_66: word32 = 0xA:w32 | |
| val global_91: word32 = 0x20:w32 | |
| val global_138: word64 = 0x0:w64 | |
| val global_140: word32 = 0x0:w32 | |
| val global_213: (word8) sequence = "unhandled exception: " | |
| val global_215: (word8) sequence = "\n" | |
| val global_216: (word8) sequence = "unhandled exception in Basis Library" | |
| val global_225: word8 = 0x0:w8 | |
| val global_246: word64 = 0x5:w64 | |
| val global_249: word64 = 0x1:w64 | |
| val x_49304: () nil_7 = obj nil_7 () | |
| val global_256: list_11 = inj (x_49304 (*obj nil_7 ()*)): list_11 | |
| val global_274: word32 = 0x100:w32 | |
| val global_278: word8 = 0x30:w8 | |
| val global_283: word8 = 0x39:w8 | |
| val global_285: word8 = 0x61:w8 | |
| val global_286: word8 = 0x66:w8 | |
| val global_288: word8 = 0x41:w8 | |
| val global_289: word8 = 0x46:w8 | |
| val x_49305: () nil_1 = obj nil_1 () | |
| val global_291: list_5 = inj (x_49305 (*obj nil_1 ()*)): list_5 | |
| val global_299: (word8) sequence = "0123456789ABCDEF" | |
| val global_300: (word8 mut) tuple = obj (global_225 (*0x0:w8*)) | |
| val x_49306: () nil_5 = obj nil_5 () | |
| val global_321: list_9 = inj (x_49306 (*obj nil_5 ()*)): list_9 | |
| val global_322: (word8) sequence = "Fail: " | |
| val global_419: (word8) sequence = "MLton.Exit.halt" | |
| val global_421: (word8) sequence = "exit must have 0 <= status < 256" | |
| val x_49307: (list_9, (word8) sequence) ::_5 = | |
| obj ::_5 (global_321, global_421 (*"exit must ... 256"*)) | |
| val global_423: list_9 = inj (x_49307 (*obj ::_5 ( ... _421)*)): list_9 | |
| val global_424: (word8) sequence = "): " | |
| val global_427: word8 = 0x1:w8 | |
| val global_428: word8 = 0x7E:w8 | |
| val global_429: (word8) sequence = "MLton.Exit.exit(" | |
| val global_430: (word8) sequence = "Top-level suffix raised exception.\n" | |
| val global_433: (word8) sequence = "Top-level handler raised exception.\n" | |
| val global_445: (word8) sequence = "" | |
| val global_463: word64 = 0x4000000000000000:w64 | |
| val global_465: word64 = 0x100:w64 | |
| val global_471: (word8, word8) tuple = | |
| obj (global_283 (*0x39:w8*), global_278 (*0x30:w8*)) | |
| val global_473: (word8, word8) tuple = | |
| obj (global_286 (*0x66:w8*), global_285 (*0x61:w8*)) | |
| val global_476: (word8, word8) tuple = | |
| obj (global_289 (*0x46:w8*), global_288 (*0x41:w8*)) | |
| val x_49308: (list_5, (word8, word8) tuple) ::_1 = | |
| obj ::_1 (global_291, global_476) | |
| val global_479: list_5 = inj (x_49308 (*obj ::_1 ( ... _476)*)): list_5 | |
| val x_49309: (list_5, (word8, word8) tuple) ::_1 = | |
| obj ::_1 (global_479, global_473) | |
| val global_481: list_5 = inj (x_49309 (*obj ::_1 ( ... _473)*)): list_5 | |
| val global_484: word64 = 0x7FFFFFFF:w64 | |
| val global_530: (word8) sequence = "Spork spwn returned" | |
| val global_539: word64 = 0x10:w64 | |
| val x_49310: () false = obj false () | |
| val global_547: bool = inj (x_49310 (*obj false ()*)): bool | |
| val x_49311: () true = obj true () | |
| val global_549: bool = inj (x_49311 (*obj true ()*)): bool | |
| val x_49312: () Overflow_2 = obj Overflow_2 () | |
| val global_550: exn = inj (x_49312 (*obj Overflow_2 ()*)): exn | |
| val x_49313: (list_11) ::_7 = obj ::_7 (global_256) | |
| val global_555: list_11 = inj (x_49313 (*obj ::_7 ( ... _256)*)): list_11 | |
| val x_49314: () nil_0 = obj nil_0 () | |
| val global_556: list_4 = inj (x_49314 (*obj nil_0 ()*)): list_4 | |
| val x_49315: (list_9, (word8) sequence) ::_5 = | |
| obj ::_5 (global_423, global_424 (*"): "*)) | |
| val global_558: list_9 = inj (x_49315 (*obj ::_5 ( ... _424)*)): list_9 | |
| val x_49316: (list_9, (word8) sequence) ::_5 = | |
| obj ::_5 (global_321, global_215 (*"\n"*)) | |
| val global_559: list_9 = inj (x_49316 (*obj ::_5 ( ... _215)*)): list_9 | |
| val x_49317: ((word8) sequence) Fail_1 = obj Fail_1 (global_445 (*""*)) | |
| val global_560: exn = inj (x_49317 (*obj Fail_1 ... _445)*)): exn | |
| val x_49318: () Die_1 = obj Die_1 () | |
| val global_563: exn = inj (x_49318 (*obj Die_1 ()*)): exn | |
| val x_49319: () xEnv_207 = obj xEnv_207 () | |
| val global_571: lambdas_0 = inj (x_49319 (*obj xEnv_207 ()*)): lambdas_0 | |
| val x_49320: () xEnv_208 = obj xEnv_208 () | |
| val global_572: lambdas_0 = inj (x_49320 (*obj xEnv_208 ()*)): lambdas_0 | |
| val x_49321: () xEnv_206 = obj xEnv_206 () | |
| val global_573: lambdas_0 = inj (x_49321 (*obj xEnv_206 ()*)): lambdas_0 | |
| val zeroArr_0: (word8 mut) sequence = seq () | |
| (* Functions: *) | |
| fun __inline_never__ main_4 (): {returns = None, raises = None} = L_0 () | |
| block L_0 () | |
| goto loop_294 (global_555, | |
| global_249 (*0x1:w64*), | |
| global_463 (*0x40000000 ... 0:w64*)) | |
| block loop_294 (x_48932: list_11, x_48933: word64, x_48934: word64) | |
| val x_48935: bool = prim Word64_equal (x_48934, global_138 (*0x0:w64*)) | |
| case x_48935 of | |
| true => L_5403 | false => L_5402 | |
| block L_5403 () | |
| case x_48932 of | |
| nil_7 => L_261 | ::_7 => L_5541 | |
| block L_261 () | |
| val messagers_4: (list_4 mut) tuple = obj (global_556) | |
| goto loop_296 (global_138 (*0x0:w64*)) | |
| block loop_296 (x_48940: word64) | |
| val x_48941: bool = prim WordS64_lt (x_48940, global_465 (*0x100:w64*)) | |
| case x_48941 of | |
| true => L_5406 | false => L_5494 | |
| block L_5406 () | |
| val x_49052: word64 = prim Word64_add (x_48940, global_249 (*0x1:w64*)) | |
| goto loop_296 (x_49052) | |
| block L_5494 () | |
| goto loop_297 (global_138 (*0x0:w64*)) | |
| block loop_297 (x_48942: word64) | |
| val x_48943: bool = prim WordS64_lt (x_48942, global_465 (*0x100:w64*)) | |
| case x_48943 of | |
| true => L_5407 | false => L_5495 | |
| block L_5407 () | |
| val x_49051: word64 = prim Word64_add (x_48942, global_249 (*0x1:w64*)) | |
| goto loop_297 (x_49051) | |
| block L_5495 () | |
| goto loop_298 (global_138 (*0x0:w64*)) | |
| block loop_298 (x_48944: word64) | |
| val x_48945: bool = prim WordS64_lt (x_48944, global_465 (*0x100:w64*)) | |
| case x_48945 of | |
| true => L_5408 | false => L_5496 | |
| block L_5408 () | |
| val x_49050: word64 = prim Word64_add (x_48944, global_249 (*0x1:w64*)) | |
| goto loop_298 (x_49050) | |
| block L_5496 () | |
| goto loop_299 (global_138 (*0x0:w64*)) | |
| block loop_299 (x_48946: word64) | |
| val x_48947: bool = prim WordS64_lt (x_48946, global_465 (*0x100:w64*)) | |
| case x_48947 of | |
| true => L_5409 | false => L_5497 | |
| block L_5409 () | |
| val x_49041: word8 = prim WordS64_extdToWord8 (x_48946) | |
| goto L_5464 (global_481, global_471) | |
| block L_5464 (x_49113: list_5, x_49112: (word8, word8) tuple) | |
| val x_49383: word8 = #0 x_49112 | |
| val x_49382: word8 = #1 x_49112 | |
| val x_49045: bool = prim WordU8_lt (x_49041, x_49382) | |
| case x_49045 of | |
| true => L_5467 | false => L_5466 | |
| block L_5467 () | |
| case x_49113 of | |
| nil_1 => L_5465 | ::_1 => L_5553 | |
| block L_5465 () | |
| val x_49049: word64 = prim Word64_add (x_48946, global_249 (*0x1:w64*)) | |
| goto loop_299 (x_49049) | |
| block L_5553 (x_49371: (list_5, (word8, word8) tuple) ::_1) | |
| val x_49385: list_5 = #0 x_49371 | |
| val x_49384: (word8, word8) tuple = #1 x_49371 | |
| goto L_5464 (x_49385, x_49384) | |
| block L_5466 () | |
| val x_49048: bool = prim WordU8_lt (x_49383, x_49041) | |
| case x_49048 of | |
| true => L_5467 | false => L_5465 | |
| block L_5497 () | |
| goto loop_300 (global_138 (*0x0:w64*)) | |
| block loop_300 (x_48948: word64) | |
| val x_48949: bool = prim WordS64_lt (x_48948, global_465 (*0x100:w64*)) | |
| case x_48949 of | |
| true => L_5411 | false => L_5410 | |
| block L_5411 () | |
| val x_49040: word64 = prim Word64_add (x_48948, global_249 (*0x1:w64*)) | |
| goto loop_300 (x_49040) | |
| block L_5410 () | |
| val x_48951: word64 = 0x21:w64 | |
| val x_48950: (word8 mut) sequence = prim Array_alloc (x_48951) | |
| goto loop_301 (global_138 (*0x0:w64*)) | |
| block loop_301 (x_48952: word64) | |
| val x_48953: bool = prim WordS64_lt (x_48952, x_48951) | |
| case x_48953 of | |
| true => L_5413 | false => L_5412 | |
| block L_5413 () | |
| updWB#0 $(x_48950, x_48952) := global_225 (*0x0:w8*) | |
| val x_49035: word64 = prim Word64_add (x_48952, global_249 (*0x1:w64*)) | |
| goto loop_301 (x_49035) | |
| block L_5412 () | |
| val x_48955: word64 = 0x41:w64 | |
| val x_48954: (word8 mut) sequence = prim Array_alloc (x_48955) | |
| goto loop_302 (global_138 (*0x0:w64*)) | |
| block loop_302 (x_48956: word64) | |
| val x_48957: bool = prim WordS64_lt (x_48956, x_48955) | |
| case x_48957 of | |
| true => L_5415 | false => L_5498 | |
| block L_5415 () | |
| updWB#0 $(x_48954, x_48956) := global_225 (*0x0:w8*) | |
| val x_49034: word64 = prim Word64_add (x_48956, global_249 (*0x1:w64*)) | |
| goto loop_302 (x_49034) | |
| block L_5498 () | |
| goto loop_303 (global_138 (*0x0:w64*)) | |
| block loop_303 (x_48958: word64) | |
| val x_48959: bool = prim WordS64_lt (x_48958, global_249 (*0x1:w64*)) | |
| case x_48959 of | |
| true => L_5416 | false => L_733 | |
| block L_5416 () | |
| val x_49033: word64 = prim Word64_add (x_48958, global_249 (*0x1:w64*)) | |
| goto loop_303 (x_49033) | |
| block L_733 () | |
| val x_48328: list_4 = RB #0 messagers_4 | |
| val x_49341: (list_4, lambdas_0) ::_0 = obj ::_0 (x_48328, global_571) | |
| val x_45023: list_4 = inj (x_49341): list_4 | |
| updWB#0 messagers_4 := x_45023 | |
| val x_48332: list_4 = RB #0 messagers_4 | |
| val x_49340: (list_4, lambdas_0) ::_0 = obj ::_0 (x_48332, global_572) | |
| val x_45264: list_4 = inj (x_49340): list_4 | |
| updWB#0 messagers_4 := x_45264 | |
| val x_48349: list_4 = RB #0 messagers_4 | |
| val x_49339: (list_4, lambdas_0) ::_0 = obj ::_0 (x_48349, global_573) | |
| val x_45517: list_4 = inj (x_49339): list_4 | |
| updWB#0 messagers_4 := x_45517 | |
| val exiting_4: (bool mut) tuple = obj (global_547) | |
| val tuple_73: ((bool mut) tuple, (word8 mut) sequence) tuple = | |
| obj (exiting_4, x_48950) | |
| val x_48960: (word8 mut) sequence = | |
| prim Array_alloc (global_249 (*0x1:w64*)) | |
| goto loop_304 (global_138 (*0x0:w64*)) | |
| block loop_304 (x_48962: word64) | |
| val x_48963: bool = prim WordS64_lt (x_48962, global_249 (*0x1:w64*)) | |
| case x_48963 of | |
| true => L_5418 | false => L_5417 | |
| block L_5418 () | |
| updWB#0 $(x_48960, x_48962) := global_285 (*0x61:w8*) | |
| val x_49032: word64 = prim Word64_add (x_48962, global_249 (*0x1:w64*)) | |
| goto loop_304 (x_49032) | |
| block L_5417 () | |
| val stdOut_6: (unit mut) tuple = obj (x_48915 (*obj ()*)) | |
| val x_45545: (word16 mut) sequence = | |
| prim Array_allocRaw (global_249 (*0x1:w64*)) | |
| val x_45544: bool = prim Array_uninitIsNop (x_45545) | |
| case x_45544 of | |
| true => L_1456 | false => L_1452 | |
| block L_1456 () | |
| val x_45551: (word16 mut) sequence = prim Array_toArray (x_45545) | |
| val x_45560: word16 = RB #0 $(x_45551, global_138 (*0x0:w64*)) | |
| val tuple_76: (word16, (unit mut) tuple) tuple = obj (x_45560, stdOut_6) | |
| call L_4986 (f_1265 (global_54 (*0x1:w32*), tuple_76)) handle _ => L_5492 | |
| block L_4986 () | |
| call L_5555 (exit_20 (global_140 (*0x0:w32*), tuple_73)) handle _ => L_5460 | |
| block L_5555 () | |
| bug | |
| block L_5460 () | |
| val _: unit = | |
| prim CFunction {args = ((word8) sequence), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Objptr), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = Stdio_print} (global_430 (*"Top-level ... n.\n"*)) | |
| val _: unit = prim MLton_halt (global_54 (*0x1:w32*)) | |
| val _: unit = prim MLton_bug (global_419 (*"MLton.Exit.halt"*)) | |
| bug | |
| block L_5492 (x_49089: exn) | |
| val x_48964: list_4 = RB #0 messagers_4 | |
| case x_48964 of | |
| nil_0 => L_5420 | ::_0 => L_5543 | |
| block L_5420 () | |
| case x_49089 of | |
| Die_1 => L_5500 | Fail_1 => L_5550 | Overflow_2 => L_5499 | |
| block L_5500 () | |
| goto L_5437 (global_7 (*"Die"*)) | |
| block L_5437 (x_49000: (word8) sequence) | |
| val x_49364: (list_9, (word8) sequence) ::_5 = | |
| obj ::_5 (global_559, x_49000) | |
| val x_49003: list_9 = inj (x_49364): list_9 | |
| goto L_5443 (x_49003, | |
| global_213 (*"unhandled ... on: "*), | |
| global_138 (*0x0:w64*)) | |
| block L_5443 (x_49109: list_9, x_49108: (word8) sequence, x_49278: word64) | |
| val x_49009: word64 = prim Array_length (x_49108) | |
| val x_49010: word64 = prim Word64_add (x_49009, x_49278) | |
| val x_49008: bool = prim WordS64_addCheckP (x_49009, x_49278) | |
| case x_49008 of | |
| true => L_5429 | false => L_5445 | |
| block L_5429 () | |
| val _: unit = | |
| prim CFunction {args = ((word8) sequence), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Objptr), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = Stdio_print} (global_433 (*"Top-level ... n.\n"*)) | |
| val _: unit = prim MLton_halt (global_54 (*0x1:w32*)) | |
| val _: unit = prim MLton_bug (global_419 (*"MLton.Exit.halt"*)) | |
| bug | |
| block L_5445 () | |
| case x_49109 of | |
| nil_5 => L_5444 | ::_5 => L_5551 | |
| block L_5444 () | |
| val x_49013: bool = prim WordU64_lt (global_484 (*0x7FFFFFFF:w64*), x_49010) | |
| case x_49013 of | |
| true => L_5429 | false => L_5446 | |
| block L_5446 () | |
| val isZero_4: bool = prim Word64_equal (global_138 (*0x0:w64*), x_49010) | |
| case isZero_4 of | |
| true => L_zeroLen_2 | false => L_nonZeroLen_2 | |
| block L_zeroLen_2 () | |
| goto L_5447 (x_49003, | |
| global_213 (*"unhandled ... on: "*), | |
| zeroArr_0, | |
| global_138 (*0x0:w64*)) | |
| block L_5447 (x_49111: list_9, | |
| x_49110: (word8) sequence, | |
| x_49295: (word8 mut) sequence, | |
| x_49293: word64) | |
| val x_49019: word64 = prim Array_length (x_49110) | |
| val x_49018: bool = prim WordS64_lt (x_49019, global_246 (*0x5:w64*)) | |
| case x_49018 of | |
| true => L_5450 | false => L_5449 | |
| block L_5450 () | |
| val x_49022: word64 = prim Word64_sub (x_49019, global_249 (*0x1:w64*)) | |
| goto loop_311 (global_138 (*0x0:w64*)) | |
| block loop_311 (x_49023: word64) | |
| val x_49024: bool = prim WordS64_lt (x_49022, x_49023) | |
| case x_49024 of | |
| true => L_5451 | false => L_5452 | |
| block L_5451 () | |
| val x_49028: word64 = prim Word64_add (x_49019, x_49293) | |
| case x_49111 of | |
| nil_5 => L_5448 | ::_5 => L_5552 | |
| block L_5448 () | |
| val x_49029: (word8) sequence = prim Array_toVector (x_49295) | |
| val _: unit = | |
| prim CFunction {args = ((word8) sequence), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Objptr), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = Stdio_print} (x_49029) | |
| call L_5554 (exit_20 (global_54 (*0x1:w32*), tuple_73)) handle _ => L_5429 | |
| block L_5554 () | |
| bug | |
| block L_5552 (x_49368: (list_9, (word8) sequence) ::_5) | |
| val x_49370: list_9 = #0 x_49368 | |
| val x_49369: (word8) sequence = #1 x_49368 | |
| goto L_5447 (x_49370, x_49369, x_49295, x_49028) | |
| block L_5452 () | |
| val x_49027: word64 = prim Word64_add (x_49023, x_49293) | |
| val x_49026: word8 = #0 $(x_49110, x_49023) | |
| updWB#0 $(x_49295, x_49027) := x_49026 | |
| val x_49025: word64 = prim Word64_add (x_49023, global_249 (*0x1:w64*)) | |
| goto loop_311 (x_49025) | |
| block L_5449 () | |
| val _: unit = | |
| prim Array_copyVector (x_49295, | |
| x_49293, | |
| x_49110, | |
| global_138 (*0x0:w64*), | |
| x_49019) | |
| goto L_5451 () | |
| block L_nonZeroLen_2 () | |
| val x_49116: (word8 mut) sequence = prim Array_alloc (x_49010) | |
| goto L_5447 (x_49003, | |
| global_213 (*"unhandled ... on: "*), | |
| x_49116, | |
| global_138 (*0x0:w64*)) | |
| block L_5551 (x_49365: (list_9, (word8) sequence) ::_5) | |
| val x_49367: list_9 = #0 x_49365 | |
| val x_49366: (word8) sequence = #1 x_49365 | |
| goto L_5443 (x_49367, x_49366, x_49010) | |
| block L_5550 () | |
| goto L_5437 (global_8 (*"Fail"*)) | |
| block L_5499 () | |
| goto L_5437 (global_12 (*"Overflow"*)) | |
| block L_5543 (x_49342: (list_4, lambdas_0) ::_0) | |
| val x_49344: list_4 = #0 x_49342 | |
| val x_49343: lambdas_0 = #1 x_49342 | |
| goto L_5419 (x_49344, x_49343) | |
| block L_5419 (x_49103: list_4, x_49102: lambdas_0) | |
| case x_49102 of | |
| xEnv_208 => L_5423 | xEnv_207 => L_5422 | xEnv_206 => L_5421 | |
| block L_5423 () | |
| case x_49103 of | |
| nil_0 => L_5420 | ::_0 => L_5549 | |
| block L_5549 (x_49360: (list_4, lambdas_0) ::_0) | |
| val x_49362: list_4 = #0 x_49360 | |
| val x_49361: lambdas_0 = #1 x_49360 | |
| goto L_5419 (x_49362, x_49361) | |
| block L_5422 () | |
| case x_49089 of | |
| Fail_1 => L_5545 | _ => L_5425 | |
| block L_5545 (x_49351: ((word8) sequence) Fail_1) | |
| val x_49353: (word8) sequence = #0 x_49351 | |
| val x_49352: (list_9, (word8) sequence) ::_5 = | |
| obj ::_5 (global_321, x_49353) | |
| val x_48972: list_9 = inj (x_49352): list_9 | |
| goto L_5426 (x_48972, global_322 (*"Fail: "*), global_138 (*0x0:w64*)) | |
| block L_5426 (x_49105: list_9, x_49104: (word8) sequence, x_49245: word64) | |
| val x_48978: word64 = prim Array_length (x_49104) | |
| val x_48979: word64 = prim Word64_add (x_48978, x_49245) | |
| val x_48977: bool = prim WordS64_addCheckP (x_48978, x_49245) | |
| case x_48977 of | |
| true => L_5429 | false => L_5428 | |
| block L_5428 () | |
| case x_49105 of | |
| nil_5 => L_5427 | ::_5 => L_5547 | |
| block L_5427 () | |
| val x_48982: bool = prim WordU64_lt (global_484 (*0x7FFFFFFF:w64*), x_48979) | |
| case x_48982 of | |
| true => L_5429 | false => L_5430 | |
| block L_5430 () | |
| val isZero_3: bool = prim Word64_equal (global_138 (*0x0:w64*), x_48979) | |
| case isZero_3 of | |
| true => L_zeroLen_1 | false => L_nonZeroLen_1 | |
| block L_zeroLen_1 () | |
| goto L_5431 (x_48972, | |
| global_322 (*"Fail: "*), | |
| zeroArr_0, | |
| global_138 (*0x0:w64*)) | |
| block L_5431 (x_49107: list_9, | |
| x_49106: (word8) sequence, | |
| x_49262: (word8 mut) sequence, | |
| x_49260: word64) | |
| val x_48988: word64 = prim Array_length (x_49106) | |
| val x_48987: bool = prim WordS64_lt (x_48988, global_246 (*0x5:w64*)) | |
| case x_48987 of | |
| true => L_5434 | false => L_5433 | |
| block L_5434 () | |
| val x_48991: word64 = prim Word64_sub (x_48988, global_249 (*0x1:w64*)) | |
| goto loop_308 (global_138 (*0x0:w64*)) | |
| block loop_308 (x_48992: word64) | |
| val x_48993: bool = prim WordS64_lt (x_48991, x_48992) | |
| case x_48993 of | |
| true => L_5435 | false => L_5436 | |
| block L_5435 () | |
| val x_48997: word64 = prim Word64_add (x_48988, x_49260) | |
| case x_49107 of | |
| nil_5 => L_5432 | ::_5 => L_5548 | |
| block L_5432 () | |
| val x_48998: (word8) sequence = prim Array_toVector (x_49262) | |
| goto L_5437 (x_48998) | |
| block L_5548 (x_49357: (list_9, (word8) sequence) ::_5) | |
| val x_49359: list_9 = #0 x_49357 | |
| val x_49358: (word8) sequence = #1 x_49357 | |
| goto L_5431 (x_49359, x_49358, x_49262, x_48997) | |
| block L_5436 () | |
| val x_48996: word64 = prim Word64_add (x_48992, x_49260) | |
| val x_48995: word8 = #0 $(x_49106, x_48992) | |
| updWB#0 $(x_49262, x_48996) := x_48995 | |
| val x_48994: word64 = prim Word64_add (x_48992, global_249 (*0x1:w64*)) | |
| goto loop_308 (x_48994) | |
| block L_5433 () | |
| val _: unit = | |
| prim Array_copyVector (x_49262, | |
| x_49260, | |
| x_49106, | |
| global_138 (*0x0:w64*), | |
| x_48988) | |
| goto L_5435 () | |
| block L_nonZeroLen_1 () | |
| val x_49115: (word8 mut) sequence = prim Array_alloc (x_48979) | |
| goto L_5431 (x_48972, | |
| global_322 (*"Fail: "*), | |
| x_49115, | |
| global_138 (*0x0:w64*)) | |
| block L_5547 (x_49354: (list_9, (word8) sequence) ::_5) | |
| val x_49356: list_9 = #0 x_49354 | |
| val x_49355: (word8) sequence = #1 x_49354 | |
| goto L_5426 (x_49356, x_49355, x_48979) | |
| block L_5425 () | |
| case x_49103 of | |
| nil_0 => L_5420 | ::_0 => L_5546 | |
| block L_5546 (x_49348: (list_4, lambdas_0) ::_0) | |
| val x_49350: list_4 = #0 x_49348 | |
| val x_49349: lambdas_0 = #1 x_49348 | |
| goto L_5419 (x_49350, x_49349) | |
| block L_5421 () | |
| case x_49103 of | |
| nil_0 => L_5420 | ::_0 => L_5544 | |
| block L_5544 (x_49345: (list_4, lambdas_0) ::_0) | |
| val x_49347: list_4 = #0 x_49345 | |
| val x_49346: lambdas_0 = #1 x_49345 | |
| goto L_5419 (x_49347, x_49346) | |
| block L_1452 () | |
| call L_1456 (x_45548 (global_54 (*0x1:w32*))) handle _ => L_5492 | |
| block L_5541 (x_49335: (list_11) ::_7) | |
| val x_49336: list_11 = #0 x_49335 | |
| goto loop_295 (x_49336) | |
| block loop_295 (x_49300: list_11) | |
| case x_49300 of | |
| nil_7 => L_261 | ::_7 => L_5542 | |
| block L_5542 (x_49337: (list_11) ::_7) | |
| val x_49338: list_11 = #0 x_49337 | |
| goto loop_295 (x_49338) | |
| block L_5402 () | |
| val x_48937: word64 = prim Word64_add (x_48933, global_249 (*0x1:w64*)) | |
| val x_48936: bool = prim WordS64_addCheckP (x_48933, global_249 (*0x1:w64*)) | |
| case x_48936 of | |
| true => L_5405 | false => L_5404 | |
| block L_5405 () | |
| val _: unit = | |
| prim CFunction {args = ((word8) sequence), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Objptr), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = Stdio_print} (global_213 (*"unhandled ... on: "*)) | |
| val _: unit = | |
| prim CFunction {args = ((word8) sequence), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Objptr), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = Stdio_print} (global_12 (*"Overflow"*)) | |
| val _: unit = | |
| prim CFunction {args = ((word8) sequence), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Objptr), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = Stdio_print} (global_215 (*"\n"*)) | |
| val _: unit = prim MLton_bug (global_216 (*"unhandled ... rary"*)) | |
| bug | |
| block L_5404 () | |
| val x_49334: (list_11) ::_7 = obj ::_7 (x_48932) | |
| val x_48938: list_11 = inj (x_49334): list_11 | |
| goto loop_294 (x_48938, x_48937, global_138 (*0x0:w64*)) | |
| fun f_1265 (x_49086: word32, env_2232: (word16, (unit mut) tuple) tuple): | |
| {returns = Some (), raises = Some (exn)} = | |
| L_5487 () | |
| block L_5487 () | |
| val x_49381: word16 = #0 env_2232 | |
| val x_48924: bool = prim Word32_equal (x_49086, global_140 (*0x0:w32*)) | |
| case x_48924 of | |
| true => L_1483 | false => L_1482 | |
| block L_1483 () | |
| return () | |
| block L_1482 () | |
| val _: word16 = prim Trace_noTuple (x_49381) | |
| val x_49333: (word32, (word16, (unit mut) tuple) tuple) xEnv_56 = | |
| obj xEnv_56 (x_49086, env_2232) | |
| val x_45576: lambdas_23 = inj (x_49333): lambdas_23 | |
| call tail par_6 (x_45576) | |
| fun par_6 (x_49085: lambdas_23): {returns = None, raises = Some (exn)} = | |
| L_5486 () | |
| block L_5486 () | |
| spork {spid = SP_0, cont = L_1506, spwn = L_1507} | |
| block L_1506 () | |
| val x_45625: bool = | |
| prim CFunction {args = (), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (), res = Some Int32}, | |
| return = bool, | |
| symbolScope = private, | |
| target = ABP_deque_push_bot2} () | |
| case x_45625 of | |
| true => L_5073 | false => L_5504 | |
| block L_5073 () | |
| val x_48479: cpointer = prim GC_state () | |
| val x_45691: thread = | |
| prim CFunction {args = (cpointer), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (CPointer), res = Some Objptr}, | |
| return = thread, | |
| symbolScope = private, | |
| target = GC_getCurrentThread} (x_48479) | |
| val rightSideThreadSlot_4: (unit mut) tuple = obj (x_48915 (*obj ()*)) | |
| val left_8: (word64 mut) tuple = obj (global_138 (*0x0:w64*)) | |
| val _: unit = | |
| prim CFunction {args = ((word64 mut) tuple), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Objptr), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = GC_HH_decheckFork2} (left_8) | |
| val x_45693: word64 = RB #0 left_8 | |
| val x_45692: (thread, (unit mut) tuple, word64) tuple = | |
| obj (x_45691, rightSideThreadSlot_4, x_45693) | |
| val _: thread = prim spork_forkThreadAndSetData (x_45691, x_45692) | |
| case x_49085 of | |
| xEnv_57 => L_1502 | xEnv_56 => L_5540 | |
| block L_1502 () | |
| call L_1511 (x_45548 (global_140 (*0x0:w32*))) handle _ => L_1512 | |
| block L_1511 () | |
| spoin {spid = SP_0, seq = L_5506, sync = L_1518} | |
| block L_5506 () | |
| raise (global_563) | |
| block L_1518 () | |
| val data_2: (thread, (unit mut) tuple, word64) tuple = | |
| prim spork_getData<SP_0> () | |
| val x_49380: word64 = #2 data_2 | |
| val _: unit = | |
| prim CFunction {args = (word64), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Word64), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = GC_HH_joinIntoParentBeforeFastClone2} (x_49380) | |
| raise (global_563) | |
| block L_1512 (bodyexn_0: exn) | |
| spoin {spid = SP_0, seq = L_1513, sync = L_1514} | |
| block L_1513 () | |
| raise (bodyexn_0) | |
| block L_1514 () | |
| val data_1: (thread, (unit mut) tuple, word64) tuple = | |
| prim spork_getData<SP_0> () | |
| val x_49379: word64 = #2 data_1 | |
| val _: unit = | |
| prim CFunction {args = (word64), | |
| convention = cdecl, | |
| inline = false, | |
| kind = Impure, | |
| prototype = {args = (Word64), res = None}, | |
| return = unit, | |
| symbolScope = private, | |
| target = GC_HH_joinIntoParentBeforeFastClone2} (x_49379) | |
| raise (global_563) | |
| block L_5540 (x_49330: (word32, (word16, (unit mut) tuple) tuple) xEnv_56) | |
| val x_49377: word32 = #0 x_49330 | |
| val x_49378: (word16, (unit mut) tuple) tuple = #1 x_49330 | |
| val x_48745: word32 = prim Word32_sub (x_49377, global_54 (*0x1:w32*)) | |
| val x_48744: bool = prim WordS32_subCheckP (x_49377, global_54 (*0x1:w32*)) | |
| case x_48744 of | |
| true => L_5505 | false => L_5249 | |
| block L_5505 () | |
| goto L_1512 (global_550) | |
| block L_5249 () | |
| call L_1511 (f_1265 (x_48745, x_49378)) handle _ => L_1512 | |
| block L_5504 () | |
| goto L_1512 (global_560) | |
| block L_1507 () | |
| val data_0: (thread, (unit mut) tuple, word64) tuple = | |
| prim spork_getData<SP_0> () | |
| val x_49376: (unit mut) tuple = #1 data_0 | |
| updWB#0 x_49376 := x_48915 (*obj ()*) | |
| val _: unit = prim MLton_bug (global_530 (*"Spork spw ... rned"*)) | |
| bug | |
| fun x_45548 (x_49095: word32): {returns = Some (), raises = Some (exn)} = | |
| L_5493 () | |
| block L_5493 () | |
| val x_48925: bool = prim Word32_equal (x_49095, global_140 (*0x0:w32*)) | |
| case x_48925 of | |
| true => L_1499 | false => L_1498 | |
| block L_1499 () | |
| return () | |
| block L_1498 () | |
| val x_49329: () xEnv_57 = obj xEnv_57 () | |
| val x_45595: lambdas_23 = inj (x_49329): lambdas_23 | |
| call tail par_6 (x_45595) | |
| fun exit_20 (x_49053: word32, | |
| env_2229: ((bool mut) tuple, (word8 mut) sequence) tuple): | |
| {returns = None, raises = Some ()} = | |
| L_5468 () | |
| block L_5468 () | |
| val x_49374: (bool mut) tuple = #0 env_2229 | |
| val x_49375: (word8 mut) sequence = #1 env_2229 | |
| val x_48367: bool = RB #0 x_49374 | |
| case x_48367 of | |
| true => L_1803 | false => L_1802 | |
| block L_1803 () | |
| raise () | |
| block L_1802 () | |
| updWB#0 x_49374 := global_549 | |
| val x_48699: bool = prim WordS32_lt (x_49053, global_140 (*0x0:w32*)) | |
| case x_48699 of | |
| true => L_1816 | false => L_5217 | |
| block L_1816 () | |
| val _: unit = prim Thread_atomicBegin () | |
| val x_45857: word8 = RB #0 global_300 | |
| val x_48931: bool = prim Word8_equal (x_45857, global_225 (*0x0:w8*)) | |
| case x_48931 of | |
| true => L_1821 | false => L_5503 | |
| block L_1821 () | |
| val x_45860: word8 = | |
| prim Ref_cas (global_300, global_225 (*0x0:w8*), global_427 (*0x1:w8*)) | |
| val x_48930: bool = prim Word8_equal (x_45860, global_225 (*0x0:w8*)) | |
| case x_48930 of | |
| true => L_5036 | false => L_5508 | |
| block L_5036 () | |
| val x_48374: word32 = prim Thread_atomicState () | |
| val x_48928: bool = prim Word32_equal (x_48374, global_140 (*0x0:w32*)) | |
| case x_48928 of | |
| true => L_5038 | false => L_5037 | |
| block L_5038 () | |
| raise () | |
| block L_5037 () | |
| val _: unit = prim Thread_atomicEnd () | |
| case x_48699 of | |
| true => L_5509 | false => L_5510 | |
| block L_5509 () | |
| goto loop_279 (global_91 (*0x20:w32*), x_49053, x_48930, x_49375) | |
| block loop_279 (x_48860: word32, | |
| x_48861: word32, | |
| x_49149: bool, | |
| x_49148: (word8 mut) sequence) | |
| val x_48423: word32 = prim WordS32_rem (x_48861, global_66 (*0xA:w32*)) | |
| val x_48425: word32 = prim Word32_neg (x_48423) | |
| val x_48724: word64 = prim WordS32_extdToWord64 (x_48425) | |
| val x_48722: bool = prim WordU64_lt (x_48724, global_539 (*0x10:w64*)) | |
| case x_48722 of | |
| true => L_5231 | false => L_1836 | |
| block L_5231 () | |
| val x_48728: word8 = #0 $(global_299 (*"0123456789ABCDEF"*), x_48724) | |
| val x_48726: word64 = prim Array_length (x_49148) | |
| val x_48727: word64 = prim WordS32_extdToWord64 (x_48860) | |
| val x_48725: bool = prim WordU64_lt (x_48727, x_48726) | |
| case x_48725 of | |
| true => L_5233 | false => L_1836 | |
| block L_5233 () | |
| updWB#0 $(x_49148, x_48727) := x_48728 | |
| val x_49060: word32 = prim WordS32_quot (x_48861, global_66 (*0xA:w32*)) | |
| val x_48927: bool = prim Word32_equal (x_49060, global_140 (*0x0:w32*)) | |
| case x_48927 of | |
| true => L_1889 | false => L_1888 | |
| block L_1889 () | |
| case x_48699 of | |
| true => L_1895 | false => L_1894 | |
| block L_1895 () | |
| val x_48732: word32 = prim Word32_sub (x_48860, global_54 (*0x1:w32*)) | |
| val x_48731: bool = prim WordS32_subCheckP (x_48860, global_54 (*0x1:w32*)) | |
| case x_48731 of | |
| true => L_1836 | false => L_5236 | |
| block L_1836 () | |
| case x_49149 of | |
| true => L_5039 | false => L_1848 | |
| block L_5039 () | |
| updWB#0 global_300 := global_225 (*0x0:w8*) | |
| raise () | |
| block L_1848 () | |
| raise () | |
| block L_5236 () | |
| val x_48735: word64 = prim WordS32_extdToWord64 (x_48732) | |
| val x_48733: bool = prim WordU64_lt (x_48735, x_48726) | |
| case x_48733 of | |
| true => L_5239 | false => L_1836 | |
| block L_5239 () | |
| updWB#0 $(x_49148, x_48735) := global_428 (*0x7E:w8*) | |
| goto L_1896 (x_48732) | |
| block L_1896 (x_45919: word32) | |
| val x_48438: word64 = prim WordS32_extdToWord64 (x_45919) | |
| val x_48445: bool = prim WordU64_lt (x_48726, x_48438) | |
| case x_48445 of | |
| true => L_1836 | false => L_4282 | |
| block L_4282 () | |
| val x_48446: word64 = prim Word64_sub (x_48726, x_48438) | |
| val isZero_2: bool = prim Word64_equal (global_138 (*0x0:w64*), x_48446) | |
| case isZero_2 of | |
| true => L_zeroLen_0 | false => L_nonZeroLen_0 | |
| block L_zeroLen_0 () | |
| goto L_join_0 (zeroArr_0) | |
| block L_join_0 (x_48429: (word8 mut) sequence) | |
| val x_48430: bool = prim WordS64_lt (x_48446, global_246 (*0x5:w64*)) | |
| case x_48430 of | |
| true => L_4584 | false => L_4583 | |
| block L_4584 () | |
| val x_48431: word64 = prim Word64_sub (x_48446, global_249 (*0x1:w64*)) | |
| goto loop_265 (global_138 (*0x0:w64*)) | |
| block loop_265 (x_47699: word64) | |
| val x_48434: bool = prim WordS64_lt (x_48431, x_47699) | |
| case x_48434 of | |
| true => L_4585 | false => L_4592 | |
| block L_4585 () | |
| val x_48432: (word8) sequence = prim Array_toVector (x_48429) | |
| case x_49149 of | |
| true => L_5040 | false => L_1850 | |
| block L_5040 () | |
| updWB#0 global_300 := global_225 (*0x0:w8*) | |
| goto L_1850 () | |
| block L_1850 () | |
| val x_49322: (list_9, (word8) sequence) ::_5 = | |
| obj ::_5 (global_558, x_48432) | |
| val x_45881: list_9 = inj (x_49322): list_9 | |
| goto L_5473 (x_45881, | |
| global_429 (*"MLton.Exit.exit("*), | |
| global_138 (*0x0:w64*)) | |
| block L_5473 (x_49097: list_9, x_49096: (word8) sequence, x_49155: word64) | |
| val x_49065: word64 = prim Array_length (x_49096) | |
| val x_49066: word64 = prim Word64_add (x_49065, x_49155) | |
| val x_49064: bool = prim WordS64_addCheckP (x_49065, x_49155) | |
| case x_49064 of | |
| true => L_5476 | false => L_5475 | |
| block L_5476 () | |
| raise () | |
| block L_5475 () | |
| case x_49097 of | |
| nil_5 => L_5474 | ::_5 => L_5538 | |
| block L_5474 () | |
| val x_49069: bool = prim WordU64_lt (global_484 (*0x7FFFFFFF:w64*), x_49066) | |
| case x_49069 of | |
| true => L_5478 | false => L_5477 | |
| block L_5478 () | |
| raise () | |
| block L_5477 () | |
| val x_49070: (word8 mut) sequence = prim Array_alloc (x_49066) | |
| goto L_5479 (x_45881, | |
| global_429 (*"MLton.Exit.exit("*), | |
| global_138 (*0x0:w64*)) | |
| block L_5479 (x_49099: list_9, x_49098: (word8) sequence, x_49164: word64) | |
| val x_49075: word64 = prim Array_length (x_49098) | |
| val x_49074: bool = prim WordS64_lt (x_49075, global_246 (*0x5:w64*)) | |
| case x_49074 of | |
| true => L_5482 | false => L_5481 | |
| block L_5482 () | |
| val x_49078: word64 = prim Word64_sub (x_49075, global_249 (*0x1:w64*)) | |
| goto loop_316 (global_138 (*0x0:w64*)) | |
| block loop_316 (x_49079: word64) | |
| val x_49080: bool = prim WordS64_lt (x_49078, x_49079) | |
| case x_49080 of | |
| true => L_5483 | false => L_5484 | |
| block L_5483 () | |
| val x_49084: word64 = prim Word64_add (x_49075, x_49164) | |
| case x_49099 of | |
| nil_5 => L_5480 | ::_5 => L_5539 | |
| block L_5480 () | |
| raise () | |
| block L_5539 (x_49326: (list_9, (word8) sequence) ::_5) | |
| val x_49328: list_9 = #0 x_49326 | |
| val x_49327: (word8) sequence = #1 x_49326 | |
| goto L_5479 (x_49328, x_49327, x_49084) | |
| block L_5484 () | |
| val x_49083: word64 = prim Word64_add (x_49079, x_49164) | |
| val x_49082: word8 = #0 $(x_49098, x_49079) | |
| updWB#0 $(x_49070, x_49083) := x_49082 | |
| val x_49081: word64 = prim Word64_add (x_49079, global_249 (*0x1:w64*)) | |
| goto loop_316 (x_49081) | |
| block L_5481 () | |
| val _: unit = | |
| prim Array_copyVector (x_49070, | |
| x_49164, | |
| x_49098, | |
| global_138 (*0x0:w64*), | |
| x_49075) | |
| goto L_5483 () | |
| block L_5538 (x_49323: (list_9, (word8) sequence) ::_5) | |
| val x_49325: list_9 = #0 x_49323 | |
| val x_49324: (word8) sequence = #1 x_49323 | |
| goto L_5473 (x_49325, x_49324, x_49066) | |
| block L_4592 () | |
| val x_48436: word64 = prim Word64_add (x_47699, x_48438) | |
| val x_47710: word8 = RB #0 $(x_49148, x_48436) | |
| updWB#0 $(x_48429, x_47699) := x_47710 | |
| val x_48435: word64 = prim Word64_add (x_47699, global_249 (*0x1:w64*)) | |
| goto loop_265 (x_48435) | |
| block L_4583 () | |
| val _: unit = | |
| prim Array_copyArray (x_48429, | |
| global_138 (*0x0:w64*), | |
| x_49148, | |
| x_48438, | |
| x_48446) | |
| goto L_4585 () | |
| block L_nonZeroLen_0 () | |
| val x_49114: (word8 mut) sequence = prim Array_alloc (x_48446) | |
| goto L_join_0 (x_49114) | |
| block L_1894 () | |
| goto L_1896 (x_48860) | |
| block L_1888 () | |
| val x_48730: word32 = prim Word32_sub (x_48860, global_54 (*0x1:w32*)) | |
| val x_48729: bool = prim WordS32_subCheckP (x_48860, global_54 (*0x1:w32*)) | |
| case x_48729 of | |
| true => L_1836 | false => L_5234 | |
| block L_5234 () | |
| goto loop_279 (x_48730, x_49060, x_49149, x_49148) | |
| block L_5510 () | |
| goto L_1841 (x_48930, x_49375) | |
| block L_1841 (x_49147: bool, x_49146: (word8 mut) sequence) | |
| val x_48376: word32 = prim Word32_neg (x_49053) | |
| goto loop_279 (global_91 (*0x20:w32*), x_48376, x_49147, x_49146) | |
| block L_5508 () | |
| goto L_5032 (x_48930) | |
| block L_5032 (x_49138: bool) | |
| val x_48372: word32 = prim Thread_atomicState () | |
| val x_48929: bool = prim Word32_equal (x_48372, global_140 (*0x0:w32*)) | |
| case x_48929 of | |
| true => L_5035 | false => L_5034 | |
| block L_5035 () | |
| raise () | |
| block L_5034 () | |
| val _: unit = prim Thread_atomicEnd () | |
| val x_49055: word64 = 0x21:w64 | |
| val x_49054: (word8 mut) sequence = prim Array_alloc (x_49055) | |
| goto loop_313 (global_138 (*0x0:w64*)) | |
| block loop_313 (x_49056: word64) | |
| val x_49057: bool = prim WordS64_lt (x_49056, x_49055) | |
| case x_49057 of | |
| true => L_5470 | false => L_5469 | |
| block L_5470 () | |
| updWB#0 $(x_49054, x_49056) := global_225 (*0x0:w8*) | |
| val x_49058: word64 = prim Word64_add (x_49056, global_249 (*0x1:w64*)) | |
| goto loop_313 (x_49058) | |
| block L_5469 () | |
| case x_48699 of | |
| true => L_5512 | false => L_5513 | |
| block L_5512 () | |
| goto loop_279 (global_91 (*0x20:w32*), x_49053, x_49138, x_49054) | |
| block L_5513 () | |
| goto L_1841 (x_49138, x_49054) | |
| block L_5503 () | |
| goto L_5032 (global_547) | |
| block L_5217 () | |
| val x_48368: bool = prim WordS32_lt (x_49053, global_274 (*0x100:w32*)) | |
| case x_48368 of | |
| true => loop_260 | false => L_1816 | |
| block loop_260 () | |
| val _: unit = prim MLton_halt (x_49053) | |
| val _: unit = prim MLton_bug (global_419 (*"MLton.Exit.halt"*)) | |
| bug | |
| (* Main: *) main_4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment