forked from steve-downey/papers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lewg-minutes.txt
224 lines (128 loc) · 4.66 KB
/
lewg-minutes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<2019-02-21 Thu 13:05>
Intro to Net::TS
ChrisK: presents
basics
experimental/executors for async IO
experimental/io_context
experimental/timer
experimental/buffer
Bryce: thinking about buffers : untyped data(?)
experimental/socket
stream, datagram, ....
socket options
iostreams
experimental/internet
IP addresses & network
endpoints
name res
TCP, UDP
inet socket options
async:
io_context is like select/poll/completion port
get resultt via std::future
use fibers
<2019-02-21 Thu 13:22>
p1100r0
Chris: attempts to solve problem with composing dynmaic buffers
Lewis: This is a concept?
Chris: Yes
example wrapping a std::vector reading 10 chars and data grows
read_until, buffer filled by OS, return size is how much to use. data.erase(0, n) // loop on read_util
dynamic_buffer, buffer wrap types for different uses
slide with interface
Bryce:: what does ...
CK : next slide
readable vs writable bytes. There's a split like iostream
Bryce: Why does iostream do that
Jonathan Wakely: String stream , two high water marks, bytes read and written
Problem: Moved from state for DynamicBuffer as a wrapper
B: Why is that a problem
Z: When you want to control the state of what you read inherent to poblem
JW: library layering means abstracting the buffer, but the vector is concrete
expose abstartion like http protocol, not using vector
CK: Proposed: dynamc_string_buffer with a release() method
Counter Prop:DB has two resps. 1) grow shrink 2) track read and write
resp moves from DB to alg using it.
Copy rath than Move
just bytes, no read or writable
adds resize
B: why is this CopyConstructible
Z: cheap to copy, and
Kirk: More complicated add DB(DB&), users must track bytes, harder to use
M:
Kirk: add more interface to slice data
G When to use commit a problem because tracking state
CK: commit because the read and write get mixed
Kirk: pop_front_in
CK: consitered
LB:
JW: DynB gives you mutable buffer
CK: exploer names
Br: shrink vs resize
LB: Old interface allowd defrer shifting down. Consume may move in bytes by shifting pointers
CK: circular buffers better
Brian: trade off, safety and facility
Bryce: all interfaces haver some hazzard
Z : used by library
CK: not used by users, yes
Z: library authers have to deal
Kirk: this looks like a container
Br: string_view of span
Z: alternate is a tag type, which is terrible
CK: examples Almost no change for user code
Br: nice cheap to copy handle vs
Kirk: DBRef type is just moveable.
SD: Compatiblity concerns, migration and compat with asio and beast
<2019-02-21 Thu 14:06>
Buffer Sequence
ck: multiple heterogenous buffers into or from buffers
SD: Ranges are not heterog
Z: how does this work
Does Range::concat do this?
If concat does this do we want that?
CK: Convertiblity and const-ness
Ryan: Scatter API.
Fund usecase
G library headers and user headers all get emitted, lifetime problems keeping alive until sent on network.
Discussing if we've misread level: result, yes
buffer_cat creates a sequence of buffers from a heterog collection of buffers
Bryce: what parts are network and generic , look at ranges
JW: We will look at ranges but problems with void*
<2019-02-21 Thu 14:32>
Associations for Call Wrappers
Type adapters for std::bind and std::ref and LEWG doesn't want to touch bind.
<2019-02-21 Thu 14:42>
Enahancements to enable customs iO executors
Motivation: MS would like executor to run on system thread pool rather than donated threads
easier for users to specify executors
Far more than just a thread pool
Br: This is not Executors, just net executors
CK: Yes
Br: make that clear
CK: In Boost master
Z: does this affect coupling with Executor TS
CK: No. Interaction is largely the same
L: Can users provide your own implememtation
CK: Not readily
B: With Executors could they
CK: That's a large piece of work,
L: how does the gneric work with inheritance
CK: a bag of types indexed by kind of service, can then be created by cliets in ther context
Should have been done earlier
<2019-02-21 Thu 15:23>
Hand off scribe
<2019-02-21 Thu 15:44>
Granular std::numeric_limits
Please ask Lawrence Crowl that third poll does not mean what it says
Need names for TINY and SFMIN, TINY from fortran and safe min from lapack
smallest normalized floating point number
is optional or required ? sfinae out
also apply to Walters' paper to break out numeric traits
JF: no sfnae traits has_tiny and a value is always for tiny_v
Mark: are you saying my people can't write C++
JF: No one should have to write detection algorithms, and yes.
And the call what they write 'codes'
Mark: sg6 asked for bikeshed
B: SAFE is a bad bad name and LEWG would kick it back with prejudice
<2019-02-21 Thu 16:12>
Hand back to Mark