image_pack 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +16 -2
- data/ext/image_pack/extconf.rb +2 -2
- data/lib/image_pack/version.rb +1 -1
- data/lib/image_pack.rb +2 -2
- metadata +5 -34
- data/ext/image_pack/vendor/mozjpeg/simd/arm/neon-compat.h +0 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a35cbfc63db1f7d8b22ee78c12340ecfca68522706c12b90fe79103c4eee1ed5
|
|
4
|
+
data.tar.gz: 553e2fb895c181b8b8b399e343b44ae2f001f30c6a0e5e391824d148dec602bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9ed878b4dce88f44e0b2f4b6a4601cb3987051aafaa8128e6d932fd58a2067a351987ba979205904531c1e906b230e94264019a4b7e8e2d315c1a069b76bb471
|
|
7
|
+
data.tar.gz: 0abb8e15b559d1fba9362360d8f585d022f3bbc6f9bfece1cbc754c62f1fce131af0fffb828f2564a5faae939e8539a008345ee5ffcb817f008bbef2c8ba601b
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.6
|
|
4
|
+
|
|
5
|
+
- Lowered the supported Ruby floor to `>= 2.7.1`. The core JPEG API, vendored MozJPEG build, `:direct`, and `:nogvl` execution modes work on Ruby 2.7.1.
|
|
6
|
+
- Kept `execution: :offload` explicitly unavailable until Ruby `>= 3.4`; `:auto` falls back to existing direct/no-GVL execution on older Rubies.
|
|
7
|
+
- Moved Async, benchmark, and external-comparison tooling into an optional `modern_development` Bundler group so a Ruby 2.7.1 developer can install, compile, and run the core suite without resolving modern-only development gems.
|
|
8
|
+
- CI enables `modern_development` on supported modern Rubies, so Async and benchmark dependencies remain covered there.
|
|
9
|
+
|
|
3
10
|
## 0.2.5
|
|
4
11
|
|
|
5
12
|
**Output and API changes (upgrade notes)**
|
data/README.md
CHANGED
|
@@ -156,10 +156,24 @@ end
|
|
|
156
156
|
|
|
157
157
|
## Development
|
|
158
158
|
|
|
159
|
+
Core build and test dependencies work on Ruby 2.7.1+:
|
|
160
|
+
|
|
159
161
|
```bash
|
|
160
|
-
bundle
|
|
162
|
+
bundle install
|
|
161
163
|
bundle exec rake compile
|
|
162
164
|
bundle exec rake test
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Optional comparison benchmarks and Async tooling are kept out of Ruby 2.7 dependency resolution. Enable them on modern Ruby when needed:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
BUNDLE_WITH=modern_development bundle install
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Vendoring and release checks:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
bundle exec rake vendor
|
|
163
177
|
bundle exec rake release:check
|
|
164
178
|
```
|
|
165
179
|
|
|
@@ -170,7 +184,7 @@ bundle exec rake release:check
|
|
|
170
184
|
## Limits
|
|
171
185
|
|
|
172
186
|
- JPEG only.
|
|
173
|
-
- Ruby `>=
|
|
187
|
+
- Ruby `>= 2.7.1`; `execution: :offload` requires Ruby `>= 3.4`. On Ruby 2.7–3.3, `:auto` uses `:direct` or `:nogvl`; it never attempts scheduler offload.
|
|
174
188
|
- Pixel-level `compress` rejects CMYK/YCCK JPEG input; use `optimize_jpeg` for existing CMYK/YCCK JPEGs.
|
|
175
189
|
- Arithmetic-coded JPEG support is disabled in `0.2.5`.
|
|
176
190
|
- Streaming output is not supported; file output uses atomic write-through-temp-file and rename.
|
data/ext/image_pack/extconf.rb
CHANGED
|
@@ -4,8 +4,8 @@ require "mkmf"
|
|
|
4
4
|
require "fileutils"
|
|
5
5
|
require "rbconfig"
|
|
6
6
|
|
|
7
|
-
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("
|
|
8
|
-
abort "image_pack requires Ruby >=
|
|
7
|
+
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.7.1")
|
|
8
|
+
abort "image_pack requires Ruby >= 2.7.1; got #{RUBY_VERSION}"
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
require_relative "mozjpeg_sources"
|
data/lib/image_pack/version.rb
CHANGED
data/lib/image_pack.rb
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
required = Gem::Version.new("
|
|
3
|
+
required = Gem::Version.new("2.7.1")
|
|
4
4
|
current = Gem::Version.new(RUBY_VERSION)
|
|
5
5
|
|
|
6
6
|
if current < required
|
|
7
7
|
raise LoadError,
|
|
8
|
-
"image_pack requires Ruby >=
|
|
8
|
+
"image_pack requires Ruby >= 2.7.1, got #{RUBY_VERSION}. " \
|
|
9
9
|
"Ruby >= 3.4.0 is required only for execution: :offload."
|
|
10
10
|
end
|
|
11
11
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: image_pack
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Roman Haydarov
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-07-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -52,36 +52,8 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '5.0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: benchmark-ips
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '2.13'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '2.13'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: async
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '2.21'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '2.21'
|
|
83
55
|
description: Single API, vendored pure-C MozJPEG/libjpeg codec, in-memory compression
|
|
84
|
-
and atomic file output, Ruby
|
|
56
|
+
and atomic file output, Ruby 2.7.1+ native JPEG execution; Ruby 3.4+ enables Fiber::Scheduler-aware
|
|
85
57
|
offload. Ships vendored C sources — no system libjpeg, git, or CMake required.
|
|
86
58
|
email:
|
|
87
59
|
- romnhajdarov@gmail.com
|
|
@@ -217,7 +189,6 @@ files:
|
|
|
217
189
|
- ext/image_pack/vendor/mozjpeg/simd/arm/jidctint-neon.c
|
|
218
190
|
- ext/image_pack/vendor/mozjpeg/simd/arm/jidctred-neon.c
|
|
219
191
|
- ext/image_pack/vendor/mozjpeg/simd/arm/jquanti-neon.c
|
|
220
|
-
- ext/image_pack/vendor/mozjpeg/simd/arm/neon-compat.h
|
|
221
192
|
- ext/image_pack/vendor/mozjpeg/simd/arm/neon-compat.h.in
|
|
222
193
|
- ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-avx2.asm
|
|
223
194
|
- ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-mmx.asm
|
|
@@ -353,14 +324,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
353
324
|
requirements:
|
|
354
325
|
- - ">="
|
|
355
326
|
- !ruby/object:Gem::Version
|
|
356
|
-
version:
|
|
327
|
+
version: 2.7.1
|
|
357
328
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
358
329
|
requirements:
|
|
359
330
|
- - ">="
|
|
360
331
|
- !ruby/object:Gem::Version
|
|
361
332
|
version: '0'
|
|
362
333
|
requirements: []
|
|
363
|
-
rubygems_version: 3.
|
|
334
|
+
rubygems_version: 3.4.22
|
|
364
335
|
signing_key:
|
|
365
336
|
specification_version: 4
|
|
366
337
|
summary: 'Ruby-native pure-C JPEG runtime: MozJPEG/libjpeg'
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Generated by image_pack extconf.rb (replaces simd/arm/neon-compat.h.in
|
|
3
|
-
* which CMake would otherwise process). All three intrinsic feature flags
|
|
4
|
-
* are unconditionally enabled — every AArch64 toolchain image_pack supports
|
|
5
|
-
* provides them.
|
|
6
|
-
*/
|
|
7
|
-
#ifndef IMAGE_PACK_NEON_COMPAT_H
|
|
8
|
-
#define IMAGE_PACK_NEON_COMPAT_H
|
|
9
|
-
|
|
10
|
-
#define HAVE_VLD1_S16_X3
|
|
11
|
-
#define HAVE_VLD1_U16_X2
|
|
12
|
-
#define HAVE_VLD1Q_U8_X4
|
|
13
|
-
|
|
14
|
-
#if defined(_MSC_VER) && !defined(__clang__)
|
|
15
|
-
#define BUILTIN_CLZ(x) _CountLeadingZeros(x)
|
|
16
|
-
#define BUILTIN_CLZLL(x) _CountLeadingZeros64(x)
|
|
17
|
-
#define BUILTIN_BSWAP64(x) _byteswap_uint64(x)
|
|
18
|
-
#elif defined(__clang__) || defined(__GNUC__)
|
|
19
|
-
#define BUILTIN_CLZ(x) __builtin_clz(x)
|
|
20
|
-
#define BUILTIN_CLZLL(x) __builtin_clzll(x)
|
|
21
|
-
#define BUILTIN_BSWAP64(x) __builtin_bswap64(x)
|
|
22
|
-
#else
|
|
23
|
-
#error "Unknown compiler"
|
|
24
|
-
#endif
|
|
25
|
-
|
|
26
|
-
#endif /* IMAGE_PACK_NEON_COMPAT_H */
|