mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
Commit Graph
Select branches
Hide Pull Requests
1508-shopify-docs-link
2-5-stable
2-6-stable
3-0-stable
4-0-stable
5-6-alpha
StrainerTemplate/isolate-filter-mods
actions-commit
actual-revert
add-json-encode-and-decode
all-changes-for-c-block-body
allow-nil-template-source
allow-recursive-liquid-tags
allow-whitespace-square-brackets
andyw8/drop-support-for-ruby2.6-and-2.7
andyw8/liquid-docs-content-swarm
andyw8/spike-liquid-yard
andyw8/update-rubocop-shopify
array-hash-test
autoresearch/liquid-perf-2026-03-11
autumn-cleaning
avoid-regex-allocation
bare-bracket-self-keyword
benchmark-load-render
benchmarks
better-bools-than-ghouls
better-bools-than-ghouls-update
bimal-filters
boolean_precedence
bp/bump-version
bp/tokenizer-fix
break-tag-docs-theme-rendering
bump-5-11
bump-5.10.0
bump-5.13.0
bump-5.7.0
bump-5.8.0
bump-5.9.0
bump-ruby-2-4
bump/5.4.0
c-extension
c-tokenizer
cache_var_lookups
catlee/assign_array
catlee/indentation
catlee/render_object
cbothner/coerce-clamp-value-from-at-least-at-most
centralizing-to_liquid
changes-for-liquid-c-vm-variable
check-utf8-validity
claude/liquid-to-ruby-compiler-0rmhj
colpos
comment-parse-tests
comment-tag-with-extra-string
configurable-partial-cache
consolidate-contextualization-of-inputs-via-the-context
content-swarm
context-drop
context_simplify
contextualize-before-to-liquid
cp-boolean-expressions
cp-expression-refactor
cp-expression-refactor-ai
cp-fix-rubocop
cp-make-new-tests-serializable-to-liquid-spec
cp-one-parser
cp-one-parser-ai
default-block-tag-blank-to-false
default-filter-false-fix
default-filter-with-to-liquid-value
default-variable-lookup-string-scanner
dependabot/bundler/bundler-ef8ef157fc
dependabot/github_actions/actions/checkout-7.0.0
dependabot/github_actions/ruby/setup-ruby-1.314.0
diff-types-err
disable-tag
docs-config-fix
docs-update
dpetrick/fix-comparison
dpetrick/hash_hacks
dpetrick/stringify-sum-property
drop/expect-context-to-be-present
empty-array
enable-cla-bot
env-propgating
env-warn-cleanup
environment-custom-tag
error-message-with-filepath
experiment-with-ruby-2.7
fast-expression-parse
fast-variable-parse
feature/add-tag-overwrites
feature/add-tag-overwrites-suggestions
filter-error
filter-name-symbols
filters-update
find-filter-patch
fix-comment-tag-delim-parsing
fix-constants
fix-context-overriding-in-templates
fix-failing-rubocop
fix-flaky-test
fix-hash-comparison
fix-history
fix-lexer-contains-as-id
fix-liquid-spec-without-activesupport
fix-multibyte-variable-parsing
fix-parsing-float-with-leading-point
fix-rake-example
fix-readme-docs-link
fix-tablerow-drop-cols-last-attr
fix-unless-to-use-to-liquid-value-helper
fix-variable-lookup-parse-timeout
fix/custom_tag_rendering
fix/echo-parse-tree-visitor
fix/kwarg-key-name-liquid-c-inconsistency
fix/range-parse-tree-visitor
fix/range-weird-type-handling
fix/theme-check-582-render-with-parse-tree-visitor
for-loop-float
force-to_liquid-input-iterator
format_filter
formatter
freeze-env
geddski/liquid-docs-content-swarm
gg-fix-existing-whitespace
gh-pages
gh-pages-sr
gh-pages-travis
has-boolean-arg
hash-last
hash-rendering-fixes
hotfix_blacklist
hybrid-tag-prototype
iainmcampbell/liquid-docs-content-swarm
ianks-fix-backward-breaking
ianks-lazy-tokenizer
identifier-dash-ending
ignore-comment-node
implicit-variable-scopes
improve-liquid-doc-documentation
improve_memory_limits_error_message
include_parsing_at_parse_time
infix-operators
inline-comment
inline-comments
jake-add-forloop-parentloop
jake-clarify-sort-natural
jake-content-swarm-2
jake-liquid-schema-update
jb-inline-snippet-updates
jb-inline-snippets
jb-method-literals
jf-self-drop-render-bug
jf-staging-strict-parser
jm/add_ld_link_doc_tag
jm/bump_liquid
jm/doc_body
jm/trim_doc_tag_desc
jm/update_snippet_url_links
k/contexts-1
klingbaum/ensure_sum_filter_calls_#to_liquid
klingbaum/fix-sum-filter-float-output
klingbaum/sum-filter
latest-bundler
lax-parse-warnings
lazy-tokenizer
leg_c
lexer-2
lexer-comparison-fix
lexer-parse-error-with-utf8
liquid-5.7.2-doc
liquid-compile
liquid-doc
liquid-doc-nodelist
liquid-docs
liquid-hermetic
liquid-nodelist
liquid-perf-bytetables
liquid-perf-polish
liquid-profile-stuff
liquid-spec-missing-features
liquid-tag-fixes
liquid-tag-whitespace-control-with-comment
liquid-usage
liquid_c_ext
liquid_ruby_4_0_box
main
marco-condition-to-liquid-value
marco-errors-in-snippets
marco-faster-parser
marco-fix-backward-breaking
marco/raw-tag-whitespace-control
markdown-renderer
master
master-fixes
mg/test
min-max-filter-docs
mllemango/liquid-docs-content-swarm
nested-properties
new-array-filters
new-array-filters-tophat
new-tokenizer
no-freeze-static-environment
no-template-mutation-on-render
non-parsing-block
non-parsing-comment
objects-opt
optimize-append-filter
optimize-invoke-filter
order-of-operations
out-of-band-errors
parse-context-new-tokenizer
parse_partials_at_template_parse_time
partial-cache-with-error-mode
pobed2/content-swarm-arrray-filters
pobed2/yard-dump
prevent-scope-squash
prototype-1849
pz-float-var-range
pz-invalid-endraw-tag
pz-strict-parser
pz-test-invalid-float
quirky-lexer-parsing
quirky-raw-tag-parse
ragel
ragel_c
range-optimization
range-to_liquid
raw-post-trim
recursively-parse-brackets
reduce-block-body-nesting
refactor-for-liquid-c-expression
refactor/invalid-encoding-error
register-filter-warn
releasing
remove-extraneous-attributes-link-script
remove-jruby-truffle
remove-lazy-stacks
remove-non-fix-from-changelog
remove-strict2-from-error-message
remove-tag-registry
render-after-prototype
render-expose-for-alias
render-for-context
render-forloop
render-tag
render-with
resource-limits-keys
resource-limits-struct
revert-1667-instrument-string-slice-bug-usage
revert-1823-feature/end-tag
revert-513-docs-update
revert-710-revert-513-docs-update
revert-invalid-comment-body
revert-to-s
rigid-parse
rubocop-bump-1
rubocop-upgrade
ruby-3-ci
score-registers
self-drop-eq
self-drop-renderer-mutation
sfr-verification
shipit-deploy/rubygems
shipit-deploy/rubygems-4-0-stable
shopify_ruby_style
simplify_find_variable
snippets
sort-numeric
source-migrate
spaceless-tag
sr-content-swarm
sr-inline-comment
stack-level-too-deep
static_register_frozen_string
strict2-assign-capture
strict2-include-tablerow
strict2-increment-decrement
strict_parse_variables
strict_parsing_everywhere
string-slice
styling-fixes-1
styling-fixes-2
styling-fixes-3
superfluid
symbol-filter-names
syntax-error-with-filename
tablerow-nil-params
template-factory
test-docs-flow
test-gem-installation
to-raw-value
to-s-fixes-34
tokenizer-next
tokenizer-quoted-strings
tree-optimizer
truffle-native
truncatewords
unfreeze-static
uniq-to-liquid-value
update-liquid-paths
update-loop-named-params
update-rubocop-todo
update-setup-ruby
usage-tracking
usage-update
use-to-liquid-value-with-conditions
v6
var-c-ext
var-c-ext-test
warning-line-numbers
whitespace-stripping-test
write-array-each
#100
#100
#1000
#1001
#1003
#1004
#1004
#1005
#1006
#101
#101
#1010
#1011
#1018
#1018
#1024
#1025
#1026
#1027
#1028
#1028
#103
#103
#1031
#1032
#1033
#1039
#104
#104
#1040
#1041
#1042
#1043
#1044
#1046
#1049
#1049
#1053
#1057
#1059
#106
#106
#1062
#1066
#107
#107
#1070
#1071
#1071
#1072
#1073
#1077
#1078
#1078
#1079
#1079
#108
#108
#1080
#1081
#1084
#1084
#1086
#1088
#1089
#109
#109
#1090
#1091
#1092
#1093
#1094
#1095
#1096
#1097
#1098
#1099
#1103
#1104
#1107
#1109
#111
#111
#1114
#1115
#1116
#1117
#112
#112
#1120
#1121
#1122
#1123
#1124
#1124
#113
#113
#1130
#1131
#1132
#1133
#1135
#1136
#1137
#1138
#1138
#1139
#1140
#1141
#1142
#1143
#1144
#1145
#1146
#1146
#1147
#1149
#115
#115
#1150
#1151
#1154
#1155
#1155
#1157
#1158
#1159
#1159
#1160
#1161
#1162
#1163
#1164
#1165
#1166
#1167
#117
#117
#1170
#1171
#1172
#1174
#1174
#1176
#1176
#1178
#118
#118
#1180
#1181
#1182
#1184
#1185
#1185
#1186
#1187
#1188
#1188
#1189
#1190
#1191
#1193
#1197
#120
#120
#1206
#1207
#1208
#1209
#1211
#1212
#1213
#1215
#1216
#1218
#1219
#1220
#1220
#1222
#1223
#1224
#1224
#1225
#1227
#1239
#1250
#1251
#1252
#1257
#1258
#1266
#1266
#1268
#127
#127
#1272
#1274
#1275
#1276
#128
#128
#1284
#1285
#1286
#1287
#1289
#1290
#1291
#1292
#1294
#1300
#1301
#1302
#1304
#1306
#1307
#1308
#1309
#131
#131
#1310
#1311
#1312
#1313
#1316
#1317
#1318
#132
#132
#1320
#1321
#1322
#1323
#1325
#1328
#1329
#133
#133
#1330
#1331
#1333
#1335
#1336
#1337
#1338
#1339
#1340
#1341
#1343
#1343
#1344
#1345
#1346
#1346
#135
#135
#1350
#1352
#1353
#1353
#1354
#1355
#1356
#1356
#1358
#1359
#1360
#1361
#1362
#1363
#1364
#1365
#1366
#1370
#1371
#1372
#1374
#1375
#1376
#1377
#1378
#1380
#1383
#1384
#1385
#1386
#1387
#139
#139
#1391
#1394
#1398
#140
#140
#1400
#1401
#1402
#1403
#1405
#1406
#1408
#141
#141
#1410
#1411
#1414
#1417
#1419
#1421
#1422
#1424
#1427
#1428
#1431
#1436
#1440
#1441
#1449
#145
#145
#1450
#1452
#1454
#1456
#1457
#1458
#1459
#1467
#1468
#147
#147
#1470
#1471
#1472
#1474
#1476
#1477
#1484
#1484
#1485
#1485
#1498
#1507
#1509
#1518
#152
#152
#1520
#1520
#1521
#1522
#1524
#1525
#1527
#1528
#1528
#1529
#1531
#1532
#1532
#1533
#1534
#1535
#1536
#1537
#1537
#1538
#1540
#1541
#1542
#1543
#1544
#1545
#1546
#1547
#1548
#1549
#1550
#1551
#1552
#1553
#1554
#1556
#1560
#1562
#1568
#1569
#157
#157
#1573
#1576
#1577
#1578
#1579
#158
#158
#1580
#1583
#1584
#1588
#1595
#1596
#1597
#1599
#160
#160
#1600
#1601
#1606
#1607
#1609
#161
#161
#1610
#1611
#1612
#1613
#1613
#1614
#1615
#1616
#1617
#1620
#1622
#1623
#1628
#1629
#1631
#1633
#1634
#1635
#1636
#1637
#1638
#164
#164
#1641
#1642
#1642
#1644
#1645
#1646
#1648
#1651
#1653
#1656
#1658
#1660
#1660
#1661
#1662
#1662
#1663
#1663
#1665
#1667
#1668
#1669
#1669
#1670
#1670
#1671
#1672
#1673
#1674
#1675
#1676
#1677
#168
#168
#1680
#1683
#1684
#1685
#1686
#1687
#1688
#1692
#1695
#170
#170
#1700
#1702
#171
#171
#1712
#1713
#1716
#1717
#172
#172
#1721
#1721
#1722
#1726
#1727
#1728
#1728
#173
#173
#1730
#1731
#1732
#1735
#1736
#1736
#1737
#1739
#174
#174
#1745
#1745
#1746
#1747
#1747
#1748
#1749
#175
#175
#1750
#1755
#176
#176
#1760
#1763
#1764
#1769
#1770
#1773
#1774
#1775
#1776
#1779
#1781
#1783
#1787
#1787
#1788
#1788
#1791
#1792
#1793
#1801
#1801
#1802
#1802
#1805
#1807
#1811
#1813
#1815
#1817
#1818
#1819
#1821
#1823
#1824
#183
#183
#1831
#1832
#1833
#1834
#1835
#1837
#1838
#1839
#1840
#1841
#1843
#1844
#1845
#1846
#1847
#1848
#185
#185
#1858
#1859
#1860
#1863
#1868
#1869
#1870
#1870
#1873
#1874
#1876
#1878
#1879
#1882
#1886
#1887
#1889
#189
#189
#1891
#1892
#1894
#1895
#1896
#1897
#1898
#1899
#190
#190
#1900
#1901
#1901
#1902
#1903
#1904
#1905
#1907
#1908
#1908
#1909
#191
#191
#1910
#1917
#1918
#1919
#192
#192
#1920
#1921
#1921
#1922
#1922
#1923
#1923
#1924
#1925
#1927
#1928
#1929
#1931
#1932
#1933
#1933
#1935
#1936
#1937
#1937
#194
#194
#1940
#1942
#1943
#1944
#1945
#1945
#1946
#1947
#1947
#1948
#1949
#1949
#1951
#1952
#1953
#1954
#1955
#1956
#1956
#1957
#1957
#1958
#196
#196
#1960
#1963
#1964
#1965
#1967
#1968
#197
#197
#1973
#1974
#1974
#1975
#1975
#1979
#198
#198
#1980
#1981
#1983
#1984
#1987
#1989
#199
#199
#1991
#1992
#1992
#1993
#1993
#1994
#1995
#200
#200
#2001
#2003
#2003
#2004
#2005
#2006
#2007
#201
#201
#2010
#2011
#2012
#2013
#2016
#2017
#2017
#2020
#2020
#2021
#2021
#2022
#2023
#2024
#2026
#2027
#2028
#203
#203
#2030
#2031
#2031
#2032
#2032
#2034
#2035
#2036
#2037
#2038
#2039
#2044
#2045
#2046
#2047
#2048
#205
#205
#2050
#2051
#2054
#2056
#2056
#2057
#2058
#2059
#2060
#2062
#2063
#2063
#2064
#2065
#2066
#2067
#2068
#2069
#2069
#2070
#2070
#2071
#2071
#2072
#2073
#2073
#2074
#2075
#2077
#2078
#2079
#208
#208
#2080
#2081
#2081
#2082
#2083
#2083
#2084
#2085
#2087
#2088
#2089
#209
#209
#2090
#2090
#2091
#2092
#2093
#2094
#2095
#2095
#2098
#2099
#2099
#210
#210
#2100
#2100
#2102
#2102
#2103
#2104
#2104
#2105
#2105
#2106
#2108
#2108
#2111
#2111
#2112
#2112
#2113
#2113
#2114
#2114
#2116
#2116
#214
#214
#215
#215
#217
#217
#218
#218
#219
#219
#220
#220
#221
#221
#226
#226
#230
#230
#232
#232
#233
#233
#234
#234
#235
#235
#238
#238
#239
#239
#240
#241
#241
#242
#242
#243
#243
#244
#244
#249
#249
#250
#251
#251
#253
#253
#254
#254
#255
#255
#256
#256
#257
#257
#259
#259
#261
#261
#264
#264
#266
#266
#267
#267
#268
#268
#269
#269
#271
#271
#272
#272
#273
#274
#276
#277
#277
#28
#28
#282
#284
#287
#291
#291
#295
#296
#297
#297
#298
#299
#30
#30
#300
#303
#304
#304
#306
#309
#310
#312
#317
#318
#319
#319
#320
#321
#322
#323
#324
#325
#327
#327
#328
#328
#329
#33
#333
#335
#336
#336
#337
#338
#34
#34
#341
#346
#347
#349
#350
#350
#351
#352
#352
#353
#353
#354
#355
#355
#356
#356
#358
#358
#359
#359
#36
#36
#361
#361
#363
#364
#365
#365
#368
#369
#369
#371
#372
#372
#374
#375
#376
#377
#377
#378
#379
#379
#380
#381
#382
#382
#383
#384
#385
#386
#389
#39
#390
#390
#391
#392
#392
#393
#395
#397
#398
#40
#400
#401
#402
#403
#403
#406
#407
#41
#41
#410
#410
#411
#412
#413
#414
#415
#415
#416
#417
#419
#420
#420
#421
#423
#425
#426
#426
#429
#429
#43
#43
#435
#435
#437
#437
#439
#44
#44
#440
#441
#442
#442
#443
#444
#445
#446
#448
#449
#45
#45
#450
#452
#452
#453
#454
#454
#455
#456
#456
#458
#459
#46
#46
#462
#463
#465
#466
#469
#471
#471
#472
#473
#473
#474
#474
#475
#475
#476
#478
#479
#48
#480
#481
#482
#483
#485
#486
#489
#49
#49
#491
#492
#499
#503
#504
#506
#51
#51
#512
#513
#519
#520
#53
#53
#537
#539
#54
#54
#540
#541
#545
#55
#55
#550
#551
#553
#554
#555
#556
#556
#557
#557
#558
#558
#559
#56
#56
#561
#561
#562
#563
#564
#565
#566
#566
#568
#570
#572
#572
#573
#574
#575
#576
#577
#578
#579
#58
#58
#581
#582
#583
#584
#585
#585
#586
#587
#587
#588
#588
#590
#592
#593
#594
#595
#596
#599
#60
#60
#600
#601
#602
#602
#603
#604
#605
#607
#607
#608
#61
#61
#610
#611
#612
#613
#614
#616
#617
#618
#62
#62
#620
#621
#621
#623
#624
#624
#626
#627
#627
#631
#632
#633
#636
#636
#637
#644
#644
#645
#645
#65
#65
#652
#653
#655
#658
#66
#66
#661
#662
#665
#667
#672
#673
#673
#679
#68
#68
#680
#681
#682
#683
#687
#688
#69
#69
#691
#693
#693
#694
#694
#695
#696
#702
#702
#703
#703
#705
#707
#710
#711
#712
#713
#714
#716
#717
#718
#719
#719
#72
#72
#723
#725
#726
#726
#729
#731
#732
#733
#734
#735
#736
#737
#737
#738
#739
#74
#74
#741
#742
#743
#744
#746
#746
#748
#750
#750
#751
#757
#76
#76
#761
#764
#765
#766
#769
#77
#77
#772
#772
#773
#779
#779
#78
#78
#781
#785
#786
#787
#787
#789
#793
#793
#795
#797
#798
#799
#80
#80
#803
#803
#805
#809
#81
#81
#810
#812
#813
#815
#817
#817
#820
#826
#829
#832
#834
#834
#835
#836
#837
#839
#84
#84
#840
#840
#845
#846
#849
#85
#85
#850
#851
#854
#855
#856
#857
#860
#864
#867
#867
#869
#869
#87
#87
#872
#874
#877
#877
#878
#878
#879
#88
#88
#888
#888
#890
#890
#891
#892
#894
#895
#896
#898
#90
#90
#901
#906
#909
#914
#914
#915
#915
#916
#916
#920
#921
#924
#929
#929
#93
#93
#930
#932
#937
#939
#939
#94
#94
#940
#941
#942
#943
#944
#952
#954
#957
#958
#959
#959
#960
#960
#961
#961
#962
#963
#966
#97
#97
#972
#977
#977
#981
#988
#989
#989
#990
#990
#991
#992
v2.0.0
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.2.0
v2.2.1
v2.2.2
v2.3.0
v2.4.0
v2.5.0
v2.5.1
v2.5.2
v2.5.3
v2.5.4
v2.5.5
v2.6.0
v2.6.0.rc1
v2.6.1
v2.6.2
v2.6.3
v3.0.0
v3.0.0.rc1
v3.0.1
v3.0.2
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v4.0.0
v4.0.0.rc1
v4.0.0.rc2
v4.0.0.rc3
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v5.0.0
v5.0.1
v5.1.0
v5.10.0
v5.11.0
v5.12.0
v5.13.0
v5.2.0
v5.3.0
v5.4.0
v5.5.0
v5.5.1
v5.6.0
v5.6.0.rc1
v5.6.0.rc2
v5.6.0.rc3
v5.6.1
v5.6.2
v5.6.3
v5.6.4
v5.7.0
v5.7.1
v5.7.2
v5.7.3
v5.8.0
v5.8.1
v5.8.2
v5.8.3
v5.8.4
v5.8.5
v5.8.6
v5.8.7
v5.9.0
Select branches
Hide Pull Requests
1508-shopify-docs-link
2-5-stable
2-6-stable
3-0-stable
4-0-stable
5-6-alpha
StrainerTemplate/isolate-filter-mods
actions-commit
actual-revert
add-json-encode-and-decode
all-changes-for-c-block-body
allow-nil-template-source
allow-recursive-liquid-tags
allow-whitespace-square-brackets
andyw8/drop-support-for-ruby2.6-and-2.7
andyw8/liquid-docs-content-swarm
andyw8/spike-liquid-yard
andyw8/update-rubocop-shopify
array-hash-test
autoresearch/liquid-perf-2026-03-11
autumn-cleaning
avoid-regex-allocation
bare-bracket-self-keyword
benchmark-load-render
benchmarks
better-bools-than-ghouls
better-bools-than-ghouls-update
bimal-filters
boolean_precedence
bp/bump-version
bp/tokenizer-fix
break-tag-docs-theme-rendering
bump-5-11
bump-5.10.0
bump-5.13.0
bump-5.7.0
bump-5.8.0
bump-5.9.0
bump-ruby-2-4
bump/5.4.0
c-extension
c-tokenizer
cache_var_lookups
catlee/assign_array
catlee/indentation
catlee/render_object
cbothner/coerce-clamp-value-from-at-least-at-most
centralizing-to_liquid
changes-for-liquid-c-vm-variable
check-utf8-validity
claude/liquid-to-ruby-compiler-0rmhj
colpos
comment-parse-tests
comment-tag-with-extra-string
configurable-partial-cache
consolidate-contextualization-of-inputs-via-the-context
content-swarm
context-drop
context_simplify
contextualize-before-to-liquid
cp-boolean-expressions
cp-expression-refactor
cp-expression-refactor-ai
cp-fix-rubocop
cp-make-new-tests-serializable-to-liquid-spec
cp-one-parser
cp-one-parser-ai
default-block-tag-blank-to-false
default-filter-false-fix
default-filter-with-to-liquid-value
default-variable-lookup-string-scanner
dependabot/bundler/bundler-ef8ef157fc
dependabot/github_actions/actions/checkout-7.0.0
dependabot/github_actions/ruby/setup-ruby-1.314.0
diff-types-err
disable-tag
docs-config-fix
docs-update
dpetrick/fix-comparison
dpetrick/hash_hacks
dpetrick/stringify-sum-property
drop/expect-context-to-be-present
empty-array
enable-cla-bot
env-propgating
env-warn-cleanup
environment-custom-tag
error-message-with-filepath
experiment-with-ruby-2.7
fast-expression-parse
fast-variable-parse
feature/add-tag-overwrites
feature/add-tag-overwrites-suggestions
filter-error
filter-name-symbols
filters-update
find-filter-patch
fix-comment-tag-delim-parsing
fix-constants
fix-context-overriding-in-templates
fix-failing-rubocop
fix-flaky-test
fix-hash-comparison
fix-history
fix-lexer-contains-as-id
fix-liquid-spec-without-activesupport
fix-multibyte-variable-parsing
fix-parsing-float-with-leading-point
fix-rake-example
fix-readme-docs-link
fix-tablerow-drop-cols-last-attr
fix-unless-to-use-to-liquid-value-helper
fix-variable-lookup-parse-timeout
fix/custom_tag_rendering
fix/echo-parse-tree-visitor
fix/kwarg-key-name-liquid-c-inconsistency
fix/range-parse-tree-visitor
fix/range-weird-type-handling
fix/theme-check-582-render-with-parse-tree-visitor
for-loop-float
force-to_liquid-input-iterator
format_filter
formatter
freeze-env
geddski/liquid-docs-content-swarm
gg-fix-existing-whitespace
gh-pages
gh-pages-sr
gh-pages-travis
has-boolean-arg
hash-last
hash-rendering-fixes
hotfix_blacklist
hybrid-tag-prototype
iainmcampbell/liquid-docs-content-swarm
ianks-fix-backward-breaking
ianks-lazy-tokenizer
identifier-dash-ending
ignore-comment-node
implicit-variable-scopes
improve-liquid-doc-documentation
improve_memory_limits_error_message
include_parsing_at_parse_time
infix-operators
inline-comment
inline-comments
jake-add-forloop-parentloop
jake-clarify-sort-natural
jake-content-swarm-2
jake-liquid-schema-update
jb-inline-snippet-updates
jb-inline-snippets
jb-method-literals
jf-self-drop-render-bug
jf-staging-strict-parser
jm/add_ld_link_doc_tag
jm/bump_liquid
jm/doc_body
jm/trim_doc_tag_desc
jm/update_snippet_url_links
k/contexts-1
klingbaum/ensure_sum_filter_calls_#to_liquid
klingbaum/fix-sum-filter-float-output
klingbaum/sum-filter
latest-bundler
lax-parse-warnings
lazy-tokenizer
leg_c
lexer-2
lexer-comparison-fix
lexer-parse-error-with-utf8
liquid-5.7.2-doc
liquid-compile
liquid-doc
liquid-doc-nodelist
liquid-docs
liquid-hermetic
liquid-nodelist
liquid-perf-bytetables
liquid-perf-polish
liquid-profile-stuff
liquid-spec-missing-features
liquid-tag-fixes
liquid-tag-whitespace-control-with-comment
liquid-usage
liquid_c_ext
liquid_ruby_4_0_box
main
marco-condition-to-liquid-value
marco-errors-in-snippets
marco-faster-parser
marco-fix-backward-breaking
marco/raw-tag-whitespace-control
markdown-renderer
master
master-fixes
mg/test
min-max-filter-docs
mllemango/liquid-docs-content-swarm
nested-properties
new-array-filters
new-array-filters-tophat
new-tokenizer
no-freeze-static-environment
no-template-mutation-on-render
non-parsing-block
non-parsing-comment
objects-opt
optimize-append-filter
optimize-invoke-filter
order-of-operations
out-of-band-errors
parse-context-new-tokenizer
parse_partials_at_template_parse_time
partial-cache-with-error-mode
pobed2/content-swarm-arrray-filters
pobed2/yard-dump
prevent-scope-squash
prototype-1849
pz-float-var-range
pz-invalid-endraw-tag
pz-strict-parser
pz-test-invalid-float
quirky-lexer-parsing
quirky-raw-tag-parse
ragel
ragel_c
range-optimization
range-to_liquid
raw-post-trim
recursively-parse-brackets
reduce-block-body-nesting
refactor-for-liquid-c-expression
refactor/invalid-encoding-error
register-filter-warn
releasing
remove-extraneous-attributes-link-script
remove-jruby-truffle
remove-lazy-stacks
remove-non-fix-from-changelog
remove-strict2-from-error-message
remove-tag-registry
render-after-prototype
render-expose-for-alias
render-for-context
render-forloop
render-tag
render-with
resource-limits-keys
resource-limits-struct
revert-1667-instrument-string-slice-bug-usage
revert-1823-feature/end-tag
revert-513-docs-update
revert-710-revert-513-docs-update
revert-invalid-comment-body
revert-to-s
rigid-parse
rubocop-bump-1
rubocop-upgrade
ruby-3-ci
score-registers
self-drop-eq
self-drop-renderer-mutation
sfr-verification
shipit-deploy/rubygems
shipit-deploy/rubygems-4-0-stable
shopify_ruby_style
simplify_find_variable
snippets
sort-numeric
source-migrate
spaceless-tag
sr-content-swarm
sr-inline-comment
stack-level-too-deep
static_register_frozen_string
strict2-assign-capture
strict2-include-tablerow
strict2-increment-decrement
strict_parse_variables
strict_parsing_everywhere
string-slice
styling-fixes-1
styling-fixes-2
styling-fixes-3
superfluid
symbol-filter-names
syntax-error-with-filename
tablerow-nil-params
template-factory
test-docs-flow
test-gem-installation
to-raw-value
to-s-fixes-34
tokenizer-next
tokenizer-quoted-strings
tree-optimizer
truffle-native
truncatewords
unfreeze-static
uniq-to-liquid-value
update-liquid-paths
update-loop-named-params
update-rubocop-todo
update-setup-ruby
usage-tracking
usage-update
use-to-liquid-value-with-conditions
v6
var-c-ext
var-c-ext-test
warning-line-numbers
whitespace-stripping-test
write-array-each
#100
#100
#1000
#1001
#1003
#1004
#1004
#1005
#1006
#101
#101
#1010
#1011
#1018
#1018
#1024
#1025
#1026
#1027
#1028
#1028
#103
#103
#1031
#1032
#1033
#1039
#104
#104
#1040
#1041
#1042
#1043
#1044
#1046
#1049
#1049
#1053
#1057
#1059
#106
#106
#1062
#1066
#107
#107
#1070
#1071
#1071
#1072
#1073
#1077
#1078
#1078
#1079
#1079
#108
#108
#1080
#1081
#1084
#1084
#1086
#1088
#1089
#109
#109
#1090
#1091
#1092
#1093
#1094
#1095
#1096
#1097
#1098
#1099
#1103
#1104
#1107
#1109
#111
#111
#1114
#1115
#1116
#1117
#112
#112
#1120
#1121
#1122
#1123
#1124
#1124
#113
#113
#1130
#1131
#1132
#1133
#1135
#1136
#1137
#1138
#1138
#1139
#1140
#1141
#1142
#1143
#1144
#1145
#1146
#1146
#1147
#1149
#115
#115
#1150
#1151
#1154
#1155
#1155
#1157
#1158
#1159
#1159
#1160
#1161
#1162
#1163
#1164
#1165
#1166
#1167
#117
#117
#1170
#1171
#1172
#1174
#1174
#1176
#1176
#1178
#118
#118
#1180
#1181
#1182
#1184
#1185
#1185
#1186
#1187
#1188
#1188
#1189
#1190
#1191
#1193
#1197
#120
#120
#1206
#1207
#1208
#1209
#1211
#1212
#1213
#1215
#1216
#1218
#1219
#1220
#1220
#1222
#1223
#1224
#1224
#1225
#1227
#1239
#1250
#1251
#1252
#1257
#1258
#1266
#1266
#1268
#127
#127
#1272
#1274
#1275
#1276
#128
#128
#1284
#1285
#1286
#1287
#1289
#1290
#1291
#1292
#1294
#1300
#1301
#1302
#1304
#1306
#1307
#1308
#1309
#131
#131
#1310
#1311
#1312
#1313
#1316
#1317
#1318
#132
#132
#1320
#1321
#1322
#1323
#1325
#1328
#1329
#133
#133
#1330
#1331
#1333
#1335
#1336
#1337
#1338
#1339
#1340
#1341
#1343
#1343
#1344
#1345
#1346
#1346
#135
#135
#1350
#1352
#1353
#1353
#1354
#1355
#1356
#1356
#1358
#1359
#1360
#1361
#1362
#1363
#1364
#1365
#1366
#1370
#1371
#1372
#1374
#1375
#1376
#1377
#1378
#1380
#1383
#1384
#1385
#1386
#1387
#139
#139
#1391
#1394
#1398
#140
#140
#1400
#1401
#1402
#1403
#1405
#1406
#1408
#141
#141
#1410
#1411
#1414
#1417
#1419
#1421
#1422
#1424
#1427
#1428
#1431
#1436
#1440
#1441
#1449
#145
#145
#1450
#1452
#1454
#1456
#1457
#1458
#1459
#1467
#1468
#147
#147
#1470
#1471
#1472
#1474
#1476
#1477
#1484
#1484
#1485
#1485
#1498
#1507
#1509
#1518
#152
#152
#1520
#1520
#1521
#1522
#1524
#1525
#1527
#1528
#1528
#1529
#1531
#1532
#1532
#1533
#1534
#1535
#1536
#1537
#1537
#1538
#1540
#1541
#1542
#1543
#1544
#1545
#1546
#1547
#1548
#1549
#1550
#1551
#1552
#1553
#1554
#1556
#1560
#1562
#1568
#1569
#157
#157
#1573
#1576
#1577
#1578
#1579
#158
#158
#1580
#1583
#1584
#1588
#1595
#1596
#1597
#1599
#160
#160
#1600
#1601
#1606
#1607
#1609
#161
#161
#1610
#1611
#1612
#1613
#1613
#1614
#1615
#1616
#1617
#1620
#1622
#1623
#1628
#1629
#1631
#1633
#1634
#1635
#1636
#1637
#1638
#164
#164
#1641
#1642
#1642
#1644
#1645
#1646
#1648
#1651
#1653
#1656
#1658
#1660
#1660
#1661
#1662
#1662
#1663
#1663
#1665
#1667
#1668
#1669
#1669
#1670
#1670
#1671
#1672
#1673
#1674
#1675
#1676
#1677
#168
#168
#1680
#1683
#1684
#1685
#1686
#1687
#1688
#1692
#1695
#170
#170
#1700
#1702
#171
#171
#1712
#1713
#1716
#1717
#172
#172
#1721
#1721
#1722
#1726
#1727
#1728
#1728
#173
#173
#1730
#1731
#1732
#1735
#1736
#1736
#1737
#1739
#174
#174
#1745
#1745
#1746
#1747
#1747
#1748
#1749
#175
#175
#1750
#1755
#176
#176
#1760
#1763
#1764
#1769
#1770
#1773
#1774
#1775
#1776
#1779
#1781
#1783
#1787
#1787
#1788
#1788
#1791
#1792
#1793
#1801
#1801
#1802
#1802
#1805
#1807
#1811
#1813
#1815
#1817
#1818
#1819
#1821
#1823
#1824
#183
#183
#1831
#1832
#1833
#1834
#1835
#1837
#1838
#1839
#1840
#1841
#1843
#1844
#1845
#1846
#1847
#1848
#185
#185
#1858
#1859
#1860
#1863
#1868
#1869
#1870
#1870
#1873
#1874
#1876
#1878
#1879
#1882
#1886
#1887
#1889
#189
#189
#1891
#1892
#1894
#1895
#1896
#1897
#1898
#1899
#190
#190
#1900
#1901
#1901
#1902
#1903
#1904
#1905
#1907
#1908
#1908
#1909
#191
#191
#1910
#1917
#1918
#1919
#192
#192
#1920
#1921
#1921
#1922
#1922
#1923
#1923
#1924
#1925
#1927
#1928
#1929
#1931
#1932
#1933
#1933
#1935
#1936
#1937
#1937
#194
#194
#1940
#1942
#1943
#1944
#1945
#1945
#1946
#1947
#1947
#1948
#1949
#1949
#1951
#1952
#1953
#1954
#1955
#1956
#1956
#1957
#1957
#1958
#196
#196
#1960
#1963
#1964
#1965
#1967
#1968
#197
#197
#1973
#1974
#1974
#1975
#1975
#1979
#198
#198
#1980
#1981
#1983
#1984
#1987
#1989
#199
#199
#1991
#1992
#1992
#1993
#1993
#1994
#1995
#200
#200
#2001
#2003
#2003
#2004
#2005
#2006
#2007
#201
#201
#2010
#2011
#2012
#2013
#2016
#2017
#2017
#2020
#2020
#2021
#2021
#2022
#2023
#2024
#2026
#2027
#2028
#203
#203
#2030
#2031
#2031
#2032
#2032
#2034
#2035
#2036
#2037
#2038
#2039
#2044
#2045
#2046
#2047
#2048
#205
#205
#2050
#2051
#2054
#2056
#2056
#2057
#2058
#2059
#2060
#2062
#2063
#2063
#2064
#2065
#2066
#2067
#2068
#2069
#2069
#2070
#2070
#2071
#2071
#2072
#2073
#2073
#2074
#2075
#2077
#2078
#2079
#208
#208
#2080
#2081
#2081
#2082
#2083
#2083
#2084
#2085
#2087
#2088
#2089
#209
#209
#2090
#2090
#2091
#2092
#2093
#2094
#2095
#2095
#2098
#2099
#2099
#210
#210
#2100
#2100
#2102
#2102
#2103
#2104
#2104
#2105
#2105
#2106
#2108
#2108
#2111
#2111
#2112
#2112
#2113
#2113
#2114
#2114
#2116
#2116
#214
#214
#215
#215
#217
#217
#218
#218
#219
#219
#220
#220
#221
#221
#226
#226
#230
#230
#232
#232
#233
#233
#234
#234
#235
#235
#238
#238
#239
#239
#240
#241
#241
#242
#242
#243
#243
#244
#244
#249
#249
#250
#251
#251
#253
#253
#254
#254
#255
#255
#256
#256
#257
#257
#259
#259
#261
#261
#264
#264
#266
#266
#267
#267
#268
#268
#269
#269
#271
#271
#272
#272
#273
#274
#276
#277
#277
#28
#28
#282
#284
#287
#291
#291
#295
#296
#297
#297
#298
#299
#30
#30
#300
#303
#304
#304
#306
#309
#310
#312
#317
#318
#319
#319
#320
#321
#322
#323
#324
#325
#327
#327
#328
#328
#329
#33
#333
#335
#336
#336
#337
#338
#34
#34
#341
#346
#347
#349
#350
#350
#351
#352
#352
#353
#353
#354
#355
#355
#356
#356
#358
#358
#359
#359
#36
#36
#361
#361
#363
#364
#365
#365
#368
#369
#369
#371
#372
#372
#374
#375
#376
#377
#377
#378
#379
#379
#380
#381
#382
#382
#383
#384
#385
#386
#389
#39
#390
#390
#391
#392
#392
#393
#395
#397
#398
#40
#400
#401
#402
#403
#403
#406
#407
#41
#41
#410
#410
#411
#412
#413
#414
#415
#415
#416
#417
#419
#420
#420
#421
#423
#425
#426
#426
#429
#429
#43
#43
#435
#435
#437
#437
#439
#44
#44
#440
#441
#442
#442
#443
#444
#445
#446
#448
#449
#45
#45
#450
#452
#452
#453
#454
#454
#455
#456
#456
#458
#459
#46
#46
#462
#463
#465
#466
#469
#471
#471
#472
#473
#473
#474
#474
#475
#475
#476
#478
#479
#48
#480
#481
#482
#483
#485
#486
#489
#49
#49
#491
#492
#499
#503
#504
#506
#51
#51
#512
#513
#519
#520
#53
#53
#537
#539
#54
#54
#540
#541
#545
#55
#55
#550
#551
#553
#554
#555
#556
#556
#557
#557
#558
#558
#559
#56
#56
#561
#561
#562
#563
#564
#565
#566
#566
#568
#570
#572
#572
#573
#574
#575
#576
#577
#578
#579
#58
#58
#581
#582
#583
#584
#585
#585
#586
#587
#587
#588
#588
#590
#592
#593
#594
#595
#596
#599
#60
#60
#600
#601
#602
#602
#603
#604
#605
#607
#607
#608
#61
#61
#610
#611
#612
#613
#614
#616
#617
#618
#62
#62
#620
#621
#621
#623
#624
#624
#626
#627
#627
#631
#632
#633
#636
#636
#637
#644
#644
#645
#645
#65
#65
#652
#653
#655
#658
#66
#66
#661
#662
#665
#667
#672
#673
#673
#679
#68
#68
#680
#681
#682
#683
#687
#688
#69
#69
#691
#693
#693
#694
#694
#695
#696
#702
#702
#703
#703
#705
#707
#710
#711
#712
#713
#714
#716
#717
#718
#719
#719
#72
#72
#723
#725
#726
#726
#729
#731
#732
#733
#734
#735
#736
#737
#737
#738
#739
#74
#74
#741
#742
#743
#744
#746
#746
#748
#750
#750
#751
#757
#76
#76
#761
#764
#765
#766
#769
#77
#77
#772
#772
#773
#779
#779
#78
#78
#781
#785
#786
#787
#787
#789
#793
#793
#795
#797
#798
#799
#80
#80
#803
#803
#805
#809
#81
#81
#810
#812
#813
#815
#817
#817
#820
#826
#829
#832
#834
#834
#835
#836
#837
#839
#84
#84
#840
#840
#845
#846
#849
#85
#85
#850
#851
#854
#855
#856
#857
#860
#864
#867
#867
#869
#869
#87
#87
#872
#874
#877
#877
#878
#878
#879
#88
#88
#888
#888
#890
#890
#891
#892
#894
#895
#896
#898
#90
#90
#901
#906
#909
#914
#914
#915
#915
#916
#916
#920
#921
#924
#929
#929
#93
#93
#930
#932
#937
#939
#939
#94
#94
#940
#941
#942
#943
#944
#952
#954
#957
#958
#959
#959
#960
#960
#961
#961
#962
#963
#966
#97
#97
#972
#977
#977
#981
#988
#989
#989
#990
#990
#991
#992
v2.0.0
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.2.0
v2.2.1
v2.2.2
v2.3.0
v2.4.0
v2.5.0
v2.5.1
v2.5.2
v2.5.3
v2.5.4
v2.5.5
v2.6.0
v2.6.0.rc1
v2.6.1
v2.6.2
v2.6.3
v3.0.0
v3.0.0.rc1
v3.0.1
v3.0.2
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v4.0.0
v4.0.0.rc1
v4.0.0.rc2
v4.0.0.rc3
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v5.0.0
v5.0.1
v5.1.0
v5.10.0
v5.11.0
v5.12.0
v5.13.0
v5.2.0
v5.3.0
v5.4.0
v5.5.0
v5.5.1
v5.6.0
v5.6.0.rc1
v5.6.0.rc2
v5.6.0.rc3
v5.6.1
v5.6.2
v5.6.3
v5.6.4
v5.7.0
v5.7.1
v5.7.2
v5.7.3
v5.8.0
v5.8.1
v5.8.2
v5.8.3
v5.8.4
v5.8.5
v5.8.6
v5.8.7
v5.9.0
-
34971c0314
replace WhitespaceOrNothing regex with byte-level blank_string? check

Tobi LutkeandChris Pak
2026-03-11 08:34:15 -04:00 -
f24ca042a2
avoid array allocation in parse_tag_token: return tag_name, store markup/newlines as class ivars

Tobi LutkeandChris Pak
2026-03-11 08:33:19 -04:00 -
4ea4350775
clean up filter parsing: Lexer fallback for args, no-arg fast scan stays

Tobi LutkeandChris Pak
2026-03-11 08:31:30 -04:00 -
aedd2dded6
autoresearch.md: add strategic direction toward single-pass scanner architecture

Tobi LutkeandChris Pak
2026-03-11 08:29:12 -04:00 -
e1f363c72c
add security constraint to autoresearch.md, fix strict mode gate

Tobi LutkeandChris Pak
2026-03-11 08:26:40 -04:00 -
808dad6fab
split filter parsing: scan no-arg filters directly, only invoke Lexer when args present

Tobi LutkeandChris Pak
2026-03-11 08:26:04 -04:00 -
c82b6e58ef
autoresearch: add autoresearch.md/sh, increase benchmark warmup to 20 iterations

Tobi LutkeandChris Pak
2026-03-11 08:23:51 -04:00 -
b994f22983
extend fast-path to handle quoted string literal variables (262 more fast-pathed)

Tobi LutkeandChris Pak
2026-03-11 08:20:39 -04:00 -
62877e666c
skip filter arg splat for no-arg filters, trim render loop comments

