Skip to content

Instantly share code, notes, and snippets.

@elcritch
Last active July 26, 2023 21:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elcritch/e3034b4d4a0ce65d4099a5f90a161dd2 to your computer and use it in GitHub Desktop.
Save elcritch/e3034b4d4a0ce65d4099a5f90a161dd2 to your computer and use it in GitHub Desktop.
nim-error-once+template+iterator
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x14)
frame #0: 0x00000001001d06a0 nim`hasContinue__transf_359(n=0x0000000000000000) at transf.nim:235:15 [opt]
232 result[i] = it
233
234 proc hasContinue(n: PNode): bool =
-> 235 case n.kind
236 of nkEmpty..nkNilLit, nkForStmt, nkParForStmt, nkWhileStmt: discard
237 of nkContinueStmt: result = true
238 else:
Target 0: (nim) stopped.
warning: nim was compiled with optimization - stepping may behave oddly; variables may not be available.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x14)
* frame #0: 0x00000001001d06a0 nim`hasContinue__transf_359(n=0x0000000000000000) at transf.nim:235:15 [opt]
frame #1: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd6a170) at transf.nim:240:37 [opt]
frame #2: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd6a1a0) at transf.nim:240:37 [opt]
frame #3: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd6a200) at transf.nim:240:37 [opt]
frame #4: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd6a2f0) at transf.nim:240:37 [opt]
frame #5: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd69980) at transf.nim:240:37 [opt]
frame #6: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd69a10) at transf.nim:240:37 [opt]
frame #7: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd69ec0) at transf.nim:240:37 [opt]
frame #8: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cd69f20) at transf.nim:240:37 [opt]
frame #9: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cb80980) at transf.nim:240:37 [opt]
frame #10: 0x00000001001d07d0 nim`hasContinue__transf_359(n=0x000000014cb77230) at transf.nim:240:37 [opt]
frame #11: 0x00000001001d082c nim`transformLoopBody__transf_396(c=0x000000014daed290, n=0x000000014cb77230) at transf.nim:269:29 [opt]
frame #12: 0x00000001001d4400 nim`transformWhile__transf_410(c=<unavailable>, n=0x000000014cc4ef50) at transf.nim:292:89 [opt]
frame #13: 0x00000001001cfd54 nim`transform__transf_135(c=0x000000014daed290, n=0x000000014cc4ef50) at transf.nim:967:12 [opt]
frame #14: 0x00000001001d363c nim`transformSons__transf_138(c=0x000000014daed290, n=0x000000014cc4eb00) at transf.nim:102:58 [opt]
frame #15: 0x00000001001cfda0 nim`transform__transf_135(c=0x000000014daed290, n=0x000000014cc4eb00) at transf.nim:0 [opt]
frame #16: 0x00000001001d363c nim`transformSons__transf_138(c=0x000000014daed290, n=0x000000014cc3c350) at transf.nim:102:58 [opt]
frame #17: 0x00000001001cfda0 nim`transform__transf_135(c=0x000000014daed290, n=0x000000014cc3c350) at transf.nim:0 [opt]
frame #18: 0x00000001001d363c nim`transformSons__transf_138(c=0x000000014daed290, n=0x000000014cb7f3e0) at transf.nim:102:58 [opt]
frame #19: 0x00000001001d4874 nim`transformBlock__transf_375(c=0x000000014daed290, n=0x000000014cb7f3e0) at transf.nim:258:11 [opt]
frame #20: 0x00000001001cfc8c nim`transform__transf_135(c=0x000000014daed290, n=0x000000014cb7f3e0) at transf.nim:969:12 [opt]
frame #21: 0x00000001001d363c nim`transformSons__transf_138(c=0x000000014daed290, n=0x0000000148539860) at transf.nim:102:58 [opt]
frame #22: 0x00000001001cfda0 nim`transform__transf_135(c=0x000000014daed290, n=0x0000000148539860) at transf.nim:0 [opt]
frame #23: 0x00000001001d363c nim`transformSons__transf_138(c=0x000000014daed290, n=0x000000014cbea500) at transf.nim:102:58 [opt]
frame #24: 0x00000001001cfda0 nim`transform__transf_135(c=0x000000014daed290, n=0x000000014cbea500) at transf.nim:0 [opt]
frame #25: 0x00000001001cf214 nim`transformBody__transf_16 [inlined] processTransf__transf_1661(c=0x000000014daed290, n=0x000000014cbea500, owner=0x000000014cc22dd0) at transf.nim:1082:11 [opt]
frame #26: 0x00000001001cf12c nim`transformBody__transf_16(g=0x0000000100785050, idgen=<unavailable>, prc=0x000000014cc22dd0, cache=true) at transf.nim:1146:12 [opt]
frame #27: 0x00000001001baf74 nim`detectCapturedVars__lambdalifting_2010(n=0x000000014cdfabf0, owner=<unavailable>, c=<unavailable>) at lambdalifting.nim:432:12 [opt]
frame #28: 0x00000001001baddc nim`detectCapturedVars__lambdalifting_2010(n=0x000000014cb79290, owner=<unavailable>, c=<unavailable>) at lambdalifting.nim:502:6 [opt]
frame #29: 0x00000001001baddc nim`detectCapturedVars__lambdalifting_2010(n=0x000000014cc4b1a0, owner=<unavailable>, c=<unavailable>) at lambdalifting.nim:502:6 [opt]
frame #30: 0x00000001001bdfe0 nim`liftLambdas__lambdalifting_5167(g=0x0000000100785050, fn=0x000000014cc50590, body=0x000000014cc4b1a0, tooEarly=0x000000014daed389, idgen=0x000000014c4d0dd0) at lambdalifting.nim:866:3 [opt]
frame #31: 0x00000001001cf128 nim`transformBody__transf_16(g=0x0000000100785050, idgen=<unavailable>, prc=0x000000014cc50590, cache=false) at transf.nim:1145:12 [opt]
frame #32: 0x0000000100316b48 nim`genProcAux__cgen_27307(m=0x0000000148536050, prc=0x000000014cc50590) at cgen.nim:1043:13 [opt]
frame #33: 0x0000000100318370 nim`genProcNoForward__cgen_27675(m=0x000000014ac69050, prc=0x000000014cc50590) at cgen.nim:1223:4 [opt]
frame #34: 0x00000001002fed34 nim`genProc__cgen_427(m=0x000000014ac69050, prc=0x000000014cc50590) at cgen.nim:1249:3 [opt]
frame #35: 0x00000001002f78d8 nim`expr__cgen_11669(p=0x000000014da9b9b0, n=0x000000014d4fc6b0, d=<unavailable>) at ccgexprs.nim:2811:5 [opt]
frame #36: 0x0000000100329508 nim`genPrefixCall__cgen_12582 [inlined] initLocExpr__cgen_11692(p=0x000000014da9b9b0, e=0x000000014d4fc6b0, result=0x000000016fdf96a8) at cgen.nim:649:2 [opt]
frame #37: 0x00000001003294d4 nim`genPrefixCall__cgen_12582(p=0x000000014da9b9b0, le=0x0000000000000000, ri=0x000000014d576440, d=0x000000016fdf9750) at ccgcalls.nim:416:2 [opt]
frame #38: 0x0000000100358b4c nim`downConv__cgen_25413 [inlined] initLocExpr__cgen_11692(p=0x000000014da9b9b0, e=0x000000014d576440, result=0x000000016fdf9750) at cgen.nim:649:2 [opt]
frame #39: 0x0000000100358b14 nim`downConv__cgen_25413(p=0x000000014da9b9b0, n=0x000000014d5763e0, d=0x000000016fdf98f8) at ccgexprs.nim:2705:3 [opt]
frame #40: 0x0000000100368838 nim`genAsgn__cgen_18012(p=0x000000014da9b9b0, e=<unavailable>, fastAsgn=false) at ccgstmts.nim:1601:3 [opt]
frame #41: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d5762c0) at ccgstmts.nim:1608:2 [opt]
frame #42: 0x0000000100357868 nim`genStmtList__cgen_25289(p=0x000000014da9b9b0, n=<unavailable>) at ccgexprs.nim:2639:6 [opt]
frame #43: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d576290) at ccgstmts.nim:1608:2 [opt]
frame #44: 0x0000000100357b40 nim`genStmtList__cgen_25289(p=0x000000014da9b9b0, n=<unavailable>) at ccgexprs.nim:2650:3 [opt]
frame #45: 0x00000001003569bc nim`genBlock__cgen_14911(p=0x000000014da9b9b0, n=0x000000014d570fb0, d=0x000000016fdf9d08) at ccgstmts.nim:643:2 [opt]
frame #46: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d570fb0) at ccgstmts.nim:1608:2 [opt]
frame #47: 0x0000000100357b40 nim`genStmtList__cgen_25289(p=0x000000014da9b9b0, n=<unavailable>) at ccgexprs.nim:2650:3 [opt]
frame #48: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d570f20) at ccgstmts.nim:1608:2 [opt]
frame #49: 0x0000000100357b40 nim`genStmtList__cgen_25289(p=0x000000014da9b9b0, n=<unavailable>) at ccgexprs.nim:2650:3 [opt]
frame #50: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d570ec0) at ccgstmts.nim:1608:2 [opt]
frame #51: 0x0000000100357868 nim`genStmtList__cgen_25289(p=0x000000014da9b9b0, n=<unavailable>) at ccgexprs.nim:2639:6 [opt]
frame #52: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d566ad0) at ccgstmts.nim:1608:2 [opt]
frame #53: 0x0000000100357b40 nim`genStmtList__cgen_25289(p=0x000000014da9b9b0, n=<unavailable>) at ccgexprs.nim:2650:3 [opt]
frame #54: 0x00000001003569bc nim`genBlock__cgen_14911(p=0x000000014da9b9b0, n=0x000000014d5697a0, d=0x000000016fdfa0f8) at ccgstmts.nim:643:2 [opt]
frame #55: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d5697a0) at ccgstmts.nim:1608:2 [opt]
frame #56: 0x0000000100357b40 nim`genStmtList__cgen_25289(p=0x000000014da9b9b0, n=<unavailable>) at ccgexprs.nim:2650:3 [opt]
frame #57: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d5680e0) at ccgstmts.nim:1608:2 [opt]
frame #58: 0x000000010035d060 nim`genWhileStmt__cgen_14828(p=0x000000014da9b9b0, t=<unavailable>) at ccgstmts.nim:619:3 [opt]
frame #59: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014da9b9b0, t=0x000000014d568530) at ccgstmts.nim:1608:2 [opt]
frame #60: 0x000000010031610c nim`genProcBody__cgen_27239(p=0x000000014da9b9b0, procBody=<unavailable>) at cgen.nim:1028:2 [opt]
frame #61: 0x0000000100317194 nim`genProcAux__cgen_27307(m=<unavailable>, prc=0x000000014d523ad0) at cgen.nim:1087:2 [opt]
frame #62: 0x0000000100318370 nim`genProcNoForward__cgen_27675(m=0x000000014ac69050, prc=0x000000014d523ad0) at cgen.nim:1223:4 [opt]
frame #63: 0x00000001002fed34 nim`genProc__cgen_427(m=0x000000014ac69050, prc=0x000000014d523ad0) at cgen.nim:1249:3 [opt]
frame #64: 0x00000001002f78d8 nim`expr__cgen_11669(p=0x000000014c954410, n=0x000000014d5802f0, d=<unavailable>) at ccgexprs.nim:2811:5 [opt]
frame #65: 0x000000010034dce8 nim`genClosure__cgen_25147 [inlined] initLocExpr__cgen_11692(p=0x000000014c954410, e=0x000000014d5802f0, result=0x000000016fdfa6c0) at cgen.nim:649:2 [opt]
frame #66: 0x000000010034dcb4 nim`genClosure__cgen_25147(p=0x000000014c954410, n=0x000000014d5802c0, d=0x000000016fdfa928) at ccgexprs.nim:2593:3 [opt]
frame #67: 0x0000000100357584 nim`genStmtListExpr__cgen_25235(p=0x000000014c954410, n=<unavailable>, d=0x000000016fdfa928) at ccgexprs.nim:2646:3 [opt]
frame #68: 0x0000000100368838 nim`genAsgn__cgen_18012(p=0x000000014c954410, e=<unavailable>, fastAsgn=false) at ccgstmts.nim:1601:3 [opt]
frame #69: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014c954410, t=0x000000014d570d70) at ccgstmts.nim:1608:2 [opt]
frame #70: 0x0000000100357868 nim`genStmtList__cgen_25289(p=0x000000014c954410, n=<unavailable>) at ccgexprs.nim:2639:6 [opt]
frame #71: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014c954410, t=0x000000014d564ad0) at ccgstmts.nim:1608:2 [opt]
frame #72: 0x0000000100357b40 nim`genStmtList__cgen_25289(p=0x000000014c954410, n=<unavailable>) at ccgexprs.nim:2650:3 [opt]
frame #73: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014c954410, t=0x000000014d576980) at ccgstmts.nim:1608:2 [opt]
frame #74: 0x000000010031610c nim`genProcBody__cgen_27239(p=0x000000014c954410, procBody=<unavailable>) at cgen.nim:1028:2 [opt]
frame #75: 0x0000000100317194 nim`genProcAux__cgen_27307(m=<unavailable>, prc=0x000000014d552350) at cgen.nim:1087:2 [opt]
frame #76: 0x0000000100318370 nim`genProcNoForward__cgen_27675(m=0x000000014ac69050, prc=0x000000014d552350) at cgen.nim:1223:4 [opt]
frame #77: 0x00000001002fed34 nim`genProc__cgen_427(m=0x000000014ac69050, prc=0x000000014d552350) at cgen.nim:1249:3 [opt]
frame #78: 0x00000001002f78d8 nim`expr__cgen_11669(p=0x000000014d379f50, n=0x000000014d583f50, d=<unavailable>) at ccgexprs.nim:2811:5 [opt]
frame #79: 0x000000010034dce8 nim`genClosure__cgen_25147 [inlined] initLocExpr__cgen_11692(p=0x000000014d379f50, e=0x000000014d583f50, result=0x000000016fdfb0b0) at cgen.nim:649:2 [opt]
frame #80: 0x000000010034dcb4 nim`genClosure__cgen_25147(p=0x000000014d379f50, n=0x000000014d583ec0, d=0x000000016fdfb298) at ccgexprs.nim:2593:3 [opt]
frame #81: 0x0000000100368838 nim`genAsgn__cgen_18012(p=0x000000014d379f50, e=<unavailable>, fastAsgn=false) at ccgstmts.nim:1601:3 [opt]
frame #82: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014d379f50, t=0x000000014d583a10) at ccgstmts.nim:1608:2 [opt]
frame #83: 0x0000000100357868 nim`genStmtList__cgen_25289(p=0x000000014d379f50, n=<unavailable>) at ccgexprs.nim:2639:6 [opt]
frame #84: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014d379f50, t=0x000000014d5826e0) at ccgstmts.nim:1608:2 [opt]
frame #85: 0x0000000100357b40 nim`genStmtList__cgen_25289(p=0x000000014d379f50, n=<unavailable>) at ccgexprs.nim:2650:3 [opt]
frame #86: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014d379f50, t=0x000000014d582260) at ccgstmts.nim:1608:2 [opt]
frame #87: 0x000000010031610c nim`genProcBody__cgen_27239(p=0x000000014d379f50, procBody=<unavailable>) at cgen.nim:1028:2 [opt]
frame #88: 0x0000000100317194 nim`genProcAux__cgen_27307(m=<unavailable>, prc=0x000000014d523110) at cgen.nim:1087:2 [opt]
frame #89: 0x0000000100318370 nim`genProcNoForward__cgen_27675(m=0x000000014ac69050, prc=0x000000014d523110) at cgen.nim:1223:4 [opt]
frame #90: 0x00000001002fed34 nim`genProc__cgen_427(m=0x000000014ac69050, prc=0x000000014d523110) at cgen.nim:1249:3 [opt]
frame #91: 0x000000010031639c nim`genStmts__cgen_11666(p=0x000000014c0bbc30, t=0x000000014d558710) at ccgstmts.nim:1608:2 [opt]
frame #92: 0x000000010031610c nim`genProcBody__cgen_27239(p=0x000000014c0bbc30, procBody=<unavailable>) at cgen.nim:1028:2 [opt]
frame #93: 0x0000000100379698 nim`genTopLevelStmt__cgen_29806(m=<unavailable>, n=<unavailable>) at cgen.nim:1992:3 [opt] [artificial]
frame #94: 0x00000001003796d8 nim`myProcess__cgen_29814(b=0x000000014ac69050, n=0x000000014d558710) at cgen.nim:1998:3 [opt]
frame #95: 0x000000010016b970 nim`processTopLevelStmt__passes_140(graph=0x0000000100785050, n=<unavailable>, a=0x000000016fdfbb70) at passes.nim:74:10 [opt]
frame #96: 0x000000010016bf94 nim`processModule__passes_213(graph=0x0000000100785050, module=0x000000014b388650, idgen=<unavailable>, stream=<unavailable>) at passes.nim:0:41 [opt]
frame #97: 0x0000000100383528 nim`compileModule__modules_33(graph=0x0000000100785050, fileIdx=<unavailable>, flags=0, fromModule=0x000000014ac15e90) at modules.nim:53:33 [opt]
frame #98: 0x00000001003836c0 nim`importModule__modules_86(graph=0x0000000100785050, s=0x000000014ac15e90, fileIdx=514) at modules.nim:82:11 [opt]
frame #99: 0x00000001001555b0 nim`myImportModule__importer_4771(c=0x000000014c3f6650, n=0x000000016fdfbde8, importStmtResult=0x000000014c3281d0) at importer.nim:290:16 [opt]
frame #100: 0x0000000100157600 nim`evalImport__importer_4992 [inlined] impMod__importer_4982(c=0x000000014c3f6650, it=<unavailable>, importStmtResult=0x000000014c3281d0) at importer.nim:317:6 [opt]
frame #101: 0x00000001001575e8 nim`evalImport__importer_4992(c=0x000000014c3f6650, n=<unavailable>) at importer.nim:349:6 [opt]
frame #102: 0x0000000100240fbc nim`semExpr__sem_52(c=0x000000014c3f6650, n=0x000000014ac102c0, flags=128, expectedType=0x0000000000000000) at semexprs.nim:3194:12 [opt]
frame #103: 0x00000001002cb1d4 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semExprNoType__sem_62(c=0x000000014c3f6650, n=0x000000014ac102c0) at semexprs.nim:1108:11 [opt]
frame #104: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semStmt__sem_87(c=0x000000014c3f6650, n=0x000000014ac102c0, flags=0) at semstmts.nim:2448:12 [opt]
frame #105: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555(c=0x000000014c3f6650, n=<unavailable>) at sem.nim:624:11 [opt]
frame #106: 0x00000001002cb4a0 nim`myProcess__sem_22606(context=0x000000014c3f6650, n=0x000000014ac102c0) at sem.nim:656:12 [opt]
frame #107: 0x000000010016b970 nim`processTopLevelStmt__passes_140(graph=0x0000000100785050, n=<unavailable>, a=0x000000016fdfc260) at passes.nim:74:10 [opt]
frame #108: 0x000000010016bf94 nim`processModule__passes_213(graph=0x0000000100785050, module=0x000000014ac15e90, idgen=<unavailable>, stream=<unavailable>) at passes.nim:0:41 [opt]
frame #109: 0x0000000100383528 nim`compileModule__modules_33(graph=0x0000000100785050, fileIdx=<unavailable>, flags=0, fromModule=0x000000014ac15a10) at modules.nim:53:33 [opt]
frame #110: 0x00000001003836c0 nim`importModule__modules_86(graph=0x0000000100785050, s=0x000000014ac15a10, fileIdx=513) at modules.nim:82:11 [opt]
frame #111: 0x00000001001555b0 nim`myImportModule__importer_4771(c=0x000000014c3f6050, n=0x000000016fdfc4d8, importStmtResult=0x000000014c3c3e30) at importer.nim:290:16 [opt]
frame #112: 0x0000000100157a34 nim`evalImport__importer_4992(c=0x000000014c3f6050, n=<unavailable>) at importer.nim:0 [opt]
frame #113: 0x0000000100240fbc nim`semExpr__sem_52(c=0x000000014c3f6050, n=0x000000014c314230, flags=128, expectedType=0x0000000000000000) at semexprs.nim:3194:12 [opt]
frame #114: 0x00000001002cb1d4 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semExprNoType__sem_62(c=0x000000014c3f6050, n=0x000000014c314230) at semexprs.nim:1108:11 [opt]
frame #115: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semStmt__sem_87(c=0x000000014c3f6050, n=0x000000014c314230, flags=0) at semstmts.nim:2448:12 [opt]
frame #116: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555(c=0x000000014c3f6050, n=<unavailable>) at sem.nim:624:11 [opt]
frame #117: 0x00000001002cb4a0 nim`myProcess__sem_22606(context=0x000000014c3f6050, n=0x000000014c314230) at sem.nim:656:12 [opt]
frame #118: 0x000000010016b970 nim`processTopLevelStmt__passes_140(graph=0x0000000100785050, n=<unavailable>, a=0x000000016fdfc950) at passes.nim:74:10 [opt]
frame #119: 0x000000010016bf94 nim`processModule__passes_213(graph=0x0000000100785050, module=0x000000014ac15a10, idgen=<unavailable>, stream=<unavailable>) at passes.nim:0:41 [opt]
frame #120: 0x0000000100383528 nim`compileModule__modules_33(graph=0x0000000100785050, fileIdx=<unavailable>, flags=0, fromModule=0x000000014c382dd0) at modules.nim:53:33 [opt]
frame #121: 0x00000001003836c0 nim`importModule__modules_86(graph=0x0000000100785050, s=0x000000014c382dd0, fileIdx=512) at modules.nim:82:11 [opt]
frame #122: 0x00000001001555b0 nim`myImportModule__importer_4771(c=0x0000000140187050, n=0x000000016fdfcbc8, importStmtResult=0x000000014c32b110) at importer.nim:290:16 [opt]
frame #123: 0x0000000100157600 nim`evalImport__importer_4992 [inlined] impMod__importer_4982(c=0x0000000140187050, it=<unavailable>, importStmtResult=0x000000014c32b110) at importer.nim:317:6 [opt]
frame #124: 0x00000001001575e8 nim`evalImport__importer_4992(c=0x0000000140187050, n=<unavailable>) at importer.nim:349:6 [opt]
frame #125: 0x0000000100240fbc nim`semExpr__sem_52(c=0x0000000140187050, n=0x000000014c37a650, flags=128, expectedType=0x0000000000000000) at semexprs.nim:3194:12 [opt]
frame #126: 0x00000001002cb1d4 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semExprNoType__sem_62(c=0x0000000140187050, n=0x000000014c37a650) at semexprs.nim:1108:11 [opt]
frame #127: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semStmt__sem_87(c=0x0000000140187050, n=0x000000014c37a650, flags=0) at semstmts.nim:2448:12 [opt]
frame #128: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555(c=0x0000000140187050, n=<unavailable>) at sem.nim:624:11 [opt]
frame #129: 0x00000001002cb4a0 nim`myProcess__sem_22606(context=0x0000000140187050, n=0x000000014c37a650) at sem.nim:656:12 [opt]
frame #130: 0x000000010016b970 nim`processTopLevelStmt__passes_140(graph=0x0000000100785050, n=<unavailable>, a=0x000000016fdfd040) at passes.nim:74:10 [opt]
frame #131: 0x000000010016bf94 nim`processModule__passes_213(graph=0x0000000100785050, module=0x000000014c382dd0, idgen=<unavailable>, stream=<unavailable>) at passes.nim:0:41 [opt]
frame #132: 0x0000000100383528 nim`compileModule__modules_33(graph=0x0000000100785050, fileIdx=<unavailable>, flags=0, fromModule=0x000000014ac08f50) at modules.nim:53:33 [opt]
frame #133: 0x00000001003836c0 nim`importModule__modules_86(graph=0x0000000100785050, s=0x000000014ac08f50, fileIdx=511) at modules.nim:82:11 [opt]
frame #134: 0x00000001001555b0 nim`myImportModule__importer_4771(c=0x0000000140187650, n=0x000000016fdfd2b8, importStmtResult=0x000000014c3c3d70) at importer.nim:290:16 [opt]
frame #135: 0x0000000100157600 nim`evalImport__importer_4992 [inlined] impMod__importer_4982(c=0x0000000140187650, it=<unavailable>, importStmtResult=0x000000014c3c3d70) at importer.nim:317:6 [opt]
frame #136: 0x00000001001575e8 nim`evalImport__importer_4992(c=0x0000000140187650, n=<unavailable>) at importer.nim:349:6 [opt]
frame #137: 0x0000000100240fbc nim`semExpr__sem_52(c=0x0000000140187650, n=0x000000014c3c39b0, flags=128, expectedType=0x0000000000000000) at semexprs.nim:3194:12 [opt]
frame #138: 0x00000001002cb1d4 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semExprNoType__sem_62(c=0x0000000140187650, n=0x000000014c3c39b0) at semexprs.nim:1108:11 [opt]
frame #139: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semStmt__sem_87(c=0x0000000140187650, n=0x000000014c3c39b0, flags=0) at semstmts.nim:2448:12 [opt]
frame #140: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555(c=0x0000000140187650, n=<unavailable>) at sem.nim:624:11 [opt]
frame #141: 0x00000001002cb4a0 nim`myProcess__sem_22606(context=0x0000000140187650, n=0x000000014c3c39b0) at sem.nim:656:12 [opt]
frame #142: 0x000000010016b970 nim`processTopLevelStmt__passes_140(graph=0x0000000100785050, n=<unavailable>, a=0x000000016fdfd730) at passes.nim:74:10 [opt]
frame #143: 0x000000010016bf94 nim`processModule__passes_213(graph=0x0000000100785050, module=0x000000014ac08f50, idgen=<unavailable>, stream=<unavailable>) at passes.nim:0:41 [opt]
frame #144: 0x0000000100383528 nim`compileModule__modules_33(graph=0x0000000100785050, fileIdx=<unavailable>, flags=0, fromModule=0x000000012b64bc50) at modules.nim:53:33 [opt]
frame #145: 0x00000001003836c0 nim`importModule__modules_86(graph=0x0000000100785050, s=0x000000012b64bc50, fileIdx=495) at modules.nim:82:11 [opt]
frame #146: 0x00000001001555b0 nim`myImportModule__importer_4771(c=0x0000000104c36650, n=0x000000016fdfd9a8, importStmtResult=0x000000014ac0caa0) at importer.nim:290:16 [opt]
frame #147: 0x0000000100157600 nim`evalImport__importer_4992 [inlined] impMod__importer_4982(c=0x0000000104c36650, it=<unavailable>, importStmtResult=0x000000014ac0caa0) at importer.nim:317:6 [opt]
frame #148: 0x00000001001575e8 nim`evalImport__importer_4992(c=0x0000000104c36650, n=<unavailable>) at importer.nim:349:6 [opt]
frame #149: 0x0000000100240fbc nim`semExpr__sem_52(c=0x0000000104c36650, n=0x000000014ac0c8f0, flags=128, expectedType=0x0000000000000000) at semexprs.nim:3194:12 [opt]
frame #150: 0x00000001002cb1d4 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semExprNoType__sem_62(c=0x0000000104c36650, n=0x000000014ac0c8f0) at semexprs.nim:1108:11 [opt]
frame #151: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semStmt__sem_87(c=0x0000000104c36650, n=0x000000014ac0c8f0, flags=0) at semstmts.nim:2448:12 [opt]
frame #152: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555(c=0x0000000104c36650, n=<unavailable>) at sem.nim:624:11 [opt]
frame #153: 0x00000001002cb4a0 nim`myProcess__sem_22606(context=0x0000000104c36650, n=0x000000014ac0c8f0) at sem.nim:656:12 [opt]
frame #154: 0x000000010016b970 nim`processTopLevelStmt__passes_140(graph=0x0000000100785050, n=<unavailable>, a=0x000000016fdfde20) at passes.nim:74:10 [opt]
frame #155: 0x000000010016bf94 nim`processModule__passes_213(graph=0x0000000100785050, module=0x000000012b64bc50, idgen=<unavailable>, stream=<unavailable>) at passes.nim:0:41 [opt]
frame #156: 0x0000000100383528 nim`compileModule__modules_33(graph=0x0000000100785050, fileIdx=<unavailable>, flags=0, fromModule=0x00000001087f64d0) at modules.nim:53:33 [opt]
frame #157: 0x00000001003836c0 nim`importModule__modules_86(graph=0x0000000100785050, s=0x00000001087f64d0, fileIdx=327) at modules.nim:82:11 [opt]
frame #158: 0x00000001001555b0 nim`myImportModule__importer_4771(c=0x0000000104c36050, n=0x000000016fdfe098, importStmtResult=0x0000000134850650) at importer.nim:290:16 [opt]
frame #159: 0x0000000100157600 nim`evalImport__importer_4992 [inlined] impMod__importer_4982(c=0x0000000104c36050, it=<unavailable>, importStmtResult=0x0000000134850650) at importer.nim:317:6 [opt]
frame #160: 0x00000001001575e8 nim`evalImport__importer_4992(c=0x0000000104c36050, n=<unavailable>) at importer.nim:349:6 [opt]
frame #161: 0x0000000100240fbc nim`semExpr__sem_52(c=0x0000000104c36050, n=0x0000000134a64bc0, flags=128, expectedType=0x0000000000000000) at semexprs.nim:3194:12 [opt]
frame #162: 0x00000001002cb1d4 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semExprNoType__sem_62(c=0x0000000104c36050, n=0x0000000134a64bc0) at semexprs.nim:1108:11 [opt]
frame #163: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555 [inlined] semStmt__sem_87(c=0x0000000104c36050, n=0x0000000134a64bc0, flags=0) at semstmts.nim:2448:12 [opt]
frame #164: 0x00000001002cb194 nim`semStmtAndGenerateGenerics__sem_22555(c=0x0000000104c36050, n=<unavailable>) at sem.nim:624:11 [opt]
frame #165: 0x00000001002cb4a0 nim`myProcess__sem_22606(context=0x0000000104c36050, n=0x0000000134a64bc0) at sem.nim:656:12 [opt]
frame #166: 0x000000010016b970 nim`processTopLevelStmt__passes_140(graph=0x0000000100785050, n=<unavailable>, a=0x000000016fdfe510) at passes.nim:74:10 [opt]
frame #167: 0x000000010016bf94 nim`processModule__passes_213(graph=0x0000000100785050, module=0x00000001087f64d0, idgen=<unavailable>, stream=<unavailable>) at passes.nim:0:41 [opt]
frame #168: 0x0000000100383528 nim`compileModule__modules_33(graph=0x0000000100785050, fileIdx=<unavailable>, flags=<unavailable>, fromModule=0x0000000000000000) at modules.nim:53:33 [opt]
frame #169: 0x0000000100383b08 nim`compileProject__modules_1218(graph=0x0000000100785050, projectFileIdx=<unavailable>) at modules.nim:0 [opt]
frame #170: 0x00000001003fa758 nim`commandCompileToC__main_367(graph=0x0000000100785050) at main.nim:104:2 [opt]
frame #171: 0x00000001003faa2c nim`compileToBackend__main_538(ClE_0=<unavailable>) at main.nim:0:2 [opt] [artificial]
frame #172: 0x00000001003fb5e0 nim`mainCommand__main_508(graph=<unavailable>) at main.nim:278:152 [opt]
frame #173: 0x00000001003fdc28 nim`handleCmdLine__nim_54(cache=0x0000000100756030, conf=0x000000010074c050) at nim.nim:108:2 [opt]
frame #174: 0x00000001003fe3dc nim`NimMainModule at nim.nim:152:2 [opt]
frame #175: 0x00000001003fe474 nim`main [inlined] NimMain at system.nim:2321:2 [opt]
frame #176: 0x00000001003fe454 nim`main(argc=<unavailable>, args=<unavailable>, env=<unavailable>) at system.nim:2328:2 [opt]
frame #177: 0x00000001a067bf28 dyld`start + 2236
(lldb)
genProcBody: result =
## Generate a root hash using the treehash algorithm
##
if isNone(self.rootHash):
let v`gensym150 = makeRoot(self)
case v`gensym150.oResultPrivate
of false:
return
typeof(result)(oResultPrivate: false,
eResultPrivate: v`gensym150.eResultPrivate)
of true:
else:
nil
success(
get(self.rootHash))
genProcBody: while true:
block :stateLoop:
goto :envP.`:state`12
state 0:
{.push, warning[resultshadowed]: false.}
var :envP.result1: int
{.pop.}
block :tmp:
## Read `nbytes` from current position in the StoreStream into output buffer pointed by `pbytes`.
## Return how many bytes were actually read before EOF was encountered.
## Raise exception if we are already at EOF.
##
{.noSideEffect.}:
{.push, warning[BareExcept]: false.}
try:
bind logIMPL, bindSym, brForceOpen
try:
block chroniclesLogStmt:
if not topicsMatch(TRACE, [topicStateIMPL("codex"),
topicStateIMPL("storestream")]):
break chroniclesLogStmt
var :envP.record2:
defaultChroniclesStreamLogRecord
mixin activateOutput
:envP.record2 = default(typeof(record_9579790424))
{.gcsafe.}:
addr(defaultChroniclesStreamOutputs)
[][0].currentRecordLevel = TRACE
{.gcsafe.}:
addr(defaultChroniclesStreamOutputs)
[][1].currentRecordLevel = TRACE
initLogRecord(:envP.record2[0], TRACE, "codex storestream",
"Reading from manifest")
initLogRecord(:envP.record2[1], TRACE, "codex storestream",
"Reading from manifest")
setProperty(:envP.record2[0], "tid", getLogThreadId())
writeField(:envP.record2[1].jsonWriter, "tid", getLogThreadId())
mixin setProperty, formatItIMPL
setProperty(:envP.record2[0], "cid",
shortLog(value(cid(:envP.`:up`.self1.manifest))))
setProperty(:envP.record2[1], "cid",
shortLog(value(cid(:envP.`:up`.self1.manifest))))
mixin setProperty, formatItIMPL
setProperty(:envP.record2[0], "blocks",
len(:envP.`:up`.self1.manifest))
setProperty(:envP.record2[1], "blocks",
len(:envP.`:up`.self1.manifest))
logAllDynamicProperties(
defaultChroniclesStream, :envP.record2)
flushRecord(:envP.record2[0])
flushRecord(:envP.record2[1])
except CatchableError:
let :envP.err`gensym144 = getCurrentException()
logLoggingFailure("Reading from manifest", (:envP.err`gensym144))
except:
discard
{.pop.}
if atEof(LPStream(:envP.`:up`.self1)):
raise newLPStreamEOFError()
var :envP.read5 = 0
block :tmp:
:envP.`:state` = 1
break :stateLoop
state 1:
if :envP.read5 < :envP.`:up`.nbytes2 and not atEof(LPStream(:envP.`:up`.self1)):
let :envP.blockNum6 = :envP.`:up`.self1.offset div
int(blockSize(:envP.`:up`.self1.manifest))
let :envP.blockOffset7 = :envP.`:up`.self1.offset mod
int(blockSize(:envP.`:up`.self1.manifest))
let :envP.readBytes8 = min([size(SeekableStream(:envP.`:up`.self1)) -
:envP.`:up`.self1.offset, :envP.`:up`.nbytes2 - :envP.read5, int(
blockSize(:envP.`:up`.self1.manifest)) -
:envP.blockOffset7])
var :envP.error`gensym399: ref CatchableError
let :envP.previousErrorVariable`gensym4110 = errorVariable
errorVariable = addr(:envP.error`gensym399)
discard
chronosInternalRetFuture.internalChild = FutureBase(getBlock(
:envP.`:up`.self1.store, :envP.`:up`.self1.manifest[
chckRange(:envP.blockNum6, 0, 9223372036854775807)]))
:envP.`:state` = 2
return chronosInternalRetFuture.internalChild
else:
:envP.`:state` = 10
break :stateLoop
state 2:
if chronosInternalRetFuture.internalMustCancel:
raise (ref CancelledError)(msg: "Future operation cancelled!")
internalCheckComplete(chronosInternalRetFuture.internalChild)
:envP.`:state` = 3
break :stateLoop
state 3:
let :envP.evaluated`gensym4312 = internalRead(cast[type(getBlock(
:envP.`:up`.self1.store, :envP.`:up`.self1.manifest[
chckRange(:envP.blockNum6, 0, 9223372036854775807)]))](chronosInternalRetFuture.internalChild))
:envP.`:state` = 4
break :stateLoop
state 4:
let :envP.option`gensym4313 = option(:envP.evaluated`gensym4312)
type
T`gensym43 = typeof(option`gensym43.unsafeGet())
let :envP.blk14 = if isSome(:envP.option`gensym4313): unsafeGet(
:envP.option`gensym4313) else:
mixin error
errorVariable[] = error(:envP.evaluated`gensym4312)
placeholder(T`gensym43)
:envP.`:state` = 5
break :stateLoop
state 5:
let :envP.evaluated`gensym4115 = isSome(:envP.option`gensym4313)
:envP.`:state` = 6
break :stateLoop
state 6:
discard
errorVariable = :envP.previousErrorVariable`gensym4110
:envP.`:state` = 7
break :stateLoop
state 7:
let :envP.ok`gensym4016 = :envP.evaluated`gensym4115
:envP.`:state` = 8
break :stateLoop
state 8:
if not :envP.ok`gensym4016:
template error(): ref CatchableError =
error`gensym39
raise newLPStreamReadError(:envP.error`gensym399)
:envP.`:state` = 9
break :stateLoop
state 9:
{.noSideEffect.}:
{.push, warning[BareExcept]: false.}
try:
bind logIMPL, bindSym, brForceOpen
try:
block chroniclesLogStmt:
if not topicsMatch(TRACE, [topicStateIMPL("codex"),
topicStateIMPL("storestream")]):
break chroniclesLogStmt
var :envP.record17:
defaultChroniclesStreamLogRecord
mixin activateOutput
:envP.record17 = default(typeof(record_9579790798))
{.gcsafe.}:
addr(defaultChroniclesStreamOutputs)
[][0].currentRecordLevel = TRACE
{.gcsafe.}:
addr(defaultChroniclesStreamOutputs)
[][1].currentRecordLevel = TRACE
initLogRecord(:envP.record17[0], TRACE, "codex storestream",
"Reading bytes from store stream")
initLogRecord(:envP.record17[1], TRACE, "codex storestream",
"Reading bytes from store stream")
setProperty(:envP.record17[0], "tid", getLogThreadId())
writeField(:envP.record17[1].jsonWriter, "tid", getLogThreadId())
mixin setProperty, formatItIMPL
setProperty(:envP.record17[0], "blockNum", :envP.blockNum6)
setProperty(:envP.record17[1], "blockNum", :envP.blockNum6)
mixin setProperty, formatItIMPL
setProperty(:envP.record17[0], "cid", shortLog(:envP.blk14.cid))
setProperty(:envP.record17[1], "cid", shortLog(:envP.blk14.cid))
mixin setProperty, formatItIMPL
setProperty(:envP.record17[0], "bytes", :envP.readBytes8)
setProperty(:envP.record17[1], "bytes", :envP.readBytes8)
mixin setProperty, formatItIMPL
setProperty(:envP.record17[0], "blockOffset", :envP.blockOffset7)
setProperty(:envP.record17[1], "blockOffset", :envP.blockOffset7)
logAllDynamicProperties(
defaultChroniclesStream, :envP.record17)
flushRecord(:envP.record17[0])
flushRecord(:envP.record17[1])
except CatchableError:
let :envP.err`gensym5818 = getCurrentException()
logLoggingFailure("Reading bytes from store stream",
(:envP.err`gensym5818))
except:
discard
{.pop.}
if isEmpty(:envP.blk14):
zeroMem(
cast[pointer](cast[uint](:envP.`:up`.pbytes3) + cast[uint](:envP.read5)),
chckRange(:envP.readBytes8, 0, 9223372036854775807))
else:
copyMem(
cast[pointer](cast[uint](:envP.`:up`.pbytes3) + cast[uint](:envP.read5)),
addr(:envP.blk14.data[:envP.blockOffset7]),
chckRange(:envP.readBytes8, 0, 9223372036854775807))
:envP.`:up`.self1.offset += :envP.readBytes8
:envP.read5 += :envP.readBytes8
:envP.`:state` = 1
break :stateLoop
state 10:
complete(cast[Future[int]](chronosInternalRetFuture), :envP.read5,
srcLocImpl("", "storestream.nim", 118))
:envP.`:state` = -1
return nil
:envP.`:state` = 11
break :stateLoop
state 11:
complete(cast[Future[int]](chronosInternalRetFuture), :envP.result1,
srcLocImpl("", "storestream.nim", 80))
:envP.`:state` = 12
break :stateLoop
state 12:
:envP.`:state` = -1
break :stateLoop
genProcBody:
var :env
internalNew(:env)
:env.self1 = self
:env.pbytes3 = pbytes
:env.nbytes2 = nbytes
## Read `nbytes` from current position in the StoreStream into output buffer pointed by `pbytes`.
## Return how many bytes were actually read before EOF was encountered.
## Raise exception if we are already at EOF.
##
iterator readOnce_9579790395(chronosInternalRetFuture: FutureBase; :envP): FutureBase {.
closure, gcsafe, raises: [Exception], raises: [], raises: [], raises: [],
raises: [], raises: [], raises: [], raises: [].} =
{.push, warning[resultshadowed]: false.}
var result: int
{.pop.}
block:
## Read `nbytes` from current position in the StoreStream into output buffer pointed by `pbytes`.
## Return how many bytes were actually read before EOF was encountered.
## Raise exception if we are already at EOF.
##
{.noSideEffect.}:
{.push, warning[BareExcept]: false.}
try:
bind logIMPL, bindSym, brForceOpen
try:
block chroniclesLogStmt:
if not topicsMatch(LogLevel(1), [topicStateIMPL("codex"),
topicStateIMPL("storestream")]):
break chroniclesLogStmt
var record_9579790424:
defaultChroniclesStreamLogRecord
mixin activateOutput
record_9579790424 = default(typeof(record_9579790424))
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][0].currentRecordLevel = LogLevel(1)
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][1].currentRecordLevel = LogLevel(1)
initLogRecord(record_9579790424[0], LogLevel(1),
"codex storestream", "Reading from manifest")
initLogRecord(record_9579790424[1], LogLevel(1),
"codex storestream", "Reading from manifest")
setProperty(record_9579790424[0], "tid", getLogThreadId())
writeField(record_9579790424[1].jsonWriter, "tid", getLogThreadId())
mixin setProperty, formatItIMPL
setProperty(record_9579790424[0], "cid",
shortLog(value(cid(self.manifest))))
setProperty(record_9579790424[1], "cid",
shortLog(value(cid(self.manifest))))
mixin setProperty, formatItIMPL
setProperty(record_9579790424[0], "blocks", len(self.manifest))
setProperty(record_9579790424[1], "blocks", len(self.manifest))
logAllDynamicProperties(
defaultChroniclesStream, record_9579790424)
flushRecord(record_9579790424[0])
flushRecord(record_9579790424[1])
except CatchableError as err`gensym14:
logLoggingFailure(cstring("Reading from manifest"), err`gensym14)
except:
discard
{.pop.}
if atEof(self):
raise newLPStreamEOFError()
var read = 0
while read < nbytes and not atEof(self):
let
blockNum = self.offset div int(blockSize(self.manifest))
blockOffset = self.offset mod int(blockSize(self.manifest))
readBytes = min([size(self) - self.offset, nbytes - read,
int(blockSize(self.manifest)) - blockOffset])
var error`gensym39: ref CatchableError
let ok`gensym40 =
let previousErrorVariable`gensym41 = errorVariable
errorVariable = addr error`gensym39
discard
let evaluated`gensym41 =
let evaluated`gensym43 =
chronosInternalRetFuture.internalChild = getBlock(self.store,
self.manifest[blockNum])
yield chronosInternalRetFuture.internalChild
if chronosInternalRetFuture.internalMustCancel:
raise (ref CancelledError)(msg: "Future operation cancelled!")
internalCheckComplete(chronosInternalRetFuture.internalChild)
internalRead(cast[type(getBlock(self.store,
self.manifest[blockNum]))](chronosInternalRetFuture.internalChild))
let option`gensym43 = option(evaluated`gensym43)
type
T`gensym43 = typeof(option`gensym43.unsafeGet())
let blk = if isSome(option`gensym43): unsafeGet(option`gensym43) else:
mixin error
errorVariable[] = error(evaluated`gensym43)
placeholder(T`gensym43)
isSome(option`gensym43)
discard
errorVariable = previousErrorVariable`gensym41
evaluated`gensym41
if not ok`gensym40:
template error(): ref CatchableError =
error`gensym39
raise newLPStreamReadError(error`gensym39)
{.noSideEffect.}:
{.push, warning[BareExcept]: false.}
try:
bind logIMPL, bindSym, brForceOpen
try:
block chroniclesLogStmt:
if not topicsMatch(LogLevel(1), [topicStateIMPL("codex"),
topicStateIMPL("storestream")]):
break chroniclesLogStmt
var record_9579790798:
defaultChroniclesStreamLogRecord
mixin activateOutput
record_9579790798 = default(typeof(record_9579790798))
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][0].currentRecordLevel = LogLevel(1)
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][1].currentRecordLevel = LogLevel(1)
initLogRecord(record_9579790798[0], LogLevel(1),
"codex storestream",
"Reading bytes from store stream")
initLogRecord(record_9579790798[1], LogLevel(1),
"codex storestream",
"Reading bytes from store stream")
setProperty(record_9579790798[0], "tid", getLogThreadId())
writeField(record_9579790798[1].jsonWriter, "tid",
getLogThreadId())
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "blockNum", blockNum)
setProperty(record_9579790798[1], "blockNum", blockNum)
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "cid", shortLog(blk.cid))
setProperty(record_9579790798[1], "cid", shortLog(blk.cid))
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "bytes", readBytes)
setProperty(record_9579790798[1], "bytes", readBytes)
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "blockOffset", blockOffset)
setProperty(record_9579790798[1], "blockOffset", blockOffset)
logAllDynamicProperties(
defaultChroniclesStream, record_9579790798)
flushRecord(record_9579790798[0])
flushRecord(record_9579790798[1])
except CatchableError as err`gensym58:
logLoggingFailure(cstring("Reading bytes from store stream"),
err`gensym58)
except:
discard
{.pop.}
if isEmpty(blk):
zeroMem(
cast[pointer](cast[uint](pbytes) + cast[uint](read)), readBytes)
else:
copyMem(
cast[pointer](cast[uint](pbytes) + cast[uint](read)),
addr(blk.data[blockOffset]), readBytes)
self.offset += readBytes
read += readBytes
complete(cast[Future[int]](chronosInternalRetFuture), read, srcLocImpl("",
(filename: "storestream.nim", line: 118, column: 9).filename,
(filename: "storestream.nim", line: 118, column: 9).line))
return nil
complete(cast[Future[int]](chronosInternalRetFuture), result, srcLocImpl("",
(filename: "storestream.nim", line: 80, column: 2).filename,
(filename: "storestream.nim", line: 80, column: 2).line))
let resultFuture =
newFutureImpl(srcLocImpl("readOnce", "storestream.nim", 75))
resultFuture.internalClosure =
var :env
internalNew(:env)
:env.`:up` = :env
(readOnce_9579790395, :env)
futureContinue(FutureBase(resultFuture))
return resultFuture
genProcBody: method readOnce(self: StoreStream; pbytes: pointer; nbytes: int): Future[int] {.
stackTrace: false, gcsafe, raises: [], raises: [], raises: [].} =
## Read `nbytes` from current position in the StoreStream into output buffer pointed by `pbytes`.
## Return how many bytes were actually read before EOF was encountered.
## Raise exception if we are already at EOF.
##
iterator readOnce_9579790395(chronosInternalRetFuture: FutureBase; :envP): FutureBase {.
closure, gcsafe, raises: [Exception], raises: [], raises: [], raises: [],
raises: [], raises: [], raises: [], raises: [].} =
{.push, warning[resultshadowed]: false.}
var result: int
{.pop.}
block:
## Read `nbytes` from current position in the StoreStream into output buffer pointed by `pbytes`.
## Return how many bytes were actually read before EOF was encountered.
## Raise exception if we are already at EOF.
##
{.noSideEffect.}:
{.push, warning[BareExcept]: false.}
try:
bind logIMPL, bindSym, brForceOpen
try:
block chroniclesLogStmt:
if not topicsMatch(LogLevel(1), [topicStateIMPL("codex"),
topicStateIMPL("storestream")]):
break chroniclesLogStmt
var record_9579790424:
defaultChroniclesStreamLogRecord
mixin activateOutput
record_9579790424 = default(typeof(record_9579790424))
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][0].currentRecordLevel = LogLevel(1)
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][1].currentRecordLevel = LogLevel(1)
initLogRecord(record_9579790424[0], LogLevel(1),
"codex storestream", "Reading from manifest")
initLogRecord(record_9579790424[1], LogLevel(1),
"codex storestream", "Reading from manifest")
setProperty(record_9579790424[0], "tid", getLogThreadId())
writeField(record_9579790424[1].jsonWriter, "tid",
getLogThreadId())
mixin setProperty, formatItIMPL
setProperty(record_9579790424[0], "cid",
shortLog(value(cid(self.manifest))))
setProperty(record_9579790424[1], "cid",
shortLog(value(cid(self.manifest))))
mixin setProperty, formatItIMPL
setProperty(record_9579790424[0], "blocks", len(self.manifest))
setProperty(record_9579790424[1], "blocks", len(self.manifest))
logAllDynamicProperties(
defaultChroniclesStream, record_9579790424)
flushRecord(record_9579790424[0])
flushRecord(record_9579790424[1])
except CatchableError as err`gensym14:
logLoggingFailure(cstring("Reading from manifest"), err`gensym14)
except:
discard
{.pop.}
if atEof(self):
raise newLPStreamEOFError()
var read = 0
while read < nbytes and not atEof(self):
let
blockNum = self.offset div int(blockSize(self.manifest))
blockOffset = self.offset mod int(blockSize(self.manifest))
readBytes = min([size(self) - self.offset, nbytes - read,
int(blockSize(self.manifest)) - blockOffset])
var error`gensym39: ref CatchableError
let ok`gensym40 =
let previousErrorVariable`gensym41 = errorVariable
errorVariable = addr error`gensym39
discard
let evaluated`gensym41 =
let evaluated`gensym43 =
chronosInternalRetFuture.internalChild = getBlock(self.store,
self.manifest[blockNum])
yield chronosInternalRetFuture.internalChild
if chronosInternalRetFuture.internalMustCancel:
raise (ref CancelledError)(msg: "Future operation cancelled!")
internalCheckComplete(chronosInternalRetFuture.internalChild)
internalRead(cast[type(getBlock(self.store,
self.manifest[blockNum]))](chronosInternalRetFuture.internalChild))
let option`gensym43 = option(evaluated`gensym43)
type
T`gensym43 = typeof(option`gensym43.unsafeGet())
let blk = if isSome(option`gensym43): unsafeGet(option`gensym43) else:
mixin error
errorVariable[] = error(evaluated`gensym43)
placeholder(T`gensym43)
isSome(option`gensym43)
discard
errorVariable = previousErrorVariable`gensym41
evaluated`gensym41
if not ok`gensym40:
template error(): ref CatchableError =
error`gensym39
raise newLPStreamReadError(error`gensym39)
{.noSideEffect.}:
{.push, warning[BareExcept]: false.}
try:
bind logIMPL, bindSym, brForceOpen
try:
block chroniclesLogStmt:
if not topicsMatch(LogLevel(1), [topicStateIMPL("codex"),
topicStateIMPL("storestream")]):
break chroniclesLogStmt
var record_9579790798:
defaultChroniclesStreamLogRecord
mixin activateOutput
record_9579790798 = default(typeof(record_9579790798))
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][0].currentRecordLevel = LogLevel(1)
{.gcsafe.}:
addr defaultChroniclesStreamOutputs
[][1].currentRecordLevel = LogLevel(1)
initLogRecord(record_9579790798[0], LogLevel(1),
"codex storestream",
"Reading bytes from store stream")
initLogRecord(record_9579790798[1], LogLevel(1),
"codex storestream",
"Reading bytes from store stream")
setProperty(record_9579790798[0], "tid", getLogThreadId())
writeField(record_9579790798[1].jsonWriter, "tid",
getLogThreadId())
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "blockNum", blockNum)
setProperty(record_9579790798[1], "blockNum", blockNum)
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "cid", shortLog(blk.cid))
setProperty(record_9579790798[1], "cid", shortLog(blk.cid))
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "bytes", readBytes)
setProperty(record_9579790798[1], "bytes", readBytes)
mixin setProperty, formatItIMPL
setProperty(record_9579790798[0], "blockOffset", blockOffset)
setProperty(record_9579790798[1], "blockOffset", blockOffset)
logAllDynamicProperties(
defaultChroniclesStream, record_9579790798)
flushRecord(record_9579790798[0])
flushRecord(record_9579790798[1])
except CatchableError as err`gensym58:
logLoggingFailure(cstring("Reading bytes from store stream"),
err`gensym58)
except:
discard
{.pop.}
if isEmpty(blk):
zeroMem(
cast[pointer](cast[uint](pbytes) + cast[uint](read)), readBytes)
else:
copyMem(
cast[pointer](cast[uint](pbytes) + cast[uint](read)),
addr(blk.data[blockOffset]), readBytes)
self.offset += readBytes
read += readBytes
complete(cast[Future[int]](chronosInternalRetFuture), read, srcLocImpl("",
(filename: "storestream.nim", line: 118, column: 9).filename,
(filename: "storestream.nim", line: 118, column: 9).line))
return nil
complete(cast[Future[int]](chronosInternalRetFuture), result, srcLocImpl("",
(filename: "storestream.nim", line: 80, column: 2).filename,
(filename: "storestream.nim", line: 80, column: 2).line))
let resultFuture =
newFutureImpl(srcLocImpl("readOnce", (filename: "storestream.nim", line: 75,
column: 0).filename, (filename: "storestream.nim", line: 75, column: 0).line))
resultFuture.internalClosure =
var :env
internalNew(:env)
:env.`:up` = :env
(readOnce_9579790395, :env)
futureContinue(resultFuture)
return resultFuture
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment