opsb-RubyInline 3.8.6
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.
- data/History.txt +392 -0
- data/Manifest.txt +12 -0
- data/README.txt +139 -0
- data/Rakefile +38 -0
- data/demo/fastmath.rb +27 -0
- data/demo/hello.rb +13 -0
- data/example.rb +86 -0
- data/example2.rb +34 -0
- data/lib/inline.rb +878 -0
- data/test/test_inline.rb +1051 -0
- data/tutorial/example1.rb +63 -0
- data/tutorial/example2.rb +96 -0
- metadata +152 -0
data/History.txt
ADDED
@@ -0,0 +1,392 @@
|
|
1
|
+
=== 3.8.6 / 2010-09-03
|
2
|
+
|
3
|
+
* 1 bug fix:
|
4
|
+
|
5
|
+
* Had to fix the ZenTest dependency to work with the whole 4.x series
|
6
|
+
|
7
|
+
=== 3.8.5 / 2010-09-01
|
8
|
+
|
9
|
+
* 1 bug fix:
|
10
|
+
|
11
|
+
* Added DLDFLAGS to compiler flags to fix OSX linking on 1.9.2
|
12
|
+
|
13
|
+
=== 3.8.4 / 2009-12-09
|
14
|
+
|
15
|
+
* 1 bug fix:
|
16
|
+
|
17
|
+
* Clean up example.rb and force removal of ~/.ruby_inline
|
18
|
+
|
19
|
+
=== 3.8.3 / 2009-08-07
|
20
|
+
|
21
|
+
* 1 minor enhancement:
|
22
|
+
|
23
|
+
* Added Inline::C#add_static to make consts cleaner
|
24
|
+
|
25
|
+
=== 3.8.2 / 2009-06-23
|
26
|
+
|
27
|
+
* 1 bug fix:
|
28
|
+
|
29
|
+
* ruby 1.9 expands __FILE__ and broke my tests
|
30
|
+
|
31
|
+
=== 3.8.1 / 2008-10-24
|
32
|
+
|
33
|
+
* 1 minor enhancement
|
34
|
+
|
35
|
+
* Inline registers all classes for hoe's INLINE=1 packaging feature.
|
36
|
+
|
37
|
+
=== 3.8.0 / 2008-10-22
|
38
|
+
|
39
|
+
* 8 minor enhancements:
|
40
|
+
|
41
|
+
* Inline::C now uses ZenTestMapping to automatically map C functions to ruby
|
42
|
+
names.
|
43
|
+
* Inline::C#map_c_const can now map to a ruby constant name.
|
44
|
+
* Added accessors for members of Data_Wrap_Structs. See Inline::C#accessor.
|
45
|
+
* Added long long, unsigned long long, off_t types to built-in type map.
|
46
|
+
* Added #alias_type_converter and #remove_type_converter.
|
47
|
+
* Consider MinGW (mingw) as valid Windows platform.
|
48
|
+
* Properly fallback to all the environment options under Windows. #22511.
|
49
|
+
* Properly join path under OS with drive letters. #22292.
|
50
|
+
|
51
|
+
* 1 bug fixes:
|
52
|
+
|
53
|
+
* Inline::C now uses rb_define_alloc_func().
|
54
|
+
|
55
|
+
=== 3.7.0 / 2008-06-09
|
56
|
+
|
57
|
+
* 1 major enhancements:
|
58
|
+
|
59
|
+
* Removed inline_package in favor of hoe's packaging.
|
60
|
+
|
61
|
+
* 2 minor enhancements:
|
62
|
+
|
63
|
+
* Switched from warn/exit to abort to fix buffering for error messages.
|
64
|
+
* Improved some error messages.
|
65
|
+
|
66
|
+
* 2 bug fixes:
|
67
|
+
|
68
|
+
* Fixes for rubinius.
|
69
|
+
* Fixes for 1.9.
|
70
|
+
|
71
|
+
=== 3.6.7 / 2008-03-20
|
72
|
+
|
73
|
+
* 3 minor enhancements:
|
74
|
+
|
75
|
+
* Added ability to work entirely without .ruby_inline dir. Thanks Kevin Clark!
|
76
|
+
* Updated history, readme, and rakefile for new hoe abilities.
|
77
|
+
* Cleaned up some really ugly schlock. Man, compiling sucks!
|
78
|
+
|
79
|
+
* 2 bug fixes:
|
80
|
+
|
81
|
+
* Fixes for 1.9.
|
82
|
+
* Add -I for platform-specific header dir (for ruby/config.h).
|
83
|
+
|
84
|
+
=== 3.6.6 / 2007-12-27
|
85
|
+
|
86
|
+
* 1 minor enhancement:
|
87
|
+
|
88
|
+
* Enhanced windows support thanks to Luis Lavena.
|
89
|
+
|
90
|
+
=== 3.6.5 / 2007-11-08
|
91
|
+
|
92
|
+
* 1 minor enhancement:
|
93
|
+
|
94
|
+
* Quick fix for OSX 10.5 native ruby (should be fixed in 10.5.2).
|
95
|
+
|
96
|
+
=== 3.6.4 / 2007-08-20
|
97
|
+
|
98
|
+
* 1 minor enhancement:
|
99
|
+
|
100
|
+
* Added ability to include ruby.h last. Thanks to Luc Heinrich.
|
101
|
+
|
102
|
+
=== 3.6.3 / 2007-04-27
|
103
|
+
|
104
|
+
* 7 minor enhancements:
|
105
|
+
|
106
|
+
* Added map_ruby_const and map_c_const to C builder.
|
107
|
+
* Converted example.rb to a real benchmark setup.
|
108
|
+
* Improved error messages.
|
109
|
+
* Added options hash for all C builder methods.
|
110
|
+
* Options hash can take optional :method_name param to have ruby name diff from c.
|
111
|
+
* Converted to a more traditional setup. Now I can heckle!
|
112
|
+
* Cleaned up ruby.h search.
|
113
|
+
|
114
|
+
* 2 bug fixes:
|
115
|
+
|
116
|
+
* Added CCDLFLAGS. _Should_ pick up -fPIC on misconfigured 64 bit machines.
|
117
|
+
* Broke up all warnings so progress report was cleaner.
|
118
|
+
|
119
|
+
=== 3.6.2 / 2006-10-12
|
120
|
+
|
121
|
+
* 2 bug fixes:
|
122
|
+
|
123
|
+
* comment stripper much more sane to fix problems on certain linux distros
|
124
|
+
* fixed a nit with older C compilers.
|
125
|
+
|
126
|
+
=== 3.6.1 / 2006-10-11
|
127
|
+
|
128
|
+
* 1 minor enhancement
|
129
|
+
|
130
|
+
* Hoe'd the Rakefile. :P
|
131
|
+
|
132
|
+
* 2 bug fixes
|
133
|
+
|
134
|
+
* Removed VALUE from @types because it is now in @@type_map.
|
135
|
+
* Tweak added for mingw32.
|
136
|
+
|
137
|
+
=== 3.6.0 / 2005-11-30 (omg I suck: actual release: 2006-09-15)
|
138
|
+
|
139
|
+
* 6 minor enhancements
|
140
|
+
|
141
|
+
* C builder can now be used directly for other foreign language glue.
|
142
|
+
* Pretty much all (c) functions are plain argument style, not argc/argv.
|
143
|
+
* Added Nathaniel and Dan's patches for windows support.
|
144
|
+
* Added VALUE as a default known type.
|
145
|
+
* Improved testing under $DEBUG.
|
146
|
+
* Deprecated $INLINE_FLAGS and $INLINE_LIBS are dead.
|
147
|
+
|
148
|
+
* 3 bug fixes
|
149
|
+
|
150
|
+
* Fixed a number of issues wrt testing.
|
151
|
+
* Cleaned up and cached certain calculations.
|
152
|
+
* Some windows compiler fixes went in, but MS compiler is a PITA still.
|
153
|
+
|
154
|
+
=== 3.5.0 / 2005-10-15
|
155
|
+
|
156
|
+
* 4 minor enhancements
|
157
|
+
|
158
|
+
* Switched to install for Makefile.
|
159
|
+
* Lots of minor cleanup.
|
160
|
+
* Added add_to_init to extend init methods. Great hack!
|
161
|
+
* Added 2 demo files used in the rubyconf 2005 presentation.
|
162
|
+
|
163
|
+
* 1 bug fix
|
164
|
+
|
165
|
+
* Fixed example in README.txt. OOPS!
|
166
|
+
|
167
|
+
=== 3.4.0 / 2005-07-13
|
168
|
+
|
169
|
+
* 2 minor enhancement
|
170
|
+
|
171
|
+
* Changed inline to take the language and a hash of options.
|
172
|
+
* Still backwards compatible, for now, and emits a warning.
|
173
|
+
* Options are available via the builder passed to your block.
|
174
|
+
|
175
|
+
* 2 bug fixes
|
176
|
+
|
177
|
+
* Modified caller discovery, yet again, due to changes in ruby 1.8.3.
|
178
|
+
* More compatible and clean with non-gems systems.
|
179
|
+
|
180
|
+
=== 3.3.2 / 2005-05-19
|
181
|
+
|
182
|
+
* 4 bug fixes
|
183
|
+
|
184
|
+
* Fixed a line number issue when using c_raw w/ multi-line signatures.
|
185
|
+
* Inline can now be invoked multiple times per class.
|
186
|
+
* Filled out rdoc.
|
187
|
+
* Fixed some old tests.
|
188
|
+
|
189
|
+
=== 3.3.1 / 2005-05-03
|
190
|
+
|
191
|
+
* 3 bug fixes
|
192
|
+
|
193
|
+
* Fixed a bug w/ unit tests involving caching of rootdir.
|
194
|
+
* Added a minor tweak to the file discovery when called through eval.
|
195
|
+
* Moved the packaging code into inline.rb in order to get rubygems wrapped scripts to work again (wrapper was breaking due to __FILE__ != $0).
|
196
|
+
|
197
|
+
=== 3.3.0 / 2005-04-22
|
198
|
+
|
199
|
+
* 2 minor enhancement
|
200
|
+
|
201
|
+
* Added inline_package, which helps you package inlined code into gems.
|
202
|
+
* inline_package also generates a Rakefile for you if you need it.
|
203
|
+
* inline.rb now (only) loads packaged code when present.
|
204
|
+
|
205
|
+
=== 3.2.1 / 2005-04-19
|
206
|
+
|
207
|
+
* 2 bug fixes
|
208
|
+
|
209
|
+
* Added double to typemap. Thanks Phil Tomson!
|
210
|
+
* Added a minor hack to get cygwin to work right--lemme know pls.
|
211
|
+
|
212
|
+
=== 3.2.0 / 2004-11-27
|
213
|
+
|
214
|
+
* 8 minor enhancements
|
215
|
+
|
216
|
+
* Gemified
|
217
|
+
* Added #line preprocessor directives to make debugging inside your ruby file practical.
|
218
|
+
* Added uninstall rule to Makefile
|
219
|
+
* Inline::C now generates classes directly instead of included modules.
|
220
|
+
* Better execeptions are thrown on error.
|
221
|
+
* Incorporated a bunch of changes from Jonathan Paisley:
|
222
|
+
* Generation of inline'd class methods. (c_singleton and c_raw_singleton)
|
223
|
+
* Fixed problems with nested module/classes.
|
224
|
+
* Inline can now extend the same class multiple times.
|
225
|
+
|
226
|
+
* 2 bug fixes
|
227
|
+
|
228
|
+
* Smarter require/instantiation to accomodate other languages better.
|
229
|
+
* Fixed a logic error where running good code, then bad, then bad again ran the original good code.
|
230
|
+
|
231
|
+
=== 3.1.0 / 2004-09-24
|
232
|
+
|
233
|
+
* 2 minor enhancement
|
234
|
+
|
235
|
+
* Extended API of Inline::C with prefix(code).
|
236
|
+
* Documented all public API.
|
237
|
+
|
238
|
+
* 2 bug fixes
|
239
|
+
|
240
|
+
* Cleaned a lot of code and tests.
|
241
|
+
* Removed nearly all tags.
|
242
|
+
|
243
|
+
=== 3.0.1 / 2004-02-24
|
244
|
+
|
245
|
+
* 2 bug fixes
|
246
|
+
|
247
|
+
* I let references to ZenTestUnit slip through the release. Removed.
|
248
|
+
* Converted History.txt to ZenWeb format.
|
249
|
+
|
250
|
+
=== 3.0.0 / 2003-12-23
|
251
|
+
|
252
|
+
* 3 major enhancements
|
253
|
+
|
254
|
+
* Complete rewrite with new design.
|
255
|
+
* Multiple language support, works with C/C++ out of the box.
|
256
|
+
* Multiple functions per compilation unit, now allowing entire classes to be defined and linked in one unit.
|
257
|
+
|
258
|
+
* Notes:
|
259
|
+
|
260
|
+
* I still need to write much better/complete documentation.
|
261
|
+
|
262
|
+
=== 2.2.0 / 2003-01-25
|
263
|
+
|
264
|
+
* 1 minor enhancements
|
265
|
+
|
266
|
+
* Touch all generated files to avoid unnecessary diffs.
|
267
|
+
|
268
|
+
* 1 bug fixes
|
269
|
+
|
270
|
+
* Added good profiling example in tutorial/*.
|
271
|
+
* Added profiling strategy in README.txt.
|
272
|
+
|
273
|
+
* Notes:
|
274
|
+
|
275
|
+
* Paired with Doug Beaver <snarly@beaver.net>
|
276
|
+
|
277
|
+
=== 2.1.1 / 2002-12-27
|
278
|
+
|
279
|
+
* 2 bug fixes
|
280
|
+
|
281
|
+
* Fixed a bug in inline.rb where it was comparing against inline.rb, not the caller.
|
282
|
+
* Tweaked example.rb to take the number of iterations as an option.
|
283
|
+
|
284
|
+
=== 2.1.0 / 2002-12-17
|
285
|
+
|
286
|
+
* 2 minor enhancements
|
287
|
+
|
288
|
+
* Added inline_c_raw to replace Inline.inline.
|
289
|
+
* Removed module Inline as a whole. This gets rid of some
|
290
|
+
* major version incompatibilities, tons of duplicate code, and
|
291
|
+
* just seems to make things happier.
|
292
|
+
|
293
|
+
* 4 bug fixes
|
294
|
+
|
295
|
+
* Added a fix from Michael Scholz to fix the use of $0 for file test.
|
296
|
+
* Added private and public declarations since we are invading
|
297
|
+
* class Module.
|
298
|
+
* Fixed tests... oops!
|
299
|
+
* Lots of clean up...
|
300
|
+
|
301
|
+
* Notes:
|
302
|
+
|
303
|
+
* Reviewed by Doug Beaver <snarly@beaver.net>
|
304
|
+
|
305
|
+
=== 2.0.0 / 2002-12-12
|
306
|
+
|
307
|
+
* 2 bug fixes
|
308
|
+
|
309
|
+
* Minor fix to get working on MacOS X (.so vs .bundle).
|
310
|
+
* Downgraded typemap to be compatible with 1.6.x.
|
311
|
+
|
312
|
+
* Notes:
|
313
|
+
|
314
|
+
* Paired w/ Doug Beaver <snarly@beaver.net>
|
315
|
+
|
316
|
+
=== 2.0.0 beta / 2002-11-22
|
317
|
+
|
318
|
+
* 1 major enhancements
|
319
|
+
|
320
|
+
* Added inline_c, a "compile-time" version of inline. Massively enhanced, this version has a limited form of C function parsing.
|
321
|
+
|
322
|
+
* 2 minor enhancements
|
323
|
+
|
324
|
+
* Deprecated Inline#inline for Module#inline_c. To be removed by 2.1.0.
|
325
|
+
* Extended example.rb to include a fully written inlined C function.
|
326
|
+
|
327
|
+
* 3 bug fixes
|
328
|
+
|
329
|
+
* Updated README.txt and improved some of the documentation.
|
330
|
+
* Added test and clean rules to Makefile.
|
331
|
+
* Removed the copious warnings if running ruby < 1.7.2.
|
332
|
+
|
333
|
+
* Notes:
|
334
|
+
|
335
|
+
* Paired w/ Doug Beaver <snarly@beaver.net>
|
336
|
+
|
337
|
+
=== 1.1.0 / 2002-11-01
|
338
|
+
|
339
|
+
* 2 minor enhancements
|
340
|
+
|
341
|
+
* Aliased methods are now inlined as well. 250x faster.
|
342
|
+
* ONLY on ruby 1.7*. Warns on ruby < 1.7.
|
343
|
+
* Added a makefile to automate running of all different benchmarks.
|
344
|
+
|
345
|
+
* 1 bug fixes
|
346
|
+
|
347
|
+
* Improved example to include an aliased method testcase.
|
348
|
+
|
349
|
+
=== 1.0.7 / 2002-09-22
|
350
|
+
|
351
|
+
* 1 minor enhancements
|
352
|
+
|
353
|
+
* Only compiles the generated code if it was different from the previous version.
|
354
|
+
|
355
|
+
* 1 bug fixes
|
356
|
+
|
357
|
+
* Improved security: Checks group and global write on home directory.
|
358
|
+
|
359
|
+
=== 1.0.6 / 2002-09-18
|
360
|
+
|
361
|
+
* 1 minor enhancements
|
362
|
+
|
363
|
+
* Added a prelude argument for header and datatype declarations.
|
364
|
+
|
365
|
+
* 3 bug fixes
|
366
|
+
|
367
|
+
* Only output stuff if invoked verbose (ie 'ruby -v ./example.rb').
|
368
|
+
* Added some compatibility code for windows.
|
369
|
+
* Declared requirement on POSIX system.
|
370
|
+
|
371
|
+
=== 1.0.5 / 2002-09-11
|
372
|
+
|
373
|
+
* 2 bug fixes
|
374
|
+
|
375
|
+
* Improved security model for UNIX. Still not sure about windoze.
|
376
|
+
* Fixed History.txt to be accurate, gave example in README.
|
377
|
+
|
378
|
+
=== 1.0.4 / 2002-09-10
|
379
|
+
|
380
|
+
* 1 major enhancements
|
381
|
+
|
382
|
+
* Released to sourceforge!
|
383
|
+
|
384
|
+
* 1 bug fixes
|
385
|
+
|
386
|
+
* A number of very minor bug fixes from IRC sessions w/ others.
|
387
|
+
|
388
|
+
=== 1.0.0 / 2002-09-05
|
389
|
+
|
390
|
+
* 1 major enhancements
|
391
|
+
|
392
|
+
* Birthday!
|
data/Manifest.txt
ADDED
data/README.txt
ADDED
@@ -0,0 +1,139 @@
|
|
1
|
+
= Ruby Inline
|
2
|
+
|
3
|
+
* http://rubyforge.org/projects/rubyinline/
|
4
|
+
* http://rubyinline.rubyforge.org/RubyInline/
|
5
|
+
* http://www.zenspider.com/ZSS/Products/RubyInline/
|
6
|
+
* mailto:ryand-ruby@zenspider.com
|
7
|
+
|
8
|
+
== DESCRIPTION:
|
9
|
+
|
10
|
+
Inline allows you to write foreign code within your ruby code. It
|
11
|
+
automatically determines if the code in question has changed and
|
12
|
+
builds it only when necessary. The extensions are then automatically
|
13
|
+
loaded into the class/module that defines it.
|
14
|
+
|
15
|
+
You can even write extra builders that will allow you to write inlined
|
16
|
+
code in any language. Use Inline::C as a template and look at
|
17
|
+
Module#inline for the required API.
|
18
|
+
|
19
|
+
== PACKAGING:
|
20
|
+
|
21
|
+
To package your binaries into a gem, use hoe's INLINE and
|
22
|
+
FORCE_PLATFORM env vars.
|
23
|
+
|
24
|
+
Example:
|
25
|
+
|
26
|
+
rake package INLINE=1
|
27
|
+
|
28
|
+
or:
|
29
|
+
|
30
|
+
rake package INLINE=1 FORCE_PLATFORM=mswin32
|
31
|
+
|
32
|
+
See hoe for more details.
|
33
|
+
|
34
|
+
== FEATURES/PROBLEMS:
|
35
|
+
|
36
|
+
+ Quick and easy inlining of your C or C++ code embedded in your ruby script.
|
37
|
+
+ Extendable to work with other languages.
|
38
|
+
+ Automatic conversion between ruby and C basic types
|
39
|
+
+ char, unsigned, unsigned int, char *, int, long, unsigned long
|
40
|
+
+ inline_c_raw exists for when the automatic conversion isn't sufficient.
|
41
|
+
+ Only recompiles if the inlined code has changed.
|
42
|
+
+ Pretends to be secure.
|
43
|
+
+ Only requires standard ruby libraries, nothing extra to download.
|
44
|
+
|
45
|
+
== SYNOPSYS:
|
46
|
+
|
47
|
+
require "inline"
|
48
|
+
class MyTest
|
49
|
+
inline do |builder|
|
50
|
+
builder.c "
|
51
|
+
long factorial(int max) {
|
52
|
+
int i=max, result=1;
|
53
|
+
while (i >= 2) { result *= i--; }
|
54
|
+
return result;
|
55
|
+
}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
t = MyTest.new()
|
59
|
+
factorial_5 = t.factorial(5)
|
60
|
+
|
61
|
+
== SYNOPSYS (C++):
|
62
|
+
|
63
|
+
require 'inline'
|
64
|
+
class MyTest
|
65
|
+
inline(:C) do |builder|
|
66
|
+
builder.include '<iostream>'
|
67
|
+
builder.add_compile_flags '-x c++', '-lstdc++'
|
68
|
+
builder.c '
|
69
|
+
void hello(int i) {
|
70
|
+
while (i-- > 0) {
|
71
|
+
std::cout << "hello" << std::endl;
|
72
|
+
}
|
73
|
+
}'
|
74
|
+
end
|
75
|
+
end
|
76
|
+
t = MyTest.new()
|
77
|
+
t.hello(3)
|
78
|
+
|
79
|
+
== (PSEUDO)BENCHMARKS:
|
80
|
+
|
81
|
+
> make bench
|
82
|
+
|
83
|
+
Running native
|
84
|
+
Type = Native , Iter = 1000000, T = 28.70058100 sec, 0.00002870 sec / iter
|
85
|
+
Running primer - preloads the compiler and stuff
|
86
|
+
With full builds
|
87
|
+
Type = Inline C , Iter = 1000000, T = 7.55118600 sec, 0.00000755 sec / iter
|
88
|
+
Type = InlineRaw, Iter = 1000000, T = 7.54488300 sec, 0.00000754 sec / iter
|
89
|
+
Type = Alias , Iter = 1000000, T = 7.53243100 sec, 0.00000753 sec / iter
|
90
|
+
Without builds
|
91
|
+
Type = Inline C , Iter = 1000000, T = 7.59543300 sec, 0.00000760 sec / iter
|
92
|
+
Type = InlineRaw, Iter = 1000000, T = 7.54097200 sec, 0.00000754 sec / iter
|
93
|
+
Type = Alias , Iter = 1000000, T = 7.53654000 sec, 0.00000754 sec / iter
|
94
|
+
|
95
|
+
== PROFILING STRATEGY:
|
96
|
+
|
97
|
+
0) Always keep a log of your progress and changes.
|
98
|
+
1) Run code with 'time' and large dataset.
|
99
|
+
2) Run code with '-rprofile' and smaller dataset, large enough to get good #s.
|
100
|
+
3) Examine profile output and translate 1 bottleneck to C.
|
101
|
+
4) Run new code with 'time' and large dataset. Repeat 2-3 if unsatisfied.
|
102
|
+
5) Run final code with 'time' and compare to the first run.
|
103
|
+
|
104
|
+
== REQUIREMENTS:
|
105
|
+
|
106
|
+
+ Ruby - 1.8.2 has been used on FreeBSD 4.6+ and MacOSX.
|
107
|
+
+ POSIX compliant system (ie pretty much any UNIX, or Cygwin on MS platforms).
|
108
|
+
+ A C/C++ compiler (the same one that compiled your ruby interpreter).
|
109
|
+
+ test::unit for running tests ( http://testunit.talbott.ws/ ).
|
110
|
+
|
111
|
+
== INSTALL:
|
112
|
+
|
113
|
+
+ make test (optional)
|
114
|
+
+ make install
|
115
|
+
|
116
|
+
== LICENSE:
|
117
|
+
|
118
|
+
(The MIT License)
|
119
|
+
|
120
|
+
Copyright (c) 2001-2007 Ryan Davis, Zen Spider Software
|
121
|
+
|
122
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
123
|
+
a copy of this software and associated documentation files (the
|
124
|
+
"Software"), to deal in the Software without restriction, including
|
125
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
126
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
127
|
+
permit persons to whom the Software is furnished to do so, subject to
|
128
|
+
the following conditions:
|
129
|
+
|
130
|
+
The above copyright notice and this permission notice shall be
|
131
|
+
included in all copies or substantial portions of the Software.
|
132
|
+
|
133
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
134
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
135
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
136
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
137
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
138
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
139
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|