Tobi LutkeandChris Pak
2026-03-11 08:06:23 -04:00 -
48a2fae5f6
hoist write score check out of render loop: skip increment_write_score when no limits active

Tobi LutkeandChris Pak
2026-03-11 08:04:40 -04:00 -
27fcb3a4c9
use frozen EMPTY_ARRAY for disabled_tags in Variable

Tobi LutkeandChris Pak
2026-03-11 07:47:51 -04:00 -
6e9782c5cc
return [tag_name, markup, newlines] from parse_tag_token: avoid 2 whitespace string allocs

Tobi LutkeandChris Pak
2026-03-11 07:45:15 -04:00 -
da57336be9
use getbyte dispatch instead of start_with? in parse_for_document

Tobi LutkeandChris Pak
2026-03-11 07:44:12 -04:00 -
28f29433e4
avoid empty array allocation in evaluate_filter_expressions for no-arg filters

Tobi LutkeandChris Pak
2026-03-11 07:43:09 -04:00 -
4ff5523713
replace For tag Syntax regex with manual byte-level parser

Tobi LutkeandChris Pak
2026-03-11 07:39:36 -04:00 -
f388c873de
expose expression_cache/string_scanner via attr_reader, skip regex in filter args without colon

Tobi LutkeandChris Pak
2026-03-11 07:38:16 -04:00 -
543c1e1fe7
unified fast-path Variable parsing: handle both plain lookups and filter chains without full Lexer pass for name

