Ghouse Mohamed
7e99432bd1
Bumped actions/checkout to v3
2022-04-04 03:57:24 +05:30
Dylan Thacker-Smith and GitHub
6e07f73f68
History.md: Remove non-fix from fixes section of recent release. ( #1556 )
2022-03-23 11:59:50 -04:00
Marc-André Cournoyer and GitHub
f64af57b7b
Merge pull request #1540 from Watson1978/remove-redundant-regexp
...
Remove redundant regexp
2022-03-22 14:52:49 -04:00
Marc-André Cournoyer and GitHub
c60c3c7802
Merge pull request #1554 from Shopify/bump-5.3.0
...
Update changelog & bump version for 5.3.0 release
v5.3.0
2022-03-22 13:30:28 -04:00
Marc-André Cournoyer
11625b1bc9
Update release date
2022-03-22 13:24:02 -04:00
Marc-André Cournoyer
ec6fb4d5fa
Update changelog & bump version for 5.3.0 release
2022-03-17 15:39:04 -04:00
Watson
fad58ef436
Use String#match? instead of String#=~ to reduce allocation for backreferecne
...
## Test code
```ruby
require 'benchmark/ips'
WhitespaceOrNothing = /\A\s*\z/
token = " " * 20
token =~ WhitespaceOrNothing
Benchmark.ips do |x|
x.report("=~") {
token =~ WhitespaceOrNothing
}
x.report("match?") {
token.match?(WhitespaceOrNothing)
}
x.compare!
end
```
## Result
```
Warming up --------------------------------------
=~ 271.356k i/100ms
match? 579.655k i/100ms
Calculating -------------------------------------
=~ 2.717M (± 0.4%) i/s - 13.839M in 5.092947s
match? 5.695M (± 1.6%) i/s - 28.983M in 5.090640s
Comparison:
match?: 5694747.3 i/s
=~: 2717370.9 i/s - 2.10x (± 0.00) slower
```
2022-03-16 12:44:27 +09:00
Watson
22568080b1
Revert "Use strip & empty? to detect Whitespaces"
...
This reverts commit dd7ed00ec4 .
2022-03-16 12:33:45 +09:00
Watson
dd7ed00ec4
Use strip & empty? to detect Whitespaces
...
## Test code
```ruby
require 'benchmark/ips'
WhitespaceOrNothing = /\A\s*\z/
token = " " * 20
Benchmark.ips do |x|
x.report("WhitespaceOrNothing") {
token =~ WhitespaceOrNothing
}
x.report("strip & empty?") {
token.strip.empty?
}
x.compare!
end
```
## Result
```
Warming up --------------------------------------
WhitespaceOrNothing 266.391k i/100ms
strip & empty? 1.044M i/100ms
Calculating -------------------------------------
WhitespaceOrNothing 2.705M (± 0.4%) i/s - 13.586M in 5.023453s
strip & empty? 10.400M (± 1.1%) i/s - 52.182M in 5.017990s
Comparison:
strip & empty?: 10400286.2 i/s
WhitespaceOrNothing: 2704552.3 i/s - 3.85x (± 0.00) slower
```
2022-03-12 19:24:56 +09:00
Watson
1667c1180e
Use start_with? and end_with? to detect SQUARE_BRAKET
...
## Test code
```ruby
require 'benchmark/ips'
SQUARE_BRACKETED = /\A\[(.*)\]\z/m
markup = "[product.catchall]"
Benchmark.ips do |x|
x.report("SQUARE_BRACKETED") {
if markup =~ SQUARE_BRACKETED
Regexp.last_match(1)
end
}
x.report("start/end_with?") {
if markup&.start_with?('[') && markup&.end_with?(']')
markup[1..-2]
end
}
x.compare!
end
```
## Result
```
Warming up --------------------------------------
SQUARE_BRACKETED 261.300k i/100ms
start/end_with? 548.813k i/100ms
Calculating -------------------------------------
SQUARE_BRACKETED 2.632M (± 0.6%) i/s - 13.326M in 5.064085s
start/end_with? 5.471M (± 0.5%) i/s - 27.441M in 5.015770s
Comparison:
start/end_with?: 5470994.1 i/s
SQUARE_BRACKETED: 2631642.3 i/s - 2.08x (± 0.00) slower
```
2022-03-12 18:14:16 +09:00
Thierry Joyal and GitHub
7357dcf185
Merge pull request #1536 from Shopify/flaky-profiler-test-v2
...
Add artificial execution time in profiler tests
2022-03-07 10:06:13 -05:00
Thierry Joyal and GitHub
68c3827ef2
Merge pull request #1525 from Shopify/standardfilter/fix-missing-context-on-iterations
...
[StandardFilter] Fix missing @context on iterations
2022-03-07 09:19:18 -05:00
Thierry Joyal
4af38bc549
[StandardFilter] Fix missing @context on iterations
2022-03-07 09:17:07 -05:00
Thierry Joyal
df241abf70
Add artificial execution time in profiler tests
2022-03-07 08:50:03 -05:00
10f8337209
Test Ruby 3.1 in CI ( #1533 )
...
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2022-03-04 13:23:04 -05:00
Thierry Joyal and GitHub
5ed0410a8b
Merge pull request #1534 from Shopify/context-test-cleanup
...
Context test cleanup
2022-03-04 11:31:00 -05:00
Thierry Joyal
0f5220c391
ContextTest: Classes to use appropriate ancestor
2022-03-04 09:14:57 -05:00
Thierry Joyal
7a23f46fab
ContextTest: Cleanup global variable assignments
2022-03-04 09:10:38 -05:00
Peter Zhu and GitHub
3f7edf00b9
Merge pull request #1531 from Shopify/pz-array-fetch-warning
...
Fix warning about block and default value
2022-03-02 16:25:23 -05:00
Thierry Joyal and GitHub
b4a2a79e26
Merge pull request #1527 from Shopify/condition/receive-mandatory-context-argument
...
Condition#evaluate to receive mandatory context argument
2022-03-02 15:04:24 -05:00
Thierry Joyal
1d2bee1f60
Condition#evaluate to receive mandatory context argument
2022-03-02 14:35:31 -05:00
Peter Zhu
01e6eec97a
Fix warning about block and default value
...
Ruby's Array#fetch accepts either a default value or a block, but not
both. If both are passed in, then it uses the block and outputs this
warning:
```
lib/liquid/static_registers.rb:34: warning: block supersedes default value argument
```
2022-03-02 14:33:12 -05:00
Jean Boussier
fbdab19358
We're in 2022...
2022-03-02 18:27:25 +01:00
Thierry Joyal and GitHub
ce85ac5d3d
Merge pull request #1529 from Shopify/tests/standard-filters-with-context
...
StandardFiltersTest: Initialize following production code paths with context
2022-03-02 08:44:16 -05:00
Thierry Joyal
c0ffee16a3
StandardFiltersTest: Initialize following production code paths with context
2022-03-01 16:01:00 +00:00
Jean Boussier
a7eb33fa39
Release 5.2.0
v5.2.0
2022-03-01 16:18:49 +01:00
Jean byroot Boussier and GitHub
1a85e98793
Merge pull request #1524 from Shopify/global-constant-cache
...
Eagerly cache global filters
2022-03-01 16:14:31 +01:00
Jean Boussier
c588337aac
Eagerly cache global filters
...
Including a module can cause Ruby's global constant cache to be busted
if the included module contain constants. So that's something you don't
want to happen at "runtime", otherwise it will severely degrade performance
and if you are using YJIT or MJIT most of the compiled code will be invalidated.
To limit the impact of this, we can pre-include the global filters,
as they're generally registered during boot, that limits the problem
to non-global filters.
2022-03-01 13:40:40 +01:00
Dylan Thacker-Smith and GitHub
97f7922457
Add missing changelog entry for PR #1518 ( #1521 )
2022-02-24 14:46:26 -05:00
0d83e64cfe
Add replace_last and remove_last filters ( #1422 )
...
Co-authored-by: ADTC <[email protected] >
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2022-02-24 14:02:15 -05:00
Dylan Thacker-Smith and GitHub
0d5e01ae98
Fix some internal errors in filters from invalid input. ( #1476 )
...
These fixes came from improving the corresponding test, so these might not
actually be causing problems in practice.
2022-02-24 09:17:37 -05:00
Charles-Philippe Clermont and GitHub
15eaa49e48
Merge pull request #1518 from Shopify/fix/kwarg-key-name-liquid-c-inconsistency
...
Fix kwarg parsing inconsistency with Liquid::C
2022-02-14 13:22:12 -05:00
Tobias Lütke and GitHub
91c54c579d
Merge pull request #1477 from Watson1978/performance
...
Increase parsing performance
2022-02-14 12:25:19 -05:00
Charles-P. Clermont
1310c4978d
Fix kwarg parsing inconsistency with Liquid::C
...
Liquid::C parses liquid filter arguments with dashes in them, Liquid does not.
For tags that accept kwargs and dumps them on the HTML tag, this is an important feature.
e.g. {{ ... | image_tag: loading: 'lazy', data-something: 'value!' }}
Without this change, Liquid would incorrectly parse the
`data-something` kwarg as a single argument and would skip over the
invalid characters.
See https://github.com/Shopify/theme-check/issues/539 for more context
2022-02-11 15:10:07 -05:00
shainaraskas and GitHub
3de1db3c3a
Merge pull request #1509 from Shopify/1508-shopify-docs-link
...
Fix Shopify documentation link
2022-01-20 12:06:16 -05:00
Shaina Raskas
03522caaf8
fix Shopify documentation link
2022-01-20 09:40:48 -05:00
Shaina Raskas
7acea2a9c9
Revert "fix Shopify documentation link"
...
This reverts commit d8ef698539 .
2022-01-20 09:37:26 -05:00
Shaina Raskas
d8ef698539
fix Shopify documentation link
2022-01-20 09:27:00 -05:00
Watson
ebdfdb80e5
Detect quoted string using String#{start_with?, end_with?} to reduce Regexp#=== calling
2021-09-26 04:30:49 +09:00
Watson
95e9fa5010
Use String#=~ and Regexp.last_match instead to retrieve the markup content
...
If the first value is only used obtained with String#scan,
it will increase the performance if replace with `String#=~` and `Regexp.last_match`.
### Environment
- MacBook Air (M1, 2020)
- macOS 12.0 beta 7
- Apple M1
- Ruby 3.0.2
### Test code
```ruby
require 'benchmark/ips'
WhitespaceControl = '-'
VariableStart = /\{\{/
VariableEnd = /\}\}/
ContentOfVariable = /\A#{VariableStart}#{WhitespaceControl}?(.*?)#{WhitespaceControl}?#{VariableEnd}\z/om
token = "{{item.product.featured_image | product_img_url: 'thumb' }}"
Benchmark.ips do |x|
x.report("String#scan") { token.scan(ContentOfVariable) {|content| break } }
x.report("String#match") { m = token.match(ContentOfVariable); m[1] }
x.report("String#=~") { token =~ ContentOfVariable; Regexp.last_match(1) }
x.compare!
end
```
### Result
```
Warming up --------------------------------------
String#scan 135.724k i/100ms
String#match 117.397k i/100ms
String#=~ 151.637k i/100ms
Calculating -------------------------------------
String#scan 1.351M (± 0.8%) i/s - 6.786M in 5.021955s
String#match 1.169M (± 1.3%) i/s - 5.870M in 5.020429s
String#=~ 1.520M (± 0.9%) i/s - 7.733M in 5.087427s
Comparison:
String#=~: 1520250.9 i/s
String#scan: 1351399.0 i/s - 1.12x (± 0.00) slower
String#match: 1169384.1 i/s - 1.30x (± 0.00) slower
```
2021-09-26 04:12:53 +09:00
Anders Søgaard and GitHub
db3999a008
Improve where filter tests ( #1472 )
2021-09-16 10:02:39 -04:00
Marc-André Cournoyer and GitHub
10e2aa8d5b
Merge pull request #1471 from Shopify/bump-5.1.0
...
Prep for 5.1.0 release
v5.1.0
2021-09-15 15:15:13 -04:00
7c4114671b
Remove to_liquid_value fixes in changelog
...
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2021-09-13 10:53:46 -04:00
Marc-André Cournoyer
b01de9d325
Prep for 5.1.0 release
2021-09-09 14:28:45 -04:00
Zac Clay and GitHub
a5369c26a8
Add missing quote in comment ( #1468 )
2021-09-09 14:23:11 -04:00
Charles-Philippe Clermont and GitHub
a03de8f9ea
Merge pull request #1470 from Shopify/fix/range-parse-tree-visitor
...
Add ParseTreeVisitor to RangeLookup
2021-09-09 11:39:14 -04:00
Charles-P. Clermont
e86fe27259
Fix lint
2021-09-09 11:22:39 -04:00
Charles-P. Clermont
c8906d05b9
Add ParseTreeVisitor to RangeLookup
2021-09-09 11:22:39 -04:00
Michael Go and GitHub
50d1a2ffc9
Merge pull request #1458 from Shopify/use-to-liquid-value-with-conditions
...
use Utils.to_liquid_value on conditionals
2021-06-15 12:18:14 -03:00
Michael Go
f686c5dec7
use Utils.to_liquid_value on conditionals
2021-06-14 18:19:37 -03:00