The actual disassembly of the two is below for the sake of it existing somewhere, but basically the homequeue version looks like:
START:
result = deq(thing)
if result == 0:
goto FAIL
packets_processed++
getFingerprint()
FAIL:
| (* MLton [mpl] 20260406.003233-g4b75ff6aa-dirty *) | |
| (* control flags: *) | |
| (* align: 8 *) | |
| (* atMLtons: (@MLton, --) *) | |
| (* bounceRssaLimit: Some 8 *) | |
| (* bounceRssaLiveCutoff: Some 12 *) | |
| (* bounceRssaLoopCutoff: Some 40 *) | |
| (* bounceRssaUsageCutoff: Some 15 *) | |
| (* chunkBatch: 32768 *) | |
| (* chunkify: coalesce4096 *) |
| (* MLton [mpl] 20260406.003233-g4b75ff6aa-dirty *) | |
| (* control flags: *) | |
| (* align: 8 *) | |
| (* atMLtons: (@MLton, --) *) | |
| (* bounceRssaLimit: Some 8 *) | |
| (* bounceRssaLiveCutoff: Some 12 *) | |
| (* bounceRssaLoopCutoff: Some 40 *) | |
| (* bounceRssaUsageCutoff: Some 15 *) | |
| (* chunkBatch: 32768 *) | |
| (* chunkify: coalesce4096 *) |
| (* MLton [mpl] 20260406.003233-g4b75ff6aa-dirty *) | |
| (* control flags: *) | |
| (* align: 8 *) | |
| (* atMLtons: (@MLton, --) *) | |
| (* bounceRssaLimit: Some 8 *) | |
| (* bounceRssaLiveCutoff: Some 12 *) | |
| (* bounceRssaLoopCutoff: Some 40 *) | |
| (* bounceRssaUsageCutoff: Some 15 *) | |
| (* chunkBatch: 32768 *) | |
| (* chunkify: coalesce4096 *) |
| MLton [mpl] 20260406.003233-g4b75ff6aa-dirty | |
| control flags: | |
| align: 8 | |
| atMLtons: (@MLton, --) | |
| bounceRssaLimit: Some 8 | |
| bounceRssaLiveCutoff: Some 12 | |
| bounceRssaLoopCutoff: Some 40 | |
| bounceRssaUsageCutoff: Some 15 | |
| chunkBatch: 32768 | |
| chunkify: coalesce4096 |
| (* MLton [mpl] 20260406.003233-g4b75ff6aa-dirty *) | |
| (* control flags: *) | |
| (* align: 8 *) | |
| (* atMLtons: (@MLton, --) *) | |
| (* bounceRssaLimit: Some 8 *) | |
| (* bounceRssaLiveCutoff: Some 12 *) | |
| (* bounceRssaLoopCutoff: Some 40 *) | |
| (* bounceRssaUsageCutoff: Some 15 *) | |
| (* chunkBatch: 32768 *) | |
| (* chunkify: coalesce4096 *) |
| (* MLton [mpl] 20260406.003233-g4b75ff6aa-dirty *) | |
| (* control flags: *) | |
| (* align: 8 *) | |
| (* atMLtons: (@MLton, --) *) | |
| (* bounceRssaLimit: Some 8 *) | |
| (* bounceRssaLiveCutoff: Some 12 *) | |
| (* bounceRssaLoopCutoff: Some 40 *) | |
| (* bounceRssaUsageCutoff: Some 15 *) | |
| (* chunkBatch: 32768 *) | |
| (* chunkify: coalesce4096 *) |
| Chunk_11 | |
| /home/pscollins/code/quickhull-vs-parlay/bin/quickhull.unrolled.mpl.1.c | |
| Total: 23.49s 23.49s (flat, cum) 41.95% | |
| 6230 . . L_27028: | |
| 6231 . . T(P, 1) = O(Objptr, T(P, 0), 112); | |
| 6232 . . T(P, 2) = O(Objptr, T(P, 0), 104); | |
| 6233 . . T(P, 3) = O(Objptr, T(P, 0), 96); | |
| 6234 . . T(P, 4) = O(Objptr, T(P, 0), 80); | |
| 6235 . . T(P, 5) = O(Objptr, T(P, 0), 72); |
| Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему. | |
| Все смешалось в доме Облонских. Жена узнала, что муж был в связи с бывшею в их доме француженкою-гувернанткой, и объявила мужу, что не может жить с ним в одном доме. Положение это продолжалось уже третий день и мучительно чувствовалось и самими супругами, и всеми членами семьи, и домочадцами. Все члены семьи и домочадцы чувствовали, что нет смысла в их сожительстве и что на каждом постоялом дворе случайно сошедшиеся люди более связаны между собой, чем они, члены семьи и домочадцы Облонских. Жена не выходила из своих комнат, мужа третий день не было дома. Дети бегали по всему дому, как потерянные; англичанка поссорилась с экономкой и написала записку приятельнице, прося приискать ей новое место; повар ушел вчера со двора, во время самого обеда; черная кухарка и кучер просили расчета. |
| test |
The actual disassembly of the two is below for the sake of it existing somewhere, but basically the homequeue version looks like:
START:
result = deq(thing)
if result == 0:
goto FAIL
packets_processed++
getFingerprint()
FAIL: