io-event 1.0.3 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 702073dbb4f3ae83c132f359f31cd28ff1773fd59555ee4d55f53da963cab6c0
4
- data.tar.gz: a3237cb6b6499259203da3d26d4ecc67cf019dac3ebb5f1b0636f2148ddc08b5
3
+ metadata.gz: 2d99060107bec74ecdf3c86668fc61deea4d28bdcd9978511b5697ed33cf138d
4
+ data.tar.gz: 5bf171bc3b6ffe9d0884b722b1b6d63d74ef8612b4d7e0a71257fc7fd7956f80
5
5
  SHA512:
6
- metadata.gz: 686ff45aecfa4bc3c79328595291d05e1c5887656a054ded3ee6108208ab03a6320d5c82cc8e171533630993c514455a6775ee076b3e0c43af592b065f040f19
7
- data.tar.gz: c653fb07fab4818a7c9aa46ba97e1b0bc9490c4a3df632c9195874b6ba616ed48d760492e6995fe68ca4ac45f69e80f6d0bce7b7370d7eabdc4192ae831fc3e0
6
+ metadata.gz: 724ed197eeba22fd9ac7cb044ce287d34ba8a3a5a920dd84e990dd8627260c8d4266fae9f36f168859d9f6497efdefbb178f6d216cce16eabdf08f3d9e12d2e2
7
+ data.tar.gz: a28bad4426fdb19d261565fe1363a3ce3a5cb6d29f7d70419bda678dbf414f483455b669cdca0f49c0400ba6ec01ece4f2b536fd1a90af01e7eb519277532756
@@ -28,7 +28,9 @@
28
28
  #include "pidfd.c"
29
29
  #include "../interrupt.h"
30
30
 
31
- static const int DEBUG = 0;
31
+ enum {
32
+ DEBUG = 0,
33
+ };
32
34
 
33
35
  static VALUE IO_Event_Selector_EPoll = Qnil;
34
36
 
@@ -231,6 +233,11 @@ VALUE IO_Event_Selector_EPoll_process_wait(VALUE self, VALUE fiber, VALUE pid, V
231
233
  };
232
234
 
233
235
  process_wait_arguments.descriptor = pidfd_open(process_wait_arguments.pid, 0);
236
+
237
+ if (process_wait_arguments.descriptor == -1) {
238
+ rb_sys_fail("IO_Event_Selector_EPoll_process_wait:pidfd_open");
239
+ }
240
+
234
241
  rb_update_max_fd(process_wait_arguments.descriptor);
235
242
 
