edn_turbo 0.8.1 → 0.9.0

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: da22623049c7e0a04737a2fb26d0670a686e2ddd0caa7f7d4b1ac5df34fbc495
4
- data.tar.gz: '0802c895dcf8f7b41716e68a11086e86413534e884ea860bc79b8b9b136b6880'
3
+ metadata.gz: fecff3306497ab50ba2ff8637062d554b959b970f3f669c997479f98e4897233
4
+ data.tar.gz: d3935248c921e9bcbde72a15551c1e4e24c484676c1017c3d87cbcd2a6521c2a
5
5
  SHA512:
6
- metadata.gz: 231b1b07c817d956dcc08186b9f820418129fb1587f92dd7a3b26b6a8bf34a7c420b62938fee2e8f7e9b5bdfe7b3b5a675edcc818c35580a72ee1414112a74cf
7
- data.tar.gz: e87f2d5ad07ee3fc6c59a80e64a6f06a708a0f46d07d2bad428951b2f4fc131ea9afda4383dbf0c07f663f1d6131287e80156950dd107445421d25e958438f30
6
+ metadata.gz: dc6e3362a6470141fcd3893aaf61a38f8c8d738e4540957f87f504d142fe71a0ef7503e327ecbab4a4cea737282b096f1f74ded1ff3ea01cc94addc6fba2d227
7
+ data.tar.gz: 29b805e543c7998c6a682f277607c1e17d8bff7668db1ad6c75861c522079a326893450fa4aa806c850d1b26de8d2c8faa386053e310e798379bfec95a34749d
data/.dir-locals.el CHANGED
@@ -1,3 +1,3 @@
1
1
  ((c++-mode
2
- (flycheck-clang-language-standard . "c++11")
3
- (flycheck-gcc-language-standard . "c++11")))
2
+ (flycheck-clang-language-standard . "c++17")
3
+ (flycheck-gcc-language-standard . "c++17")))
@@ -15,13 +15,12 @@ jobs:
15
15
  # - macos-latest
16
16
  # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
17
17
  ruby:
18
- - '2.6'
19
- - '2.7'
20
18
  - '3.0'
21
19
  - '3.1'
22
20
  - '3.2'
23
21
  - '3.3'
24
22
  - '3.4'
23
+ - '4.0'
25
24
  runs-on: ${{ matrix.os }}
26
25
  steps:
27
26
  - run: sudo apt-get install -y libicu-dev libreadline-dev ragel
@@ -29,7 +28,7 @@ jobs:
29
28
  with:
30
29
  ruby-version: ${{ matrix.ruby }}
31
30
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
32
- - uses: actions/checkout@v3
31
+ - uses: actions/checkout@v5
33
32
  - run: bundle install
34
33
  - run: bundle exec rake
35
34
  - run: bundle exec rspec
data/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file. This change log follows the conventions of [keepachangelog.com](http://keepachangelog.com/).
3
3
 
4
+ ## [0.9.0] - 2026-04-20
5
+ ### Changed
6
+ * Bumped minimum ruby version to 3.0.
7
+
8
+ ### Fixed
9
+ * Register global VALUEs using `rb_global_variable`.
10
+
4
11
  ## [0.8.1] - 2025-05-09
5
12
  ### Added
6
13
  * bigdecimal as explicit dependency.
@@ -71,7 +78,8 @@ All notable changes to this project will be documented in this file. This change
71
78
  ### Added
72
79
  * initial version of docker configs for testing on Ubuntu.
73
80
 
74
- [Unreleased]: https://github.com/edporras/edn_turbo/-/compare/0.8.1...devel
81
+ [Unreleased]: https://github.com/edporras/edn_turbo/-/compare/0.9.0...devel
82
+ [0.9.0]: https://github.com/edporras/edn_turbo/-/compare/0.8.1...0.9.0
75
83
  [0.8.1]: https://github.com/edporras/edn_turbo/-/compare/0.8.0...0.8.1
76
84
  [0.8.0]: https://github.com/edporras/edn_turbo/-/compare/0.7.4...0.8.0
77
85
  [0.7.4]: https://github.com/edporras/edn_turbo/-/compare/0.7.3...0.7.4
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2025 Ed Porras
3
+ Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- edn_turbo 0.8.1
1
+ edn_turbo 0.9.0
2
2
  ===============
3
3
 
4
4
  Fast [Ragel](http://www.colm.net/open-source/ragel/)-based EDN parser for Ruby.
@@ -33,7 +33,7 @@ irb(main):008:0> Benchmark.realtime { 100000.times { EDN::read(s) } }
33
33
  Dependencies
34
34
  ============
35
35
 
36
- Ruby 2.6 or greater.
36
+ Ruby 3.0 or greater.
37
37
 
38
38
  - ruby gems:
39
39
  - [rake](http://rake.rubyforge.org)
@@ -2,7 +2,7 @@
2
2
  #line 1 "edn_parser.rl"
3
3
  // The MIT License (MIT)
4
4
 
5
- // Copyright (c) 2015-2025 Ed Porras
5
+ // Copyright (c) 2015-2026 Ed Porras
6
6
 
7
7
  // Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
@@ -2,7 +2,7 @@
2
2
 
3
3
  # The MIT License (MIT)
4
4
 
5
- # Copyright (c) 2015-2025 Ed Porras
5
+ # Copyright (c) 2015-2026 Ed Porras
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the "Software"), to deal
@@ -24,11 +24,11 @@
24
24
 
25
25
  require 'mkmf'
26
26
 
27
- ENV['PKG_CONFIG_PATH'] ||= ""
27
+ ENV['PKG_CONFIG_PATH'] ||= ''
28
28
  ENV['PKG_CONFIG_PATH'] += if RUBY_PLATFORM =~ /darwin/
29
- ":/usr/local/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig"
29
+ ':/usr/local/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig'
30
30
  else
31
- ":/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"
31
+ ':/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig'
32
32
  end
33
33
 
34
34
  pkg_config('icu-uc')
@@ -40,10 +40,10 @@ else
40
40
  # remove some flags that are either clang-specific or unrecognized
41
41
  # but somehow get passed under linux (?!)
42
42
  %w[
43
- -Wno-self-assign -Wno-parentheses-equality -Wno-constant-logical-operand
44
- -Wno-cast-function-type -Wdeclaration-after-statement -Wimplicit-function-declaration
45
- -Wimplicit-int
46
- ].each do |f|
43
+ -Wno-self-assign -Wno-parentheses-equality -Wno-constant-logical-operand
44
+ -Wno-cast-function-type -Wdeclaration-after-statement -Wimplicit-function-declaration
45
+ -Wimplicit-int
46
+ ].each do |f|
47
47
  $warnflags.sub!(f, '')
48
48
  end
49
49
  end
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
@@ -26,6 +26,7 @@
26
26
  #include <cstring>
27
27
 
28
28
  #include <ruby/ruby.h>
29
+ #include <ruby/internal/gc.h>
29
30
  #include <ruby/version.h>
30
31
  #include <ruby/io.h>
31
32
 
@@ -197,6 +198,13 @@ void Init_edn_turbo(void)
197
198
  rb_raise(rb_eRuntimeError, "Extension init error calling setlocale() - It appears your system's locale is not configured correctly.\n");
198
199
  }
