Rune - Stabilization, flesh out core classes
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 2 Apr 2016 21:29:27 +0000 (14:29 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 2 Apr 2016 21:29:27 +0000 (14:29 -0700)
commit73cdccfc2d5d142d5eb54f6b53411ae3750e5738
tree887e43ce7f554d04f84700815a1609750ba289aa
parent363cd774e06a9de3e7406097aa4fb1e55fb11228
Rune - Stabilization, flesh out core classes

* Add many more constants.

* Rename class Fd to class Fs and rearrange the methods.  Add additional
  classes.  Start working on Stream and StreamPair.  Somewhat hide the
  low-level pipe() and socketpair() calls.  Give StreamPair similar methods
  that make life easier.

* Fix a few cases where SGF_ADDRUSED and EXF_ADDRUSED were not being
  propagated properly by the resolver.  Hack the context code to check
  the arguments for ADDRUSED to trigger SRSGET/SRSPUT in the procedure's
  main context.  Fix a related bug.

* Properly propagate ADDRUSED and ADDROF in exp.exp (TOK_DOT) expressions.
  This introduces a bit of a performance regression due to extra LVRSGETs
  which will be fixed later.  Fixes a number of lvalue-related issues.

* Fix a ref-count issue revealed by a more sophisticated tests/fd_pipe.d
  Also test fgetbuf(), a high-performance descriptor data streamer.
29 files changed:
classes/generate/gen_defines.c
classes/stdio/file.d
classes/stdio/fopen.d
classes/stdio/fread.d
classes/stdio/fwrite.d
classes/stdio/misc.d
classes/sys/Makefile
classes/sys/class.d
classes/sys/fd.d
classes/sys/main.d
classes/sys/stream.d [new file with mode: 0644]
classes/sys/sys.d
libgen/gen_context.c
libgen/gen_exp.c
libgen/gen_refstor.c
libgen/sys.c
librune/resolve.c
librune/type.h
libruntime/sys_fd.c
libruntime/syscalls.h
tests/compound.d
tests/const.d
tests/fd_append.d
tests/fd_pipe.d
tests/file.d
tests/gfxinput2.d
tests/global.d
tests/heap3.d [new file with mode: 0755]
tests/read.d