edn_turbo 0.6.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # The MIT License (MIT)
4
4
 
5
- # Copyright (c) 2015-2019 Ed Porras
5
+ # Copyright (c) 2015-2021 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
@@ -60,7 +60,19 @@ lib_dirs =
60
60
  dir_config('icuuc', header_dirs, lib_dirs)
61
61
 
62
62
  # feels very hackish to do this but the new icu4c needs it on MacOS
63
- $CXXFLAGS << ' -stdlib=libc++ -Wno-deprecated-register' if RUBY_PLATFORM =~ /darwin/
63
+ if RUBY_PLATFORM =~ /darwin/
64
+ $CXXFLAGS << ' -stdlib=libc++ -Wno-deprecated-register'
65
+ else
66
+ # remove some flags that are either clang-specific or unrecognized
67
+ # but somehow get passed under linux (?!)
68
+ %w[
69
+ -Wno-self-assign -Wno-parentheses-equality -Wno-constant-logical-operand
70
+ -Wno-cast-function-type -Wdeclaration-after-statement -Wimplicit-function-declaration
71
+ -Wimplicit-int
72
+ ].each do |f|
73
+ $warnflags.sub!(f, '')
74
+ end
75
+ end
64
76
  $CXXFLAGS << ' -std=c++11 -std=gnu++11'
65
77
 
66
78
  abort "\n>> failed to find icu4c headers - is icu4c installed?\n\n" unless
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2019 Ed Porras
3
+ // Copyright (c) 2015-2021 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/version.h>
29
30
  #include <ruby/io.h>
30
31
 
31
32
  #include "parser.h"
@@ -48,6 +49,9 @@ namespace edn {
48
49
  VALUE RUBY_STRING_TO_F_METHOD = Qnil;
49
50
  VALUE RUBY_READ_METHOD = Qnil;
50
51
 
52
+ VALUE RUBY_NAN_CONST = Qnil;
53
+ VALUE RUBY_INF_CONST = Qnil;
54
+
51
55
  // returned when EOF - defined as a constant in EDN module
52
56
  VALUE EDN_EOF_CONST = Qnil;
53
57
 
@@ -59,7 +63,7 @@ namespace edn {
59
63
 
60
64
  static const rb_data_type_t parser_data_type = {
61
65
  "edn_turbo::Parser",
62
- {0, delete_parser, 0, {0}},
66
+ {0, delete_parser, 0, 0},
63
67
  0, 0,
64
68
  RUBY_TYPED_FREE_IMMEDIATELY,
65
69
  };
@@ -214,9 +218,11 @@ void Init_edn_turbo(void)
214
218
  edn::EDN_MAKE_SYMBOL_METHOD = rb_intern("symbol");
215
219
  edn::EDN_MAKE_LIST_METHOD = rb_intern("list");
216
220
  edn::EDN_MAKE_SET_METHOD = rb_intern("set");
217
- edn::EDN_MAKE_BIG_DECIMAL_METHOD = rb_intern("big_decimal");
218
221
  edn::EDN_TAGGED_ELEM_METHOD = rb_intern("tagged_element");
219
222
 
223
+ // see lib/edn_turbo.rb
224
+ edn::EDN_MAKE_BIG_DECIMAL_METHOD = rb_intern("big_decimal_edn_turbo");
225
+
220
226
  // defined in EDNT - see edn_parser.rb
221
227
  edn::EDNT_EXTENDED_VALUE_METHOD = rb_intern("extend_for_meta");
222
228
  edn::EDN_MAKE_RATIONAL_METHOD = rb_intern("rational"); // should be in edn-ruby
@@ -226,6 +232,10 @@ void Init_edn_turbo(void)
226
232
  edn::RUBY_STRING_TO_F_METHOD = rb_intern("to_f");
227
233
  edn::RUBY_READ_METHOD = rb_intern("read");
228
234
 
235
+ VALUE rb_mFloat = rb_const_get(rb_cObject, rb_intern("Float"));
236
+ edn::RUBY_NAN_CONST = rb_const_get(rb_mFloat, rb_intern("NAN"));
237
+ edn::RUBY_INF_CONST = rb_const_get(rb_mFloat, rb_intern("INFINITY"));
238
+
229
239
  // so we can return EOF directly
230
240
  edn::EDN_EOF_CONST = rb_const_get(edn::rb_mEDN, rb_intern("EOF"));
231
241
  }
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2019 Ed Porras
3
+ // Copyright (c) 2015-2021 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-2019 Ed Porras
3
+ // Copyright (c) 2015-2021 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
@@ -205,7 +205,7 @@ namespace edn
205
205
  // =================================================================
206
206
  //
207
207
  // error reporting
208
- void Parser::error(const std::string& func, const std::string& err, char c) const
208
+ void Parser::error(const std::string& /*func*/, const std::string& err, char c) const
209
209
  {
210
210
  std::cerr << "Parse error "
211
211
  // "from " << func << "() "
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2019 Ed Porras
3
+ // Copyright (c) 2015-2021 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-2019 Ed Porras
3
+ // Copyright (c) 2015-2021 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
@@ -22,6 +22,8 @@
22
22
 
23
23
  #pragma once
24
24
 
25
+ #include <cstddef>
26
+
25
27
  namespace edn
26
28
  {
27
29
  extern VALUE rb_mEDN;
@@ -41,6 +43,9 @@ namespace edn
41
43
  extern VALUE RUBY_STRING_TO_F_METHOD;
42
44
  extern VALUE RUBY_READ_METHOD;
43
45
 
46
+ extern VALUE RUBY_NAN_CONST;
47
+ extern VALUE RUBY_INF_CONST;
48
+
44
49
  namespace util
45
50
  {
46
51
  // defined in edn_parser_util.cc
@@ -1,6 +1,6 @@
1
1
  // The MIT License (MIT)
2
2
 
3
- // Copyright (c) 2015-2019 Ed Porras
3
+ // Copyright (c) 2015-2021 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-2019 Ed Porras
3
+ // Copyright (c) 2015-2021 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-2019 Ed Porras
5
+ # Copyright (c) 2015-2021 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,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # The MIT License (MIT)
2
4
  #
3
- # Copyright (c) 2015-2019 Ed Porras
5
+ # Copyright (c) 2015-2021 Ed Porras
4
6
  #
5
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
8
  # of this software and associated documentation files (the "Software"), to deal
@@ -21,6 +23,6 @@
21
23
  # THE SOFTWARE.
22
24
 
23
25
  module EDNT
24
- VERSION = '0.6.1'.freeze
25
- RELEASE_DATE = '2019-05-20'.freeze
26
+ VERSION = '0.7.2'
27
+ RELEASE_DATE = '2021-09-20'
26
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-2019 Ed Porras
5
+ # Copyright (c) 2015-2021 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
@@ -36,4 +36,10 @@ module EDN
36
36
  def self.rational(value)
37
37
  Rational(value)
38
38
  end
39
+
40
+ # edn-ruby uses BigDecimal.new() which breaks in ruby >= 2.7.0 so we
41
+ # use this instead
42
+ def self.big_decimal_edn_turbo(value)
43
+ BigDecimal(value)
44
+ end
39
45
  end
@@ -352,6 +352,15 @@ module EDNT
352
352
  it 'with mathematical operators' do
353
353
  expect(subject.parse('>:FOuy/+')).to eq(EDN::Type::Symbol.new('>:FOuy/+'))
354
354
  end
355
+ it 'NaN' do
356
+ expect(subject.parse('##NaN').to_f.nan?).to be_truthy
357
+ end
358
+ it 'infinity' do
359
+ expect(subject.parse('##Inf')).to eq(Float::INFINITY)
360
+ end
361
+ it 'negative infinity' do
362
+ expect(subject.parse('##-Inf')).to eq(EDN::Type::Symbol.new('-Inf'))
363
+ end
355
364
  end
356
365
 
357
366
  context 'metadata' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edn_turbo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Porras
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-20 00:00:00.000000000 Z
11
+ date: 2021-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: edn
@@ -28,16 +28,22 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '12.3'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '14.0'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: '12.3'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '14.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rake-compiler
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -92,6 +98,20 @@ dependencies:
92
98
  - - "~>"
93
99
  - !ruby/object:Gem::Version
94
100
  version: 3.8.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: rubocop
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '1.9'
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '1.9'
95
115
  description: Optimized plugin for parsing EDN files using ragel
96
116
  email: github@digressed.net
97
117
  executables:
@@ -100,19 +120,24 @@ extensions:
100
120
  - ext/edn_turbo/extconf.rb
101
121
  extra_rdoc_files: []
102
122
  files:
123
+ - ".dir-locals.el"
103
124
  - ".gitignore"
104
125
  - ".rspec"
105
126
  - CHANGELOG.md
106
- - Dockerfile
107
127
  - Gemfile
108
128
  - LICENSE
109
129
  - README.md
110
130
  - Rakefile
111
- - bin/build_docker_image.sh
112
- - bin/console.sh
113
131
  - bin/ppedn
114
132
  - bin/ppedn-ruby
115
- - docker-compose.yml
133
+ - docker/Dockerfile
134
+ - docker/build
135
+ - docker/common.sh
136
+ - docker/console
137
+ - docker/docker-compose.yml
138
+ - docker/entrypoint
139
+ - docker/make-check
140
+ - docker/run
116
141
  - ext/edn_turbo/depend
117
142
  - ext/edn_turbo/edn_parser.cc
118
143
  - ext/edn_turbo/edn_parser.rl
@@ -133,7 +158,7 @@ homepage: http://rubygems.org/gems/edn_turbo
133
158
  licenses:
134
159
  - MIT
135
160
  metadata: {}
136
- post_install_message:
161
+ post_install_message:
137
162
  rdoc_options: []
138
163
  require_paths:
139
164
  - lib
@@ -141,15 +166,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
166
  requirements:
142
167
  - - ">="
143
168
  - !ruby/object:Gem::Version
144
- version: '0'
169
+ version: 2.5.0
145
170
  required_rubygems_version: !ruby/object:Gem::Requirement
146
171
  requirements:
147
172
  - - ">="
148
173
  - !ruby/object:Gem::Version
149
174
  version: '0'
150
175
  requirements: []
151
- rubygems_version: 3.0.3
152
- signing_key:
176
+ rubygems_version: 3.2.22
177
+ signing_key:
153
178
  specification_version: 3
154
179
  summary: Read EDN files
155
180
  test_files: []
data/Dockerfile DELETED
@@ -1,34 +0,0 @@
1
- FROM buildpack-deps:stretch
2
- MAINTAINER github@digressed.net
3
-
4
- ENV LC_ALL C.UTF-8
5
-
6
- # Update Ubuntu Software repository
7
- RUN apt-get update
8
-
9
- # install dependencies & utils
10
- RUN apt-get install -y \
11
- libicu-dev \
12
- curl \
13
- libreadline-dev
14
-
15
- # aliases, environment
16
- RUN echo 'alias h="history"' >> /root/.bashrc
17
- RUN echo 'alias be="bundle exec"' >> /root/.bashrc
18
- ENV PATH "/root/.rbenv/bin:/root/.rbenv/shims:$PATH"
19
-
20
- # install rbenv & ruby
21
- RUN \curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
22
- RUN eval "$(rbenv init -)"
23
-
24
- ENV RUBY_VERSION=2.6.3
25
- RUN rbenv install ${RUBY_VERSION}
26
- RUN rbenv global ${RUBY_VERSION}
27
-
28
- # mute bundle warning about root user
29
- RUN bundle config --global silence_root_warning 1
30
-
31
- WORKDIR /gem
32
-
33
- # cleanup
34
- RUN rm -rf /var/lib/apt/lists/*
@@ -1,11 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -e
4
-
5
- if [[ $# -eq 0 ]]; then
6
- RUBY_VERSION=2.6.3
7
- else
8
- RUBY_VERSION=$1
9
- fi
10
-
11
- docker build -t edn_turbo_image:$RUBY_VERSION .
data/bin/console.sh DELETED
@@ -1,5 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -e
4
-
5
- docker-compose run edn_turbo /bin/bash
data/docker-compose.yml DELETED
@@ -1,10 +0,0 @@
1
- version: "3"
2
- services:
3
-
4
- edn_turbo:
5
- image: edn_turbo_image:2.6.3
6
- stdin_open: true
7
- tty: true
8
- volumes:
9
- - ~/.bash_history:/root/.bash_history
10
- - /Volumes/homes/ep/work/edn_turbo:/gem