This pull-request supersedes #121, which was never merged, as a solution to embedding the interpreter and allowing flexible I/O handling:
Rather than changing our builtin-signatures we introduce a new config/ package.
We pass an instance of the configuration object, containing handles, to the interpreter.
This is then accessed to read/write to STDIN/STDOUT.
The test-case for (print), TestPrint, was updated to send output to a faux I/O helper - which is actually a buffer - and shows that the indirection works.
And now that we've implemented the I/O helper we've updated (read) to use it appropriately too.
This pull-request supersedes #121, which was never merged, as a solution to embedding the interpreter and allowing flexible I/O handling:
The test-case for (print), TestPrint, was updated to send output to a faux I/O helper - which is actually a buffer - and shows that the indirection works.
And now that we've implemented the I/O helper we've updated (read) to use it appropriately too.