199
200
 
201
+ // Register global VALUE slots before assigning Ruby objects to them.
202
+ rb_global_variable(&edn::rb_mEDN);
203
+ rb_global_variable(&edn::rb_mEDNT);
204
+ rb_global_variable(&edn::RUBY_NAN_CONST);
205
+ rb_global_variable(&edn::RUBY_INF_CONST);
206
+ rb_global_variable(&edn::EDN_EOF_CONST);
207
+
200
208
  edn::rb_mEDN = rb_const_get(rb_cObject, rb_intern("EDN"));
201
209
  edn::rb_mEDNT = rb_define_module("EDNT");
202
210
 
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
data/ext/edn_turbo/util.h CHANGED
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2025 Ed Porras
3
+ // Copyright (c) 2015-2026 Ed Porras
4
4
 
5
5
  // Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  // of this software and associated documentation files (the "Software"), to deal
@@ -2,7 +2,7 @@
2
2
 
3
3
  # The MIT License (MIT)
4
4
  #
5
- # Copyright (c) 2015-2025 Ed Porras
5
+ # Copyright (c) 2015-2026 Ed Porras
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the "Software"), to deal
@@ -2,7 +2,7 @@
2
2
 
3
3
  # The MIT License (MIT)
4
4
  #
5
- # Copyright (c) 2015-2025 Ed Porras
5
+ # Copyright (c) 2015-2026 Ed Porras
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the "Software"), to deal
@@ -23,6 +23,6 @@
23
23
  # THE SOFTWARE.
24
24
 
25
25
  module EDNT
26
- VERSION = '0.8.1'
27
- RELEASE_DATE = '2025-05-09'
26
+ VERSION = '0.9.0'
27
+ RELEASE_DATE = '2026-04-20'
28
28
  end
data/lib/edn_turbo.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # The MIT License (MIT)
4
4
  #
5
- # Copyright (c) 2015-2025 Ed Porras
5
+ # Copyright (c) 2015-2026 Ed Porras
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
  #
3
- # Copyright (c) 2015-2025 Ed Porras
3
+ # Copyright (c) 2015-2026 Ed Porras
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the "Software"), to deal
@@ -308,6 +308,17 @@ module EDNT
308
308
  it 'uuid' do
309
309
  expect(subject.parse(' #uuid "f81d4fae-7dec-11d0-a765-00a0c91e6bf6" ')).to eq('f81d4fae-7dec-11d0-a765-00a0c91e6bf6')
310
310
  end
311
+
312
+ it 'survives GC.compact while parsing tags' do
313
+ skip 'GC.compact not supported' unless GC.respond_to?(:compact)
314
+
315
+ data = ' #uuid "f81d4fae-7dec-11d0-a765-00a0c91e6bf6" '
316
+ expect(subject.parse(data)).to eq('f81d4fae-7dec-11d0-a765-00a0c91e6bf6')
317
+
318
+ GC.compact
319
+
320
+ expect(subject.parse(data)).to eq('f81d4fae-7dec-11d0-a765-00a0c91e6bf6')
321
+ end
311
322
  end
312
323
 
313
324
  context 'collections' do
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edn_turbo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Porras
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-05-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bigdecimal
@@ -153,7 +152,6 @@ homepage: http://rubygems.org/gems/edn_turbo
153
152
  licenses:
154
153
  - MIT
155
154
  metadata: {}
156
- post_install_message:
157
155
  rdoc_options: []
158
156
  require_paths:
159
157
  - lib
@@ -161,15 +159,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
159
  requirements:
162
160
  - - ">="
163
161
  - !ruby/object:Gem::Version
164
- version: 2.6.0
162
+ version: 3.0.0
165
163
  required_rubygems_version: !ruby/object:Gem::Requirement
166
164
  requirements:
167
165
  - - ">="
168
166
  - !ruby/object:Gem::Version
169
167
  version: '0'
170
168
  requirements: []
171
- rubygems_version: 3.4.19
172
- signing_key:
169
+ rubygems_version: 3.6.8
173
170
  specification_version: 4
174
171
  summary: Read EDN files
175
172
  test_files: []