Changeset 70f97c8


Ignore:
Timestamp:
Jul 3, 2023, 1:12:51 PM (2 years ago)
Author:
caparsons <caparson@…>
Branches:
master
Children:
96ea77a
Parents:
00b046f (diff), 1ae3ac46 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Files:
47 edited

Legend:

Unmodified
Added
Removed
  • doc/papers/llheap/figures/AddressSpace.fig

    r00b046f r70f97c8  
    32322 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    3333         3900 1350 4800 1350 4800 2100 3900 2100 3900 1350
    34 4 0 0 50 -1 0 11 0.0000 2 180 900 1200 2325 high address\001
    35 4 2 0 50 -1 0 11 0.0000 2 135 855 6600 2325 low address\001
    36 4 1 0 50 -1 0 11 0.0000 2 120 330 6150 2025 Data\001
    37 4 1 0 50 -1 0 11 0.0000 2 135 675 6150 1800 Code and\001
    38 4 1 0 50 -1 0 11 0.0000 2 120 390 6150 1575 Static\001
    39 4 1 0 50 -1 0 11 0.0000 2 135 390 1650 1800 Stack\001
    40 4 1 0 50 -1 0 11 0.0000 2 165 615 2550 1950 Memory\001
    41 4 1 0 50 -1 0 11 0.0000 2 165 615 4350 1950 Memory\001
    42 4 1 0 50 -1 0 11 0.0000 2 120 315 2550 1650 Free\001
    43 4 1 0 50 -1 0 11 0.0000 2 120 330 3450 2025 Data\001
    44 4 1 0 50 -1 0 11 0.0000 2 135 675 3450 1800 Code and\001
    45 4 1 0 50 -1 0 11 0.0000 2 165 645 3450 1575 Dynamic\001
    46 4 1 0 50 -1 0 11 0.0000 2 120 315 4350 1650 Free\001
    47 4 1 0 50 -1 0 11 0.0000 2 120 735 5250 1950 Allocation\001
    48 4 1 0 50 -1 0 11 0.0000 2 165 645 5250 1650 Dynamic\001
     344 0 0 50 -1 0 10 0.0000 2 180 900 1200 2325 high address\001
     354 2 0 50 -1 0 10 0.0000 2 135 855 6600 2325 low address\001
     364 1 0 50 -1 0 10 0.0000 2 120 330 6150 2025 Data\001
     374 1 0 50 -1 0 10 0.0000 2 135 675 6150 1800 Code and\001
     384 1 0 50 -1 0 10 0.0000 2 120 390 6150 1575 Static\001
     394 1 0 50 -1 0 10 0.0000 2 135 390 1650 1800 Stack\001
     404 1 0 50 -1 0 10 0.0000 2 165 615 2550 1950 Memory\001
     414 1 0 50 -1 0 10 0.0000 2 165 615 4350 1950 Memory\001
     424 1 0 50 -1 0 10 0.0000 2 120 315 2550 1650 Free\001
     434 1 0 50 -1 0 10 0.0000 2 120 330 3450 2025 Data\001
     444 1 0 50 -1 0 10 0.0000 2 135 675 3450 1800 Code and\001
     454 1 0 50 -1 0 10 0.0000 2 165 645 3450 1575 Dynamic\001
     464 1 0 50 -1 0 10 0.0000 2 120 315 4350 1650 Free\001
     474 1 0 50 -1 0 10 0.0000 2 120 735 5250 1950 Allocation\001
     484 1 0 50 -1 0 10 0.0000 2 165 645 5250 1650 Dynamic\001
  • doc/papers/llheap/figures/Alignment1.fig

    r00b046f r70f97c8  
    1111        1 1 1.00 45.00 90.00
    12126 6525 1575 7650 1800
    13 4 0 0 50 -1 4 12 0.0000 2 195 1095 6525 1725 E$^{\\prime}$\001
     134 0 0 50 -1 4 10 0.0000 2 195 1095 6525 1725 E$^{\\prime}$\001
    1414-6
    15152 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
     
    25252 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2626         3300 1200 6600 1200 6600 1500 3300 1500 3300 1200
    27 4 1 0 50 -1 4 12 0.0000 2 150 135 2100 1725 E\001
    28 4 1 0 50 -1 0 12 0.0000 2 180 510 4800 1425 object\001
    29 4 1 0 50 -1 0 12 0.0000 2 135 585 6150 1425 unused\001
    30 4 1 0 50 -1 0 12 0.0000 2 180 1185 1650 1425 $\\cdots$  heap\001
    31 4 0 0 50 -1 4 12 0.0000 2 180 390 4200 1725 A(P)\001
    32 4 1 0 50 -1 0 12 0.0000 2 135 540 3750 1425 header\001
    33 4 1 0 50 -1 0 12 0.0000 2 135 300 2700 1425 free\001
    34 4 1 0 50 -1 4 12 0.0000 2 150 135 3300 1725 H\001
    35 4 0 0 50 -1 0 12 0.0000 2 180 1200 4650 1725 (multiple of N)\001
     274 1 0 50 -1 4 10 0.0000 2 150 135 2100 1725 E\001
     284 1 0 50 -1 0 10 0.0000 2 180 510 4800 1425 object\001
     294 1 0 50 -1 0 10 0.0000 2 135 585 6150 1425 unused\001
     304 1 0 50 -1 0 10 0.0000 2 180 1185 1650 1425 $\\cdots$  heap\001
     314 0 0 50 -1 4 10 0.0000 2 180 390 4200 1725 A(P)\001
     324 1 0 50 -1 0 10 0.0000 2 135 540 3750 1425 header\001
     334 1 0 50 -1 0 10 0.0000 2 135 300 2700 1425 free\001
     344 1 0 50 -1 4 10 0.0000 2 150 135 3300 1725 H\001
     354 0 0 50 -1 0 10 0.0000 2 180 1200 4650 1725 (multiple of N)\001
  • doc/papers/llheap/figures/Alignment2.fig

    r00b046f r70f97c8  
    20202 2 0 0 0 7 60 -1 18 0.000 0 0 -1 0 0 5
    2121         5700 1500 6600 1500 6600 1800 5700 1800 5700 1500
    22 4 1 0 50 -1 0 12 0.0000 2 135 540 1650 1725 header\001
    23 4 1 0 50 -1 4 12 0.0000 2 150 135 1200 2025 H\001
    24 4 1 0 50 -1 4 12 0.0000 2 150 135 2100 2025 P\001
    25 4 0 0 50 -1 0 12 0.0000 2 180 1575 2175 2025 (min. alignment M)\001
    26 4 1 0 50 -1 0 12 0.0000 2 180 510 4950 1725 object\001
    27 4 1 0 50 -1 0 12 0.0000 2 135 315 4950 1425 size\001
    28 4 1 0 50 -1 0 12 0.0000 2 180 1815 3150 1425 internal fragmentation\001
    29 4 1 0 50 -1 0 12 0.0000 2 135 585 6150 1725 unused\001
    30 4 1 0 50 -1 4 12 0.0000 2 150 135 4200 2025 A\001
    31 4 0 0 50 -1 0 12 0.0000 2 180 1200 4275 2025 (multiple of N)\001
     224 1 0 50 -1 0 10 0.0000 2 135 540 1650 1725 header\001
     234 1 0 50 -1 4 10 0.0000 2 150 135 1200 2025 H\001
     244 1 0 50 -1 4 10 0.0000 2 150 135 2100 2025 P\001
     254 0 0 50 -1 0 10 0.0000 2 180 1575 2175 2025 (min. alignment M)\001
     264 1 0 50 -1 0 10 0.0000 2 180 510 4950 1725 object\001
     274 1 0 50 -1 0 10 0.0000 2 135 315 4950 1425 size\001
     284 1 0 50 -1 0 10 0.0000 2 180 1815 3150 1425 internal fragmentation\001
     294 1 0 50 -1 0 10 0.0000 2 135 585 6150 1725 unused\001
     304 1 0 50 -1 4 10 0.0000 2 150 135 4200 2025 A\001
     314 0 0 50 -1 0 10 0.0000 2 180 1200 4275 2025 (multiple of N)\001
  • doc/papers/llheap/figures/Alignment2Impl.fig

    r00b046f r70f97c8  
    21212 2 0 0 0 7 60 -1 18 0.000 0 0 -1 0 0 5
    2222         2100 1500 3300 1500 3300 1875 2100 1875 2100 1500
    23 4 1 0 50 -1 0 12 0.0000 2 180 1815 2550 1425 internal fragmentation\001
    24 4 1 0 50 -1 0 12 0.0000 2 180 510 4950 1725 object\001
    25 4 1 0 50 -1 0 12 0.0000 2 135 315 4950 1425 size\001
    26 4 1 0 50 -1 4 12 0.0000 2 150 135 1200 2100 H\001
    27 4 1 0 50 -1 4 12 0.0000 2 150 135 2100 2100 P\001
    28 4 0 0 50 -1 0 12 0.0000 2 180 1575 2175 2100 (min. alignment M)\001
    29 4 1 0 50 -1 4 12 0.0000 2 150 135 4200 2100 A\001
    30 4 0 0 50 -1 0 12 0.0000 2 180 1200 4275 2100 (multiple of N)\001
    31 4 1 0 50 -1 0 12 0.0000 2 135 540 3750 1850 header\001
    32 4 1 0 50 -1 0 12 0.0000 2 135 345 3750 1700 fake\001
    33 4 1 0 50 -1 0 12 0.0000 2 135 450 2700 1700 offset\001
    34 4 1 0 50 -1 0 12 0.0000 2 135 540 1650 1850 header\001
    35 4 1 0 50 -1 0 12 0.0000 2 135 570 1650 1675 normal\001
     234 1 0 50 -1 0 10 0.0000 2 180 1815 2550 1425 internal fragmentation\001
     244 1 0 50 -1 0 10 0.0000 2 180 510 4950 1725 object\001
     254 1 0 50 -1 0 10 0.0000 2 135 315 4950 1425 size\001
     264 1 0 50 -1 4 10 0.0000 2 150 135 1200 2100 H\001
     274 1 0 50 -1 4 10 0.0000 2 150 135 2100 2100 P\001
     284 0 0 50 -1 0 10 0.0000 2 180 1575 2175 2100 (min. alignment M)\001
     294 1 0 50 -1 4 10 0.0000 2 150 135 4200 2100 A\001
     304 0 0 50 -1 0 10 0.0000 2 180 1200 4275 2100 (multiple of N)\001
     314 1 0 50 -1 0 10 0.0000 2 135 540 3750 1850 header\001
     324 1 0 50 -1 0 10 0.0000 2 135 345 3750 1700 fake\001
     334 1 0 50 -1 0 10 0.0000 2 135 450 2700 1700 offset\001
     344 1 0 50 -1 0 10 0.0000 2 135 540 1650 1850 header\001
     354 1 0 50 -1 0 10 0.0000 2 135 570 1650 1675 normal\001
  • doc/papers/llheap/figures/AllocDS1.fig

    r00b046f r70f97c8  
    1141142 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    115115         3600 3150 5100 3150 5100 3525 3600 3525 3600 3150
    116 4 2 0 50 -1 0 11 0.0000 2 135 300 2625 1950 lock\001
    117 4 1 0 50 -1 0 11 0.0000 2 150 1155 3000 1725 N$\\times$S$_1$\001
    118 4 1 0 50 -1 0 11 0.0000 2 150 1155 3600 1725 N$\\times$S$_2$\001
    119 4 1 0 50 -1 0 12 0.0000 2 180 390 4425 1500 heap\001
    120 4 2 0 50 -1 0 12 0.0000 2 135 1140 2550 1425 kernel threads\001
    121 4 2 0 50 -1 0 11 0.0000 2 120 270 2625 2100 size\001
    122 4 2 0 50 -1 0 11 0.0000 2 120 270 2625 2250 free\001
    123 4 2 0 50 -1 0 12 0.0000 2 135 600 2625 2700 free list\001
    124 4 0 0 50 -1 0 12 0.0000 2 135 360 3675 3325 lock\001
    125 4 1 0 50 -1 0 12 0.0000 2 180 1455 4350 3075 global pool (sbrk)\001
    126 4 1 0 50 -1 0 11 0.0000 2 150 1110 4800 1725 N$\\times$S$_t$\001
     1164 2 0 50 -1 0 10 0.0000 2 135 300 2625 1950 lock\001
     1174 1 0 50 -1 0 10 0.0000 2 150 1155 3000 1725 N$\\times$S$_1$\001
     1184 1 0 50 -1 0 10 0.0000 2 150 1155 3600 1725 N$\\times$S$_2$\001
     1194 1 0 50 -1 0 10 0.0000 2 180 390 4425 1500 heap\001
     1204 2 0 50 -1 0 10 0.0000 2 135 1140 2550 1425 kernel threads\001
     1214 2 0 50 -1 0 10 0.0000 2 120 270 2625 2100 size\001
     1224 2 0 50 -1 0 10 0.0000 2 120 270 2625 2250 free\001
     1234 2 0 50 -1 0 10 0.0000 2 135 600 2625 2700 free list\001
     1244 0 0 50 -1 0 10 0.0000 2 135 360 3675 3325 lock\001
     1254 1 0 50 -1 0 10 0.0000 2 180 1455 4350 3075 global pool (sbrk)\001
     1264 1 0 50 -1 0 10 0.0000 2 150 1110 4800 1725 N$\\times$S$_t$\001
  • doc/papers/llheap/figures/AllocDS2.fig

    r00b046f r70f97c8  
    40402 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    4141         1950 3525 3150 3525 3150 3900 1950 3900 1950 3525
    42 4 0 0 50 -1 0 12 0.0000 2 135 360 2025 3700 lock\001
     424 0 0 50 -1 0 10 0.0000 2 135 360 2025 3700 lock\001
    4343-6
    44446 4050 1575 4350 1725
     
    58581 3 0 1 0 0 50 -1 20 0.000 1 0.0000 5100 3675 20 20 5100 3675 5120 3675
    5959-6
    60 4 1 0 50 -1 0 12 0.0000 2 180 900 5700 3150 local pools\001
    61 4 1 0 50 -1 0 12 0.0000 2 180 465 5700 2925 heaps\001
     604 1 0 50 -1 0 10 0.0000 2 180 900 5700 3150 local pools\001
     614 1 0 50 -1 0 10 0.0000 2 180 465 5700 2925 heaps\001
    6262-6
    63636 3600 4050 5100 4650
     
    67672 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    6868         3600 4275 5100 4275 5100 4650 3600 4650 3600 4275
    69 4 1 0 50 -1 0 12 0.0000 2 180 1455 4350 4200 global pool (sbrk)\001
    70 4 0 0 50 -1 0 12 0.0000 2 135 360 3675 4450 lock\001
     694 1 0 50 -1 0 10 0.0000 2 180 1455 4350 4200 global pool (sbrk)\001
     704 0 0 50 -1 0 10 0.0000 2 135 360 3675 4450 lock\001
    7171-6
    72722 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
     
    1371372 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
    138138         3450 2400 4650 2400
    139 4 2 0 50 -1 0 11 0.0000 2 135 300 1875 2250 lock\001
    140 4 1 0 50 -1 0 12 0.0000 2 180 1245 3900 1425 H heap buckets\001
    141 4 1 0 50 -1 0 12 0.0000 2 180 810 4425 2025 heap$_2$\001
    142 4 1 0 50 -1 0 12 0.0000 2 180 810 2175 2025 heap$_1$\001
    143 4 2 0 50 -1 0 11 0.0000 2 120 270 1875 2400 size\001
    144 4 2 0 50 -1 0 11 0.0000 2 120 270 1875 2550 free\001
    145 4 1 0 50 -1 0 12 0.0000 2 180 825 2550 3450 local pool\001
    146 4 0 0 50 -1 0 12 0.0000 2 135 360 3525 3700 lock\001
    147 4 2 0 50 -1 0 12 0.0000 2 135 600 1875 3000 free list\001
    148 4 1 0 50 -1 0 12 0.0000 2 180 825 4050 3450 local pool\001
     1394 2 0 50 -1 0 10 0.0000 2 135 300 1875 2250 lock\001
     1404 1 0 50 -1 0 10 0.0000 2 180 1245 3900 1425 H heap buckets\001
     1414 1 0 50 -1 0 10 0.0000 2 180 810 4425 2025 heap$_2$\001
     1424 1 0 50 -1 0 10 0.0000 2 180 810 2175 2025 heap$_1$\001
     1434 2 0 50 -1 0 10 0.0000 2 120 270 1875 2400 size\001
     1444 2 0 50 -1 0 10 0.0000 2 120 270 1875 2550 free\001
     1454 1 0 50 -1 0 10 0.0000 2 180 825 2550 3450 local pool\001
     1464 0 0 50 -1 0 10 0.0000 2 135 360 3525 3700 lock\001
     1474 2 0 50 -1 0 10 0.0000 2 135 600 1875 3000 free list\001
     1484 1 0 50 -1 0 10 0.0000 2 180 825 4050 3450 local pool\001
  • doc/papers/llheap/figures/AllocInducedActiveFalseSharing.fig

    r00b046f r70f97c8  
    13132 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1414         3450 2700 4350 2700 4350 3000 3450 3000 3450 2700
    15 4 1 0 50 -1 0 11 0.0000 2 165 825 3000 2925 Object$_1$\001
    16 4 1 0 50 -1 0 11 0.0000 2 165 825 3900 2925 Object$_2$\001
     154 1 0 50 -1 0 10 0.0000 2 165 825 3000 2925 Object$_1$\001
     164 1 0 50 -1 0 10 0.0000 2 165 825 3900 2925 Object$_2$\001
    1717-6
    18182 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
     
    38382 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
    3939         5625 1500 4875 1500 4875 1275 5625 1275 5625 1500
    40 4 1 0 50 -1 0 11 0.0000 2 165 855 2850 1425 Thread$_1$\001
    41 4 0 0 50 -1 0 11 0.0000 2 165 720 1275 1425 CPU$_1$\001
    42 4 1 0 50 -1 0 11 0.0000 2 135 435 2250 1725 Cache\001
    43 4 1 0 50 -1 0 11 0.0000 2 165 825 1800 2025 Object$_1$\001
    44 4 1 0 50 -1 0 11 0.0000 2 165 825 2700 2025 Object$_2$\001
    45 4 2 0 50 -1 2 11 0.0000 2 135 525 2550 2550 1. alloc\001
    46 4 1 0 50 -1 0 11 0.0000 2 165 855 5250 1425 Thread$_2$\001
    47 4 0 0 50 -1 0 11 0.0000 2 165 720 3675 1425 CPU$_2$\001
    48 4 1 0 50 -1 0 11 0.0000 2 165 825 4200 2025 Object$_1$\001
    49 4 1 0 50 -1 0 11 0.0000 2 165 825 5100 2025 Object$_2$\001
    50 4 1 0 50 -1 0 11 0.0000 2 135 435 4650 1725 Cache\001
    51 4 2 0 50 -1 0 11 0.0000 2 165 615 2475 2925 Memory\001
    52 4 0 0 50 -1 2 11 0.0000 2 180 720 4350 2550 4. modify\001
    53 4 2 0 50 -1 2 11 0.0000 2 135 525 4200 2475 3. alloc\001
    54 4 0 0 50 -1 2 11 0.0000 2 180 720 2700 2475 2. modify\001
     404 1 0 50 -1 0 10 0.0000 2 165 855 2850 1425 Thread$_1$\001
     414 0 0 50 -1 0 10 0.0000 2 165 720 1275 1425 CPU$_1$\001
     424 1 0 50 -1 0 10 0.0000 2 135 435 2250 1725 Cache\001
     434 1 0 50 -1 0 10 0.0000 2 165 825 1800 2025 Object$_1$\001
     444 1 0 50 -1 0 10 0.0000 2 165 825 2700 2025 Object$_2$\001
     454 2 0 50 -1 2 10 0.0000 2 135 525 2550 2550 1. alloc\001
     464 1 0 50 -1 0 10 0.0000 2 165 855 5250 1425 Thread$_2$\001
     474 0 0 50 -1 0 10 0.0000 2 165 720 3675 1425 CPU$_2$\001
     484 1 0 50 -1 0 10 0.0000 2 165 825 4200 2025 Object$_1$\001
     494 1 0 50 -1 0 10 0.0000 2 165 825 5100 2025 Object$_2$\001
     504 1 0 50 -1 0 10 0.0000 2 135 435 4650 1725 Cache\001
     514 2 0 50 -1 0 10 0.0000 2 165 615 2475 2925 Memory\001
     524 0 0 50 -1 2 10 0.0000 2 180 720 4350 2550 4. modify\001
     534 2 0 50 -1 2 10 0.0000 2 135 525 4200 2475 3. alloc\001
     544 0 0 50 -1 2 10 0.0000 2 180 720 2700 2475 2. modify\001
  • doc/papers/llheap/figures/AllocInducedPassiveFalseSharing.fig

    r00b046f r70f97c8  
    15152 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1616         3450 3000 4350 3000 4350 3300 3450 3300 3450 3000
    17 4 1 0 50 -1 0 11 0.0000 2 165 825 3000 3225 Object$_1$\001
    18 4 1 0 50 -1 0 11 0.0000 2 165 825 3900 3225 Object$_2$\001
     174 1 0 50 -1 0 10 0.0000 2 165 825 3000 3225 Object$_1$\001
     184 1 0 50 -1 0 10 0.0000 2 165 825 3900 3225 Object$_2$\001
    1919-6
    20202 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
     
    40402 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
    4141         5625 1800 4875 1800 4875 1575 5625 1575 5625 1800
    42 4 1 0 50 -1 0 11 0.0000 2 165 855 2850 1725 Thread$_1$\001
    43 4 0 0 50 -1 0 11 0.0000 2 165 720 1275 1725 CPU$_1$\001
    44 4 1 0 50 -1 0 11 0.0000 2 135 435 2250 2025 Cache\001
    45 4 1 0 50 -1 0 11 0.0000 2 165 825 1800 2325 Object$_1$\001
    46 4 1 0 50 -1 0 11 0.0000 2 165 825 2700 2325 Object$_2$\001
    47 4 1 0 50 -1 0 11 0.0000 2 165 855 5250 1725 Thread$_2$\001
    48 4 0 0 50 -1 0 11 0.0000 2 165 720 3675 1725 CPU$_2$\001
    49 4 1 0 50 -1 0 11 0.0000 2 165 825 4200 2325 Object$_1$\001
    50 4 1 0 50 -1 0 11 0.0000 2 165 825 5100 2325 Object$_2$\001
    51 4 1 0 50 -1 0 11 0.0000 2 135 435 4650 2025 Cache\001
    52 4 0 0 50 -1 2 11 0.0000 2 180 720 4350 2850 6. modify\001
    53 4 2 0 50 -1 0 11 0.0000 2 165 615 2475 3225 Memory\001
    54 4 2 0 50 -1 2 11 0.0000 2 135 525 2550 2850 1. alloc\001
    55 4 0 0 50 -1 2 11 0.0000 2 180 720 2700 2775 3. modify\001
    56 4 2 0 50 -1 2 11 0.0000 2 135 525 3975 2925 5. alloc\001
    57 4 2 0 50 -1 2 11 0.0000 2 135 705 4275 2775 4. dealloc\001
    58 4 1 0 50 -1 2 11 0.0000 2 165 2220 4050 1275 2.  pass Object$_2$ reference\001
     424 1 0 50 -1 0 10 0.0000 2 165 855 2850 1725 Thread$_1$\001
     434 0 0 50 -1 0 10 0.0000 2 165 720 1275 1725 CPU$_1$\001
     444 1 0 50 -1 0 10 0.0000 2 135 435 2250 2025 Cache\001
     454 1 0 50 -1 0 10 0.0000 2 165 825 1800 2325 Object$_1$\001
     464 1 0 50 -1 0 10 0.0000 2 165 825 2700 2325 Object$_2$\001
     474 1 0 50 -1 0 10 0.0000 2 165 855 5250 1725 Thread$_2$\001
     484 0 0 50 -1 0 10 0.0000 2 165 720 3675 1725 CPU$_2$\001
     494 1 0 50 -1 0 10 0.0000 2 165 825 4200 2325 Object$_1$\001
     504 1 0 50 -1 0 10 0.0000 2 165 825 5100 2325 Object$_2$\001
     514 1 0 50 -1 0 10 0.0000 2 135 435 4650 2025 Cache\001
     524 0 0 50 -1 2 10 0.0000 2 180 720 4350 2850 6. modify\001
     534 2 0 50 -1 0 10 0.0000 2 165 615 2475 3225 Memory\001
     544 2 0 50 -1 2 10 0.0000 2 135 525 2550 2850 1. alloc\001
     554 0 0 50 -1 2 10 0.0000 2 180 720 2700 2775 3. modify\001
     564 2 0 50 -1 2 10 0.0000 2 135 525 3975 2925 5. alloc\001
     574 2 0 50 -1 2 10 0.0000 2 135 705 4275 2775 4. dealloc\001
     584 1 0 50 -1 2 10 0.0000 2 165 2220 4050 1275 2.  pass Object$_2$ reference\001
  • doc/papers/llheap/figures/AllocatedObject.fig

    r00b046f r70f97c8  
    22222 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
    2323         4800 1200 4800 1500
    24 4 1 0 50 -1 0 11 0.0000 2 135 555 1650 1425 Header\001
    25 4 1 0 50 -1 0 11 0.0000 2 180 600 2550 1425 Padding\001
    26 4 1 0 50 -1 0 11 0.0000 2 180 510 3450 1425 Object\001
    27 4 1 0 50 -1 0 11 0.0000 2 180 600 4350 1425 Spacing\001
    28 4 1 0 50 -1 0 11 0.0000 2 135 495 5250 1425 Trailer\001
     244 1 0 50 -1 0 10 0.0000 2 135 555 1650 1425 Header\001
     254 1 0 50 -1 0 10 0.0000 2 180 600 2550 1425 Padding\001
     264 1 0 50 -1 0 10 0.0000 2 180 510 3450 1425 Object\001
     274 1 0 50 -1 0 10 0.0000 2 180 600 4350 1425 Spacing\001
     284 1 0 50 -1 0 10 0.0000 2 135 495 5250 1425 Trailer\001
  • doc/papers/llheap/figures/AllocatorComponents.fig

    r00b046f r70f97c8  
    58582 2 0 1 0 7 60 -1 13 0.000 0 0 -1 0 0 5
    5959         3300 2700 6300 2700 6300 3000 3300 3000 3300 2700
    60 4 0 0 50 -1 2 11 0.0000 2 165 1005 3300 1725 Storage Data\001
    61 4 2 0 50 -1 0 11 0.0000 2 165 810 3000 1875 free objects\001
    62 4 2 0 50 -1 0 11 0.0000 2 135 1140 3000 2850 reserve memory\001
    63 4 1 0 50 -1 0 11 0.0000 2 120 795 2325 1500 Static Zone\001
    64 4 1 0 50 -1 0 11 0.0000 2 165 1845 4800 1500 Dynamic-Allocation Zone\001
    65 4 2 0 50 -1 2 11 0.0000 2 165 1005 2325 2325 Management\001
    66 4 2 0 50 -1 2 11 0.0000 2 135 375 2325 2525 Data\001
     604 0 0 50 -1 2 10 0.0000 2 165 1005 3300 1725 Storage Data\001
     614 2 0 50 -1 0 10 0.0000 2 165 810 3000 1875 free objects\001
     624 2 0 50 -1 0 10 0.0000 2 135 1140 3000 2850 reserve memory\001
     634 1 0 50 -1 0 10 0.0000 2 120 795 2325 1500 Static Zone\001
     644 1 0 50 -1 0 10 0.0000 2 165 1845 4800 1500 Dynamic-Allocation Zone\001
     654 2 0 50 -1 2 10 0.0000 2 165 1005 2325 2325 Management\001
     664 2 0 50 -1 2 10 0.0000 2 135 375 2325 2525 Data\001
  • doc/papers/llheap/figures/CoalesceAllocated.fig

    r00b046f r70f97c8  
    1919        1 1 1.00 45.00 90.00
    2020         2550 1200 2550 1050 1800 1050
    21 4 1 0 50 -1 0 11 0.0000 2 180 510 3450 1425 Object\001
    22 4 1 0 50 -1 0 11 0.0000 2 135 330 1650 1425 Size\001
    23 4 1 0 50 -1 0 11 0.0000 2 135 510 2550 1425 Owner\001
    24 4 1 0 50 -1 0 11 0.0000 2 195 780 4350 1425 $\\pm$Size\001
     214 1 0 50 -1 0 10 0.0000 2 180 510 3450 1425 Object\001
     224 1 0 50 -1 0 10 0.0000 2 135 330 1650 1425 Size\001
     234 1 0 50 -1 0 10 0.0000 2 135 510 2550 1425 Owner\001
     244 1 0 50 -1 0 10 0.0000 2 195 780 4350 1425 $\\pm$Size\001
  • doc/papers/llheap/figures/CoalesceFree.fig

    r00b046f r70f97c8  
    22222 2 0 1 0 7 60 -1 18 0.000 0 0 -1 0 0 5
    2323         2100 1200 3000 1200 3000 1500 2100 1500 2100 1200
    24 4 1 0 50 -1 0 11 0.0000 2 195 780 4350 1425 $\\pm$Size\001
    25 4 1 0 50 -1 0 11 0.0000 2 135 330 1650 1425 Size\001
    26 4 1 0 50 -1 0 11 0.0000 2 135 660 2550 1425 Previous\001
    27 4 1 0 50 -1 0 11 0.0000 2 135 375 3450 1425 Next\001
     244 1 0 50 -1 0 10 0.0000 2 195 780 4350 1425 $\\pm$Size\001
     254 1 0 50 -1 0 10 0.0000 2 135 330 1650 1425 Size\001
     264 1 0 50 -1 0 10 0.0000 2 135 660 2550 1425 Previous\001
     274 1 0 50 -1 0 10 0.0000 2 135 375 3450 1425 Next\001
  • doc/papers/llheap/figures/Container.fig

    r00b046f r70f97c8  
    11112 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         1275 1200 2025 1200 2025 1500 1275 1500 1275 1200
    13 4 1 0 50 -1 0 11 0.0000 2 135 555 1650 1425 Header\001
     134 1 0 50 -1 0 10 0.0000 2 135 555 1650 1425 Header\001
    1414-6
    15156 1950 1125 2850 1575
    16162 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1717         2025 1200 2775 1200 2775 1500 2025 1500 2025 1200
    18 4 1 0 50 -1 0 11 0.0000 2 195 870 2400 1425 Object$_1$\001
     184 1 0 50 -1 0 10 0.0000 2 195 870 2400 1425 Object$_1$\001
    1919-6
    20206 2700 1125 3600 1575
    21212 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2222         2775 1200 3525 1200 3525 1500 2775 1500 2775 1200
    23 4 1 0 50 -1 0 11 0.0000 2 195 870 3150 1425 Object$_2$\001
     234 1 0 50 -1 0 10 0.0000 2 195 870 3150 1425 Object$_2$\001
    2424-6
    25256 3450 1125 4350 1575
    26262 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2727         3525 1200 4275 1200 4275 1500 3525 1500 3525 1200
    28 4 1 0 50 -1 0 11 0.0000 2 195 870 3900 1425 Object$_3$\001
     284 1 0 50 -1 0 10 0.0000 2 195 870 3900 1425 Object$_3$\001
    2929-6
  • doc/papers/llheap/figures/ContainerFalseSharing1.fig

    r00b046f r70f97c8  
    13132 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1414         1200 1200 1800 1200 1800 1500 1200 1500 1200 1200
    15 4 1 0 50 -1 0 11 0.0000 2 195 765 1500 1425 Heap$_1$\001
     154 1 0 50 -1 0 10 0.0000 2 195 765 1500 1425 Heap$_1$\001
    1616-6
    17176 2250 1200 3150 1500
    18182 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1919         2400 1200 3000 1200 3000 1500 2400 1500 2400 1200
    20 4 1 0 50 -1 0 11 0.0000 2 195 765 2700 1425 Heap$_2$\001
     204 1 0 50 -1 0 10 0.0000 2 195 765 2700 1425 Heap$_2$\001
    2121-6
    22226 1200 1950 3000 2250
     
    24242 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2525         1200 1950 1800 1950 1800 2250 1200 2250 1200 1950
    26 4 1 0 50 -1 0 11 0.0000 2 135 555 1500 2175 Header\001
     264 1 0 50 -1 0 10 0.0000 2 135 555 1500 2175 Header\001
    2727-6
    28286 1650 1950 2550 2250
    29292 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3030         1800 1950 2400 1950 2400 2250 1800 2250 1800 1950
    31 4 1 0 50 -1 0 11 0.0000 2 195 870 2100 2175 Object$_1$\001
     314 1 0 50 -1 0 10 0.0000 2 195 870 2100 2175 Object$_1$\001
    3232-6
    33336 2400 1950 3000 2250
    34342 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    3535         2400 1950 3000 1950 3000 2250 2400 2250 2400 1950
    36 4 1 0 50 -1 0 11 0.0000 2 135 345 2700 2175 Free\001
     364 1 0 50 -1 0 10 0.0000 2 135 345 2700 2175 Free\001
    3737-6
    3838-6
     
    4343        1 1 1.00 45.00 90.00
    4444         1650 1500 2100 1950
    45 4 2 0 50 -1 0 11 0.0000 2 90 315 975 1875 own\001
    46 4 0 0 50 -1 0 11 0.0000 2 180 510 1950 1725 modify\001
    47 4 1 0 50 -1 0 11 0.0000 2 180 2370 1875 825 pass object container indirectly\001
    48 4 1 0 50 -1 0 11 0.0000 2 180 1410 2025 1050 via the global heap\001
     454 2 0 50 -1 0 10 0.0000 2 90 315 975 1875 own\001
     464 0 0 50 -1 0 10 0.0000 2 180 510 1950 1725 modify\001
     474 1 0 50 -1 0 10 0.0000 2 180 2370 1875 825 pass object container indirectly\001
     484 1 0 50 -1 0 10 0.0000 2 180 1410 2025 1050 via the global heap\001
  • doc/papers/llheap/figures/ContainerFalseSharing2.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         1200 1200 1800 1200 1800 1500 1200 1500 1200 1200
    13 4 1 0 50 -1 0 11 0.0000 2 195 765 1500 1425 Heap$_1$\001
     134 1 0 50 -1 0 10 0.0000 2 195 765 1500 1425 Heap$_1$\001
    1414-6
    15156 2250 1200 3150 1500
    16162 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1717         2400 1200 3000 1200 3000 1500 2400 1500 2400 1200
    18 4 1 0 50 -1 0 11 0.0000 2 195 765 2700 1425 Heap$_2$\001
     184 1 0 50 -1 0 10 0.0000 2 195 765 2700 1425 Heap$_2$\001
    1919-6
    20206 1200 1950 3150 2250
     
    22222 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2323         1200 1950 1800 1950 1800 2250 1200 2250 1200 1950
    24 4 1 0 50 -1 0 11 0.0000 2 135 555 1500 2175 Header\001
     244 1 0 50 -1 0 10 0.0000 2 135 555 1500 2175 Header\001
    2525-6
    26266 1650 1950 2550 2250
    27272 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2828         1800 1950 2400 1950 2400 2250 1800 2250 1800 1950
    29 4 1 0 50 -1 0 11 0.0000 2 195 870 2100 2175 Object$_1$\001
     294 1 0 50 -1 0 10 0.0000 2 195 870 2100 2175 Object$_1$\001
    3030-6
    31316 2250 1950 3150 2250
    32322 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3333         2400 1950 3000 1950 3000 2250 2400 2250 2400 1950
    34 4 1 0 50 -1 0 11 0.0000 2 195 870 2700 2175 Object$_2$\001
     344 1 0 50 -1 0 10 0.0000 2 195 870 2700 2175 Object$_2$\001
    3535-6
    3636-6
     
    4444        1 1 1.00 45.00 90.00
    4545         2550 1500 2550 1950
    46 4 0 0 50 -1 0 11 0.0000 2 180 510 1950 1725 modify\001
    47 4 0 0 50 -1 0 11 0.0000 2 135 360 2625 1725 alloc\001
    48 4 0 0 50 -1 0 11 0.0000 2 90 315 3225 1725 own\001
     464 0 0 50 -1 0 10 0.0000 2 180 510 1950 1725 modify\001
     474 0 0 50 -1 0 10 0.0000 2 135 360 2625 1725 alloc\001
     484 0 0 50 -1 0 10 0.0000 2 90 315 3225 1725 own\001
  • doc/papers/llheap/figures/ContainerNoOwnership.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         1350 1200 1950 1200 1950 1500 1350 1500 1350 1200
    13 4 1 0 50 -1 0 11 0.0000 2 135 555 1650 1425 Header\001
     134 1 0 50 -1 0 10 0.0000 2 135 555 1650 1425 Header\001
    1414-6
    15156 1800 1800 2700 2100
    16162 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1717         1950 1800 2550 1800 2550 2100 1950 2100 1950 1800
    18 4 1 0 50 -1 0 11 0.0000 2 195 765 2250 2025 Heap$_1$\001
     184 1 0 50 -1 0 10 0.0000 2 195 765 2250 2025 Heap$_1$\001
    1919-6
    20206 1800 1200 2700 1500
    21212 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2222         1950 1200 2550 1200 2550 1500 1950 1500 1950 1200
    23 4 1 0 50 -1 0 11 0.0000 2 195 870 2250 1425 Object$_1$\001
     234 1 0 50 -1 0 10 0.0000 2 195 870 2250 1425 Object$_1$\001
    2424-6
    25256 2400 1200 3300 1500
    26262 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2727         2550 1200 3150 1200 3150 1500 2550 1500 2550 1200
    28 4 1 0 50 -1 0 11 0.0000 2 195 870 2850 1425 Object$_2$\001
     284 1 0 50 -1 0 10 0.0000 2 195 870 2850 1425 Object$_2$\001
    2929-6
    30306 3000 1200 3900 1500
    31312 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3232         3150 1200 3750 1200 3750 1500 3150 1500 3150 1200
    33 4 1 0 50 -1 0 11 0.0000 2 195 870 3450 1425 Object$_3$\001
     334 1 0 50 -1 0 10 0.0000 2 195 870 3450 1425 Object$_3$\001
    3434-6
    35356 2700 1800 3600 2100
    36362 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3737         2850 1800 3450 1800 3450 2100 2850 2100 2850 1800
    38 4 1 0 50 -1 0 11 0.0000 2 195 765 3150 2025 Heap$_2$\001
     384 1 0 50 -1 0 10 0.0000 2 195 765 3150 2025 Heap$_2$\001
    3939-6
    40406 3750 1200 4350 1500
    41412 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    4242         3750 1200 4350 1200 4350 1500 3750 1500 3750 1200
    43 4 1 0 50 -1 0 11 0.0000 2 135 345 4050 1425 Free\001
     434 1 0 50 -1 0 10 0.0000 2 135 345 4050 1425 Free\001
    4444-6
    45452 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
  • doc/papers/llheap/figures/ContainerNoOwnershipFreelist.fig

    r00b046f r70f97c8  
    65652 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    6666         2475 3375 2775 3375 2775 3600 2475 3600 2475 3375
    67 4 1 0 50 -1 0 11 0.0000 2 195 495 1500 1500 H$_1$\001
    68 4 1 0 50 -1 0 11 0.0000 2 195 495 1500 3450 H$_2$\001
     674 1 0 50 -1 0 10 0.0000 2 195 495 1500 1500 H$_1$\001
     684 1 0 50 -1 0 10 0.0000 2 195 495 1500 3450 H$_2$\001
  • doc/papers/llheap/figures/ContainerOwnership.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         1200 1200 1800 1200 1800 1500 1200 1500 1200 1200
    13 4 1 0 50 -1 0 11 0.0000 2 135 555 1500 1425 Header\001
     134 1 0 50 -1 0 10 0.0000 2 135 555 1500 1425 Header\001
    1414-6
    15156 1650 1200 2550 1500
    16162 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1717         1800 1200 2400 1200 2400 1500 1800 1500 1800 1200
    18 4 1 0 50 -1 0 11 0.0000 2 195 870 2100 1425 Object$_1$\001
     184 1 0 50 -1 0 10 0.0000 2 195 870 2100 1425 Object$_1$\001
    1919-6
    20206 1650 1800 2550 2100
    21212 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2222         1800 1800 2400 1800 2400 2100 1800 2100 1800 1800
    23 4 1 0 50 -1 0 11 0.0000 2 195 765 2100 2025 Heap$_1$\001
     234 1 0 50 -1 0 10 0.0000 2 195 765 2100 2025 Heap$_1$\001
    2424-6
    25256 2400 1200 3000 1500
    26262 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    2727         2400 1200 3000 1200 3000 1500 2400 1500 2400 1200
    28 4 1 0 50 -1 0 11 0.0000 2 135 345 2700 1425 Free\001
     284 1 0 50 -1 0 10 0.0000 2 135 345 2700 1425 Free\001
    2929-6
    30306 3000 1200 3600 1500
    31312 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    3232         3000 1200 3600 1200 3600 1500 3000 1500 3000 1200
    33 4 1 0 50 -1 0 11 0.0000 2 135 345 3300 1425 Free\001
     334 1 0 50 -1 0 10 0.0000 2 135 345 3300 1425 Free\001
    3434-6
    35356 4500 1200 5100 1500
    36362 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3737         4500 1200 5100 1200 5100 1500 4500 1500 4500 1200
    38 4 1 0 50 -1 0 11 0.0000 2 135 555 4800 1425 Header\001
     384 1 0 50 -1 0 10 0.0000 2 135 555 4800 1425 Header\001
    3939-6
    40406 4950 1200 5850 1500
    41412 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    4242         5100 1200 5700 1200 5700 1500 5100 1500 5100 1200
    43 4 1 0 50 -1 0 11 0.0000 2 195 870 5400 1425 Object$_2$\001
     434 1 0 50 -1 0 10 0.0000 2 195 870 5400 1425 Object$_2$\001
    4444-6
    45456 5550 1200 6450 1500
    46462 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    4747         5700 1200 6300 1200 6300 1500 5700 1500 5700 1200
    48 4 1 0 50 -1 0 11 0.0000 2 195 870 6000 1425 Object$_3$\001
     484 1 0 50 -1 0 10 0.0000 2 195 870 6000 1425 Object$_3$\001
    4949-6
    50506 6300 1200 6900 1500
    51512 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    5252         6300 1200 6900 1200 6900 1500 6300 1500 6300 1200
    53 4 1 0 50 -1 0 11 0.0000 2 135 345 6600 1425 Free\001
     534 1 0 50 -1 0 10 0.0000 2 135 345 6600 1425 Free\001
    5454-6
    55556 5250 1800 6150 2100
    56562 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    5757         5400 1800 6000 1800 6000 2100 5400 2100 5400 1800
    58 4 1 0 50 -1 0 11 0.0000 2 195 765 5700 2025 Heap$_2$\001
     584 1 0 50 -1 0 10 0.0000 2 195 765 5700 2025 Heap$_2$\001
    5959-6
    60606 3600 1200 4200 1500
    61612 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    6262         3600 1200 4200 1200 4200 1500 3600 1500 3600 1200
    63 4 1 0 50 -1 0 11 0.0000 2 135 345 3900 1425 Free\001
     634 1 0 50 -1 0 10 0.0000 2 135 345 3900 1425 Free\001
    6464-6
    65656 6900 1200 7500 1500
    66662 2 0 1 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    6767         6900 1200 7500 1200 7500 1500 6900 1500 6900 1200
    68 4 1 0 50 -1 0 11 0.0000 2 135 345 7200 1425 Free\001
     684 1 0 50 -1 0 10 0.0000 2 135 345 7200 1425 Free\001
    6969-6
    70702 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
  • doc/papers/llheap/figures/ContainerOwnershipFreelist.fig

    r00b046f r70f97c8  
    60602 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    6161         1800 2100 4050 2100 4050 2850 1800 2850 1800 2100
    62 4 1 0 50 -1 0 11 0.0000 2 195 495 1500 1500 H$_1$\001
    63 4 1 0 50 -1 0 11 0.0000 2 195 495 1500 3450 H$_2$\001
     624 1 0 50 -1 0 10 0.0000 2 195 495 1500 1500 H$_1$\001
     634 1 0 50 -1 0 10 0.0000 2 195 495 1500 3450 H$_2$\001
  • doc/papers/llheap/figures/FakeHeader.fig

    r00b046f r70f97c8  
    1717        1 1 1.00 45.00 90.00
    1818         2925 1950 2625 1950 2625 1800
    19 4 1 0 50 -1 0 12 0.0000 2 135 450 3450 1725 offset\001
    20 4 1 0 50 -1 0 12 0.0000 2 180 825 1950 1725 alignment\001
    21 4 1 0 50 -1 0 12 0.0000 2 135 105 2625 1725 1\001
    22 4 0 0 50 -1 0 12 0.0000 2 180 1920 3000 2025 alignment (fake header)\001
    23 4 1 0 50 -1 0 12 0.0000 2 180 765 1950 1425 4/8-bytes\001
    24 4 1 0 50 -1 0 12 0.0000 2 180 765 3450 1425 4/8-bytes\001
     194 1 0 50 -1 0 10 0.0000 2 135 450 3450 1725 offset\001
     204 1 0 50 -1 0 10 0.0000 2 180 825 1950 1725 alignment\001
     214 1 0 50 -1 0 10 0.0000 2 135 105 2625 1725 1\001
     224 0 0 50 -1 0 10 0.0000 2 180 1920 3000 2025 alignment (fake header)\001
     234 1 0 50 -1 0 10 0.0000 2 180 765 1950 1425 4/8-bytes\001
     244 1 0 50 -1 0 10 0.0000 2 180 765 3450 1425 4/8-bytes\001
  • doc/papers/llheap/figures/FreeListAmongContainers.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         2400 600 3000 600 3000 900 2400 900 2400 600
    13 4 1 0 50 -1 0 11 0.0000 2 180 405 2700 825 Heap\001
     134 1 0 50 -1 0 10 0.0000 2 180 405 2700 825 Heap\001
    1414-6
    15152 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
     
    54542 1 0 0 7 7 50 -1 -1 0.000 0 0 -1 0 0 1
    5555         2400 2850
    56 4 1 0 50 -1 0 11 0.0000 2 135 555 2700 1425 Header\001
    57 4 1 0 50 -1 0 11 0.0000 2 135 345 3300 1425 Free\001
    58 4 1 0 50 -1 0 11 0.0000 2 195 870 3900 1425 Object$_1$\001
    59 4 1 0 50 -1 0 11 0.0000 2 195 870 4500 1425 Object$_2$\001
    60 4 1 0 50 -1 0 11 0.0000 2 135 555 2700 2025 Header\001
    61 4 1 0 50 -1 0 11 0.0000 2 135 555 2700 2625 Header\001
    62 4 1 0 50 -1 0 11 0.0000 2 135 345 3300 2625 Free\001
    63 4 1 0 50 -1 0 11 0.0000 2 195 870 3300 2025 Object$_3$\001
    64 4 1 0 50 -1 0 11 0.0000 2 195 870 3900 2625 Object$_4$\001
    65 4 1 0 50 -1 0 11 0.0000 2 135 345 3900 2025 Free\001
    66 4 1 0 50 -1 0 11 0.0000 2 135 345 4500 2025 Free\001
    67 4 1 0 50 -1 0 11 0.0000 2 135 345 4500 2625 Free\001
    68 4 0 0 50 -1 0 11 0.0000 2 180 1110 3150 825 object free-list\001
    69 4 1 0 50 -1 0 11 0.0000 2 135 795 3750 1125 containers\001
     564 1 0 50 -1 0 10 0.0000 2 135 555 2700 1425 Header\001
     574 1 0 50 -1 0 10 0.0000 2 135 345 3300 1425 Free\001
     584 1 0 50 -1 0 10 0.0000 2 195 870 3900 1425 Object$_1$\001
     594 1 0 50 -1 0 10 0.0000 2 195 870 4500 1425 Object$_2$\001
     604 1 0 50 -1 0 10 0.0000 2 135 555 2700 2025 Header\001
     614 1 0 50 -1 0 10 0.0000 2 135 555 2700 2625 Header\001
     624 1 0 50 -1 0 10 0.0000 2 135 345 3300 2625 Free\001
     634 1 0 50 -1 0 10 0.0000 2 195 870 3300 2025 Object$_3$\001
     644 1 0 50 -1 0 10 0.0000 2 195 870 3900 2625 Object$_4$\001
     654 1 0 50 -1 0 10 0.0000 2 135 345 3900 2025 Free\001
     664 1 0 50 -1 0 10 0.0000 2 135 345 4500 2025 Free\001
     674 1 0 50 -1 0 10 0.0000 2 135 345 4500 2625 Free\001
     684 0 0 50 -1 0 10 0.0000 2 180 1110 3150 825 object free-list\001
     694 1 0 50 -1 0 10 0.0000 2 135 795 3750 1125 containers\001
  • doc/papers/llheap/figures/FreeListWithinContainers.fig

    r00b046f r70f97c8  
    21212 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2222         2400 600 3000 600 3000 900 2400 900 2400 600
    23 4 1 0 50 -1 0 11 0.0000 2 180 405 2700 825 Heap\001
     234 1 0 50 -1 0 10 0.0000 2 180 405 2700 825 Heap\001
    2424-6
    25252 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
     
    56562 2 0 1 0 7 50 -1 17 0.000 0 0 -1 0 0 5
    5757         4200 2400 4800 2400 4800 2700 4200 2700 4200 2400
    58 4 0 0 50 -1 0 11 0.0000 2 135 1350 3150 825 container free-list\001
    59 4 1 0 50 -1 0 11 0.0000 2 135 555 2700 1425 Header\001
    60 4 1 0 50 -1 0 11 0.0000 2 135 555 2700 2025 Header\001
    61 4 1 0 50 -1 0 11 0.0000 2 135 555 2700 2625 Header\001
    62 4 1 0 50 -1 0 11 0.0000 2 135 345 3300 1425 Free\001
    63 4 1 0 50 -1 0 11 0.0000 2 195 870 3300 2025 Object$_3$\001
    64 4 1 0 50 -1 0 11 0.0000 2 135 345 3225 2625 Free\001
    65 4 1 0 50 -1 0 11 0.0000 2 195 870 3900 1425 Object$_1$\001
    66 4 1 0 50 -1 0 11 0.0000 2 135 345 3900 2025 Free\001
    67 4 1 0 50 -1 0 11 0.0000 2 195 870 3900 2625 Object$_4$\001
    68 4 1 0 50 -1 0 11 0.0000 2 195 870 4500 1425 Object$_2$\001
    69 4 1 0 50 -1 0 11 0.0000 2 135 345 4500 2025 Free\001
    70 4 1 0 50 -1 0 11 0.0000 2 135 345 4500 2625 Free\001
    71 4 1 0 50 -1 0 11 0.0000 2 135 795 3750 1125 containers\001
    72 4 0 0 50 -1 0 11 0.0000 2 180 1110 3150 1650 object free-list\001
     584 0 0 50 -1 0 10 0.0000 2 135 1350 3150 825 container free-list\001
     594 1 0 50 -1 0 10 0.0000 2 135 555 2700 1425 Header\001
     604 1 0 50 -1 0 10 0.0000 2 135 555 2700 2025 Header\001
     614 1 0 50 -1 0 10 0.0000 2 135 555 2700 2625 Header\001
     624 1 0 50 -1 0 10 0.0000 2 135 345 3300 1425 Free\001
     634 1 0 50 -1 0 10 0.0000 2 195 870 3300 2025 Object$_3$\001
     644 1 0 50 -1 0 10 0.0000 2 135 345 3225 2625 Free\001
     654 1 0 50 -1 0 10 0.0000 2 195 870 3900 1425 Object$_1$\001
     664 1 0 50 -1 0 10 0.0000 2 135 345 3900 2025 Free\001
     674 1 0 50 -1 0 10 0.0000 2 195 870 3900 2625 Object$_4$\001
     684 1 0 50 -1 0 10 0.0000 2 195 870 4500 1425 Object$_2$\001
     694 1 0 50 -1 0 10 0.0000 2 135 345 4500 2025 Free\001
     704 1 0 50 -1 0 10 0.0000 2 135 345 4500 2625 Free\001
     714 1 0 50 -1 0 10 0.0000 2 135 795 3750 1125 containers\001
     724 0 0 50 -1 0 10 0.0000 2 180 1110 3150 1650 object free-list\001
  • doc/papers/llheap/figures/Header.fig

    r00b046f r70f97c8  
    3131        1 1 1.00 45.00 90.00
    3232         4200 3000 3450 3000 3450 2025
    33 4 0 0 50 -1 0 12 0.0000 2 180 1185 1875 1725 bucket pointer\001
    34 4 0 0 50 -1 0 12 0.0000 2 180 1005 1875 2025 mapped size\001
    35 4 0 0 50 -1 0 12 0.0000 2 135 1215 1875 2325 next free block\001
    36 4 2 0 50 -1 0 12 0.0000 2 135 480 1725 2025 union\001
    37 4 1 0 50 -1 0 12 0.0000 2 180 945 5400 2025 request size\001
    38 4 1 0 50 -1 0 12 0.0000 2 180 765 5400 1425 4/8-bytes\001
    39 4 1 0 50 -1 0 12 0.0000 2 180 765 3000 1425 4/8-bytes\001
    40 4 1 0 50 -1 0 12 0.0000 2 135 270 3475 2025 0/1\001
    41 4 1 0 50 -1 0 12 0.0000 2 135 270 3775 1725 0/1\001
    42 4 1 0 50 -1 0 12 0.0000 2 135 270 4075 1725 0/1\001
    43 4 0 0 50 -1 0 12 0.0000 2 180 1515 4275 3075 mapped allocation\001
    44 4 0 0 50 -1 0 12 0.0000 2 135 825 4275 2850 zero filled\001
    45 4 0 0 50 -1 0 12 0.0000 2 180 1920 4275 2625 alignment (fake header)\001
     334 0 0 50 -1 0 10 0.0000 2 180 1185 1875 1725 bucket pointer\001
     344 0 0 50 -1 0 10 0.0000 2 180 1005 1875 2025 mapped size\001
     354 0 0 50 -1 0 10 0.0000 2 135 1215 1875 2325 next free block\001
     364 2 0 50 -1 0 10 0.0000 2 135 480 1725 2025 union\001
     374 1 0 50 -1 0 10 0.0000 2 180 945 5400 2025 request size\001
     384 1 0 50 -1 0 10 0.0000 2 180 765 5400 1425 4/8-bytes\001
     394 1 0 50 -1 0 10 0.0000 2 180 765 3000 1425 4/8-bytes\001
     404 1 0 50 -1 0 10 0.0000 2 135 270 3475 2025 0/1\001
     414 1 0 50 -1 0 10 0.0000 2 135 270 3775 1725 0/1\001
     424 1 0 50 -1 0 10 0.0000 2 135 270 4075 1725 0/1\001
     434 0 0 50 -1 0 10 0.0000 2 180 1515 4275 3075 mapped allocation\001
     444 0 0 50 -1 0 10 0.0000 2 135 825 4275 2850 zero filled\001
     454 0 0 50 -1 0 10 0.0000 2 180 1920 4275 2625 alignment (fake header)\001
  • doc/papers/llheap/figures/HeapStructure.fig

    r00b046f r70f97c8  
    10106 1650 1200 2250 1500
    11111 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1950 1350 150 150 1950 1350 2100 1350
    12 4 1 0 50 -1 0 11 0.0000 2 195 465 1950 1425 T$_2$\001
     124 1 0 50 -1 0 10 0.0000 2 195 465 1950 1425 T$_2$\001
    1313-6
    14146 1200 1200 1800 1500
    15151 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1500 1350 150 150 1500 1350 1650 1350
    16 4 1 0 50 -1 0 11 0.0000 2 195 465 1500 1425 T$_1$\001
     164 1 0 50 -1 0 10 0.0000 2 195 465 1500 1425 T$_1$\001
    1717-6
    18186 2100 1200 2700 1500
    19191 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 1350 150 150 2400 1350 2550 1350
    20 4 1 0 50 -1 0 11 0.0000 2 195 465 2400 1425 T$_3$\001
     204 1 0 50 -1 0 10 0.0000 2 195 465 2400 1425 T$_3$\001
    2121-6
    22226 2700 3000 3000 3300
    23232 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2424         2700 3000 3000 3000 3000 3300 2700 3300 2700 3000
    25 4 1 0 50 -1 0 11 0.0000 2 135 135 2850 3225 G\001
     254 1 0 50 -1 0 10 0.0000 2 135 135 2850 3225 G\001
    2626-6
    27276 1650 2400 2250 2700
    28281 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1950 2550 150 150 1950 2550 2100 2550
    29 4 1 0 50 -1 0 11 0.0000 2 195 465 1950 2625 T$_2$\001
     294 1 0 50 -1 0 10 0.0000 2 195 465 1950 2625 T$_2$\001
    3030-6
    31316 1200 2400 1800 2700
    32321 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1500 2550 150 150 1500 2550 1650 2550
    33 4 1 0 50 -1 0 11 0.0000 2 195 465 1500 2625 T$_1$\001
     334 1 0 50 -1 0 10 0.0000 2 195 465 1500 2625 T$_1$\001
    3434-6
    35356 2100 2400 2700 2700
    36361 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 2550 150 150 2400 2550 2550 2550
    37 4 1 0 50 -1 0 11 0.0000 2 195 465 2400 2625 T$_3$\001
     374 1 0 50 -1 0 10 0.0000 2 195 465 2400 2625 T$_3$\001
    3838-6
    39396 1650 3600 2250 4500
     
    43432 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    4444         1800 4200 2100 4200 2100 4500 1800 4500 1800 4200
    45 4 1 0 50 -1 0 11 0.0000 2 195 495 1950 4425 H$_2$\001
    46 4 1 0 50 -1 0 11 0.0000 2 195 465 1950 3825 T$_2$\001
     454 1 0 50 -1 0 10 0.0000 2 195 495 1950 4425 H$_2$\001
     464 1 0 50 -1 0 10 0.0000 2 195 465 1950 3825 T$_2$\001
    4747-6
    48486 1200 3600 1800 4500
     
    52522 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    5353         1350 4200 1650 4200 1650 4500 1350 4500 1350 4200
    54 4 1 0 50 -1 0 11 0.0000 2 195 495 1500 4425 H$_1$\001
    55 4 1 0 50 -1 0 11 0.0000 2 195 465 1500 3825 T$_1$\001
     544 1 0 50 -1 0 10 0.0000 2 195 495 1500 4425 H$_1$\001
     554 1 0 50 -1 0 10 0.0000 2 195 465 1500 3825 T$_1$\001
    5656-6
    57576 2100 3600 2700 4500
     
    61612 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    6262         2250 4200 2550 4200 2550 4500 2250 4500 2250 4200
    63 4 1 0 50 -1 0 11 0.0000 2 195 495 2400 4425 H$_3$\001
    64 4 1 0 50 -1 0 11 0.0000 2 195 465 2400 3825 T$_3$\001
     634 1 0 50 -1 0 10 0.0000 2 195 495 2400 4425 H$_3$\001
     644 1 0 50 -1 0 10 0.0000 2 195 465 2400 3825 T$_3$\001
    6565-6
    66666 2850 4200 3150 4500
    67672 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    6868         2850 4200 3150 4200 3150 4500 2850 4500 2850 4200
    69 4 1 0 50 -1 0 11 0.0000 2 135 135 3000 4425 G\001
     694 1 0 50 -1 0 10 0.0000 2 135 135 3000 4425 G\001
    7070-6
    71712 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
     
    91912 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    9292         2100 3000 2400 3000 2400 3300 2100 3300 2100 3000
    93 4 1 0 50 -1 0 11 0.0000 2 195 495 1950 2025 H$_1$\001
    94 4 1 0 50 -1 0 11 0.0000 2 195 1320 2250 2025 $\\Leftrightarrow$\001
    95 4 0 0 50 -1 0 11 0.0000 2 135 240 2400 2025 OS\001
    96 4 1 0 50 -1 0 11 0.0000 2 195 495 1650 3225 H$_1$\001
    97 4 1 0 50 -1 0 11 0.0000 2 195 495 2250 3225 H$_2$\001
    98 4 1 0 50 -1 0 11 0.0000 2 195 1320 2550 3225 $\\Leftrightarrow$\001
    99 4 1 0 50 -1 0 11 0.0000 2 195 1320 3150 3225 $\\Leftrightarrow$\001
    100 4 0 0 50 -1 0 11 0.0000 2 135 240 3300 3225 OS\001
    101 4 1 0 50 -1 0 11 0.0000 2 195 1320 2700 4425 $\\Leftrightarrow$\001
    102 4 1 0 50 -1 0 11 0.0000 2 195 1320 3300 4425 $\\Leftrightarrow$\001
    103 4 0 0 50 -1 0 11 0.0000 2 135 240 3450 4425 OS\001
     934 1 0 50 -1 0 10 0.0000 2 195 495 1950 2025 H$_1$\001
     944 1 0 50 -1 0 10 0.0000 2 195 1320 2250 2025 $\\Leftrightarrow$\001
     954 0 0 50 -1 0 10 0.0000 2 135 240 2400 2025 OS\001
     964 1 0 50 -1 0 10 0.0000 2 195 495 1650 3225 H$_1$\001
     974 1 0 50 -1 0 10 0.0000 2 195 495 2250 3225 H$_2$\001
     984 1 0 50 -1 0 10 0.0000 2 195 1320 2550 3225 $\\Leftrightarrow$\001
     994 1 0 50 -1 0 10 0.0000 2 195 1320 3150 3225 $\\Leftrightarrow$\001
     1004 0 0 50 -1 0 10 0.0000 2 135 240 3300 3225 OS\001
     1014 1 0 50 -1 0 10 0.0000 2 195 1320 2700 4425 $\\Leftrightarrow$\001
     1024 1 0 50 -1 0 10 0.0000 2 195 1320 3300 4425 $\\Leftrightarrow$\001
     1034 0 0 50 -1 0 10 0.0000 2 135 240 3450 4425 OS\001
  • doc/papers/llheap/figures/IntExtFragmentation.fig

    r00b046f r70f97c8  
    11112 2 0 0 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    1212         3150 1200 3900 1200 3900 1500 3150 1500 3150 1200
    13 4 1 0 50 -1 0 11 0.0000 2 180 600 3525 1425 Spacing\001
     134 1 0 50 -1 0 10 0.0000 2 180 600 3525 1425 Spacing\001
    1414-6
    15156 4425 1125 5775 1575
    16162 2 0 2 0 7 60 -1 17 0.000 0 0 -1 0 0 5
    1717         4500 1200 5700 1200 5700 1500 4500 1500 4500 1200
    18 4 1 0 50 -1 0 11 0.0000 2 180 1020 5100 1425 Free Memory\001
     184 1 0 50 -1 0 10 0.0000 2 180 1020 5100 1425 Free Memory\001
    1919-6
    20206 1200 1575 2550 1725
     
    29292 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
    3030         2550 1575 2550 1725
    31 4 1 0 50 -1 0 11 0.0000 2 135 570 1875 1725 internal\001
     314 1 0 50 -1 0 10 0.0000 2 135 570 1875 1725 internal\001
    3232-6
    33336 3150 1575 4500 1725
     
    42422 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
    4343         4500 1575 4500 1725
    44 4 1 0 50 -1 0 11 0.0000 2 135 570 3825 1725 internal\001
     444 1 0 50 -1 0 10 0.0000 2 135 570 3825 1725 internal\001
    4545-6
    46466 4500 1575 5700 1725
     
    55552 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
    5656         5700 1575 5700 1725
    57 4 1 0 50 -1 0 11 0.0000 2 135 615 5100 1725 external\001
     574 1 0 50 -1 0 10 0.0000 2 135 615 5100 1725 external\001
    5858-6
    59592 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
     
    69692 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    7070         1200 1200 4500 1200 4500 1500 1200 1500 1200 1200
    71 4 1 0 50 -1 0 11 0.0000 2 135 555 1500 1425 Header\001
    72 4 1 0 50 -1 0 11 0.0000 2 180 600 2175 1425 Padding\001
    73 4 1 0 50 -1 0 11 0.0000 2 180 510 2850 1425 Object\001
    74 4 1 0 50 -1 0 11 0.0000 2 135 495 4200 1425 Trailer\001
     714 1 0 50 -1 0 10 0.0000 2 135 555 1500 1425 Header\001
     724 1 0 50 -1 0 10 0.0000 2 180 600 2175 1425 Padding\001
     734 1 0 50 -1 0 10 0.0000 2 180 510 2850 1425 Object\001
     744 1 0 50 -1 0 10 0.0000 2 135 495 4200 1425 Trailer\001
  • doc/papers/llheap/figures/MemoryFragmentation.fig

    r00b046f r70f97c8  
    4949        1 1 1.00 45.00 90.00
    5050         750 600 750 2700
    51 4 1 0 50 -1 0 11 0.0000 2 195 870 2850 825 Object$_2$\001
    52 4 1 0 50 -1 0 11 0.0000 2 195 870 4050 825 Object$_3$\001
    53 4 1 0 50 -1 0 11 0.0000 2 195 870 4050 1275 Object$_3$\001
    54 4 1 0 50 -1 0 11 0.0000 2 195 870 4050 1725 Object$_3$\001
    55 4 1 0 50 -1 0 11 0.0000 2 195 870 4050 2175 Object$_3$\001
    56 4 1 0 50 -1 0 11 0.0000 2 195 870 4050 2625 Object$_3$\001
    57 4 1 0 50 -1 0 11 0.0000 2 195 870 2700 1725 Object$_4$\001
    58 4 1 0 50 -1 0 11 0.0000 2 195 870 2700 2625 Object$_4$\001
    59 4 1 0 50 -1 0 11 0.0000 2 195 870 2700 2175 Object$_4$\001
    60 4 1 0 50 -1 0 11 0.0000 2 195 870 1500 825 Object$_1$\001
    61 4 1 0 50 -1 0 11 0.0000 2 195 870 1500 1275 Object$_1$\001
    62 4 1 0 50 -1 0 11 0.0000 2 195 870 1500 1725 Object$_1$\001
    63 4 1 0 50 -1 0 11 0.0000 2 195 870 1350 2625 Object$_5$\001
    64 4 2 0 50 -1 0 11 0.0000 2 135 330 600 1725 time\001
     514 1 0 50 -1 0 10 0.0000 2 195 870 2850 825 Object$_2$\001
     524 1 0 50 -1 0 10 0.0000 2 195 870 4050 825 Object$_3$\001
     534 1 0 50 -1 0 10 0.0000 2 195 870 4050 1275 Object$_3$\001
     544 1 0 50 -1 0 10 0.0000 2 195 870 4050 1725 Object$_3$\001
     554 1 0 50 -1 0 10 0.0000 2 195 870 4050 2175 Object$_3$\001
     564 1 0 50 -1 0 10 0.0000 2 195 870 4050 2625 Object$_3$\001
     574 1 0 50 -1 0 10 0.0000 2 195 870 2700 1725 Object$_4$\001
     584 1 0 50 -1 0 10 0.0000 2 195 870 2700 2625 Object$_4$\001
     594 1 0 50 -1 0 10 0.0000 2 195 870 2700 2175 Object$_4$\001
     604 1 0 50 -1 0 10 0.0000 2 195 870 1500 825 Object$_1$\001
     614 1 0 50 -1 0 10 0.0000 2 195 870 1500 1275 Object$_1$\001
     624 1 0 50 -1 0 10 0.0000 2 195 870 1500 1725 Object$_1$\001
     634 1 0 50 -1 0 10 0.0000 2 195 870 1350 2625 Object$_5$\001
     644 2 0 50 -1 0 10 0.0000 2 135 330 600 1725 time\001
  • doc/papers/llheap/figures/MultipleHeapsNoOwnership.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         1200 2100 1500 2100 1500 1800 1200 1800 1200 2100
    13 4 1 0 50 -1 0 11 0.0000 2 165 495 1350 2025 H$_1$\001
     134 1 0 50 -1 0 10 0.0000 2 165 495 1350 2025 H$_1$\001
    1414-6
    15156 1950 1800 2550 2100
    16162 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1717         2100 2100 2400 2100 2400 1800 2100 1800 2100 2100
    18 4 1 0 50 -1 0 11 0.0000 2 165 495 2250 2025 H$_2$\001
     184 1 0 50 -1 0 10 0.0000 2 165 495 2250 2025 H$_2$\001
    1919-6
    20201 3 0 1 0 7 50 -1 -1 0.000 0 -0.0000 1350 1350 150 150 1350 1350 1500 1350
     
    4040        1 1 1.00 45.00 90.00
    4141         2325 1800 2325 1500
    42 4 1 0 50 -1 0 11 0.0000 2 165 465 1350 1425 T$_1$\001
    43 4 1 0 50 -1 0 11 0.0000 2 165 465 2250 1425 T$_2$\001
     424 1 0 50 -1 0 10 0.0000 2 165 465 1350 1425 T$_1$\001
     434 1 0 50 -1 0 10 0.0000 2 165 465 2250 1425 T$_2$\001
  • doc/papers/llheap/figures/MultipleHeapsOwnership.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         1200 2100 1500 2100 1500 1800 1200 1800 1200 2100
    13 4 1 0 50 -1 0 11 0.0000 2 165 495 1350 2025 H$_1$\001
     134 1 0 50 -1 0 10 0.0000 2 165 495 1350 2025 H$_1$\001
    1414-6
    15156 1950 1800 2550 2100
    16162 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1717         2100 2100 2400 2100 2400 1800 2100 1800 2100 2100
    18 4 1 0 50 -1 0 11 0.0000 2 165 495 2250 2025 H$_2$\001
     184 1 0 50 -1 0 10 0.0000 2 165 495 2250 2025 H$_2$\001
    1919-6
    20201 3 0 1 0 7 50 -1 -1 0.000 0 -0.0000 1350 1350 150 150 1350 1350 1500 1350
     
    3636        1 1 1.00 45.00 90.00
    3737         1425 1500 2175 1800
    38 4 1 0 50 -1 0 11 0.0000 2 165 465 2250 1425 T$_2$\001
    39 4 1 0 50 -1 0 11 0.0000 2 165 465 1350 1425 T$_1$\001
     384 1 0 50 -1 0 10 0.0000 2 165 465 2250 1425 T$_2$\001
     394 1 0 50 -1 0 10 0.0000 2 165 465 1350 1425 T$_1$\001
  • doc/papers/llheap/figures/MultipleHeapsOwnershipStorage.fig

    r00b046f r70f97c8  
    233233        1 1 1.00 45.00 90.00
    234234         2691 2618 3000 2700
    235 4 1 0 50 -1 0 11 0.0000 2 135 885 1500 1350 Static Zone\001
    236 4 1 0 50 -1 0 11 0.0000 2 195 495 2550 1725 H$_1$\001
    237 4 1 0 50 -1 0 11 0.0000 2 180 1950 4050 1350 Dynamic-Allocation Zone\001
    238 4 1 0 50 -1 0 11 0.0000 2 135 225 1650 1725 Hs\001
    239 4 1 0 50 -1 0 11 0.0000 2 195 495 2550 2625 H$_3$\001
    240 4 1 0 50 -1 0 11 0.0000 2 195 495 2550 2175 H$_2$\001
     2354 1 0 50 -1 0 10 0.0000 2 135 885 1500 1350 Static Zone\001
     2364 1 0 50 -1 0 10 0.0000 2 195 495 2550 1725 H$_1$\001
     2374 1 0 50 -1 0 10 0.0000 2 180 1950 4050 1350 Dynamic-Allocation Zone\001
     2384 1 0 50 -1 0 10 0.0000 2 135 225 1650 1725 Hs\001
     2394 1 0 50 -1 0 10 0.0000 2 195 495 2550 2625 H$_3$\001
     2404 1 0 50 -1 0 10 0.0000 2 195 495 2550 2175 H$_2$\001
  • doc/papers/llheap/figures/MultipleHeapsStorage.fig

    r00b046f r70f97c8  
    165165        1 1 1.00 45.00 90.00
    166166         2700 2625 3000 2400
    167 4 1 0 50 -1 0 11 0.0000 2 135 885 1500 1350 Static Zone\001
    168 4 1 0 50 -1 0 11 0.0000 2 195 495 2550 1725 H$_1$\001
    169 4 1 0 50 -1 0 11 0.0000 2 180 1950 4050 1350 Dynamic-Allocation Zone\001
    170 4 1 0 50 -1 0 11 0.0000 2 135 225 1650 1725 Hs\001
    171 4 1 0 50 -1 0 11 0.0000 2 195 495 2550 2625 H$_3$\001
    172 4 1 0 50 -1 0 11 0.0000 2 195 495 2550 2175 H$_2$\001
     1674 1 0 50 -1 0 10 0.0000 2 135 885 1500 1350 Static Zone\001
     1684 1 0 50 -1 0 10 0.0000 2 195 495 2550 1725 H$_1$\001
     1694 1 0 50 -1 0 10 0.0000 2 180 1950 4050 1350 Dynamic-Allocation Zone\001
     1704 1 0 50 -1 0 10 0.0000 2 135 225 1650 1725 Hs\001
     1714 1 0 50 -1 0 10 0.0000 2 195 495 2550 2625 H$_3$\001
     1724 1 0 50 -1 0 10 0.0000 2 195 495 2550 2175 H$_2$\001
  • doc/papers/llheap/figures/ObjectHeaders.fig

    r00b046f r70f97c8  
    13132 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1414         1200 1200 2700 1200 2700 1500 1200 1500 1200 1200
    15 4 1 0 50 -1 0 11 0.0000 2 195 915 1575 1425 Header$_1$\001
    16 4 1 0 50 -1 0 11 0.0000 2 195 870 2325 1425 Object$_1$\001
     154 1 0 50 -1 0 10 0.0000 2 195 915 1575 1425 Header$_1$\001
     164 1 0 50 -1 0 10 0.0000 2 195 870 2325 1425 Object$_1$\001
    1717-6
    18186 2550 1125 4275 1575
     
    21212 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2222         2700 1200 4200 1200 4200 1500 2700 1500 2700 1200
    23 4 1 0 50 -1 0 11 0.0000 2 195 915 3075 1425 Header$_2$\001
    24 4 1 0 50 -1 0 11 0.0000 2 195 870 3825 1425 Object$_2$\001
     234 1 0 50 -1 0 10 0.0000 2 195 915 3075 1425 Header$_2$\001
     244 1 0 50 -1 0 10 0.0000 2 195 870 3825 1425 Object$_2$\001
    2525-6
    26266 4050 1125 5775 1575
     
    29292 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3030         4200 1200 5700 1200 5700 1500 4200 1500 4200 1200
    31 4 1 0 50 -1 0 11 0.0000 2 195 915 4575 1425 Header$_3$\001
    32 4 1 0 50 -1 0 11 0.0000 2 195 870 5325 1425 Object$_3$\001
     314 1 0 50 -1 0 10 0.0000 2 195 915 4575 1425 Header$_3$\001
     324 1 0 50 -1 0 10 0.0000 2 195 870 5325 1425 Object$_3$\001
    3333-6
  • doc/papers/llheap/figures/PerThreadHeap.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         2700 1800 3000 1800 3000 2100 2700 2100 2700 1800
    13 4 1 0 50 -1 0 11 0.0000 2 120 135 2850 2025 G\001
     134 1 0 50 -1 0 10 0.0000 2 120 135 2850 2025 G\001
    1414-6
    15151 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 1350 150 150 1350 1350 1500 1350
     
    3434        1 1 1.00 45.00 90.00
    3535         2250 1500 2250 1800
    36 4 1 0 50 -1 0 11 0.0000 2 180 1260 2550 2025 $\\Leftrightarrow$\001
    37 4 1 0 50 -1 0 11 0.0000 2 180 1260 3150 2025 $\\Leftrightarrow$\001
    38 4 0 0 50 -1 0 11 0.0000 2 120 240 3300 2025 OS\001
    39 4 1 0 50 -1 0 11 0.0000 2 165 495 1350 2025 H$_1$\001
    40 4 1 0 50 -1 0 11 0.0000 2 165 465 1350 1425 T$_1$\001
    41 4 1 0 50 -1 0 11 0.0000 2 165 495 1800 2025 H$_2$\001
    42 4 1 0 50 -1 0 11 0.0000 2 165 465 1800 1425 T$_2$\001
    43 4 1 0 50 -1 0 11 0.0000 2 165 495 2250 2025 H$_3$\001
    44 4 1 0 50 -1 0 11 0.0000 2 165 465 2250 1425 T$_3$\001
     364 1 0 50 -1 0 10 0.0000 2 180 1260 2550 2025 $\\Leftrightarrow$\001
     374 1 0 50 -1 0 10 0.0000 2 180 1260 3150 2025 $\\Leftrightarrow$\001
     384 0 0 50 -1 0 10 0.0000 2 120 240 3300 2025 OS\001
     394 1 0 50 -1 0 10 0.0000 2 165 495 1350 2025 H$_1$\001
     404 1 0 50 -1 0 10 0.0000 2 165 465 1350 1425 T$_1$\001
     414 1 0 50 -1 0 10 0.0000 2 165 495 1800 2025 H$_2$\001
     424 1 0 50 -1 0 10 0.0000 2 165 465 1800 1425 T$_2$\001
     434 1 0 50 -1 0 10 0.0000 2 165 495 2250 2025 H$_3$\001
     444 1 0 50 -1 0 10 0.0000 2 165 465 2250 1425 T$_3$\001
  • doc/papers/llheap/figures/PrivatePublicHeaps.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         2550 1200 3750 1200 3750 1500 2550 1500 2550 1200
    13 4 1 0 50 -1 0 11 0.0000 2 180 900 3150 1425 Global Heap\001
     134 1 0 50 -1 0 10 0.0000 2 180 900 3150 1425 Global Heap\001
    1414-6
    15152 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
     
    71712 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    7272         3600 2700 4800 2700 4800 3000 3600 3000 3600 2700
    73 4 1 0 50 -1 0 11 0.0000 2 180 525 3150 2025 locking\001
    74 4 1 0 50 -1 0 11 1.5708 2 120 330 1200 2850 alloc\001
    75 4 1 0 50 -1 0 11 4.7124 2 135 495 4725 3300 dealloc\001
    76 4 1 0 50 -1 0 11 4.7124 2 120 330 5100 2850 alloc\001
    77 4 1 0 50 -1 0 11 5.4803 2 135 495 3375 3375 dealloc\001
    78 4 1 0 50 -1 0 11 0.8029 2 180 750 2700 3225 ownership\001
    79 4 1 0 50 -1 0 11 0.8029 2 135 495 2925 3375 dealloc\001
    80 4 1 0 50 -1 0 11 5.4803 2 180 750 3600 3225 ownership\001
    81 4 1 0 50 -1 0 11 4.7124 2 135 495 4725 2400 dealloc\001
    82 4 1 0 50 -1 0 11 1.5708 2 135 495 1575 3300 dealloc\001
    83 4 1 0 50 -1 0 11 1.5708 2 135 495 1575 2400 dealloc\001
    84 4 1 0 50 -1 0 11 1.5708 2 120 330 1950 3300 alloc\001
    85 4 1 0 50 -1 0 11 4.7124 2 120 330 4350 3300 alloc\001
    86 4 1 0 50 -1 0 11 0.0000 2 165 855 1800 3825 Thread$_1$\001
    87 4 1 0 50 -1 0 11 0.0000 2 165 855 4500 3825 Thread$_2$\001
    88 4 1 0 50 -1 0 11 0.0000 2 180 1230 1800 2025 Public Heap$_1$\001
    89 4 1 0 50 -1 0 11 0.0000 2 180 1275 2100 2925 Private Heap$_1$\001
    90 4 1 0 50 -1 0 11 0.0000 2 180 1230 4500 2025 Public Heap$_2$\001
    91 4 1 0 50 -1 0 11 0.0000 2 180 1275 4200 2925 Private Heap$_2$\001
     734 1 0 50 -1 0 10 0.0000 2 180 525 3150 2025 locking\001
     744 1 0 50 -1 0 10 1.5708 2 120 330 1200 2850 alloc\001
     754 1 0 50 -1 0 10 4.7124 2 135 495 4725 3300 dealloc\001
     764 1 0 50 -1 0 10 4.7124 2 120 330 5100 2850 alloc\001
     774 1 0 50 -1 0 10 5.4803 2 135 495 3375 3375 dealloc\001
     784 1 0 50 -1 0 10 0.8029 2 180 750 2700 3225 ownership\001
     794 1 0 50 -1 0 10 0.8029 2 135 495 2925 3375 dealloc\001
     804 1 0 50 -1 0 10 5.4803 2 180 750 3600 3225 ownership\001
     814 1 0 50 -1 0 10 4.7124 2 135 495 4725 2400 dealloc\001
     824 1 0 50 -1 0 10 1.5708 2 135 495 1575 3300 dealloc\001
     834 1 0 50 -1 0 10 1.5708 2 135 495 1575 2400 dealloc\001
     844 1 0 50 -1 0 10 1.5708 2 120 330 1950 3300 alloc\001
     854 1 0 50 -1 0 10 4.7124 2 120 330 4350 3300 alloc\001
     864 1 0 50 -1 0 10 0.0000 2 165 855 1800 3825 Thread$_1$\001
     874 1 0 50 -1 0 10 0.0000 2 165 855 4500 3825 Thread$_2$\001
     884 1 0 50 -1 0 10 0.0000 2 180 1230 1800 2025 Public Heap$_1$\001
     894 1 0 50 -1 0 10 0.0000 2 180 1275 2100 2925 Private Heap$_1$\001
     904 1 0 50 -1 0 10 0.0000 2 180 1230 4500 2025 Public Heap$_2$\001
     914 1 0 50 -1 0 10 0.0000 2 180 1275 4200 2925 Private Heap$_2$\001
  • doc/papers/llheap/figures/ProgramFalseSharing.fig

    r00b046f r70f97c8  
    15152 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1616         3450 3000 4350 3000 4350 3300 3450 3300 3450 3000
    17 4 1 0 50 -1 0 11 0.0000 2 165 825 3000 3225 Object$_1$\001
    18 4 1 0 50 -1 0 11 0.0000 2 165 825 3900 3225 Object$_2$\001
     174 1 0 50 -1 0 10 0.0000 2 165 825 3000 3225 Object$_1$\001
     184 1 0 50 -1 0 10 0.0000 2 165 825 3900 3225 Object$_2$\001
    1919-6
    20202 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
     
    40402 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
    4141         3225 1800 3225 1575 2475 1575 2475 1800 3225 1800
    42 4 1 0 50 -1 0 11 0.0000 2 165 855 2850 1725 Thread$_1$\001
    43 4 0 0 50 -1 0 11 0.0000 2 165 720 1275 1725 CPU$_1$\001
    44 4 1 0 50 -1 0 11 0.0000 2 135 435 2250 2025 Cache\001
    45 4 1 0 50 -1 0 11 0.0000 2 165 825 1800 2325 Object$_1$\001
    46 4 1 0 50 -1 0 11 0.0000 2 165 825 2700 2325 Object$_2$\001
    47 4 1 0 50 -1 0 11 0.0000 2 165 855 5250 1725 Thread$_2$\001
    48 4 0 0 50 -1 0 11 0.0000 2 165 720 3675 1725 CPU$_2$\001
    49 4 1 0 50 -1 0 11 0.0000 2 165 825 4200 2325 Object$_1$\001
    50 4 1 0 50 -1 0 11 0.0000 2 165 825 5100 2325 Object$_2$\001
    51 4 1 0 50 -1 0 11 0.0000 2 135 435 4650 2025 Cache\001
    52 4 2 0 50 -1 0 11 0.0000 2 165 615 2475 3225 Memory\001
    53 4 2 0 50 -1 2 11 0.0000 2 135 525 2550 2850 1. alloc\001
    54 4 0 0 50 -1 2 11 0.0000 2 180 720 2700 2775 3. modify\001
    55 4 0 0 50 -1 2 11 0.0000 2 180 720 4350 2850 4. modify\001
    56 4 1 0 50 -1 2 11 0.0000 2 165 2220 4050 1275 2.  pass Object$_2$ reference\001
     424 1 0 50 -1 0 10 0.0000 2 165 855 2850 1725 Thread$_1$\001
     434 0 0 50 -1 0 10 0.0000 2 165 720 1275 1725 CPU$_1$\001
     444 1 0 50 -1 0 10 0.0000 2 135 435 2250 2025 Cache\001
     454 1 0 50 -1 0 10 0.0000 2 165 825 1800 2325 Object$_1$\001
     464 1 0 50 -1 0 10 0.0000 2 165 825 2700 2325 Object$_2$\001
     474 1 0 50 -1 0 10 0.0000 2 165 855 5250 1725 Thread$_2$\001
     484 0 0 50 -1 0 10 0.0000 2 165 720 3675 1725 CPU$_2$\001
     494 1 0 50 -1 0 10 0.0000 2 165 825 4200 2325 Object$_1$\001
     504 1 0 50 -1 0 10 0.0000 2 165 825 5100 2325 Object$_2$\001
     514 1 0 50 -1 0 10 0.0000 2 135 435 4650 2025 Cache\001
     524 2 0 50 -1 0 10 0.0000 2 165 615 2475 3225 Memory\001
     534 2 0 50 -1 2 10 0.0000 2 135 525 2550 2850 1. alloc\001
     544 0 0 50 -1 2 10 0.0000 2 180 720 2700 2775 3. modify\001
     554 0 0 50 -1 2 10 0.0000 2 180 720 4350 2850 4. modify\001
     564 1 0 50 -1 2 10 0.0000 2 165 2220 4050 1275 2.  pass Object$_2$ reference\001
  • doc/papers/llheap/figures/RemoteFreeList.fig

    r00b046f r70f97c8  
    41412 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    4242         3900 1200 5100 1200 5100 1500 3900 1500 3900 1200
    43 4 1 0 50 -1 0 11 1.5708 2 135 495 1500 2250 dealloc\001
    44 4 1 0 50 -1 0 11 1.5708 2 120 330 1200 2250 alloc\001
    45 4 1 0 50 -1 0 11 4.7124 2 135 495 4800 2250 dealloc\001
    46 4 1 0 50 -1 0 11 0.0000 2 180 525 3150 2025 locking\001
    47 4 1 0 50 -1 0 11 0.5934 2 135 495 2850 2925 dealloc\001
    48 4 1 0 50 -1 0 11 5.6898 2 135 495 3450 2925 dealloc\001
    49 4 1 0 50 -1 0 11 0.5934 2 180 750 2700 2725 ownership\001
    50 4 1 0 50 -1 0 11 5.6898 2 180 750 3600 2725 ownership\001
    51 4 1 0 50 -1 0 11 1.5708 2 120 330 2025 1800 alloc\001
    52 4 1 0 50 -1 0 11 4.7124 2 120 330 5100 2250 alloc\001
    53 4 1 0 50 -1 0 11 4.7124 2 120 330 4275 1800 alloc\001
    54 4 1 0 50 -1 0 11 0.0000 2 165 855 1800 3225 Thread$_1$\001
    55 4 1 0 50 -1 0 11 0.0000 2 165 855 4500 3225 Thread$_2$\001
    56 4 1 0 50 -1 0 11 0.0000 2 180 1275 1800 1425 Private Heap$_1$\001
    57 4 1 0 50 -1 0 11 0.0000 2 165 1260 2400 2325 Remote Free$_1$\001
    58 4 1 0 50 -1 0 11 0.0000 2 180 1275 4500 1425 Private Heap$_2$\001
    59 4 1 0 50 -1 0 11 0.0000 2 165 1260 3900 2325 Remote Free$_2$\001
     434 1 0 50 -1 0 10 1.5708 2 135 495 1500 2250 dealloc\001
     444 1 0 50 -1 0 10 1.5708 2 120 330 1200 2250 alloc\001
     454 1 0 50 -1 0 10 4.7124 2 135 495 4800 2250 dealloc\001
     464 1 0 50 -1 0 10 0.0000 2 180 525 3150 2025 locking\001
     474 1 0 50 -1 0 10 0.5934 2 135 495 2850 2925 dealloc\001
     484 1 0 50 -1 0 10 5.6898 2 135 495 3450 2925 dealloc\001
     494 1 0 50 -1 0 10 0.5934 2 180 750 2700 2725 ownership\001
     504 1 0 50 -1 0 10 5.6898 2 180 750 3600 2725 ownership\001
     514 1 0 50 -1 0 10 1.5708 2 120 330 2025 1800 alloc\001
     524 1 0 50 -1 0 10 4.7124 2 120 330 5100 2250 alloc\001
     534 1 0 50 -1 0 10 4.7124 2 120 330 4275 1800 alloc\001
     544 1 0 50 -1 0 10 0.0000 2 165 855 1800 3225 Thread$_1$\001
     554 1 0 50 -1 0 10 0.0000 2 165 855 4500 3225 Thread$_2$\001
     564 1 0 50 -1 0 10 0.0000 2 180 1275 1800 1425 Private Heap$_1$\001
     574 1 0 50 -1 0 10 0.0000 2 165 1260 2400 2325 Remote Free$_1$\001
     584 1 0 50 -1 0 10 0.0000 2 180 1275 4500 1425 Private Heap$_2$\001
     594 1 0 50 -1 0 10 0.0000 2 165 1260 3900 2325 Remote Free$_2$\001
  • doc/papers/llheap/figures/SharedHeaps.fig

    r00b046f r70f97c8  
    10106 1500 1200 2100 1500
    11111 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 1350 150 150 1800 1350 1950 1350
    12 4 1 0 50 -1 0 11 0.0000 2 165 465 1800 1425 T$_2$\001
     124 1 0 50 -1 0 10 0.0000 2 165 465 1800 1425 T$_2$\001
    1313-6
    14146 1050 1200 1650 1500
    15151 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 1350 150 150 1350 1350 1500 1350
    16 4 1 0 50 -1 0 11 0.0000 2 165 465 1350 1425 T$_1$\001
     164 1 0 50 -1 0 10 0.0000 2 165 465 1350 1425 T$_1$\001
    1717-6
    18186 1950 1200 2550 1500
    19191 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 1350 150 150 2250 1350 2400 1350
    20 4 1 0 50 -1 0 11 0.0000 2 165 465 2250 1425 T$_3$\001
     204 1 0 50 -1 0 10 0.0000 2 165 465 2250 1425 T$_3$\001
    2121-6
    22226 1275 1800 1875 2100
    23232 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2424         1425 1800 1725 1800 1725 2100 1425 2100 1425 1800
    25 4 1 0 50 -1 0 11 0.0000 2 165 495 1575 2025 H$_1$\001
     254 1 0 50 -1 0 10 0.0000 2 165 495 1575 2025 H$_1$\001
    2626-6
    27276 1725 1800 2325 2100
    28282 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    2929         1875 1800 2175 1800 2175 2100 1875 2100 1875 1800
    30 4 1 0 50 -1 0 11 0.0000 2 165 495 2025 2025 H$_2$\001
     304 1 0 50 -1 0 10 0.0000 2 165 495 2025 2025 H$_2$\001
    3131-6
    32326 2475 1800 2775 2100
    33332 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3434         2475 1800 2775 1800 2775 2100 2475 2100 2475 1800
    35 4 1 0 50 -1 0 11 0.0000 2 120 135 2625 2025 G\001
     354 1 0 50 -1 0 10 0.0000 2 120 135 2625 2025 G\001
    3636-6
    37372 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
     
    5555        1 1 1.00 45.00 90.00
    5656         2250 1500 2100 1800
    57 4 0 0 50 -1 0 11 0.0000 2 120 240 3075 2025 OS\001
    58 4 1 0 50 -1 0 11 0.0000 2 180 1260 2325 2025 $\\Leftrightarrow$\001
    59 4 1 0 50 -1 0 11 0.0000 2 180 1260 2925 2025 $\\Leftrightarrow$\001
     574 0 0 50 -1 0 10 0.0000 2 120 240 3075 2025 OS\001
     584 1 0 50 -1 0 10 0.0000 2 180 1260 2325 2025 $\\Leftrightarrow$\001
     594 1 0 50 -1 0 10 0.0000 2 180 1260 2925 2025 $\\Leftrightarrow$\001
  • doc/papers/llheap/figures/SingleHeap.fig

    r00b046f r70f97c8  
    10106 1500 1200 2100 1500
    11111 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 1350 150 150 1800 1350 1950 1350
    12 4 1 0 50 -1 0 11 0.0000 2 165 465 1800 1425 T$_2$\001
     124 1 0 50 -1 0 10 0.0000 2 165 465 1800 1425 T$_2$\001
    1313-6
    14146 1050 1200 1650 1500
    15151 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 1350 150 150 1350 1350 1500 1350
    16 4 1 0 50 -1 0 11 0.0000 2 165 465 1350 1425 T$_1$\001
     164 1 0 50 -1 0 10 0.0000 2 165 465 1350 1425 T$_1$\001
    1717-6
    18186 1950 1200 2550 1500
    19191 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 1350 150 150 2250 1350 2400 1350
    20 4 1 0 50 -1 0 11 0.0000 2 165 465 2250 1425 T$_3$\001
     204 1 0 50 -1 0 10 0.0000 2 165 465 2250 1425 T$_3$\001
    2121-6
    22222 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
     
    3434        1 1 1.00 45.00 90.00
    3535         1800 1500 1800 1800
    36 4 1 0 50 -1 0 11 0.0000 2 165 495 1800 2025 H$_1$\001
    37 4 1 0 50 -1 0 11 0.0000 2 180 1260 2100 2025 $\\Leftrightarrow$\001
    38 4 0 0 50 -1 0 11 0.0000 2 120 240 2250 2025 OS\001
     364 1 0 50 -1 0 10 0.0000 2 165 495 1800 2025 H$_1$\001
     374 1 0 50 -1 0 10 0.0000 2 180 1260 2100 2025 $\\Leftrightarrow$\001
     384 0 0 50 -1 0 10 0.0000 2 120 240 2250 2025 OS\001
  • doc/papers/llheap/figures/SuperContainers.fig

    r00b046f r70f97c8  
    52522 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
    5353         7200 2175 7200 2325
    54 4 1 0 50 -1 0 11 0.0000 2 180 1035 1800 1425 Super Header\001
    55 4 1 0 50 -1 0 11 0.0000 2 180 810 3150 1425 8B objects\001
    56 4 1 0 50 -1 0 11 0.0000 2 135 135 3750 1425 H\001
    57 4 1 0 50 -1 0 11 0.0000 2 180 990 4500 1425 256B objects\001
    58 4 1 0 50 -1 0 11 0.0000 2 135 135 2550 1425 H\001
    59 4 1 0 50 -1 0 11 0.0000 2 135 135 5250 1425 H\001
    60 4 1 0 50 -1 0 11 0.0000 2 180 900 5925 1425 64B objects\001
    61 4 1 0 50 -1 0 11 0.0000 2 180 1035 1800 2025 Super Header\001
    62 4 1 0 50 -1 0 11 0.0000 2 135 135 2550 2025 H\001
    63 4 1 0 50 -1 0 11 0.0000 2 135 435 4425 2325 64KB\001
    64 4 1 0 50 -1 0 11 0.0000 2 180 945 4650 2025 4KB objects\001
    65 4 1 0 50 -1 0 11 0.0000 2 135 345 6825 1425 Free\001
    66 4 1 0 50 -1 0 11 0.0000 2 135 345 6825 2025 Free\001
     544 1 0 50 -1 0 10 0.0000 2 180 1035 1800 1425 Super Header\001
     554 1 0 50 -1 0 10 0.0000 2 180 810 3150 1425 8B objects\001
     564 1 0 50 -1 0 10 0.0000 2 135 135 3750 1425 H\001
     574 1 0 50 -1 0 10 0.0000 2 180 990 4500 1425 256B objects\001
     584 1 0 50 -1 0 10 0.0000 2 135 135 2550 1425 H\001
     594 1 0 50 -1 0 10 0.0000 2 135 135 5250 1425 H\001
     604 1 0 50 -1 0 10 0.0000 2 180 900 5925 1425 64B objects\001
     614 1 0 50 -1 0 10 0.0000 2 180 1035 1800 2025 Super Header\001
     624 1 0 50 -1 0 10 0.0000 2 135 135 2550 2025 H\001
     634 1 0 50 -1 0 10 0.0000 2 135 435 4425 2325 64KB\001
     644 1 0 50 -1 0 10 0.0000 2 180 945 4650 2025 4KB objects\001
     654 1 0 50 -1 0 10 0.0000 2 135 345 6825 1425 Free\001
     664 1 0 50 -1 0 10 0.0000 2 135 345 6825 2025 Free\001
  • doc/papers/llheap/figures/UserKernelHeaps.fig

    r00b046f r70f97c8  
    10106 1500 1200 2100 1500
    11111 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 1350 150 150 1800 1350 1950 1350
    12 4 1 0 50 -1 0 11 0.0000 2 165 495 1800 1425 U$_2$\001
     124 1 0 50 -1 0 10 0.0000 2 165 495 1800 1425 U$_2$\001
    1313-6
    14146 1050 1200 1650 1500
    15151 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 1350 150 150 1350 1350 1500 1350
    16 4 1 0 50 -1 0 11 0.0000 2 165 495 1350 1425 U$_1$\001
     164 1 0 50 -1 0 10 0.0000 2 165 495 1350 1425 U$_1$\001
    1717-6
    18186 1950 1200 2550 1500
    19191 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 1350 150 150 2250 1350 2400 1350
    20 4 1 0 50 -1 0 11 0.0000 2 165 495 2250 1425 U$_3$\001
     204 1 0 50 -1 0 10 0.0000 2 165 495 2250 1425 U$_3$\001
    2121-6
    22226 2850 1200 3450 1500
    23231 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 1350 150 150 3150 1350 3300 1350
    24 4 1 0 50 -1 0 11 0.0000 2 165 495 3150 1425 U$_4$\001
     244 1 0 50 -1 0 10 0.0000 2 165 495 3150 1425 U$_4$\001
    2525-6
    26266 2400 1200 3000 1500
    27271 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2700 1350 150 150 2700 1350 2850 1350
    28 4 1 0 50 -1 0 11 0.0000 2 165 495 2700 1425 U$_5$\001
     284 1 0 50 -1 0 10 0.0000 2 165 495 2700 1425 U$_5$\001
    2929-6
    30306 3300 1200 3900 1500
    31311 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 1350 150 150 3600 1350 3750 1350
    32 4 1 0 50 -1 0 11 0.0000 2 165 495 3600 1425 U$_6$\001
     324 1 0 50 -1 0 10 0.0000 2 165 495 3600 1425 U$_6$\001
    3333-6
    34346 2175 1800 2775 2100
    35351 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2475 1950 150 150 2475 1950 2625 1950
    36 4 1 0 50 -1 0 11 0.0000 2 165 495 2475 2025 K$_2$\001
     364 1 0 50 -1 0 10 0.0000 2 165 495 2475 2025 K$_2$\001
    3737-6
    38386 1725 1800 2325 2100
    39391 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2025 1950 150 150 2025 1950 2175 1950
    40 4 1 0 50 -1 0 11 0.0000 2 165 495 2025 2025 K$_1$\001
     404 1 0 50 -1 0 10 0.0000 2 165 495 2025 2025 K$_1$\001
    4141-6
    42426 2625 1800 3225 2100
    43431 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2925 1950 150 150 2925 1950 3075 1950
    44 4 1 0 50 -1 0 11 0.0000 2 165 495 2925 2025 K$_3$\001
     444 1 0 50 -1 0 10 0.0000 2 165 495 2925 2025 K$_3$\001
    4545-6
    46462 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
     
    5656        1 1 1.00 45.00 90.00
    5757         2925 2100 2925 2400
    58 4 1 0 50 -1 0 11 0.0000 2 135 2235 2475 1725 scheduled across kernel threads\001
    59 4 1 0 50 -1 0 11 0.0000 2 180 2145 2475 2625 K:1 or K:H or 1:1 heap model\001
     584 1 0 50 -1 0 10 0.0000 2 135 2235 2475 1725 scheduled across kernel threads\001
     594 1 0 50 -1 0 10 0.0000 2 180 2145 2475 2625 K:1 or K:H or 1:1 heap model\001
  • doc/papers/llheap/figures/llheap.fig

    r00b046f r70f97c8  
    11112 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    1212         1275 1950 1725 1950 1725 2250 1275 2250 1275 1950
    13 4 1 0 50 -1 0 12 0.0000 2 135 360 1500 2175 lock\001
     134 1 0 50 -1 0 10 0.0000 2 135 360 1500 2175 lock\001
    1414-6
    15156 4125 4050 4275 4350
     
    31312 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    3232         3225 4650 3675 4650 3675 4950 3225 4950 3225 4650
    33 4 1 0 50 -1 0 12 0.0000 2 135 360 3450 4875 lock\001
     334 1 0 50 -1 0 10 0.0000 2 135 360 3450 4875 lock\001
    3434-6
    35356 3750 2325 3900 2700
     
    55552 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
    5656         2550 3750 3450 3750 3450 3975 2550 3975 2550 3750
    57 4 1 0 50 -1 0 12 0.0000 2 180 900 3000 3300 local pools\001
     574 1 0 50 -1 0 10 0.0000 2 180 900 3000 3300 local pools\001
    5858-6
    59592 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
     
    1611612 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
    162162         1200 3000 1800 3000 1800 3525 1200 3525 1200 3000
    163 4 2 0 50 -1 0 11 0.0000 2 135 300 2325 1950 lock\001
    164 4 2 0 50 -1 0 11 0.0000 2 120 270 2325 2100 size\001
    165 4 2 0 50 -1 0 11 0.0000 2 120 270 2325 2400 free\001
    166 4 2 0 50 -1 0 11 0.0000 2 165 495 2325 2250 (away)\001
    167 4 1 0 50 -1 0 12 0.0000 2 180 1455 4575 4575 global pool (sbrk)\001
    168 4 1 0 50 -1 0 12 0.0000 2 180 900 4200 3300 local pools\001
    169 4 1 0 50 -1 0 12 0.0000 2 180 1695 4350 1425 global heaps (mmap)\001
    170 4 1 0 50 -1 0 12 0.0000 2 180 810 3000 1725 heap$_1$\001
    171 4 1 0 50 -1 0 12 0.0000 2 180 810 4200 1725 heap$_2$\001
    172 4 1 0 50 -1 0 11 0.0000 2 120 255 1500 3150 fast\001
    173 4 1 0 50 -1 0 11 0.0000 2 180 495 1500 3300 lookup\001
    174 4 1 0 50 -1 0 11 0.0000 2 135 330 1500 3450 table\001
    175 4 1 0 50 -1 0 11 0.0000 2 120 315 1575 4050 stats\001
    176 4 1 0 50 -1 0 11 0.0000 2 120 600 1575 4200 counters\001
    177 4 1 0 50 -1 0 11 0.0000 2 135 330 1575 4350 table\001
     1634 2 0 50 -1 0 10 0.0000 2 135 300 2325 1950 lock\001
     1644 2 0 50 -1 0 10 0.0000 2 120 270 2325 2100 size\001
     1654 2 0 50 -1 0 10 0.0000 2 120 270 2325 2400 free\001
     1664 2 0 50 -1 0 10 0.0000 2 165 495 2325 2250 (away)\001
     1674 1 0 50 -1 0 10 0.0000 2 180 1455 4575 4575 global pool (sbrk)\001
     1684 1 0 50 -1 0 10 0.0000 2 180 900 4200 3300 local pools\001
     1694 1 0 50 -1 0 10 0.0000 2 180 1695 4350 1425 global heaps (mmap)\001
     1704 1 0 50 -1 0 10 0.0000 2 180 810 3000 1725 heap$_1$\001
     1714 1 0 50 -1 0 10 0.0000 2 180 810 4200 1725 heap$_2$\001
     1724 1 0 50 -1 0 10 0.0000 2 120 255 1500 3150 fast\001
     1734 1 0 50 -1 0 10 0.0000 2 180 495 1500 3300 lookup\001
     1744 1 0 50 -1 0 10 0.0000 2 135 330 1500 3450 table\001
     1754 1 0 50 -1 0 10 0.0000 2 120 315 1575 4050 stats\001
     1764 1 0 50 -1 0 10 0.0000 2 120 600 1575 4200 counters\001
     1774 1 0 50 -1 0 10 0.0000 2 135 330 1575 4350 table\001
  • doc/theses/colby_parsons_MMAth/Makefile

    r00b046f r70f97c8  
    66TeXLIB = .:style:text:${Macros}:${Build}:../../bibliography:
    77LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
    8 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex -terse
     8BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
    99
    1010MAKEFLAGS = --no-print-directory --silent #
     
    117117        # Must have *.aux file containing citations for bibtex
    118118        if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} ${basename $@}.tex ; fi
    119         -${BibTeX} ${Build}/${basename $@}
     119        ${BibTeX} ${Build}/${basename $@}
    120120        # Some citations reference others so run again to resolve these citations
    121121#       ${LaTeX} ${basename $@}.tex
  • doc/theses/colby_parsons_MMAth/glossary.tex

    r00b046f r70f97c8  
    3535\newabbreviation{rtti}{RTTI}{\Newterm{run-time type information}}
    3636\newabbreviation{fcfs}{FCFS}{\Newterm{first-come first-served}}
     37\newabbreviation{lifo}{LIFO}{\Newterm{last-in first-out}}
     38\newabbreviation{fifo}{FIFO}{\Newterm{first-in first-out}}
    3739\newabbreviation{toctou}{TOCTOU}{\Newterm{time-of-check to time-of-use}}
    3840
  • doc/theses/colby_parsons_MMAth/local.bib

    r00b046f r70f97c8  
    2727  pages={11--20},
    2828  year={2017}
    29 }
    30 
    31 @phdthesis{Delisle22,
    32 author={{Delisle, Thierry}},
    33 title={The \textsf{C}$\mathbf{\forall}$ Scheduler},
    34 year={2022},
    35 publisher="UWSpace",
    36 url={http://hdl.handle.net/10012/18941}
    37 }
    38 
    39 @article{Hoare78,
    40   title={Communicating sequential processes},
    41   author={Hoare, Charles Antony Richard},
    42   journal={Communications of the ACM},
    43   volume={21},
    44   number={8},
    45   pages={666--677},
    46   year={1978},
    47   publisher={ACM New York, NY, USA}
    48 }
    49 
    50 @mastersthesis{Beach21,
    51 author={{Beach, Andrew James}},
    52 title={Exception Handling in \textsf{C}$\mathbf{\forall}$},
    53 year={2021},
    54 publisher="UWSpace",
    55 url={http://hdl.handle.net/10012/17617}
    5629}
    5730
  • doc/theses/colby_parsons_MMAth/text/channels.tex

    r00b046f r70f97c8  
    99This model is an alternative to shared-memory concurrency, where threads communicate directly by changing shared state.
    1010
    11 Channels were first introduced by Kahn~\cite{Kahn74} and extended by Hoare~\cite{Hoare78} (CSP).
     11Channels were first introduced by Kahn~\cite{Kahn74} and extended by Hoare~\cite{CSP} (CSP).
    1212Both papers present a pseudo (unimplemented) concurrent language where processes communicate using input/output channels to send data.
    1313Both languages are highly restrictive.
     
    4747
    4848In general, the order values are processed by the consumer does not affect the correctness of the producer-consumer problem.
    49 For example, the buffer can be LIFO, FIFO, or prioritized with respect to insertion and removal.
     49For example, the buffer can be \gls{lifo}, \gls{fifo}, or prioritized with respect to insertion and removal.
    5050However, like MX, a buffer should ensure every value is eventually removed after some reasonable bounded time (no long-term starvation).
    5151The simplest way to prevent starvation is to implement the buffer as a queue, either with a cyclic array or linked nodes.
     
    5353\section{First-Come First-Served}
    5454As pointed out, a bounded buffer requires MX among multiple producers or consumers.
    55 This MX should be fair among threads, independent of the FIFO buffer being fair among values.
     55This MX should be fair among threads, independent of the \gls{fifo} buffer being fair among values.
    5656Fairness among threads is called \gls{fcfs} and was defined by Lamport~\cite[p.~454]{Lamport74}.
    5757\gls{fcfs} is defined in relation to a doorway~\cite[p.~330]{Lamport86II}, which is the point at which an ordering among threads can be established.
     
    6868Currently, only the Go programming language provides user-level threading where the primary communication mechanism is channels.
    6969Experiments were conducted that varied the producer-consumer algorithm and lock type used inside the channel.
    70 With the exception of non-\gls{fcfs} or non-FIFO algorithms, no algorithm or lock usage in the channel implementation was found to be consistently more performant that Go's choice of algorithm and lock implementation.
     70With the exception of non-\gls{fcfs} or non-\gls{fifo} algorithms, no algorithm or lock usage in the channel implementation was found to be consistently more performant that Go's choice of algorithm and lock implementation.
    7171Performance of channels can be improved by sharding the underlying buffer \cite{Dice11}.
    72 However, the FIFO property is lost, which is undesirable for user-facing channels.
     72However, the \gls{fifo} property is lost, which is undesirable for user-facing channels.
    7373Therefore, the low-level channel implementation in \CFA is largely copied from the Go implementation, but adapted to the \CFA type and runtime systems.
    7474As such the research contributions added by \CFA's channel implementation lie in the realm of safety and productivity features.
  • src/Parser/parser.yy

    r00b046f r70f97c8  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jun 20 22:10:31 2023
    13 // Update Count     : 6348
     12// Last Modified On : Fri Jun 30 12:32:36 2023
     13// Update Count     : 6364
    1414//
    1515
     
    26802680        ENUM attribute_list_opt '{' enumerator_list comma_opt '}'
    26812681                { $$ = DeclarationNode::newEnum( nullptr, $4, true, false )->addQualifiers( $2 ); }
     2682        | ENUM attribute_list_opt '!' '{' enumerator_list comma_opt '}' // invalid syntax rule
     2683                { SemanticError( yylloc, "syntax error, hiding '!' the enumerator names of an anonymous enumeration means the names are inaccessible." ); $$ = nullptr; }
    26822684        | ENUM attribute_list_opt identifier
    26832685                { typedefTable.makeTypedef( *$3 ); }
    26842686          hide_opt '{' enumerator_list comma_opt '}'
    26852687                { $$ = DeclarationNode::newEnum( $3, $7, true, false, nullptr, $5 )->addQualifiers( $2 ); }
    2686         | ENUM attribute_list_opt typedef_name                          // unqualified type name
    2687           hide_opt '{' enumerator_list comma_opt '}'
     2688        | ENUM attribute_list_opt typedef_name hide_opt '{' enumerator_list comma_opt '}' // unqualified type name
    26882689                { $$ = DeclarationNode::newEnum( $3->name, $6, true, false, nullptr, $4 )->addQualifiers( $2 ); }
    26892690        | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt '{' enumerator_list comma_opt '}'
     
    26942695                        $$ = DeclarationNode::newEnum( nullptr, $7, true, true, $3 )->addQualifiers( $5 );
    26952696                }
     2697        | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt '!' '{' enumerator_list comma_opt '}' // unqualified type name
     2698                { SemanticError( yylloc, "syntax error, hiding '!' the enumerator names of an anonymous enumeration means the names are inaccessible." ); $$ = nullptr; }
    26962699        | ENUM '(' ')' attribute_list_opt '{' enumerator_list comma_opt '}'
    26972700                {
    26982701                        $$ = DeclarationNode::newEnum( nullptr, $6, true, true )->addQualifiers( $4 );
    26992702                }
     2703        | ENUM '(' ')' attribute_list_opt '!' '{' enumerator_list comma_opt '}' // invalid syntax rule
     2704                { SemanticError( yylloc, "syntax error, hiding '!' the enumerator names of an anonymous enumeration means the names are inaccessible." ); $$ = nullptr; }
    27002705        | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt identifier attribute_list_opt
    27012706                {
     
    27092714                        $$ = DeclarationNode::newEnum( $6, $11, true, true, $3, $9 )->addQualifiers( $5 )->addQualifiers( $7 );
    27102715                }
    2711         | ENUM '(' ')' attribute_list_opt identifier attribute_list_opt
    2712           hide_opt '{' enumerator_list comma_opt '}'
     2716        | ENUM '(' ')' attribute_list_opt identifier attribute_list_opt hide_opt '{' enumerator_list comma_opt '}'
    27132717                {
    27142718                        $$ = DeclarationNode::newEnum( $5, $9, true, true, nullptr, $7 )->addQualifiers( $4 )->addQualifiers( $6 );
    27152719                }
    2716         | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt typedef_name attribute_list_opt
    2717           hide_opt '{' enumerator_list comma_opt '}'
     2720        | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt typedef_name attribute_list_opt hide_opt '{' enumerator_list comma_opt '}'
    27182721                {
    27192722                        $$ = DeclarationNode::newEnum( $6->name, $10, true, true, $3, $8 )->addQualifiers( $5 )->addQualifiers( $7 );
    27202723                }
    2721         | ENUM '(' ')' attribute_list_opt typedef_name attribute_list_opt
    2722           hide_opt '{' enumerator_list comma_opt '}'
     2724        | ENUM '(' ')' attribute_list_opt typedef_name attribute_list_opt hide_opt '{' enumerator_list comma_opt '}'
    27232725                {
    27242726                        $$ = DeclarationNode::newEnum( $5->name, $9, true, true, nullptr, $7 )->addQualifiers( $4 )->addQualifiers( $6 );
  • tests/raii/.expect/memberCtors-ERR1.txt

    r00b046f r70f97c8  
    1 raii/memberCtors.cfa:92:1 error: in ?{}, field a2 used before being constructed
     1raii/memberCtors.cfa:94:1 error: in ?{}, field a2 used before being constructed
  • tests/raii/memberCtors.cfa

    r00b046f r70f97c8  
     1#include <fstream.hfa>
     2
    13struct WrappedInt {
    2   int x;
    3   int id;
     4        int x;
     5        int id;
    46};
    57int intID = 0;
    68
    7 void ?{}(WrappedInt & this) {
    8   this.id = intID++;
    9   printf("constructing int id: %d\n", this.id);
    10   this.x = 0;
     9void ?{}( WrappedInt & this ) {
     10        this.id = intID++;
     11        sout | "constructing int id: " | this.id;
     12        this.x = 0;
    1113}
    1214
    13 void ?{}(WrappedInt & this, WrappedInt other) {
    14   this.id = intID++;
    15   printf("copy constructing int: %d id: %d\n", other.x, this.id);
    16   this.x = other.x;
     15void ?{}( WrappedInt & this, WrappedInt other ) {
     16        this.id = intID++;
     17        sout | "copy constructing int: " | other.x | "id: " | this.id;
     18        this.x = other.x;
    1719}
    1820
    19 void ?{}(WrappedInt & this, int x) {
    20   this.id = intID++;
    21   printf("constructing int: %d id: %d\n", x, this.id);
    22   this.x = x;
     21void ?{}( WrappedInt & this, int x ) {
     22        this.id = intID++;
     23        sout | "constructing int: " | x | "id: " | this.id;
     24        this.x = x;
    2325}
    2426
    25 void ^?{}(WrappedInt & this) {
    26   printf("destructing int: %d id: %d\n", this.x, this.id);
     27void ^?{}( WrappedInt & this ) {
     28        sout | "destructing int: " | this.x | "id: " | this.id;
    2729}
    2830
    29 /* WrappedInt */ void ?=?(WrappedInt & this, int x) {
    30   printf("assigning int: %d %d id: %d\n", this.x, x, this.id);
    31   this.x = x;
    32   // return this;
     31/* WrappedInt */ void ?=?( WrappedInt & this, int x ) {
     32        sout | "assigning int: " | this.x | x | "id: " | this.id;
     33        this.x = x;
     34        // return this;
    3335}
    3436
    35 // WrappedInt ?=?(WrappedInt & this, WrappedInt other) {
    36 //   printf("assigning int: %d %d\n", this.x, other.x);
     37// WrappedInt ?=?( WrappedInt & this, WrappedInt other ) {
     38//   sout | "assigning int: " | this.x | other.x;
    3739//   this.x = other.x;
    3840//   return this;
     
    4042
    4143struct A {
    42   WrappedInt x, y, z;
    43   int id;
     44        WrappedInt x, y, z;
     45        int id;
    4446};
    4547int AID = 0;
    4648
    47 void ?{}(A & a) {
    48   // currently must define default ctor, since there's no "= default" syntax
    49   a.id = AID++;
    50   printf("default construct A %d\n", a.id);
     49void ?{}( A & a ) {
     50        // currently must define default ctor, since there's no "= default" syntax
     51        a.id = AID++;
     52        sout | "default construct A" | a.id;
    5153}
    5254
    53 void ?{}(A & a, int x) {
    54   a.id = AID++;
    55   printf("begin construct A id: %d\n", a.id);
    56   printf("construct a.x\n");
    57   (a.x){ x+999 };
    58   printf("assign a.y\n");
    59   a.y = 0; // not a constructor - default constructor will be inserted
    60   printf("end construct A\n");
     55void ?{}( A & a, int x ) {
     56        a.id = AID++;
     57        sout | "begin construct A id: " | a.id;
     58        sout | "construct a.x";
     59        (a.x){ x+999 };
     60        sout | "assign a.y";
     61        a.y = 0; // not a constructor - default constructor will be inserted
     62        sout | "end construct A";
    6163} // z never constructed - will be automatically default constructed
    6264
    63 void ?{}(A & this, A other) {
    64   this.id = AID++;
    65   printf("begin copy construct A id: %d\n", this.id);
    66   printf("copy construct this.x\n");
    67   (this.x){ other.x };
    68   printf("assign this.y\n");
    69   this.y = other.y; // not a constructor - copy constructor will be inserted
    70   printf("end copy construct A\n");
     65void ?{}( A & this, A other ) {
     66        this.id = AID++;
     67        sout | "begin copy construct A id: " | this.id;
     68        sout | "copy construct this.x";
     69        (this.x){ other.x };
     70        sout | "assign this.y";
     71        this.y = other.y; // not a constructor - copy constructor will be inserted
     72        sout | "end copy construct A";
    7173} // z never constructed - will be automatically copy constructed
    7274
    73 A ?=?(A & this, A other) {
    74   printf("begin ?=? A id: %d\n", this.id);
    75   this.x = other.x;
    76   this.y = other.y;
    77   this.z = other.z;
    78   printf("end ?=? A\n");
    79   return this;
     75A ?=?( A & this, A other ) {
     76        sout | "begin ?=? A id: " | this.id;
     77        this.x = other.x;
     78        this.y = other.y;
     79        this.z = other.z;
     80        sout | "end ?=? A";
     81        return this;
    8082}
    8183
    8284struct B {
    83   A a1, a2, a3;
    84   int id;
     85        A a1, a2, a3;
     86        int id;
    8587};
    8688int BID = 0;
    8789
    88 void ?{}(B & b) {
    89   b.id = BID++;
    90   printf("begin construct B id: %d\n", b.id);
    91   printf("assign b.a2\n");
    92   b.a2 = (A) { 2 };
    93   printf("construct b.a1\n");
    94   (b.a1){ 1 };
     90void ?{}( B & b ) {
     91        b.id = BID++;
     92        sout | "begin construct B id: " | b.id;
     93        sout | "assign b.a2";
     94        b.a2 = (A){ 2 };
     95        sout | "construct b.a1";
     96        (b.a1){ 1 };
    9597#ifdef ERR1
    96   (b.a2){ b.a3 }; // error, b->a2 was used previously but is explicitly constructed
     98        (b.a2){ b.a3 }; // error, b->a2 was used previously but is explicitly constructed
    9799#endif
    98   printf("end construct B\n");
     100        sout | "end construct B";
    99101} // a2, a3 never constructed - will be automatically default constructed
    100102
    101 void ^?{}(B & b) {
    102   b.id = BID++;
    103   printf("begin destruct B id: %d\n", b.id);
    104   b.a2 = (A) { 0 };
    105   ^(b.a1){};
    106   printf("end destruct B\n");
     103void ^?{}( B & b ) {
     104        b.id = BID++;
     105        sout | "begin destruct B id: " | b.id;
     106        b.a2 = (A) { 0 };
     107        ^(b.a1){};
     108        sout | "end destruct B";
    107109} // a2, a3 never destructed - will be automatically destructed
    108110
    109111int main() {
    110   printf("Before declaration of b1\n");
    111   B b1;  // b1 = { { 1000, 0, 0 }, { 1001, 0, 0 }, { 0, 0, 0 } }
    112   printf("Before declaration of b2\n");
    113   B b2 = b1;
    114   printf("End of main\n");
     112        sout | "Before declaration of b1";
     113        B b1;  // b1 = { { 1000, 0, 0 }, { 1001, 0, 0 }, { 0, 0, 0 } }
     114        sout | "Before declaration of b2";
     115        B b2 = b1;
     116        sout | "End of main";
    115117}
Note: See TracChangeset for help on using the changeset viewer.