Differences From
Artifact [1e93ad8eb5]:
178 178 self.buf = [rawstring](lib.mem.heapr_raw(self.buf, self.space))
179 179 end
180 180 lib.mem.cpy(self.buf + self.sz, str, len)
181 181 self.sz = self.sz + len
182 182 self.buf[self.sz] = 0
183 183 return self
184 184 end;
185 +
186 +terra m.acc:ipush(i: intptr)
187 + var decbuf: int8[21]
188 + var si = lib.math.decstr_friendly(i, &decbuf[20])
189 + var len: intptr = [decbuf.type.N] - (si - &decbuf[0])
190 + return self:push(si,len)
191 +end
192 +
193 +terra m.acc:shpush(i: uint64)
194 + var sbuf: int8[lib.math.shorthand.maxlen]
195 + var len = lib.math.shorthand.gen(i,&sbuf[0])
196 + return self:push(&sbuf[0], len)
197 +end
185 198
186 199 m.lit = macro(function(str)
187 200 if str:asvalue() ~= nil then
188 201 return `[lib.mem.ref(int8)] {ptr = [str:asvalue()], ct = [#(str:asvalue())]}
189 202 else
190 203 return `[lib.mem.ref(int8)] {ptr = nil, ct = 0}
191 204 end