opsb-RubyInline 3.8.6

Sign up to get free protection for your applications and to get access to all the features.
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.