Tobi LutkeandChris Pak
2026-03-11 07:36:29 -04:00 -
885c8df159
fast-path render for filter-less variables: skip render method overhead

Tobi LutkeandChris Pak
2026-03-11 07:33:18 -04:00 -
8f67d81023
skip TagAttributes scan in for tag when no colon present

Tobi LutkeandChris Pak
2026-03-11 07:32:39 -04:00 -
01f33e96e8
fast-path simple if conditions: skip ExpressionsAndOperators scan for single conditions

Tobi LutkeandChris Pak
2026-03-11 07:31:26 -04:00 -
9e6f93a494
replace SIMPLE_VARIABLE regex with byte-level scanner to avoid MatchData

Tobi LutkeandChris Pak
2026-03-11 07:30:34 -04:00 -
dc6e9799e9
fast-path simple variable parsing: skip Lexer/Parser for plain dot-separated lookups

Tobi LutkeandChris Pak
2026-03-11 07:29:47 -04:00 -
98e29aa4a7
use frozen EMPTY_ARRAY for Variable filters when no filters present

Tobi LutkeandChris Pak
2026-03-11 07:28:04 -04:00 -
a404cf10d0
fast-path variable_lookups: skip mutable string alloc when no dot/bracket follows

Tobi LutkeandChris Pak
2026-03-11 07:26:40 -04:00 -
e73b41f3b6
fast-path String in render_obj_to_output, avoid Utils.to_s dispatch for common case

