srsh 1.0.0 → 1.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b4ebcca8a9c5952dd9608cd8fe5dd311aae5445224896c4e190db2c7981a4dc
4
- data.tar.gz: 17f76ba91a316ebd35dfdfaf5c260baf778348a73e4f930c8c61fb0de2222cc3
3
+ metadata.gz: ddbe1c3a93674d1cd10bd2c47cbea50a6971b081d10122a771b300f2c33cd6ba
4
+ data.tar.gz: 6667a7f67f97db531fff8389adc162d18747b4f782f0583b4cfd7443d7983efb
5
5
  SHA512:
6
- metadata.gz: 37f82634b0c88623c50d1aa3eee65d2b219ed317c87ea6e9abe42c904a9989aec5a0fd360715a33879a5dfc44ecf020611c5880b0a024868bb4f6627cabf95d0
7
- data.tar.gz: 787a567cfed45fdd641874c8a0e9f43b919645ff5c882c5be0aac6bde2899a6cb4c89f2f5f032bfe0b1c2a274df4df66800542834937fe8d12dec0f3932db835
6
+ metadata.gz: 3927998d22cb5faf8e4448691071e9afe178aca4b6fd62fcb175ad78f0ffa2903c981a1a984037b57f109ad592a74e6bf35916b2a0c4bb82296dc1108fb3c79f
7
+ data.tar.gz: 1f0d80a3ceda4f22f56d01a2057063d06c01cb005e6a8f284f3573394d590c681cda56f25681295a20c4544c2a258839df36004d6144d5e649318240213eb814
data/README.md CHANGED
@@ -16,7 +16,7 @@ files := glob("src/**/*.rb")
16
16
 
17
17
  `|` is still a Unix process pipe. `|>` is an RSH value pipe. They look related because they *are* related, but they move different things.
18
18
 
19
- This tree reports **1.0.0**. It is the unreleased 1.0 line; the older 1.1/1.2 numbers were development snapshots and were a dumb way to version something that had not shipped yet.
19
+ This tree reports **1.0.1**. It keeps the 1.0 language and moves the supported runtime to Ruby 4.
20
20
 
21
21
  ## What SRSH is trying to be
22
22
 
@@ -37,7 +37,7 @@ It is **not a Bash parser**. Existing Bash scripts still belong to Bash. The goa
37
37
 
38
38
  ## Build and run
39
39
 
40
- Ruby 3.2+ is required.
40
+ Ruby 4.0+ is required. The repository selects the current Ruby 4.0 patch release through `.ruby-version`.
41
41
 
