Skip to content

Instantly share code, notes, and snippets.

@pscollins
Created April 10, 2026 13:39
Show Gist options
  • Select an option

  • Save pscollins/4915be8a94957b4af2c71a8f0c99384e to your computer and use it in GitHub Desktop.

Select an option

Save pscollins/4915be8a94957b4af2c71a8f0c99384e to your computer and use it in GitHub Desktop.
(* 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