Tobi LutkeandChris Pak
2026-03-11 07:24:30 -04:00 -
9d9d094e20
short-circuit parse_number with first-byte check before regex

Tobi LutkeandChris Pak
2026-03-11 07:23:41 -04:00 -
4c96b5f682
avoid unnecessary strip allocation in Expression.parse, use byteslice for string literals

Tobi LutkeandChris Pak
2026-03-11 07:23:08 -04:00 -
0b19c0ce44
use equal? for frozen array comparison in Lexer, skip whitespace with \s+

Tobi LutkeandChris Pak
2026-03-11 07:21:19 -04:00 -
a43d970473
use getbyte instead of string indexing in whitespace_handler and create_variable

Tobi LutkeandChris Pak
2026-03-11 07:19:26 -04:00 -
3751f95da2
add auto/bench.sh: unit tests + liquid-spec + perf benchmark

Tobi LutkeandChris Pak
2026-03-11 07:17:01 -04:00 -
6ffd0e2339
replace VariableParser regex scan with manual byte parser in VariableLookup

Tobi LutkeandChris Pak
2026-03-11 07:14:14 -04:00 -
dc7dda2253
replace FullToken regex with manual byte parsing in parse_for_document

Tobi LutkeandChris Pak
2026-03-11 07:12:38 -04:00 -
2479b26f5c
add quick benchmark script for autoresearch