42
42
  ```sh
43
43
  make test
@@ -447,6 +447,6 @@ The code is split by job, not by architectural cosplay. If a file gets big becau
447
447
 
448
448
  ## Current status
449
449
 
450
- The project is still unreleased. `1.0.0` means “the 1.0 tree,” not “independently audited and incapable of bugs.” A shell has too much surface area for that kind of claim.
450
+ The 1.0 line is released and still young. A shell has too much surface area for claims about being independently audited or incapable of bugs.
451
451
 
452
452
  Run the tests, beat on it, and report the ugly cases. Those are usually more useful than another feature bullet.
data/docs/index.html CHANGED
@@ -19,7 +19,7 @@
19
19
  <strong>Simple Ruby Shell</strong>
20
20
  <span>Unix commands and the RSH language</span>
21
21
  </div>
22
- <div class="version-box">Version <span data-latest-version>1.0.0</span></div>
22
+ <div class="version-box">Version <span data-latest-version>1.0.1</span></div>
23
23
  </div>
24
24
  <nav class="main-nav" aria-label="Main navigation">
25
25
  <div class="site-width">
@@ -33,7 +33,7 @@
33
33
  </header>
34
34
 
35
35
  <div class="site-width status-line">
36
- Current source: 1.0.0&nbsp;&nbsp;|&nbsp;&nbsp;Requires Ruby 3.2 or newer&nbsp;&nbsp;|&nbsp;&nbsp;Unix systems
36
+ Current source: 1.0.1&nbsp;&nbsp;|&nbsp;&nbsp;Requires Ruby 4.0 or newer&nbsp;&nbsp;|&nbsp;&nbsp;Unix systems
37
37
  </div>
38
38
 
39
39
  <main id="content" class="site-width site-body">
@@ -542,7 +542,7 @@ mark=35</code></pre></div>
542
542
  </div>
543
543
 
544
544
  <div class="download-panel">
545
- <h2>Latest release: <span data-latest-version>1.0.0</span></h2>
545
+ <h2>Latest release: <span data-latest-version>1.0.1</span></h2>
546
546
  <p data-release-status>The site will read the latest published release when GitHub is available.</p>
547
547
  <p class="download-buttons">
548
548
  <a class="download-link" data-download="gem" href="https://github.com/RobertFlexx/RSH/releases/latest/download/srsh.gem">Download gem</a>
@@ -553,7 +553,7 @@ mark=35</code></pre></div>
553
553
  </div>
554
554
 
555
555
  <h2>Install the gem file</h2>
556
- <p>Ruby 3.2 or newer is required. Building the optional native extension also needs a C compiler and Ruby development headers.</p>
556
+ <p>Ruby 4.0 or newer is required. RubyGems installs Fiddle 1.1.8 or newer for native bridges. Building the optional native extension also needs a C compiler and Ruby development headers.</p>
557
557
  <div class="listing">
558
558
  <pre id="install-gem"><code>gem install ./srsh.gem
559
559
  srsh --version
@@ -565,7 +565,7 @@ srsh</code></pre>
565
565
  <p>The shell can run as Ruby-only code. The native helper is optional when running from a checkout or source archive.</p>
566
566
  <div class="listing">
567
567
  <pre id="install-source"><code>tar -xzf srsh-source.tar.gz
568
- cd srsh-1.0.0
568
+ cd srsh-1.0.1
569
569
  make test
570
570
  ./bin/srsh</code></pre>
571
571
  <button class="copy-button" type="button" data-copy-target="install-source">copy</button>
@@ -671,7 +671,7 @@ test/ language and shell tests</code></pre></div>
671
671
 
672
672
  <h2>Release policy</h2>
673
673
  <p>
674
- A tag such as <code>v1.0.0</code> must match <code>Srsh::VERSION</code>. The release workflow runs syntax checks,
674
+ A tag such as <code>v1.0.1</code> must match <code>Srsh::VERSION</code>. The release workflow runs syntax checks,
675
675
  the test suite, example validation, smoke tests, and the native build. It then creates gem and source artifacts,
676
676
  writes SHA-256 checksums, and creates the GitHub release at that tag.
677
677
  </p>
data/docs/js/app.js CHANGED
@@ -174,7 +174,7 @@
174
174
  if (!response.ok) throw new Error("No published release");
175
175
  return response.json();
176
176
  }).then(function (release) {
177
- const tag = String(release.tag_name || "1.0.0");
177
+ const tag = String(release.tag_name || "1.0.1");
178
178
  const version = tag.replace(/^v/, "");
179
179
  const gem = findAsset(release, "srsh.gem", /^srsh-[0-9].*\.gem$/);
180
180
  const source = findAsset(release, "srsh-source.tar.gz", /^srsh-[0-9].*\.tar\.gz$/);
@@ -41,4 +41,4 @@ A few intentional changes:
41
41
  - missing variables can be made errors with `option nounset yes` or `option strict yes`.
42
42
  - normal shell wildcard expansion now works; use quoted wildcards when you want literal `*`/`?` characters.
43
43
 
44
- The brief development-only 1.0.x/1.1/1.2 directories were never release lines. The code they introduced is folded into the unreleased 1.0.0 tree.
44
+ The brief development-only 1.0.x/1.1/1.2 directories were never release lines. The code they introduced was folded into the released 1.0 line.
@@ -50,9 +50,7 @@ module Srsh
50
50
  class NativeFunctionValue
51
51
  TYPES = {
52
52
  'void' => Fiddle::TYPE_VOID,
53
- # C _Bool has the size and alignment of an unsigned char. Ruby 3.2's
54
- # Fiddle does not expose TYPE_BOOL, so use its portable ABI spelling.
55
- 'bool' => Fiddle::TYPE_UINT8_T,
53
+ 'bool' => Fiddle::TYPE_BOOL,
56
54
  'i8' => Fiddle::TYPE_INT8_T, 'u8' => Fiddle::TYPE_UINT8_T,
57
55
  'i16' => Fiddle::TYPE_INT16_T, 'u16' => Fiddle::TYPE_UINT16_T,
58
56
  'i32' => Fiddle::TYPE_INT32_T, 'u32' => Fiddle::TYPE_UINT32_T,
data/lib/srsh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Srsh
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
data/lib/srsh.rb CHANGED
@@ -1,5 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'srsh/version'
4
+
5
+ if RUBY_VERSION.partition('.').first.to_i < 4
6
+ raise LoadError, "srsh #{Srsh::VERSION} requires Ruby 4.0 or newer; found Ruby #{RUBY_VERSION}"
7
+ end
8
+
3
9
  begin
4
10
  require 'srsh_native'
5
11
  rescue LoadError
metadata CHANGED
@@ -1,18 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: srsh
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - RobertFlexx
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-09-02 00:00:00.000000000 Z
12
- dependencies: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: fiddle
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 1.1.8
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 1.1.8
13
26
  description: A Unix shell written in Ruby with a structured scripting language for
14
27
  shell programs.
15
- email:
16
28
  executables:
17
29
  - srsh
18
30
  extensions:
@@ -72,7 +84,6 @@ metadata:
72
84
  source_code_uri: https://github.com/RobertFlexx/RSH
73
85
  bug_tracker_uri: https://github.com/RobertFlexx/RSH/issues
74
86
  rubygems_mfa_required: 'true'
75
- post_install_message:
76
87
  rdoc_options: []
77
88
  require_paths:
78
89
  - lib
@@ -80,15 +91,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
91
  requirements:
81
92
  - - ">="
82
93
  - !ruby/object:Gem::Version
83
- version: '3.2'
94
+ version: '4.0'
84
95
  required_rubygems_version: !ruby/object:Gem::Requirement
85
96
  requirements:
86
97
  - - ">="
87
98
  - !ruby/object:Gem::Version
88
99
  version: '0'
89
100
  requirements: []
90
- rubygems_version: 3.4.19
91
- signing_key:
101
+ rubygems_version: 4.0.16
92
102
  specification_version: 4
93
103
  summary: Simple Ruby Shell with the RSH scripting language
94
104
  test_files: []