Commit 1339a7c
feat(native-jit): collection Float value helpers (MapInsertFloat, DequePush*Float)
Item #2 of the remaining-issues list: collection element-type breadth for Float
VALUES, riding the float-arg helper ABI. Three clean HostCall mirrors of
ListPushFloat:
- MapInsertFloat: insert a Float value into an Int-keyed Map<Int, Float>.
- DequePushBackFloat / DequePushFrontFloat: push a Float onto a Deque<Float>.
Each: vm-jit macro row + Fn type + struct field + heap_effect(MutatesInput) set +
test noop; reg_vm host impl (journaled write of VmValue::Float, bails on a wrong-
value-type collection) + wiring; translate value-type-flows-in-inference + helper
selection by float(value) across both whole-function and OSR lowering arms
(int_or_free keeps the Int/unconstrained path).
Deliberately deferred (documented as the demand tail): float-KEYED collections
(Set<Float>, SortedSet/SortedMap with Float keys) need float-key hashing/ordering
with NaN semantics; the Map/Deque READS (MatchMapGetFloat, Deque pop) need a new
value-typed JitInstr / Option result. The mechanical write pattern here applies
directly when those are added.
Verify (Docker dev): differential 33/0, runtime 397/0 (new
jit_acceptance_runs_float_map_and_deque_helpers runs natively), vm-jit 83/0,
reg_vm lib 31/0 default, default+native builds and clippy clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 6fdcfd8 commit 1339a7c
4 files changed
Lines changed: 231 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3585 | 3585 | | |
3586 | 3586 | | |
3587 | 3587 | | |
| 3588 | + | |
3588 | 3589 | | |
3589 | 3590 | | |
3590 | 3591 | | |
| |||
3606 | 3607 | | |
3607 | 3608 | | |
3608 | 3609 | | |
| 3610 | + | |
3609 | 3611 | | |
| 3612 | + | |
3610 | 3613 | | |
3611 | 3614 | | |
3612 | 3615 | | |
| |||
4621 | 4624 | | |
4622 | 4625 | | |
4623 | 4626 | | |
| 4627 | + | |
| 4628 | + | |
| 4629 | + | |
| 4630 | + | |
| 4631 | + | |
| 4632 | + | |
| 4633 | + | |
| 4634 | + | |
| 4635 | + | |
| 4636 | + | |
| 4637 | + | |
| 4638 | + | |
| 4639 | + | |
| 4640 | + | |
| 4641 | + | |
| 4642 | + | |
| 4643 | + | |
| 4644 | + | |
| 4645 | + | |
| 4646 | + | |
| 4647 | + | |
| 4648 | + | |
| 4649 | + | |
| 4650 | + | |
| 4651 | + | |
| 4652 | + | |
| 4653 | + | |
| 4654 | + | |
| 4655 | + | |
| 4656 | + | |
4624 | 4657 | | |
4625 | 4658 | | |
4626 | 4659 | | |
| |||
5111 | 5144 | | |
5112 | 5145 | | |
5113 | 5146 | | |
| 5147 | + | |
| 5148 | + | |
| 5149 | + | |
| 5150 | + | |
| 5151 | + | |
| 5152 | + | |
| 5153 | + | |
| 5154 | + | |
| 5155 | + | |
| 5156 | + | |
| 5157 | + | |
| 5158 | + | |
| 5159 | + | |
| 5160 | + | |
| 5161 | + | |
| 5162 | + | |
| 5163 | + | |
| 5164 | + | |
| 5165 | + | |
| 5166 | + | |
| 5167 | + | |
| 5168 | + | |
| 5169 | + | |
5114 | 5170 | | |
5115 | 5171 | | |
5116 | 5172 | | |
| |||
5134 | 5190 | | |
5135 | 5191 | | |
5136 | 5192 | | |
| 5193 | + | |
| 5194 | + | |
| 5195 | + | |
| 5196 | + | |
| 5197 | + | |
| 5198 | + | |
| 5199 | + | |
| 5200 | + | |
| 5201 | + | |
| 5202 | + | |
| 5203 | + | |
| 5204 | + | |
| 5205 | + | |
| 5206 | + | |
| 5207 | + | |
| 5208 | + | |
| 5209 | + | |
| 5210 | + | |
| 5211 | + | |
| 5212 | + | |
| 5213 | + | |
| 5214 | + | |
| 5215 | + | |
5137 | 5216 | | |
5138 | 5217 | | |
5139 | 5218 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
469 | 469 | | |
470 | 470 | | |
471 | 471 | | |
472 | | - | |
| 472 | + | |
473 | 473 | | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
474 | 477 | | |
475 | 478 | | |
476 | | - | |
477 | 479 | | |
478 | 480 | | |
479 | 481 | | |
| |||
497 | 499 | | |
498 | 500 | | |
499 | 501 | | |
500 | | - | |
501 | | - | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
502 | 505 | | |
503 | | - | |
504 | 506 | | |
505 | 507 | | |
506 | 508 | | |
| |||
1431 | 1433 | | |
1432 | 1434 | | |
1433 | 1435 | | |
1434 | | - | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
1435 | 1442 | | |
1436 | | - | |
| 1443 | + | |
1437 | 1444 | | |
1438 | 1445 | | |
1439 | 1446 | | |
| |||
1482 | 1489 | | |
1483 | 1490 | | |
1484 | 1491 | | |
1485 | | - | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
1486 | 1498 | | |
1487 | | - | |
| 1499 | + | |
1488 | 1500 | | |
1489 | 1501 | | |
1490 | 1502 | | |
| |||
1493 | 1505 | | |
1494 | 1506 | | |
1495 | 1507 | | |
1496 | | - | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
1497 | 1514 | | |
1498 | | - | |
| 1515 | + | |
1499 | 1516 | | |
1500 | 1517 | | |
1501 | 1518 | | |
| |||
3184 | 3201 | | |
3185 | 3202 | | |
3186 | 3203 | | |
3187 | | - | |
| 3204 | + | |
3188 | 3205 | | |
| 3206 | + | |
| 3207 | + | |
| 3208 | + | |
3189 | 3209 | | |
3190 | 3210 | | |
3191 | | - | |
3192 | 3211 | | |
3193 | 3212 | | |
3194 | 3213 | | |
| |||
3212 | 3231 | | |
3213 | 3232 | | |
3214 | 3233 | | |
3215 | | - | |
3216 | | - | |
| 3234 | + | |
| 3235 | + | |
| 3236 | + | |
3217 | 3237 | | |
3218 | | - | |
3219 | 3238 | | |
3220 | 3239 | | |
3221 | 3240 | | |
| |||
4121 | 4140 | | |
4122 | 4141 | | |
4123 | 4142 | | |
4124 | | - | |
| 4143 | + | |
| 4144 | + | |
| 4145 | + | |
| 4146 | + | |
| 4147 | + | |
| 4148 | + | |
4125 | 4149 | | |
4126 | | - | |
| 4150 | + | |
4127 | 4151 | | |
4128 | 4152 | | |
4129 | 4153 | | |
| |||
4172 | 4196 | | |
4173 | 4197 | | |
4174 | 4198 | | |
4175 | | - | |
| 4199 | + | |
| 4200 | + | |
| 4201 | + | |
| 4202 | + | |
| 4203 | + | |
| 4204 | + | |
4176 | 4205 | | |
4177 | | - | |
| 4206 | + | |
4178 | 4207 | | |
4179 | 4208 | | |
4180 | 4209 | | |
| |||
4183 | 4212 | | |
4184 | 4213 | | |
4185 | 4214 | | |
4186 | | - | |
| 4215 | + | |
| 4216 | + | |
| 4217 | + | |
| 4218 | + | |
| 4219 | + | |
| 4220 | + | |
4187 | 4221 | | |
4188 | | - | |
| 4222 | + | |
4189 | 4223 | | |
4190 | 4224 | | |
4191 | 4225 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
415 | 415 | | |
416 | 416 | | |
417 | 417 | | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
418 | 466 | | |
419 | 467 | | |
420 | 468 | | |
| |||
0 commit comments