Commit 6817f66
committed
refactor: deepen architecture by consolidating frequency and streaming code
- Consolidate frequency table serialization to codec package:
- Add WriteFrequencies/ReadFrequencies with expectedCount validation
- Add WriteFrequenciesToBytes/ReadFrequenciesFromBytes for byte slice APIs
- Add WriteU32LE/ReadU32LE helper functions
- Algorithms now use codec.ScaleFrequencies with maxTotal parameter
- Merge streaming.go thin wrappers into main algorithm files:
- Remove separate streaming.go files from all algorithms
- Add NewStreamingEncoder/NewStreamingDecoder directly to algorithm files
- Add countRun internal function to RLE for better testability
- Formalize state machine specification in OpenSpec:
- Add state transition table to REQ-ARCH-009
- Document all valid operations per state
- Clarify error transition behavior
- Add KindIO error kind for I/O related errors
Benefits:
- Locality: frequency table format changes in one place
- Leverage: algorithms focus on encoding logic
- Reduced file count: 173 lines of thin wrappers removed
All tests pass, including cross-language conformance (144 cases).1 parent e673775 commit 6817f66
15 files changed
Lines changed: 263 additions & 436 deletions
File tree
- algorithms
- arithmetic/go
- huffman/go
- range/go
- rle/go
- openspec/specs/core-architecture
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
| 182 | + | |
182 | 183 | | |
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 | | - | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
217 | 203 | | |
218 | 204 | | |
219 | 205 | | |
| 206 | + | |
220 | 207 | | |
221 | 208 | | |
222 | 209 | | |
| |||
246 | 233 | | |
247 | 234 | | |
248 | 235 | | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | 236 | | |
294 | 237 | | |
295 | 238 | | |
| |||
366 | 309 | | |
367 | 310 | | |
368 | 311 | | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
369 | 338 | | |
370 | 339 | | |
371 | 340 | | |
| |||
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | | - | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
133 | 134 | | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
| 135 | + | |
144 | 136 | | |
145 | 137 | | |
146 | 138 | | |
| 139 | + | |
147 | 140 | | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
| 141 | + | |
160 | 142 | | |
161 | 143 | | |
162 | 144 | | |
| |||
294 | 276 | | |
295 | 277 | | |
296 | 278 | | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
297 | 305 | | |
298 | 306 | | |
299 | 307 | | |
| |||
This file was deleted.
This file was deleted.
0 commit comments