236
243
  struct epoll_event event = {
@@ -241,6 +248,7 @@ VALUE IO_Event_Selector_EPoll_process_wait(VALUE self, VALUE fiber, VALUE pid, V
241
248
  int result = epoll_ctl(data->descriptor, EPOLL_CTL_ADD, process_wait_arguments.descriptor, &event);
242
249
 
243
250
  if (result == -1) {
251
+ close(process_wait_arguments.descriptor);
244
252
  rb_sys_fail("IO_Event_Selector_EPoll_process_wait:epoll_ctl");
245
253
  }
246
254
 
@@ -255,9 +263,14 @@ uint32_t epoll_flags_from_events(int events) {
255
263
  if (events & IO_EVENT_PRIORITY) flags |= EPOLLPRI;
256
264
  if (events & IO_EVENT_WRITABLE) flags |= EPOLLOUT;
257
265
 
258
- flags |= EPOLLRDHUP;
266
+ flags |= EPOLLHUP;
267
+ flags |= EPOLLERR;
268
+
269
+ // Immediately remove this descriptor after reading one event:
259
270
  flags |= EPOLLONESHOT;
260
271
 
272
+ if (DEBUG) fprintf(stderr, "epoll_flags_from_events events=%d flags=%d\n", events, flags);
273
+
261
274
  return flags;
262
275
  }
263
276
 
@@ -265,7 +278,11 @@ static inline
265
278
  int events_from_epoll_flags(uint32_t flags) {
266
279
  int events = 0;
267
280
 
268
- if (flags & EPOLLIN) events |= IO_EVENT_READABLE;
281
+ if (DEBUG) fprintf(stderr, "events_from_epoll_flags flags=%d\n", flags);
282
+
283
+ // Occasionally, (and noted specifically when dealing with child processes stdout), flags will only be POLLHUP. In this case, we arm the file descriptor for reading so that the HUP will be noted, rather than potentially ignored, since there is no dedicated event for it.
284
+ // if (flags & (EPOLLIN)) events |= IO_EVENT_READABLE;
285
+ if (flags & (EPOLLIN|EPOLLHUP|EPOLLERR)) events |= IO_EVENT_READABLE;
269
286
  if (flags & EPOLLPRI) events |= IO_EVENT_PRIORITY;
270
287
  if (flags & EPOLLOUT) events |= IO_EVENT_WRITABLE;
271
288
 
@@ -299,11 +316,16 @@ VALUE io_wait_transfer(VALUE _arguments) {
299
316
 
300
317
  VALUE result = IO_Event_Selector_fiber_transfer(arguments->data->backend.loop, 0, NULL);
301
318
 
319
+ if (DEBUG) fprintf(stderr, "io_wait_transfer errno=%d\n", errno);
320
+
302
321
  // If the fiber is being cancelled, it might be resumed with nil:
303
322
  if (!RTEST(result)) {
323
+ if (DEBUG) fprintf(stderr, "io_wait_transfer flags=false\n");
304
324
  return Qfalse;
305
325
  }
306
326
 
327
+ if (DEBUG) fprintf(stderr, "io_wait_transfer flags=%d\n", NUM2INT(result));
328
+
307
329
  return INT2NUM(events_from_epoll_flags(NUM2INT(result)));
308
330
  };
309
331
 
@@ -319,24 +341,38 @@ VALUE IO_Event_Selector_EPoll_io_wait(VALUE self, VALUE fiber, VALUE io, VALUE e
319
341
  event.events = epoll_flags_from_events(NUM2INT(events));
320
342
  event.data.ptr = (void*)fiber;
321
343
 
322
- // fprintf(stderr, "<- fiber=%p descriptor=%d\n", (void*)fiber, descriptor);
344
+ if (DEBUG) fprintf(stderr, "<- fiber=%p descriptor=%d\n", (void*)fiber, descriptor);
323
345
 
324
346
  // A better approach is to batch all changes:
325
347
  int result = epoll_ctl(data->descriptor, EPOLL_CTL_ADD, descriptor, &event);
326
348
 
327
349
  if (result == -1 && errno == EEXIST) {
328
350
  // The file descriptor was already inserted into epoll.
329
- duplicate = descriptor = dup(descriptor);
351
+ duplicate = dup(descriptor);
330
352
 
331
- rb_update_max_fd(duplicate);
332
-
333
- if (descriptor == -1)
353
+ if (duplicate == -1) {
334
354
  rb_sys_fail("IO_Event_Selector_EPoll_io_wait:dup");
355
+ }
356
+
357
+ descriptor = duplicate;
358
+
359
+ rb_update_max_fd(descriptor);
335
360
 
336
361
  result = epoll_ctl(data->descriptor, EPOLL_CTL_ADD, descriptor, &event);
337
362
  }
338
363
 
339
364
  if (result == -1) {
365
+ // If we duplicated the file descriptor, ensure it's closed:
366
+ if (duplicate >= 0) {
367
+ close(duplicate);
368
+ }
369
+
370
+ if (errno == EPERM) {
371
+ IO_Event_Selector_queue_push(&data->backend, fiber);
372
+ IO_Event_Selector_yield(&data->backend);
373
+ return events;
374
+ }
375
+
340
376
  rb_sys_fail("IO_Event_Selector_EPoll_io_wait:epoll_ctl");
341
377
  }
342
378
 
@@ -171,7 +171,6 @@ VALUE IO_Event_Selector_URing_raise(int argc, VALUE *argv, VALUE self)
171
171
  return IO_Event_Selector_raise(&data->backend, argc, argv);
172
172
  }
173
173
 
174
- int blocked;
175
174
  VALUE IO_Event_Selector_URing_ready_p(VALUE self) {
176
175
  struct IO_Event_Selector_URing *data = NULL;
177
176
  TypedData_Get_Struct(self, struct IO_Event_Selector_URing, &IO_Event_Selector_URing_Type, data);
@@ -292,8 +291,8 @@ short poll_flags_from_events(int events) {
292
291
  if (events & IO_EVENT_PRIORITY) flags |= POLLPRI;
293
292
  if (events & IO_EVENT_WRITABLE) flags |= POLLOUT;
294
293
 
295
- flags |= POLLERR;
296
294
  flags |= POLLHUP;
295
+ flags |= POLLERR;
297
296
 
298
297
  return flags;
299
298
  }
@@ -302,7 +301,8 @@ static inline
302
301
  int events_from_poll_flags(short flags) {
303
302
  int events = 0;
304
303
 
305
- if (flags & POLLIN) events |= IO_EVENT_READABLE;
304
+ // See `epoll.c` for details regarding POLLHUP:
305
+ if (flags & (POLLIN|POLLHUP|POLLERR)) events |= IO_EVENT_READABLE;
306
306
  if (flags & POLLPRI) events |= IO_EVENT_PRIORITY;
307
307
  if (flags & POLLOUT) events |= IO_EVENT_WRITABLE;
308
308
 
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module IO::Event
22
- VERSION = "1.0.3"
22
+ VERSION = "1.0.7"
23
23
  end
metadata CHANGED
@@ -1,14 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-event
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
+ - machty
9
+ - Benoit Daloze
10
+ - Delton Ding
8
11
  autorequire:
9
12
  bindir: bin
10
13
  cert_chain: []
11
- date: 2022-03-07 00:00:00.000000000 Z
14
+ date: 2022-05-02 00:00:00.000000000 Z
12
15
  dependencies:
13
16
  - !ruby/object:Gem::Dependency
14
17
  name: bake
@@ -73,12 +76,7 @@ extensions:
73
76
  - ext/extconf.rb
74
77
  extra_rdoc_files: []
75
78
  files:
76
- - ext/IO_Event.bundle
77
- - ext/Makefile
78
- - ext/event.o
79
- - ext/extconf.h
80
79
  - ext/extconf.rb
81
- - ext/interrupt.o
82
80
  - ext/io/event/event.c
83
81
  - ext/io/event/event.h
84
82
  - ext/io/event/interrupt.c
@@ -92,9 +90,6 @@ files:
92
90
  - ext/io/event/selector/selector.h
93
91
  - ext/io/event/selector/uring.c
94
92
  - ext/io/event/selector/uring.h
95
- - ext/kqueue.o
96
- - ext/mkmf.log
97
- - ext/selector.o
98
93
  - lib/io/event.rb
99
94
  - lib/io/event/debug/selector.rb
100
95
  - lib/io/event/interrupt.rb
@@ -120,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
115
  - !ruby/object:Gem::Version
121
116
  version: '0'
122
117
  requirements: []
123
- rubygems_version: 3.2.32
118
+ rubygems_version: 3.4.0.dev
124
119
  signing_key:
125
120
  specification_version: 4
126
121
  summary: An event loop.
data/ext/IO_Event.bundle DELETED
Binary file
data/ext/Makefile DELETED
@@ -1,267 +0,0 @@
1
-
2
- SHELL = /bin/sh
3
-
4
- # V=0 quiet, V=1 verbose. other values don't work.
5
- V = 0
6
- Q1 = $(V:1=)
7
- Q = $(Q1:0=@)
8
- ECHO1 = $(V:1=@ :)
9
- ECHO = $(ECHO1:0=@ echo)
10
- NULLCMD = :
11
-
12
- #### Start of system configuration section. ####
13
-
14
- srcdir = .
15
- topdir = /Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0
16
- hdrdir = $(topdir)
17
- arch_hdrdir = /Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21
18
- PATH_SEPARATOR = :
19
- VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir)/io/event:$(srcdir)/io/event/selector
20
- prefix = $(DESTDIR)/Users/samuel/.rubies/ruby-3.0.3
21
- rubysitearchprefix = $(rubylibprefix)/$(sitearch)
22
- rubyarchprefix = $(rubylibprefix)/$(arch)
23
- rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
24
- exec_prefix = $(prefix)
25
- vendorarchhdrdir = $(vendorhdrdir)/$(sitearch)
26
- sitearchhdrdir = $(sitehdrdir)/$(sitearch)
27
- rubyarchhdrdir = $(rubyhdrdir)/$(arch)
28
- vendorhdrdir = $(rubyhdrdir)/vendor_ruby
29
- sitehdrdir = $(rubyhdrdir)/site_ruby
30
- rubyhdrdir = $(includedir)/$(RUBY_VERSION_NAME)
31
- vendorarchdir = $(vendorlibdir)/$(sitearch)
32
- vendorlibdir = $(vendordir)/$(ruby_version)
33
- vendordir = $(rubylibprefix)/vendor_ruby
34
- sitearchdir = $(sitelibdir)/$(sitearch)
35
- sitelibdir = $(sitedir)/$(ruby_version)
36
- sitedir = $(rubylibprefix)/site_ruby
37
- rubyarchdir = $(rubylibdir)/$(arch)
38
- rubylibdir = $(rubylibprefix)/$(ruby_version)
39
- sitearchincludedir = $(includedir)/$(sitearch)
40
- archincludedir = $(includedir)/$(arch)
41
- sitearchlibdir = $(libdir)/$(sitearch)
42
- archlibdir = $(libdir)/$(arch)
43
- ridir = $(datarootdir)/$(RI_BASE_NAME)
44
- mandir = $(datarootdir)/man
45
- localedir = $(datarootdir)/locale
46
- libdir = $(exec_prefix)/lib
47
- psdir = $(docdir)
48
- pdfdir = $(docdir)
49
- dvidir = $(docdir)
50
- htmldir = $(docdir)
51
- infodir = $(datarootdir)/info
52
- docdir = $(datarootdir)/doc/$(PACKAGE)
53
- oldincludedir = $(SDKROOT)/usr/include
54
- includedir = $(prefix)/include
55
- runstatedir = $(localstatedir)/run
56
- localstatedir = $(prefix)/var
57
- sharedstatedir = $(prefix)/com
58
- sysconfdir = $(prefix)/etc
59
- datadir = $(datarootdir)
60
- datarootdir = $(prefix)/share
61
- libexecdir = $(exec_prefix)/libexec
62
- sbindir = $(exec_prefix)/sbin
63
- bindir = $(exec_prefix)/bin
64
- archdir = $(rubyarchdir)
65
-
66
-
67
- CC_WRAPPER =
68
- CC = clang -fdeclspec
69
- CXX = clang++ -fdeclspec
70
- LIBRUBY = $(LIBRUBY_A)
71
- LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
72
- LIBRUBYARG_SHARED =
73
- LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static -framework Security -framework Foundation $(MAINLIBS)
74
- empty =
75
- OUTFLAG = -o $(empty)
76
- COUTFLAG = -o $(empty)
77
- CSRCFLAG = $(empty)
78
-
79
- RUBY_EXTCONF_H = extconf.h
80
- cflags = $(optflags) $(debugflags) $(warnflags)
81
- cxxflags =
82
- optflags = -O3
83
- debugflags = -ggdb3
84
- warnflags = -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens
85
- cppflags =
86
- CCDLFLAGS = -fno-common
87
- CFLAGS = $(CCDLFLAGS) $(cflags) -pipe -Wall -std=c99 $(ARCH_FLAG)
88
- INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
89
- DEFS =
90
- CPPFLAGS = -DRUBY_EXTCONF_H=\"$(RUBY_EXTCONF_H)\" -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT $(DEFS) $(cppflags)
91
- CXXFLAGS = $(CCDLFLAGS) $(ARCH_FLAG)
92
- ldflags = -L. -fstack-protector-strong -L/opt/local/lib
93
- dldflags = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -L/opt/local/lib
94
- ARCH_FLAG = -m64
95
- DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
96
- LDSHARED = $(CC) -dynamic -bundle
97
- LDSHAREDXX = $(CXX) -dynamic -bundle
98
- AR = ar
99
- EXEEXT =
100
-
101
- RUBY_INSTALL_NAME = $(RUBY_BASE_NAME)
102
- RUBY_SO_NAME = ruby.3.0
103
- RUBYW_INSTALL_NAME =
104
- RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
105
- RUBYW_BASE_NAME = rubyw
106
- RUBY_BASE_NAME = ruby
107
-
108
- arch = arm64-darwin21
109
- sitearch = $(arch)
110
- ruby_version = 3.0.0
111
- ruby = $(bindir)/$(RUBY_BASE_NAME)
112
- RUBY = $(ruby)
113
- ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/backward.h $(hdrdir)/ruby/ruby.h $(hdrdir)/ruby/defines.h $(hdrdir)/ruby/missing.h $(hdrdir)/ruby/intern.h $(hdrdir)/ruby/st.h $(hdrdir)/ruby/subst.h $(arch_hdrdir)/ruby/config.h $(RUBY_EXTCONF_H)
114
-
115
- RM = rm -f
116
- RM_RF = $(RUBY) -run -e rm -- -rf
117
- RMDIRS = rmdir -p
118
- MAKEDIRS = /opt/local/bin/gmkdir -p
119
- INSTALL = /opt/local/bin/ginstall -c
120
- INSTALL_PROG = $(INSTALL) -m 0755
121
- INSTALL_DATA = $(INSTALL) -m 644
122
- COPY = cp
123
- TOUCH = exit >
124
-
125
- #### End of system configuration section. ####
126
-
127
- preload =
128
- libpath = . $(libdir) /opt/local/lib
129
- LIBPATH = -L. -L$(libdir) -L/opt/local/lib
130
- DEFFILE =
131
-
132
- CLEANFILES = mkmf.log
133
- DISTCLEANFILES =
134
- DISTCLEANDIRS =
135
-
136
- extout =
137
- extout_prefix =
138
- target_prefix =
139
- LOCAL_LIBS =
140
- LIBS =
141
- ORIG_SRCS =
142
- SRCS = $(ORIG_SRCS) event.c selector.c kqueue.c interrupt.c
143
- OBJS = event.o selector.o kqueue.o interrupt.o
144
- HDRS = $(srcdir)/extconf.h
145
- LOCAL_HDRS =
146
- TARGET = IO_Event
147
- TARGET_NAME = IO_Event
148
- TARGET_ENTRY = Init_$(TARGET_NAME)
149
- DLLIB = $(TARGET).bundle
150
- EXTSTATIC =
151
- STATIC_LIB =
152
-
153
- TIMESTAMP_DIR = .
154
- BINDIR = $(bindir)
155
- RUBYCOMMONDIR = $(sitedir)$(target_prefix)
156
- RUBYLIBDIR = $(sitelibdir)$(target_prefix)
157
- RUBYARCHDIR = $(sitearchdir)$(target_prefix)
158
- HDRDIR = $(sitehdrdir)$(target_prefix)
159
- ARCHHDRDIR = $(sitearchhdrdir)$(target_prefix)
160
- TARGET_SO_DIR =
161
- TARGET_SO = $(TARGET_SO_DIR)$(DLLIB)
162
- CLEANLIBS = $(TARGET_SO)
163
- CLEANOBJS = *.o *.bak
164
-
165
- all: $(DLLIB)
166
- static: $(STATIC_LIB)
167
- .PHONY: all install static install-so install-rb
168
- .PHONY: clean clean-so clean-static clean-rb
169
-
170
- clean-static::
171
- clean-rb-default::
172
- clean-rb::
173
- clean-so::
174
- clean: clean-so clean-static clean-rb-default clean-rb
175
- -$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
176
-
177
- distclean-rb-default::
178
- distclean-rb::
179
- distclean-so::
180
- distclean-static::
181
- distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb
182
- -$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
183
- -$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
184
- -$(Q)$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
185
-
186
- realclean: distclean
187
- install: install-so install-rb
188
-
189
- install-so: $(DLLIB) $(TIMESTAMP_DIR)/.sitearchdir.time
190
- $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
191
- clean-static::
192
- -$(Q)$(RM) $(STATIC_LIB)
193
- install-rb: pre-install-rb do-install-rb install-rb-default
194
- install-rb-default: pre-install-rb-default do-install-rb-default
195
- pre-install-rb: Makefile
196
- pre-install-rb-default: Makefile
197
- do-install-rb:
198
- do-install-rb-default:
199
- pre-install-rb-default:
200
- @$(NULLCMD)
201
- $(TIMESTAMP_DIR)/.sitearchdir.time:
202
- $(Q) $(MAKEDIRS) $(@D) $(RUBYARCHDIR)
203
- $(Q) $(TOUCH) $@
204
-
205
- site-install: site-install-so site-install-rb
206
- site-install-so: install-so
207
- site-install-rb: install-rb
208
-
209
- .SUFFIXES: .c .m .cc .mm .cxx .cpp .o .S
210
-
211
- .cc.o:
212
- $(ECHO) compiling $(<)
213
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
214
-
215
- .cc.S:
216
- $(ECHO) translating $(<)
217
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
218
-
219
- .mm.o:
220
- $(ECHO) compiling $(<)
221
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
222
-
223
- .mm.S:
224
- $(ECHO) translating $(<)
225
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
226
-
227
- .cxx.o:
228
- $(ECHO) compiling $(<)
229
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
230
-
231
- .cxx.S:
232
- $(ECHO) translating $(<)
233
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
234
-
235
- .cpp.o:
236
- $(ECHO) compiling $(<)
237
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
238
-
239
- .cpp.S:
240
- $(ECHO) translating $(<)
241
- $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
242
-
243
- .c.o:
244
- $(ECHO) compiling $(<)
245
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
246
-
247
- .c.S:
248
- $(ECHO) translating $(<)
249
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
250
-
251
- .m.o:
252
- $(ECHO) compiling $(<)
253
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
254
-
255
- .m.S:
256
- $(ECHO) translating $(<)
257
- $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
258
-
259
- $(TARGET_SO): $(OBJS) Makefile
260
- $(ECHO) linking shared-object $(DLLIB)
261
- -$(Q)$(RM) $(@)
262
- $(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
263
- $(Q) $(POSTLINK)
264
-
265
-
266
-
267
- $(OBJS): $(HDRS) $(ruby_headers)
data/ext/event.o DELETED
Binary file
data/ext/extconf.h DELETED
@@ -1,6 +0,0 @@
1
- #ifndef EXTCONF_H
2
- #define EXTCONF_H
3
- #define HAVE_RB_EXT_RACTOR_SAFE 1
4
- #define HAVE_SYS_EVENT_H 1
5
- #define HAVE_RB_FIBER_CURRENT 1
6
- #endif
data/ext/interrupt.o DELETED
Binary file
data/ext/kqueue.o DELETED
Binary file
data/ext/mkmf.log DELETED
@@ -1,291 +0,0 @@
1
- have_func: checking for rb_ext_ractor_safe()... -------------------- yes
2
-
3
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
4
- checked program was:
5
- /* begin */
6
- 1: #include "ruby.h"
7
- 2:
8
- 3: int main(int argc, char **argv)
9
- 4: {
10
- 5: return !!argv[argc];
11
- 6: }
12
- /* end */
13
-
14
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
15
- checked program was:
16
- /* begin */
17
- 1: #include "ruby.h"
18
- 2:
19
- 3: /*top*/
20
- 4: extern int t(void);
21
- 5: int main(int argc, char **argv)
22
- 6: {
23
- 7: if (argc > 1000000) {
24
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
25
- 9: printf("%d", (*tp)());
26
- 10: }
27
- 11:
28
- 12: return !!argv[argc];
29
- 13: }
30
- 14: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_ext_ractor_safe; return !p; }
31
- /* end */
32
-
33
- --------------------
34
-
35
- have_func: checking for &rb_fiber_transfer()... -------------------- no
36
-
37
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
38
- conftest.c:14:76: error: use of undeclared identifier 'rb_fiber_transfer'
39
- int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_transfer; return !p; }
40
- ^
41
- 1 error generated.
42
- checked program was:
43
- /* begin */
44
- 1: #include "ruby.h"
45
- 2:
46
- 3: /*top*/
47
- 4: extern int t(void);
48
- 5: int main(int argc, char **argv)
49
- 6: {
50
- 7: if (argc > 1000000) {
51
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
52
- 9: printf("%d", (*tp)());
53
- 10: }
54
- 11:
55
- 12: return !!argv[argc];
56
- 13: }
57
- 14: int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_transfer; return !p; }
58
- /* end */
59
-
60
- --------------------
61
-
62
- have_library: checking for -luring... -------------------- no
63
-
64
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc -luring "
65
- ld: library not found for -luring
66
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
67
- checked program was:
68
- /* begin */
69
- 1: #include "ruby.h"
70
- 2:
71
- 3: /*top*/
72
- 4: extern int t(void);
73
- 5: int main(int argc, char **argv)
74
- 6: {
75
- 7: if (argc > 1000000) {
76
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
77
- 9: printf("%d", (*tp)());
78
- 10: }
79
- 11:
80
- 12: return !!argv[argc];
81
- 13: }
82
- 14:
83
- 15: int t(void) { ; return 0; }
84
- /* end */
85
-
86
- --------------------
87
-
88
- have_header: checking for sys/epoll.h... -------------------- no
89
-
90
- "clang -E -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -o conftest.i"
91
- conftest.c:3:10: fatal error: 'sys/epoll.h' file not found
92
- #include <sys/epoll.h>
93
- ^~~~~~~~~~~~~
94
- 1 error generated.
95
- checked program was:
96
- /* begin */
97
- 1: #include "ruby.h"
98
- 2:
99
- 3: #include <sys/epoll.h>
100
- /* end */
101
-
102
- --------------------
103
-
104
- have_header: checking for sys/event.h... -------------------- yes
105
-
106
- "clang -E -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -o conftest.i"
107
- checked program was:
108
- /* begin */
109
- 1: #include "ruby.h"
110
- 2:
111
- 3: #include <sys/event.h>
112
- /* end */
113
-
114
- --------------------
115
-
116
- have_header: checking for sys/eventfd.h... -------------------- no
117
-
118
- "clang -E -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -o conftest.i"
119
- conftest.c:3:10: fatal error: 'sys/eventfd.h' file not found
120
- #include <sys/eventfd.h>
121
- ^~~~~~~~~~~~~~~
122
- 1 error generated.
123
- checked program was:
124
- /* begin */
125
- 1: #include "ruby.h"
126
- 2:
127
- 3: #include <sys/eventfd.h>
128
- /* end */
129
-
130
- --------------------
131
-
132
- have_func: checking for rb_io_descriptor()... -------------------- no
133
-
134
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
135
- conftest.c:14:57: error: use of undeclared identifier 'rb_io_descriptor'
136
- int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_io_descriptor; return !p; }
137
- ^
138
- 1 error generated.
139
- checked program was:
140
- /* begin */
141
- 1: #include "ruby.h"
142
- 2:
143
- 3: /*top*/
144
- 4: extern int t(void);
145
- 5: int main(int argc, char **argv)
146
- 6: {
147
- 7: if (argc > 1000000) {
148
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
149
- 9: printf("%d", (*tp)());
150
- 10: }
151
- 11:
152
- 12: return !!argv[argc];
153
- 13: }
154
- 14: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_io_descriptor; return !p; }
155
- /* end */
156
-
157
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
158
- Undefined symbols for architecture arm64:
159
- "_rb_io_descriptor", referenced from:
160
- _t in conftest-d90377.o
161
- ld: symbol(s) not found for architecture arm64
162
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
163
- checked program was:
164
- /* begin */
165
- 1: #include "ruby.h"
166
- 2:
167
- 3: /*top*/
168
- 4: extern int t(void);
169
- 5: int main(int argc, char **argv)
170
- 6: {
171
- 7: if (argc > 1000000) {
172
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
173
- 9: printf("%d", (*tp)());
174
- 10: }
175
- 11:
176
- 12: return !!argv[argc];
177
- 13: }
178
- 14: extern void rb_io_descriptor();
179
- 15: int t(void) { rb_io_descriptor(); return 0; }
180
- /* end */
181
-
182
- --------------------
183
-
184
- have_func: checking for &rb_process_status_wait()... -------------------- no
185
-
186
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
187
- conftest.c:14:76: error: use of undeclared identifier 'rb_process_status_wait'
188
- int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_process_status_wait; return !p; }
189
- ^
190
- 1 error generated.
191
- checked program was:
192
- /* begin */
193
- 1: #include "ruby.h"
194
- 2:
195
- 3: /*top*/
196
- 4: extern int t(void);
197
- 5: int main(int argc, char **argv)
198
- 6: {
199
- 7: if (argc > 1000000) {
200
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
201
- 9: printf("%d", (*tp)());
202
- 10: }
203
- 11:
204
- 12: return !!argv[argc];
205
- 13: }
206
- 14: int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_process_status_wait; return !p; }
207
- /* end */
208
-
209
- --------------------
210
-
211
- have_func: checking for rb_fiber_current()... -------------------- yes
212
-
213
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
214
- checked program was:
215
- /* begin */
216
- 1: #include "ruby.h"
217
- 2:
218
- 3: /*top*/
219
- 4: extern int t(void);
220
- 5: int main(int argc, char **argv)
221
- 6: {
222
- 7: if (argc > 1000000) {
223
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
224
- 9: printf("%d", (*tp)());
225
- 10: }
226
- 11:
227
- 12: return !!argv[argc];
228
- 13: }
229
- 14: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_fiber_current; return !p; }
230
- /* end */
231
-
232
- --------------------
233
-
234
- have_func: checking for &rb_fiber_raise()... -------------------- no
235
-
236
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.3/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -m64 -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
237
- conftest.c:14:76: error: use of undeclared identifier 'rb_fiber_raise'; did you mean 'rb_fiber_resume'?
238
- int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_raise; return !p; }
239
- ^~~~~~~~~~~~~~
240
- rb_fiber_resume
241
- /Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/internal/intern/cont.h:32:7: note: 'rb_fiber_resume' declared here
242
- VALUE rb_fiber_resume(VALUE fib, int argc, const VALUE *argv);
243
- ^
244
- 1 error generated.
245
- checked program was:
246
- /* begin */
247
- 1: #include "ruby.h"
248
- 2:
249
- 3: /*top*/
250
- 4: extern int t(void);
251
- 5: int main(int argc, char **argv)
252
- 6: {
253
- 7: if (argc > 1000000) {
254
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
255
- 9: printf("%d", (*tp)());
256
- 10: }
257
- 11:
258
- 12: return !!argv[argc];
259
- 13: }
260
- 14: int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_raise; return !p; }
261
- /* end */
262
-
263
- --------------------
264
-
265
- have_header: checking for ruby/io/buffer.h... -------------------- no
266
-
267
- "clang -E -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/arm64-darwin21 -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall -std=c99 conftest.c -o conftest.i"
268
- conftest.c:3:10: fatal error: 'ruby/io/buffer.h' file not found
269
- #include <ruby/io/buffer.h>
270
- ^~~~~~~~~~~~~~~~~~
271
- conftest.c:3:10: note: did not find header 'io/buffer.h' in framework 'ruby' (loaded from '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks')
272
- 1 error generated.
273
- checked program was:
274
- /* begin */
275
- 1: #include "ruby.h"
276
- 2:
277
- 3: #include <ruby/io/buffer.h>
278
- /* end */
279
-
280
- --------------------
281
-
282
- extconf.h is:
283
- /* begin */
284
- 1: #ifndef EXTCONF_H
285
- 2: #define EXTCONF_H
286
- 3: #define HAVE_RB_EXT_RACTOR_SAFE 1
287
- 4: #define HAVE_SYS_EVENT_H 1
288
- 5: #define HAVE_RB_FIBER_CURRENT 1
289
- 6: #endif
290
- /* end */
291
-
data/ext/selector.o DELETED
Binary file