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 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
@@ -0,0 +1,12 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ demo/fastmath.rb
6
+ demo/hello.rb
7
+ example.rb
8
+ example2.rb
9
+ lib/inline.rb
10
+ test/test_inline.rb
11
+ tutorial/example1.rb
12
+ tutorial/example2.rb
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.