Tobi LutkeandChris Pak
2026-03-11 07:10:28 -04:00 -
c99036046e
Add strict2_parse to increment and decrement tags
strict2-increment-decrement

Alok SwamyandClaude Opus 4.6
2026-03-26 15:50:32 -04:00 -
a9c85622dd
Merge pull request #2066 from eregon/skip-slow-test

Kevin MenardandGitHub
2026-03-26 02:14:10 -04:00 -
9f4d7e78b8
Skip slow test raising many exceptions on non-CRuby
Benoit Daloze
2026-03-25 17:12:47 +01:00 -
0d5c15a03e
Add strict2_parse to assign and capture tags
strict2-assign-capture

Alok SwamyandClaude Opus 4.6
2026-03-24 18:19:22 -04:00 -
fd68d076dd
Merge pull request #2038 from eregon/truffleruby-ci

Kevin MenardandGitHub
2026-03-25 11:53:01 -04:00 -
96aa47d13f
Add TruffleRuby in CI
Benoit Daloze
2026-01-16 00:24:42 +01:00 -
ad70c5c459
Improve no Symbol leak tests to be more reliable
Benoit Daloze
2026-03-25 16:44:38 +01:00 -
d824de701c
Adapt slice filter to work on non-64 bit platforms
Benoit Daloze
2026-01-15 23:57:25 +01:00 -
346166b600
Add for_loop? to Include tag for AST-based keyword detection
strict2-include-tablerow

