|
61 | 61 | cleaned up on module exit. |
62 | 62 |
|
63 | 63 |
|
| 64 | +Core Library |
| 65 | +~~~~~~~~~~~~ |
| 66 | + |
| 67 | +* Logs are more readable, and many :func:`repr` strings are more descriptive. |
| 68 | + The old pseudo-function-call format is slowly being migrated to |
| 69 | + human-readable output where appropriate. For example, |
| 70 | + *"Stream(ssh:123).connect()"* could become *"connecting to ssh:123"*. |
| 71 | + |
| 72 | +* :func:`bytearray` was removed from the list of supported serialization types. |
| 73 | + It has never been portable, and does not appear to have been used. |
| 74 | + |
| 75 | +* `#170 <https://github.com/dw/mitogen/issues/170>`_: to better support child |
| 76 | + process management and a future asynchronous connect implementation, a |
| 77 | + :class:`mitogen.parent.TimerList` API is available. |
| 78 | + |
| 79 | +* `#419 <https://github.com/dw/mitogen/issues/419>`_: the internal |
| 80 | + :class:`mitogen.core.Stream` has been refactored into 7 new classes, |
| 81 | + separating out protocol behaviour logic, output buffering, line-oriented |
| 82 | + input parsing, options handling, and connection management. The new |
| 83 | + connection management implementation is internally asynchronous, laying |
| 84 | + almost all the groundwork needed for fully asynchronous connect. |
| 85 | + |
| 86 | +* `#419 <https://github.com/dw/mitogen/issues/419>`_: zombie process reaping |
| 87 | + has vastly improved, by using the timer API to efficiently poll for a slow |
| 88 | + child to finish exiting. Polling avoids the need to install a process-global |
| 89 | + `SIGCHLD` handler, or rely on the process-global 'signal file descriptor' |
| 90 | + functionality only available in newer Python releases. |
| 91 | + |
| 92 | +* `#419 <https://github.com/dw/mitogen/issues/419>`_: almost all uses of |
| 93 | + :func:`os.dup` have been removed, along with almost all cases of manual file |
| 94 | + descriptor management. Descriptors are trapped in :func:`os.fdopen` objects |
| 95 | + as soon as they are opened, ensuring a leaked object will close itself, and |
| 96 | + ensuring every descriptor is fused to a `closed` flag, preventing historical |
| 97 | + bugs where a double close could destroy descriptors belonging to an unrelated |
| 98 | + stream. |
| 99 | + |
| 100 | + |
| 101 | + |
64 | 102 | Thanks! |
65 | 103 | ~~~~~~~ |
66 | 104 |
|
@@ -109,14 +147,6 @@ Fixes |
109 | 147 | potential influx of 2.8-related bug reports. |
110 | 148 |
|
111 | 149 |
|
112 | | -Core Library |
113 | | -~~~~~~~~~~~~ |
114 | | - |
115 | | -* `#170 <https://github.com/dw/mitogen/issues/170>`_: to better support child |
116 | | - process management and a future asynchronous connect implementation, a |
117 | | - :class:`mitogen.parent.TimerList` API is available. |
118 | | - |
119 | | - |
120 | 150 | Thanks! |
121 | 151 | ~~~~~~~ |
122 | 152 |
|
|
0 commit comments