nightstrike has quit [Quit: Connection closed for inactivity]
tumbleweed has quit [Ping timeout: 264 seconds]
jcea has quit [Quit: jcea]
jcea has joined #pypy
jcea has quit [Client Quit]
jcea has joined #pypy
tumbleweed has joined #pypy
jcea has quit [Quit: jcea]
jcea has joined #pypy
jcea has quit [Read error: Connection reset by peer]
jcea has joined #pypy
jcea has quit [Ping timeout: 272 seconds]
nikolar has quit [Ping timeout: 252 seconds]
Lightsword has quit [*.net *.split]
arigato has quit [*.net *.split]
nimaje has quit [*.net *.split]
jerith has quit [*.net *.split]
agronholm has quit [*.net *.split]
antocuni has quit [*.net *.split]
tazle has quit [*.net *.split]
mjacob has quit [*.net *.split]
dmalcolm_ has quit [*.net *.split]
sam_ has quit [*.net *.split]
alice has quit [*.net *.split]
JAA has quit [*.net *.split]
tumbleweed has quit [*.net *.split]
atomizer has quit [*.net *.split]
itamarst has quit [*.net *.split]
larstiq_ has quit [*.net *.split]
krono has quit [*.net *.split]
mgorny has quit [*.net *.split]
pbsds3 has quit [*.net *.split]
graingert has quit [*.net *.split]
vext01 has quit [*.net *.split]
idnar has quit [*.net *.split]
Alex_Gaynor has quit [*.net *.split]
[Arfrever] has quit [*.net *.split]
yizawa has quit [*.net *.split]
ronan has quit [*.net *.split]
fijal has quit [*.net *.split]
samth has quit [*.net *.split]
korvo has quit [*.net *.split]
Hodgestar has quit [*.net *.split]
habnabit_ has quit [*.net *.split]
remn has quit [*.net *.split]
ahmedbodi has quit [*.net *.split]
ruth2345345 has quit [*.net *.split]
the_rat has quit [*.net *.split]
radiochad has quit [*.net *.split]
ammar2 has quit [*.net *.split]
lazka has quit [*.net *.split]
marvin__ has quit [*.net *.split]
infernix has quit [*.net *.split]
eamanu has quit [*.net *.split]
energizer has quit [*.net *.split]
mwhudson has quit [*.net *.split]
pvital has quit [*.net *.split]
xcm_ has quit [*.net *.split]
sugarbeet has quit [*.net *.split]
shodan45 has quit [*.net *.split]
luckydonald has quit [*.net *.split]
dustinm has quit [*.net *.split]
dbohdan[phone] has quit [*.net *.split]
pjenvey has quit [*.net *.split]
fish2 has quit [*.net *.split]
cfbolz has quit [*.net *.split]
nikolar has joined #pypy
antocuni has joined #pypy
agronholm has joined #pypy
jerith has joined #pypy
nimaje has joined #pypy
arigato has joined #pypy
Lightsword has joined #pypy
mjacob has joined #pypy
tazle has joined #pypy
cfbolz has joined #pypy
luckydonald has joined #pypy
ammar2 has joined #pypy
Hodgestar has joined #pypy
fish2 has joined #pypy
shodan45 has joined #pypy
mwhudson has joined #pypy
fijal has joined #pypy
samth has joined #pypy
sugarbeet has joined #pypy
energizer has joined #pypy
remn has joined #pypy
eamanu has joined #pypy
ronan has joined #pypy
Alex_Gaynor has joined #pypy
the_rat has joined #pypy
idnar has joined #pypy
ruth2345345 has joined #pypy
habnabit_ has joined #pypy
krono has joined #pypy
infernix has joined #pypy
xcm_ has joined #pypy
yizawa has joined #pypy
pjenvey has joined #pypy
atomizer has joined #pypy
JAA has joined #pypy
graingert has joined #pypy
dbohdan[phone] has joined #pypy
pbsds3 has joined #pypy
dustinm has joined #pypy
marvin__ has joined #pypy
lazka has joined #pypy
pvital has joined #pypy
mgorny has joined #pypy
larstiq_ has joined #pypy
alice has joined #pypy
[Arfrever] has joined #pypy
korvo has joined #pypy
vext01 has joined #pypy
ahmedbodi has joined #pypy
sam_ has joined #pypy
radiochad has joined #pypy
dmalcolm_ has joined #pypy
itamarst has joined #pypy
tumbleweed has joined #pypy
Techcable has quit [Ping timeout: 252 seconds]
Techcable has joined #pypy
itamarst has quit [Quit: Connection closed for inactivity]
mgorny has quit [Read error: Connection reset by peer]
mgorny has joined #pypy
itamarst has joined #pypy
jcea has joined #pypy
Dejan has joined #pypy
dmalcolm has joined #pypy
dmalcolm_ has quit [Ping timeout: 252 seconds]
jcea has quit [Remote host closed the connection]
jcea has joined #pypy
Dejan has quit [Quit: Leaving]
<korvo>
I want my RPython interpreter to be easily usable as a subprocess for a composable REPL. I already have a working REPL but I don't want to machine-parse its human-readable output.
<korvo>
With that in mind: what are the ways of doing JSON in RPython lately?
<arigato>
there is none that I'm aware of
<korvo>
Hm, alright. I could try breaking out some of the PyPy stdlib to form a meaningful generic RPython module. I could write my own JSON parser with RPLY. Or I could use jq for this project since I wouldn't be reusing that much of my existing RPython REPL.
<arigato>
unlike what the comment at the top says, the code appears to contain both reading and writing
<korvo>
And emitting JSON is merely a tree transformation. (I wish RPython had nice tree transformations and ADTs. If wishes were ponies...)
<korvo>
Actually, I can concretize this wish. I wish that we had a good way to provide base classes whose methods can vary in return type.
<korvo>
I suppose that we get close by replacing `return ` with `self.rv = ` within implemented methods, and then requiring an impure access for the child at the end. Like a traditional mutable visitor pattern.