Alok SwamyandClaude Opus 4.6
2026-03-23 12:15:03 -04:00 -
532b439063
Reject bare-bracket syntax in strict2 and introduce
selfkeyword
Alok SwamyandClaude Opus 4.6
2026-03-18 12:15:37 -04:00 -
dd37353cca
Merge pull request #2062 from Shopify/update-setup-ruby

Alok SwamyandGitHub
2026-03-19 15:29:47 -04:00 -
e80f775f89
Update ruby/setup-ruby from v1.273.0 to v1.295.0
update-setup-ruby

Alok SwamyandClaude Opus 4.6
2026-03-19 15:22:56 -04:00 -
59d8d0d22d
Add cumulative resource score tracking across partial renders (#2058)
v5.12.0

Ian Ker-SeymerandGitHub
2026-03-18 11:54:46 -04:00 -
3182b7c1b3
update autoresearch experiment log
autoresearch/liquid-perf-2026-03-11
Tobi Lutke
2026-03-12 17:38:05 -04:00 -
b195d09212
Replace @blocks.each with while loop in If render — avoids block proc allocation per render\n\nResult: {"status":"keep","combined_µs":3496,"parse_µs":2356,"render_µs":1140,"allocations":24530}
Tobi Lutke
2026-03-12 17:31:41 -04:00 -
db348e0dac
Inline to_liquid_value in If render — avoids one method dispatch per condition evaluation\n\nResult: {"status":"keep","combined_µs":3459,"parse_µs":2318,"render_µs":1141,"allocations":24647}
Tobi Lutke
2026-03-12 17:31:20 -04:00 -
99454a9be2
Replace simple_lookup? byte scan with match? regex — 8x faster per call, cleaner code\n\nResult: {"status":"keep","combined_µs":3489,"parse_µs":2353,"render_µs":1136,"allocations":24647}
Tobi Lutke
2026-03-12 17:27:17 -04:00 -
ca327b01b1
Condition#evaluate: skip loop block for simple conditions (no child_relation) — saves 235 allocs\n\nResult: {"status":"keep","combined_µs":3445,"parse_µs":2284,"render_µs":1161,"allocations":24647}
Tobi Lutke
2026-03-12 17:24:51 -04:00 -
ae9a2e26b0
Clean confirmation run: 3,314µs (-55% from main), stable\n\nResult: {"status":"keep","combined_µs":3314,"parse_µs":2203,"render_µs":1111,"allocations":24882}
Tobi Lutke
2026-03-12 17:22:24 -04:00 -
46927b9e90
update autoresearch docs with current progress
Tobi Lutke
2026-03-12 17:21:28 -04:00 -
f6baeaed1e
parse_tag_token without StringScanner: pure byte ops avoid reset(token) overhead, -12% combined\n\nResult: {"status":"keep","combined_µs":3350,"parse_µs":2212,"render_µs":1138,"allocations":24882}
Tobi Lutke
2026-03-12 17:17:10 -04:00 -
b37fa98c91
Clean up tokenizer: remove unused StringScanner setup and regex constants\n\nResult: {"status":"keep","combined_µs":3490,"parse_µs":2331,"render_µs":1159,"allocations":24882}
Tobi Lutke
2026-03-12 17:12:08 -04:00 -
e25f2f1d52
Confirmation run: byteindex tokenizer consistently 3,400-3,600µs\n\nResult: {"status":"keep","combined_µs":3464,"parse_µs":2335,"render_µs":1129,"allocations":24882}
Tobi Lutke
2026-03-12 17:11:29 -04:00 -
b7ae55f7a9
Replace StringScanner tokenizer with String#byteindex — 12% faster parse, no regex overhead for delimiter finding\n\nResult: {"status":"keep","combined_µs":3556,"parse_µs":2388,"render_µs":1168,"allocations":24882}
Tobi Lutke
2026-03-12 17:11:15 -04:00 -
c09e722f9b
Baseline: 3,818µs combined, 24,881 allocs\n\nResult: {"status":"keep","combined_µs":3818,"parse_µs":2722,"render_µs":1096,"allocations":24881}
Tobi Lutke
2026-03-12 16:48:10 -04:00 -
8f2f0ee035
Skip context.evaluate for String lookup keys in VariableLookup — avoids respond_to? dispatch\n\nResult: {"status":"keep","combined_µs":4103,"parse_µs":2881,"render_µs":1222,"allocations":24881}
Tobi Lutke
2026-03-11 10:52:07 -04:00 -
38d8055c3b
update autoresearch.md with current progress
Tobi Lutke
2026-03-11 10:51:39 -04:00 -
228ecdb6a2
Cache no-arg filter tuples [name, EMPTY_ARRAY] — reuse frozen tuples across templates\n\nResult: {"status":"keep","combined_µs":4147,"parse_µs":2992,"render_µs":1155,"allocations":24881}
Tobi Lutke
2026-03-11 10:49:44 -04:00 -
76afdf154f
Replace manual blank_string? with regex match — cleaner code\n\nResult: {"status":"keep","combined_µs":4196,"parse_µs":3042,"render_µs":1154,"allocations":25535}
Tobi Lutke
2026-03-11 10:44:43 -04:00 -
22b5ff1587
Skip to_liquid_value for String/Integer keys in VariableLookup — avoids respond_to? dispatch\n\nResult: {"status":"keep","combined_µs":4131,"parse_µs":2893,"render_µs":1238,"allocations":25535}
Tobi Lutke
2026-03-11 10:44:05 -04:00 -
1a019151eb
Minor cleanup: optimize expect_id with while loop and early return\n\nResult: {"status":"keep","combined_µs":4184,"parse_µs":2921,"render_µs":1263,"allocations":25535}
Tobi Lutke
2026-03-11 10:43:20 -04:00 -
71e22e6a84
Replace manual scan_dotted_id with regex\n\nResult: {"status":"keep","combined_µs":4121,"parse_µs":2812,"render_µs":1309,"allocations":25535}
Tobi Lutke
2026-03-11 10:42:07 -04:00 -
fd4a7af290
Replace manual scan_quoted_string with regex capture groups\n\nResult: {"status":"keep","combined_µs":4102,"parse_µs":2849,"render_µs":1253,"allocations":25535}
Tobi Lutke
2026-03-11 10:41:44 -04:00 -
e15b163f1a
Replace manual rest_blank? with regex skip + eos? check\n\nResult: {"status":"keep","combined_µs":4047,"parse_µs":2795,"render_µs":1252,"allocations":25535}
Tobi Lutke
2026-03-11 10:41:20 -04:00 -
11c22eb75d
Replace manual scan_comparison_op with regex — cleaner and avoids byteslice allocation for op strings\n\nResult: {"status":"keep","combined_µs":4007,"parse_µs":2808,"render_µs":1199,"allocations":25535}
Tobi Lutke
2026-03-11 10:40:47 -04:00 -
f8b08b5b64
Replace manual scan_fragment/scan_quoted_string_raw/skip_fragment with regex — cleaner, same/better perf\n\nResult: {"status":"keep","combined_µs":4132,"parse_µs":2890,"render_µs":1242,"allocations":25535}
Tobi Lutke
2026-03-11 10:40:10 -04:00 -
6db20e908b
Replace manual byte-level scan_number with regex — cleaner code, same performance\n\nResult: {"status":"keep","combined_µs":4184,"parse_µs":2931,"render_µs":1253,"allocations":25535}
Tobi Lutke
2026-03-11 10:39:14 -04:00 -
ecc23184ce
Replace manual byte-level scan_id/skip_id with regex — C-level StringScanner.scan is faster than Ruby-level byte scanning\n\nResult: {"status":"keep","combined_µs":4185,"parse_µs":2943,"render_µs":1242,"allocations":25535}
Tobi Lutke
2026-03-11 10:37:09 -04:00 -
4df608a12f
Fast-path Hash lookups in VariableLookup#evaluate — skip respond_to? checks for Hash objects\n\nResult: {"status":"keep","combined_µs":4110,"parse_µs":2922,"render_µs":1188,"allocations":25535}
Tobi Lutke
2026-03-11 10:35:29 -04:00 -
b058f79cbf
Skip to_liquid/context= for primitives in VariableLookup#evaluate\n\nResult: {"status":"keep","combined_µs":4334,"parse_µs":3062,"render_µs":1272,"allocations":25535}
Tobi Lutke
2026-03-11 10:32:37 -04:00 -
94562eae32
Fast return for primitive types in find_variable — skip to_liquid and respond_to?(:context=)\n\nResult: {"status":"keep","combined_µs":4225,"parse_µs":3009,"render_µs":1216,"allocations":25535}
Tobi Lutke
2026-03-11 10:31:59 -04:00 -
0e84955531
Skip find_index when only one scope in find_variable — go straight to environments\n\nResult: {"status":"keep","combined_µs":4323,"parse_µs":3055,"render_µs":1268,"allocations":25535}
Tobi Lutke
2026-03-11 10:31:35 -04:00 -
c4593ceeb6
Skip respond_to?(:context=) for primitive types in find_variable — avoids method lookup overhead\n\nResult: {"status":"keep","combined_µs":4207,"parse_µs":2943,"render_µs":1264,"allocations":25535}
Tobi Lutke
2026-03-11 10:30:41 -04:00 -
9e2937945b
Use EMPTY_ARRAY for empty static_environments in Context — avoids 60 array allocs per render cycle\n\nResult: {"status":"keep","combined_µs":4262,"parse_µs":3079,"render_µs":1183,"allocations":25535}
Tobi Lutke
2026-03-11 10:26:30 -04:00 -
cd308b8b01
Lazy @changes hash in Registers — only allocate when a register is actually written\n\nResult: {"status":"keep","combined_µs":4287,"parse_µs":3059,"render_µs":1228,"allocations":25595}
Tobi Lutke
2026-03-11 10:25:29 -04:00 -
e3fc735de7
Cache block_delimiter strings per tag name — avoids repeated string interpolation\n\nResult: {"status":"keep","combined_µs":4372,"parse_µs":3127,"render_µs":1245,"allocations":25605}
Tobi Lutke
2026-03-11 10:23:56 -04:00 -
9af3ba3aa7
Lazy Context init: defer StringScanner and @interrupts array allocation until needed\n\nResult: {"status":"keep","combined_µs":4299,"parse_µs":3057,"render_µs":1242,"allocations":26015}
Tobi Lutke
2026-03-11 10:22:29 -04:00 -
99e55c2eb5
Cache small integer to_s (0-999): avoids 267 Integer#to_s allocations per render cycle\n\nResult: {"status":"keep","combined_µs":4158,"parse_µs":2920,"render_µs":1238,"allocations":26128}
Tobi Lutke
2026-03-11 10:20:45 -04:00 -
b48615f4a7
Replace split+join in truncatewords with manual word scan — avoids array + string allocations\n\nResult: {"status":"keep","combined_µs":4280,"parse_µs":3009,"render_µs":1271,"allocations":26395}
Tobi Lutke
2026-03-11 10:20:11 -04:00 -
6723d4fa15
Extend fast-path filter parsing to handle comma-separated multi-arg filters (e.g. pluralize: 'item', 'items')\n\nResult: {"status":"keep","combined_µs":4266,"parse_µs":3032,"render_µs":1234,"allocations":26480}
Tobi Lutke
2026-03-11 10:16:39 -04:00 -
c252d50aa0
Avoid expr_markup byteslice when name is entire markup string (no whitespace, no filters)\n\nResult: {"status":"keep","combined_µs":4277,"parse_µs":3057,"render_µs":1220,"allocations":27026}
Tobi Lutke
2026-03-11 10:12:26 -04:00 -
a249010cef
Fast-path single-arg filter parsing: handle quoted strings, numbers, identifiers without Lexer/Parser\n\nResult: {"status":"keep","combined_µs":4427,"parse_µs":3181,"render_µs":1246,"allocations":27235}
Tobi Lutke
2026-03-11 10:09:59 -04:00 -
18a72db820
fix rubocop offenses: autocorrect style/layout violations
Tobi Lutke
2026-03-11 09:53:44 -04:00 -
1f59732aee
update autoresearch.md with full progress log
Tobi Lutke
2026-03-11 09:24:26 -04:00 -
cdc34388e3
For tag: migrate lax_parse to Cursor with zero-alloc skip_id/expect_id
Tobi Lutke
2026-03-11 09:19:59 -04:00 -
bf1f5cb62d
Cursor: add skip_id, expect_id, skip_fragment for zero-alloc scanning
Tobi Lutke
2026-03-11 09:19:27 -04:00 -
0596591fdf
REVERTED: Cursor for For tag adds 148 allocs from scan_id/scan_fragment string creation\n\nResult: {"status":"discard","combined_µs":5049,"parse_us":3765,"render_us":1284,"allocations":29793,"parse_µs":3765,"render_µs":1284}
Tobi Lutke
2026-03-11 09:18:35 -04:00 -
dd4a100346
remove dead BlockBody.parse_tag_token and If SIMPLE_CONDITION - now in Cursor
Tobi Lutke
2026-03-11 09:17:29 -04:00 -
9de1527099
introduce Cursor class: centralize byte-level scanning for tag/variable/condition parsing
Tobi Lutke
2026-03-11 09:15:21 -04:00 -
091534f981
add parse_simple to skip simple_lookup? check when caller validates
Tobi Lutke
2026-03-11 09:10:05 -04:00 -
0b07487e0c
fast-path VariableLookup init: skip scan_variable for simple identifier chains
Tobi Lutke
2026-03-11 09:08:44 -04:00 -
3799d4c488
avoid allocating seen={} hash in Utils.to_s/inspect when not needed
Tobi Lutke
2026-03-11 09:02:42 -04:00 -
c4186a16fc
update autoresearch.sh: 3-run best-of, skip liquid-spec for speed
Tobi Lutke
2026-03-11 09:01:57 -04:00 -
b90d7f0a08
optimize Context init: avoid unnecessary array wrapping for environments
Tobi Lutke
2026-03-11 08:56:45 -04:00 -
405e3dca48
use frozen EMPTY_ARRAY/EMPTY_HASH for Context @filters/@disabled_tags
Tobi Lutke
2026-03-11 08:55:55 -04:00 -
69430e9a88
replace INTEGER_REGEX/FLOAT_REGEX with byte-level parse_number
Tobi Lutke
2026-03-11 08:54:31 -04:00 -
79840b1eaa
replace SIMPLE_CONDITION regex with manual byte parser in if/elsif lax_parse
Tobi Lutke
2026-03-11 08:52:49 -04:00