In the following code, with the error line marked with a "119", I get a SIGSEGV. Software distribution is arch linux on this machine. var envs, wavs, fms, macros: seq[tuple[name: string, values: string]] var name, artist: string = "" var tickrate: int16 = 0 ... proc loadfile(filename: string): seq[tuple[blk: string, lin: string]] = var wavblock, envblock, mublockplay, mublockloop, fmblock: bool = false var metablock: bool = true var counter: int = 0 block load: for line in lines(filename): counter.inc echo counter block read: if line.startsWith('#'): break read elif line.startsWith("END"): break load elif line.isNilOrEmpty(): break read elif line.isNilOrWhitespace(): break read elif line.startsWith("/env"): envblock = true metablock = false mublockplay = false mublockloop = false fmblock = false wavblock = false break read elif line.startsWith("/wav"): wavblock = true metablock = false mublockplay = false mublockloop = false fmblock = false envblock = false break read elif line.startsWith("/fm"): fmblock = true metablock = false mublockplay = false mublockloop = false envblock = false wavblock = false break read elif line.startsWith("/mu1"): mublockplay = true fmblock = false metablock = false mublockloop = false envblock = false wavblock = false break read elif line.startsWith("/mu2"): mublockloop = true fmblock = false metablock = false mublockplay = false envblock = false wavblock = false break read elif metablock and line.startsWith("name="): name = line name.removePrefix("name=") break read elif metablock and line.startsWith("artist="): artist = line name.removePrefix("artist=") break read elif metablock and line.endsWith("hz"): var templine = line templine.removeSuffix("hz") tickrate = templine.parseInt().int16 break read elif mublockplay or mublockloop: if mublockplay: result.add(("mP", line)) break read else: result.add(("mL", line)) break read elif envblock and not line.isNilOrEmpty(): 119 result.add(("e", line)) break read elif wavblock and not line.isNilOrEmpty(): result.add(("w", line)) break read elif fmblock and not line.isNilOrEmpty(): result.add(("f", line)) break read else: break read return
The code being read is in [this link ](https://github.com/kinkinkijkin/kPMML/blob/master/examples/referenceexample4.txt) File exists. SIGSEGV happens after reading the first 6 lines (up to /env) Possibly a bug?