xrb 0.4.0 → 0.5.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/ext/Makefile +270 -0
- data/ext/XRB_Extension.bundle +0 -0
- data/ext/escape.o +0 -0
- data/ext/extconf.h +5 -0
- data/ext/markup.o +0 -0
- data/ext/mkmf.log +69 -0
- data/ext/query.o +0 -0
- data/ext/tag.o +0 -0
- data/ext/template.o +0 -0
- data/ext/xrb/escape.c +22 -0
- data/ext/xrb/xrb.c +3 -1
- data/ext/xrb/xrb.h +2 -1
- data/ext/xrb.o +0 -0
- data/lib/xrb/version.rb +1 -1
- data/readme.md +3 -1
- data.tar.gz.sig +0 -0
- metadata +11 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ad30d066b439b8ec2f61fa0e6ce50ac25dcc95ee7f4efe266382b15b486e1cd0
|
|
4
|
+
data.tar.gz: 34d047c9ec0d9848f235e9e5becb7a9b33b25d3e5afdc6cfa097befc677f2b77
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b56901d68f70088b2fe021c772af7b62bd4a6153f35780142ca9ea1203395faa3bce87ab6d678866fbdf2c0a0201db17f01c0a556ef45c6e3a1d3c118be62838
|
|
7
|
+
data.tar.gz: efdfdaa9d81a87ee5d62e72a13169653fc13dade9ba555afbf2103c282c6f98792880599feda8de6aff0fc4cbe073ad3ceedc87bbf5cb5bbc2fb4966e7af6d0f
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/ext/Makefile
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
|
|
2
|
+
SHELL = /bin/sh
|
|
3
|
+
|
|
4
|
+
# V=0 quiet, V=1 verbose. other values don't work.
|
|
5
|
+
V = 0
|
|
6
|
+
V0 = $(V:0=)
|
|
7
|
+
Q1 = $(V:1=)
|
|
8
|
+
Q = $(Q1:0=@)
|
|
9
|
+
ECHO1 = $(V:1=@ :)
|
|
10
|
+
ECHO = $(ECHO1:0=@ echo)
|
|
11
|
+
NULLCMD = :
|
|
12
|
+
|
|
13
|
+
#### Start of system configuration section. ####
|
|
14
|
+
|
|
15
|
+
srcdir = .
|
|
16
|
+
topdir = /Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0
|
|
17
|
+
hdrdir = $(topdir)
|
|
18
|
+
arch_hdrdir = /Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0/arm64-darwin23
|
|
19
|
+
PATH_SEPARATOR = :
|
|
20
|
+
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir)/xrb
|
|
21
|
+
prefix = $(DESTDIR)/Users/samuel/.rubies/ruby-3.3.0
|
|
22
|
+
rubysitearchprefix = $(rubylibprefix)/$(sitearch)
|
|
23
|
+
rubyarchprefix = $(rubylibprefix)/$(arch)
|
|
24
|
+
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
|
|
25
|
+
exec_prefix = $(prefix)
|
|
26
|
+
vendorarchhdrdir = $(vendorhdrdir)/$(sitearch)
|
|
27
|
+
sitearchhdrdir = $(sitehdrdir)/$(sitearch)
|
|
28
|
+
rubyarchhdrdir = $(rubyhdrdir)/$(arch)
|
|
29
|
+
vendorhdrdir = $(rubyhdrdir)/vendor_ruby
|
|
30
|
+
sitehdrdir = $(rubyhdrdir)/site_ruby
|
|
31
|
+
rubyhdrdir = $(includedir)/$(RUBY_VERSION_NAME)
|
|
32
|
+
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
|
33
|
+
vendorlibdir = $(vendordir)/$(ruby_version)
|
|
34
|
+
vendordir = $(rubylibprefix)/vendor_ruby
|
|
35
|
+
sitearchdir = $(sitelibdir)/$(sitearch)
|
|
36
|
+
sitelibdir = $(sitedir)/$(ruby_version)
|
|
37
|
+
sitedir = $(rubylibprefix)/site_ruby
|
|
38
|
+
rubyarchdir = $(rubylibdir)/$(arch)
|
|
39
|
+
rubylibdir = $(rubylibprefix)/$(ruby_version)
|
|
40
|
+
sitearchincludedir = $(includedir)/$(sitearch)
|
|
41
|
+
archincludedir = $(includedir)/$(arch)
|
|
42
|
+
sitearchlibdir = $(libdir)/$(sitearch)
|
|
43
|
+
archlibdir = $(libdir)/$(arch)
|
|
44
|
+
ridir = $(datarootdir)/$(RI_BASE_NAME)
|
|
45
|
+
mandir = $(datarootdir)/man
|
|
46
|
+
localedir = $(datarootdir)/locale
|
|
47
|
+
libdir = $(exec_prefix)/lib
|
|
48
|
+
psdir = $(docdir)
|
|
49
|
+
pdfdir = $(docdir)
|
|
50
|
+
dvidir = $(docdir)
|
|
51
|
+
htmldir = $(docdir)
|
|
52
|
+
infodir = $(datarootdir)/info
|
|
53
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
|
54
|
+
oldincludedir = $(DESTDIR)/usr/include
|
|
55
|
+
includedir = $(SDKROOT)$(prefix)/include
|
|
56
|
+
runstatedir = $(localstatedir)/run
|
|
57
|
+
localstatedir = $(prefix)/var
|
|
58
|
+
sharedstatedir = $(prefix)/com
|
|
59
|
+
sysconfdir = $(prefix)/etc
|
|
60
|
+
datadir = $(datarootdir)
|
|
61
|
+
datarootdir = $(prefix)/share
|
|
62
|
+
libexecdir = $(exec_prefix)/libexec
|
|
63
|
+
sbindir = $(exec_prefix)/sbin
|
|
64
|
+
bindir = $(exec_prefix)/bin
|
|
65
|
+
archdir = $(rubyarchdir)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
CC_WRAPPER =
|
|
69
|
+
CC = clang
|
|
70
|
+
CXX = clang++
|
|
71
|
+
LIBRUBY = $(LIBRUBY_A)
|
|
72
|
+
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
|
73
|
+
LIBRUBYARG_SHARED =
|
|
74
|
+
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static -framework CoreFoundation $(MAINLIBS)
|
|
75
|
+
empty =
|
|
76
|
+
OUTFLAG = -o $(empty)
|
|
77
|
+
COUTFLAG = -o $(empty)
|
|
78
|
+
CSRCFLAG = $(empty)
|
|
79
|
+
|
|
80
|
+
RUBY_EXTCONF_H = extconf.h
|
|
81
|
+
cflags = -fdeclspec $(optflags) $(debugflags) $(warnflags)
|
|
82
|
+
cxxflags =
|
|
83
|
+
optflags = -O3 -fno-fast-math
|
|
84
|
+
debugflags = -ggdb3
|
|
85
|
+
warnflags = -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -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 -Wmisleading-indentation -Wundef
|
|
86
|
+
cppflags =
|
|
87
|
+
CCDLFLAGS = -fno-common
|
|
88
|
+
CFLAGS = $(CCDLFLAGS) $(cflags) -pipe -O3 -Wall -Wno-unknown-pragmas -std=c99 $(ARCH_FLAG)
|
|
89
|
+
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
|
90
|
+
DEFS =
|
|
91
|
+
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)
|
|
92
|
+
CXXFLAGS = $(CCDLFLAGS) -fdeclspec $(ARCH_FLAG)
|
|
93
|
+
ldflags = -L. -fstack-protector-strong -L/opt/local/lib
|
|
94
|
+
dldflags = -L/opt/local/lib -Wl,-undefined,dynamic_lookup -bundle_loader '$(BUILTRUBY)'
|
|
95
|
+
ARCH_FLAG = -arch arm64
|
|
96
|
+
DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
|
|
97
|
+
LDSHARED = $(CC) -dynamic -bundle
|
|
98
|
+
LDSHAREDXX = $(CXX) -dynamic -bundle
|
|
99
|
+
AR = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar
|
|
100
|
+
EXEEXT =
|
|
101
|
+
|
|
102
|
+
RUBY_INSTALL_NAME = $(RUBY_BASE_NAME)
|
|
103
|
+
RUBY_SO_NAME = ruby.3.3
|
|
104
|
+
RUBYW_INSTALL_NAME =
|
|
105
|
+
RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
|
|
106
|
+
RUBYW_BASE_NAME = rubyw
|
|
107
|
+
RUBY_BASE_NAME = ruby
|
|
108
|
+
|
|
109
|
+
arch = arm64-darwin23
|
|
110
|
+
sitearch = $(arch)
|
|
111
|
+
ruby_version = 3.3.0
|
|
112
|
+
ruby = $(bindir)/$(RUBY_BASE_NAME)
|
|
113
|
+
RUBY = $(ruby)
|
|
114
|
+
BUILTRUBY = $(bindir)/$(RUBY_BASE_NAME)
|
|
115
|
+
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)
|
|
116
|
+
|
|
117
|
+
RM = rm -f
|
|
118
|
+
RM_RF = rm -fr
|
|
119
|
+
RMDIRS = rmdir -p
|
|
120
|
+
MAKEDIRS = /opt/local/bin/gmkdir -p
|
|
121
|
+
INSTALL = /opt/local/bin/ginstall -c
|
|
122
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
|
123
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
|
124
|
+
COPY = cp
|
|
125
|
+
TOUCH = exit >
|
|
126
|
+
|
|
127
|
+
#### End of system configuration section. ####
|
|
128
|
+
|
|
129
|
+
preload =
|
|
130
|
+
libpath = . $(libdir) /opt/local/lib
|
|
131
|
+
LIBPATH = -L. -L$(libdir) -L/opt/local/lib
|
|
132
|
+
DEFFILE =
|
|
133
|
+
|
|
134
|
+
CLEANFILES = mkmf.log
|
|
135
|
+
DISTCLEANFILES =
|
|
136
|
+
DISTCLEANDIRS =
|
|
137
|
+
|
|
138
|
+
extout =
|
|
139
|
+
extout_prefix =
|
|
140
|
+
target_prefix =
|
|
141
|
+
LOCAL_LIBS =
|
|
142
|
+
LIBS = -lpthread
|
|
143
|
+
ORIG_SRCS =
|
|
144
|
+
SRCS = $(ORIG_SRCS) escape.c markup.c query.c tag.c template.c xrb.c
|
|
145
|
+
OBJS = escape.o markup.o query.o tag.o template.o xrb.o
|
|
146
|
+
HDRS = $(srcdir)/extconf.h
|
|
147
|
+
LOCAL_HDRS =
|
|
148
|
+
TARGET = XRB_Extension
|
|
149
|
+
TARGET_NAME = XRB_Extension
|
|
150
|
+
TARGET_ENTRY = Init_$(TARGET_NAME)
|
|
151
|
+
DLLIB = $(TARGET).bundle
|
|
152
|
+
EXTSTATIC =
|
|
153
|
+
STATIC_LIB =
|
|
154
|
+
|
|
155
|
+
TIMESTAMP_DIR = .
|
|
156
|
+
BINDIR = $(bindir)
|
|
157
|
+
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
|
158
|
+
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
|
159
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
|
160
|
+
HDRDIR = $(sitehdrdir)$(target_prefix)
|
|
161
|
+
ARCHHDRDIR = $(sitearchhdrdir)$(target_prefix)
|
|
162
|
+
TARGET_SO_DIR =
|
|
163
|
+
TARGET_SO = $(TARGET_SO_DIR)$(DLLIB)
|
|
164
|
+
CLEANLIBS = $(TARGET_SO) $(TARGET_SO).dSYM
|
|
165
|
+
CLEANOBJS = $(OBJS) *.bak
|
|
166
|
+
TARGET_SO_DIR_TIMESTAMP = $(TIMESTAMP_DIR)/.sitearchdir.time
|
|
167
|
+
|
|
168
|
+
all: $(DLLIB)
|
|
169
|
+
static: $(STATIC_LIB)
|
|
170
|
+
.PHONY: all install static install-so install-rb
|
|
171
|
+
.PHONY: clean clean-so clean-static clean-rb
|
|
172
|
+
|
|
173
|
+
clean-static::
|
|
174
|
+
clean-rb-default::
|
|
175
|
+
clean-rb::
|
|
176
|
+
clean-so::
|
|
177
|
+
clean: clean-so clean-static clean-rb-default clean-rb
|
|
178
|
+
-$(Q)$(RM_RF) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
|
|
179
|
+
|
|
180
|
+
distclean-rb-default::
|
|
181
|
+
distclean-rb::
|
|
182
|
+
distclean-so::
|
|
183
|
+
distclean-static::
|
|
184
|
+
distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb
|
|
185
|
+
-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
|
186
|
+
-$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
|
187
|
+
-$(Q)$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
|
|
188
|
+
|
|
189
|
+
realclean: distclean
|
|
190
|
+
install: install-so install-rb
|
|
191
|
+
|
|
192
|
+
install-so: $(DLLIB) $(TARGET_SO_DIR_TIMESTAMP)
|
|
193
|
+
$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
|
194
|
+
clean-static::
|
|
195
|
+
-$(Q)$(RM) $(STATIC_LIB)
|
|
196
|
+
install-rb: pre-install-rb do-install-rb install-rb-default
|
|
197
|
+
install-rb-default: pre-install-rb-default do-install-rb-default
|
|
198
|
+
pre-install-rb: Makefile
|
|
199
|
+
pre-install-rb-default: Makefile
|
|
200
|
+
do-install-rb:
|
|
201
|
+
do-install-rb-default:
|
|
202
|
+
pre-install-rb-default:
|
|
203
|
+
@$(NULLCMD)
|
|
204
|
+
$(TARGET_SO_DIR_TIMESTAMP):
|
|
205
|
+
$(Q) $(MAKEDIRS) $(@D) $(RUBYARCHDIR)
|
|
206
|
+
$(Q) $(TOUCH) $@
|
|
207
|
+
|
|
208
|
+
site-install: site-install-so site-install-rb
|
|
209
|
+
site-install-so: install-so
|
|
210
|
+
site-install-rb: install-rb
|
|
211
|
+
|
|
212
|
+
.SUFFIXES: .c .m .cc .mm .cxx .cpp .o .S
|
|
213
|
+
|
|
214
|
+
.cc.o:
|
|
215
|
+
$(ECHO) compiling $(<)
|
|
216
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
|
|
217
|
+
|
|
218
|
+
.cc.S:
|
|
219
|
+
$(ECHO) translating $(<)
|
|
220
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
|
|
221
|
+
|
|
222
|
+
.mm.o:
|
|
223
|
+
$(ECHO) compiling $(<)
|
|
224
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
|
|
225
|
+
|
|
226
|
+
.mm.S:
|
|
227
|
+
$(ECHO) translating $(<)
|
|
228
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
|
|
229
|
+
|
|
230
|
+
.cxx.o:
|
|
231
|
+
$(ECHO) compiling $(<)
|
|
232
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
|
|
233
|
+
|
|
234
|
+
.cxx.S:
|
|
235
|
+
$(ECHO) translating $(<)
|
|
236
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
|
|
237
|
+
|
|
238
|
+
.cpp.o:
|
|
239
|
+
$(ECHO) compiling $(<)
|
|
240
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
|
|
241
|
+
|
|
242
|
+
.cpp.S:
|
|
243
|
+
$(ECHO) translating $(<)
|
|
244
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
|
|
245
|
+
|
|
246
|
+
.c.o:
|
|
247
|
+
$(ECHO) compiling $(<)
|
|
248
|
+
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
|
|
249
|
+
|
|
250
|
+
.c.S:
|
|
251
|
+
$(ECHO) translating $(<)
|
|
252
|
+
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
|
|
253
|
+
|
|
254
|
+
.m.o:
|
|
255
|
+
$(ECHO) compiling $(<)
|
|
256
|
+
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
|
|
257
|
+
|
|
258
|
+
.m.S:
|
|
259
|
+
$(ECHO) translating $(<)
|
|
260
|
+
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
|
|
261
|
+
|
|
262
|
+
$(TARGET_SO): $(OBJS) Makefile
|
|
263
|
+
$(ECHO) linking shared-object $(DLLIB)
|
|
264
|
+
-$(Q)$(RM) $(@)
|
|
265
|
+
$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
|
266
|
+
$(Q) $(POSTLINK)
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
$(OBJS): $(HDRS) $(ruby_headers)
|
|
Binary file
|
data/ext/escape.o
ADDED
|
Binary file
|
data/ext/extconf.h
ADDED
data/ext/markup.o
ADDED
|
Binary file
|
data/ext/mkmf.log
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
have_func: checking for rb_sym2str()... -------------------- yes
|
|
2
|
+
|
|
3
|
+
DYLD_LIBRARY_PATH=.:/Users/samuel/.rubies/ruby-3.3.0/lib "clang -o conftest -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0/arm64-darwin23 -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -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 -Wmisleading-indentation -Wundef -pipe -O3 -Wall -Wno-unknown-pragmas -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.3.0/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -arch arm64 -lruby.3.3-static -framework CoreFoundation -ldl -lobjc -lpthread -lpthread "
|
|
4
|
+
ld: warning: ignoring duplicate libraries: '-lpthread'
|
|
5
|
+
checked program was:
|
|
6
|
+
/* begin */
|
|
7
|
+
1: #include "ruby.h"
|
|
8
|
+
2:
|
|
9
|
+
3: int main(int argc, char **argv)
|
|
10
|
+
4: {
|
|
11
|
+
5: return !!argv[argc];
|
|
12
|
+
6: }
|
|
13
|
+
/* end */
|
|
14
|
+
|
|
15
|
+
DYLD_LIBRARY_PATH=.:/Users/samuel/.rubies/ruby-3.3.0/lib "clang -o conftest -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0/arm64-darwin23 -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -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 -Wmisleading-indentation -Wundef -pipe -O3 -Wall -Wno-unknown-pragmas -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.3.0/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -arch arm64 -lruby.3.3-static -framework CoreFoundation -ldl -lobjc -lpthread -lpthread "
|
|
16
|
+
ld: warning: ignoring duplicate libraries: '-lpthread'
|
|
17
|
+
checked program was:
|
|
18
|
+
/* begin */
|
|
19
|
+
1: #include "ruby.h"
|
|
20
|
+
2:
|
|
21
|
+
3: /*top*/
|
|
22
|
+
4: extern int t(void);
|
|
23
|
+
5: int main(int argc, char **argv)
|
|
24
|
+
6: {
|
|
25
|
+
7: if (argc > 1000000) {
|
|
26
|
+
8: int (* volatile tp)(void)=(int (*)(void))&t;
|
|
27
|
+
9: printf("%d", (*tp)());
|
|
28
|
+
10: }
|
|
29
|
+
11:
|
|
30
|
+
12: return !!argv[argc];
|
|
31
|
+
13: }
|
|
32
|
+
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_sym2str; return !p; }
|
|
33
|
+
/* end */
|
|
34
|
+
|
|
35
|
+
--------------------
|
|
36
|
+
|
|
37
|
+
have_func: checking for rb_str_cat_cstr()... -------------------- yes
|
|
38
|
+
|
|
39
|
+
DYLD_LIBRARY_PATH=.:/Users/samuel/.rubies/ruby-3.3.0/lib "clang -o conftest -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0/arm64-darwin23 -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.3.0/include/ruby-3.3.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -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 -Wmisleading-indentation -Wundef -pipe -O3 -Wall -Wno-unknown-pragmas -std=c99 conftest.c -L. -L/Users/samuel/.rubies/ruby-3.3.0/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -arch arm64 -lruby.3.3-static -framework CoreFoundation -ldl -lobjc -lpthread -lpthread "
|
|
40
|
+
ld: warning: ignoring duplicate libraries: '-lpthread'
|
|
41
|
+
checked program was:
|
|
42
|
+
/* begin */
|
|
43
|
+
1: #include "ruby.h"
|
|
44
|
+
2:
|
|
45
|
+
3: /*top*/
|
|
46
|
+
4: extern int t(void);
|
|
47
|
+
5: int main(int argc, char **argv)
|
|
48
|
+
6: {
|
|
49
|
+
7: if (argc > 1000000) {
|
|
50
|
+
8: int (* volatile tp)(void)=(int (*)(void))&t;
|
|
51
|
+
9: printf("%d", (*tp)());
|
|
52
|
+
10: }
|
|
53
|
+
11:
|
|
54
|
+
12: return !!argv[argc];
|
|
55
|
+
13: }
|
|
56
|
+
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_str_cat_cstr; return !p; }
|
|
57
|
+
/* end */
|
|
58
|
+
|
|
59
|
+
--------------------
|
|
60
|
+
|
|
61
|
+
extconf.h is:
|
|
62
|
+
/* begin */
|
|
63
|
+
1: #ifndef EXTCONF_H
|
|
64
|
+
2: #define EXTCONF_H
|
|
65
|
+
3: #define HAVE_RB_SYM2STR 1
|
|
66
|
+
4: #define HAVE_RB_STR_CAT_CSTR 1
|
|
67
|
+
5: #endif
|
|
68
|
+
/* end */
|
|
69
|
+
|
data/ext/query.o
ADDED
|
Binary file
|
data/ext/tag.o
ADDED
|
Binary file
|
data/ext/template.o
ADDED
|
Binary file
|
data/ext/xrb/escape.c
CHANGED
|
@@ -103,9 +103,27 @@ VALUE XRB_Markup_append_string(VALUE buffer, VALUE string) {
|
|
|
103
103
|
return XRB_Markup_append_buffer(buffer, s, p, end);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
+
VALUE XRB_Markup_append_slow(VALUE self, VALUE buffer, VALUE value) {
|
|
107
|
+
if (value == Qnil) return Qnil;
|
|
108
|
+
|
|
109
|
+
if (!XRB_Markup_is_markup(value)) {
|
|
110
|
+
value = XRB_Markup_escape_string(Qnil, value);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
rb_funcall(buffer, id_concat, 1, value);
|
|
114
|
+
|
|
115
|
+
return buffer;
|
|
116
|
+
}
|
|
117
|
+
|
|
106
118
|
VALUE XRB_Markup_append(VALUE self, VALUE buffer, VALUE value) {
|
|
107
119
|
if (value == Qnil) return Qnil;
|
|
108
120
|
|
|
121
|
+
if (RB_TYPE_P(buffer, T_STRING)) {
|
|
122
|
+
rb_str_modify(buffer);
|
|
123
|
+
} else {
|
|
124
|
+
return XRB_Markup_append_slow(self, buffer, value);
|
|
125
|
+
}
|
|
126
|
+
|
|
109
127
|
if (XRB_Markup_is_markup(value)) {
|
|
110
128
|
rb_str_append(buffer, value);
|
|
111
129
|
} else {
|
|
@@ -121,6 +139,10 @@ VALUE XRB_Markup_append(VALUE self, VALUE buffer, VALUE value) {
|
|
|
121
139
|
|
|
122
140
|
// Convert markup special characters to entities. May return the original string if no changes were made.
|
|
123
141
|
VALUE XRB_Markup_escape_string(VALUE self, VALUE string) {
|
|
142
|
+
if (rb_type(string) != T_STRING) {
|
|
143
|
+
rb_raise(rb_eTypeError, "expected a string");
|
|
144
|
+
}
|
|
145
|
+
|
|
124
146
|
const char * begin = RSTRING_PTR(string);
|
|
125
147
|
const char * end = begin + RSTRING_LEN(string);
|
|
126
148
|
|
data/ext/xrb/xrb.c
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
#include "escape.h"
|
|
9
9
|
|
|
10
10
|
VALUE rb_XRB = Qnil, rb_XRB_Native = Qnil, rb_XRB_Tag = Qnil, rb_XRB_Markup = Qnil, rb_XRB_MarkupString = Qnil, rb_XRB_ParseError = Qnil;
|
|
11
|
-
ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression, id_key_get, id_string, id_integer, id_append, id_assign, id_pair, id_new, id_name, id_attributes, id_closed, id_to_s, id_is_a;
|
|
11
|
+
ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression, id_key_get, id_string, id_integer, id_append, id_assign, id_pair, id_new, id_name, id_attributes, id_closed, id_to_s, id_is_a, id_concat;
|
|
12
12
|
|
|
13
13
|
void XRB_raise_error(const char * message, VALUE buffer, size_t offset) {
|
|
14
14
|
VALUE exception = rb_funcall(rb_XRB_ParseError, id_new, 3, rb_str_new_cstr(message), buffer, ULONG2NUM(offset));
|
|
@@ -47,6 +47,8 @@ void Init_XRB_Extension(void) {
|
|
|
47
47
|
id_to_s = rb_intern("to_s");
|
|
48
48
|
id_is_a = rb_intern("is_a?");
|
|
49
49
|
|
|
50
|
+
id_concat = rb_intern("<<");
|
|
51
|
+
|
|
50
52
|
rb_XRB = rb_define_module("XRB");
|
|
51
53
|
rb_gc_register_mark_object(rb_XRB);
|
|
52
54
|
|
data/ext/xrb/xrb.h
CHANGED
data/ext/xrb.o
ADDED
|
Binary file
|
data/lib/xrb/version.rb
CHANGED
data/readme.md
CHANGED
|
@@ -18,7 +18,7 @@ XRB is a templating system built loosely on top of XHTML markup. It uses efficie
|
|
|
18
18
|
<ul>
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
Generates
|
|
21
|
+
Generates the following output using `XRB::Template.load_file(path).to_string`:
|
|
22
22
|
|
|
23
23
|
``` xml
|
|
24
24
|
<h1>XRB Examples</h1>
|
|
@@ -48,6 +48,8 @@ Please see the [project documentation](https://socketry.github.io/xrb/) for more
|
|
|
48
48
|
|
|
49
49
|
## See Also
|
|
50
50
|
|
|
51
|
+
- [xrb-rails](https://github.com/socketry/xrb-rails) - A Rails ActionView integration for rendering XRB templates.
|
|
52
|
+
- [xrb-sanitize](https://github.com/socketry/xrb-sanitize) - A stream-based HTML sanitizer for XRB, based on the XRB Markup parser.
|
|
51
53
|
- [xrb-vscode](https://github.com/socketry/xrb-vscode) - A syntax highlighting package for Visual Studio Code.
|
|
52
54
|
- [trenni](https://github.com/ioquatix/trenni) - The original templating system which XRB is based on.
|
|
53
55
|
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xrb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -50,7 +50,17 @@ extra_rdoc_files: []
|
|
|
50
50
|
files:
|
|
51
51
|
- bake/xrb/entities.rb
|
|
52
52
|
- bake/xrb/parsers.rb
|
|
53
|
+
- ext/Makefile
|
|
54
|
+
- ext/XRB_Extension.bundle
|
|
55
|
+
- ext/escape.o
|
|
56
|
+
- ext/extconf.h
|
|
53
57
|
- ext/extconf.rb
|
|
58
|
+
- ext/markup.o
|
|
59
|
+
- ext/mkmf.log
|
|
60
|
+
- ext/query.o
|
|
61
|
+
- ext/tag.o
|
|
62
|
+
- ext/template.o
|
|
63
|
+
- ext/xrb.o
|
|
54
64
|
- ext/xrb/escape.c
|
|
55
65
|
- ext/xrb/escape.h
|
|
56
66
|
- ext/xrb/markup.c
|
metadata.gz.sig
CHANGED
|
Binary file
|