-
Notifications
You must be signed in to change notification settings - Fork 69
I O Library
Some ideas for improving the I/O library...
The I/O library provides the format
module. In Gwydion Dylan, the format directives could handle more printf
functionality than the implementation in Open Dylan.
It should be pretty straight forward to port over the code from Gwydion Dylan into the code from Open Dylan.
If the Gwydion Dylan repository is added locally as a remote on your Open Dylan repository, you can probably actually cherry-pick the commits with a bit of work so that the original authorship is maintained. (Or use git format-patch
from the Gwydion repo, hand-edit, and apply to Open Dylan.)
The documentation, tests, and release notes should be updated.
Currently, people end up importing several modules just to be able to force-output
on *standard-output*
. This structure needs to be simplified.
The modules involved here are:
format
format-out
streams
standard-io
Proposals in this area are welcome.
- Proposal #1: The format-out library should provide a corresponding flush-out function. This eliminates the need for standard-io and streams for most people. This has been implemented.
- Proposal #2: Provide a message-out function or similar that combines format-out and force-out. This covers 90% of format-out usages.
The file APIs are specified in terms of <integer>
which is too limited for 32 bit platforms:
define function unix-read
(fd :: <integer>, data :: <buffer>, offset :: <integer>, count :: <integer>) => (result :: <integer>)
define function unix-write
(fd :: <integer>, data, offset :: <integer>, count :: <integer>) => (result :: <integer>)
define function unix-lseek
(fd :: <integer>, position :: <integer>, mode :: <integer>) => (position :: <integer>)