tioga 1.4 → 1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/Tioga_README +177 -139
  2. data/split/Dtable/dtable.c +3 -0
  3. data/split/Dtable/namespace.h +7 -3
  4. data/split/Dtable/symbols.h +2 -2
  5. data/split/Dvector/dvector.c +3 -2
  6. data/split/Dvector/namespace.h +7 -3
  7. data/split/Dvector/symbols.h +2 -2
  8. data/split/Flate/flate.c +2 -1
  9. data/split/Flate/namespace.h +7 -3
  10. data/split/Flate/symbols.h +2 -2
  11. data/split/Function/extconf.rb +1 -1
  12. data/split/Function/function.c +38 -6
  13. data/split/Function/joint_qsort.c +1 -2
  14. data/split/Function/namespace.h +7 -3
  15. data/split/Function/symbols.h +2 -2
  16. data/split/Tioga/axes.c +4 -5
  17. data/split/Tioga/figures.c +1 -0
  18. data/split/Tioga/figures.h +5 -3
  19. data/split/Tioga/lib/Arcs_and_Circles.rb +1 -1
  20. data/split/Tioga/lib/ColorConstants.rb +9 -9
  21. data/split/Tioga/lib/Creating_Paths.rb +1 -1
  22. data/split/Tioga/lib/FigMkr.rb +25 -23
  23. data/split/Tioga/lib/FigureConstants.rb +2 -2
  24. data/split/Tioga/lib/Figures_and_Plots.rb +6 -6
  25. data/split/Tioga/lib/Images.rb +2 -2
  26. data/split/Tioga/lib/MarkerConstants.rb +3 -3
  27. data/split/Tioga/lib/Markers.rb +6 -6
  28. data/split/Tioga/lib/Page_Frame_Bounds.rb +1 -1
  29. data/split/Tioga/lib/Rectangles.rb +1 -1
  30. data/split/Tioga/lib/Shading.rb +2 -2
  31. data/split/Tioga/lib/Special_Paths.rb +5 -5
  32. data/split/Tioga/lib/Strokes.rb +2 -2
  33. data/split/Tioga/lib/TeX_Text.rb +5 -5
  34. data/split/Tioga/lib/TexPreamble.rb +116 -116
  35. data/split/Tioga/lib/Transparency.rb +2 -2
  36. data/split/Tioga/lib/Using_Paths.rb +1 -1
  37. data/split/Tioga/lib/X_and_Y_Axes.rb +19 -15
  38. data/split/Tioga/lib/irb_tioga.rb +36 -11
  39. data/split/Tioga/lib/maker.rb +201 -0
  40. data/split/Tioga/lib/tioga_ui_cmds.rb +6 -2
  41. data/split/Tioga/namespace.h +7 -3
  42. data/split/Tioga/pdfcoords.c +20 -2
  43. data/split/Tioga/pdfs.h +1 -1
  44. data/split/Tioga/symbols.h +2 -2
  45. data/split/extconf.rb +7 -5
  46. data/split/namespace.h +7 -3
  47. data/split/symbols.c +1 -9
  48. data/split/symbols.h +2 -2
  49. metadata +19 -23
  50. data/split/Dtable/symbols.c +0 -92
  51. data/split/Dvector/symbols.c +0 -92
  52. data/split/Flate/symbols.c +0 -92
  53. data/split/Function/symbols.c +0 -92
  54. data/split/Tioga/symbols.c +0 -92
data/Tioga_README CHANGED
@@ -1,4 +1,4 @@
1
- This is the README for the Tioga kernel, version 1.4, January 21, 2007.
1
+ This is the README for the Tioga kernel, version 1.5, March 17, 2007.
2
2
 
3
3
  Copyright (C) 2005, 2006, 2007 Bill Paxton
4
4
 
@@ -20,6 +20,182 @@ This is the README for the Tioga kernel, version 1.4, January 21, 2007.
20
20
 
21
21
  << What's new >>
22
22
 
23
+ Version 1.5 is mainly Vincent's work, so my part of this release message
24
+ will be short. Remember how I killed off the Mac GUI last time? Turns out there
25
+ was one user who couldn't live without it -- me! So it's back, but I'm still not
26
+ making any promises about keeping it alive if Apple does something stupid in
27
+ coming releases. If you're interested in playing with it in spite of that warning,
28
+ it's available from my website (http://theory.kitp.ucsb.edu/~paxton/Tioga-1.5.dmg).
29
+
30
+ Cheers, Bill
31
+
32
+ [Vincent] Version 1.5 has seen a not-so-s�mall change inthe structure of the
33
+ tutorial, which now has local links to images. So the images are now included in the
34
+ tarball (though the -without-images don't have them, for those who have sparse
35
+ disk space or bandwidth). To get a local copy of the tutorial, just run rdoc
36
+ and then link doc/images to images using the following commands:
37
+
38
+ cd doc; ln -s ../images .
39
+
40
+ There are just a few new functions this time:
41
+ * FigureMaker#create_figure_temp_files has been made part of the public
42
+ interface of tioga, it produces only the intermediate pdf and TeX files but
43
+ doesn't run pdflatex (used by ctioga)
44
+ * a Function#derivative method has been added, that does what you think it
45
+ does.
46
+
47
+ The C code has been heavily tweaked to prevent segfaults on some
48
+ architectures/distributions, and some samples were added, notably one for
49
+ insets (I'll let you find it !).
50
+
51
+ Cheers, Vincent
52
+
53
+
54
+ << Quick Installation of Tioga >>
55
+
56
+ Are you feeling lucky? If so, try QUICK_INSTALL. This simply does
57
+ the steps for you that are described below. The install needs to copy some
58
+ files to the ruby directory. On the Mac, this probably means you need to do
59
+ the whole thing with a 'sudo'. For Linux, you may have to become root.
60
+ Once you've taken care of that, just run the QUICK_INSTALL script and
61
+ keep your fingers crossed.
62
+
63
+ You now have the option to run HOME_INSTALL instead, which will install the files to
64
+ your home directory (no root privileges needed). You just need to set your RUBYLIB
65
+ environment variable as reminded at the end of the file.
66
+
67
+ Please check that there are 0 failures and 0 errors at the end of the test.
68
+ Then, in your favorite PDF previewer, open the newly created 'tests/Icon_Test.pdf'
69
+ and compare it to the prebuilt 'samples/Icon.pdf'. They should be very similar!
70
+ If it all seems to be working, go directly to the << Documentation >> section below.
71
+
72
+
73
+ << Step-by-Step Installation >>
74
+
75
+ To get Tioga running, you need to have a working Ruby, a C compiler,
76
+ make, and pdflaxtex. Assuming you've got all that (more later if you don't),
77
+ connect to the Tioga directory that you just unpacked and do the following:
78
+
79
+ [ this has been changed, be careful ! ]
80
+
81
+ cd split
82
+ ruby extconf.rb
83
+ make
84
+ make install
85
+
86
+ This creates the Makefile, runs it, and finally does the actual
87
+ installation. The "make install" needs to copy some files to the ruby directory.
88
+ On the Mac, this probably means you need to do the whole thing inside a 'sudo'.
89
+ For Linux, you may have to become root.
90
+
91
+ Note that on Linux, the make will compile all the source files. On the Mac,
92
+ the tar file includes precompiled versions of everything, so the make won't
93
+ have anything to do. That's okay. Do the whole sequence anyway just to be safe.
94
+
95
+ You now have another option to install: if you replace the line
96
+ ruby extconf.rb
97
+ with
98
+ ruby extconf.rb --home
99
+ it will install the files to your home directory, namely ~/lib/ruby. You don't need root
100
+ privileges to do that, but make sure that you set RUBYLIB=~/lib/ruby somewhere, so that ruby
101
+ can find it.
102
+
103
+
104
+
105
+
106
+ << Checking The Installation >>
107
+
108
+ To make sure at least something works of out the newly installed stuff,
109
+ change directory to your new Tioga folder. Then enter this to the shell:
110
+
111
+ cd tests
112
+ ruby ts_Tioga.rb
113
+
114
+ This should produce something like the following if the install worked:
115
+
116
+ Loaded suite ts_Tioga
117
+ Started
118
+ .....................................................
119
+ compressed from 0 to 8
120
+ compressed from 13 to 21
121
+ compressed from 70 to 69
122
+ compressed from 3631 to 1642
123
+ .pdflatex -interaction nonstopmode Icon_Test.tex > pdflatex.log
124
+
125
+
126
+
127
+ >>> NOTE: please look at tests/Icon_Test.pdf and compare it to samples/Icon.pdf
128
+ .
129
+ Finished in 0.501211 seconds.
130
+
131
+ 55 tests, 647 assertions, 0 failures, 0 errors
132
+
133
+ [the numbers here are not up-to-date, tests are added everytime a feature is added, so it
134
+ is likely the numbers you see are greater - it means we're actually working ;-) !]
135
+
136
+ These tests ensure that Tioga is accessible and that some of the basic stuff is working.
137
+ Don't skip the visual check of the newly created file 'tests/Icon_Test.pdf'.
138
+ If that's ok, there's a good chance your installation is up and running.
139
+
140
+ The next step is to do the tutorial found in the documentation.
141
+
142
+
143
+
144
+ << Tutorial >>
145
+
146
+ Once you have Tioga installed, the on-line tutorial will help you
147
+ get started using it.
148
+
149
+ http://theory.kitp.ucsb.edu/~paxton/tioga_doc/classes/Tioga/Tutorial.html
150
+
151
+
152
+ << Documentation >>
153
+
154
+ Visit this website to access the documentation:
155
+
156
+ http://theory.kitp.ucsb.edu/~paxton/tioga_doc/index.html
157
+
158
+ If for some reason that link isn't working, go to my website,
159
+
160
+ http://theory.kitp.ucsb.edu/~paxton
161
+
162
+ and check there for a new link to the Tioga stuff.
163
+
164
+ Try to get by with the on-line documentation, but if you really
165
+ have a need to rebuild the documentation using Rdoc, I've
166
+ included a .document file in the release folder. However, all
167
+ the figures have direct links to jpegs on my website, so you'll
168
+ either have to live with that, or do a bunch of edits. Send me
169
+ an email if you'd like a tar file of the images.
170
+
171
+
172
+ << Open Source >>
173
+
174
+ You are welcome to take the Tioga source and do what you want with it
175
+ (within the bounds of the GNU license of course). But don't even think about
176
+ asking for support from me for debugging your new stuff! I have enough trouble
177
+ with my own bugs to keep me busy endlessly! But if it looks like a bug in Tioga,
178
+ please do let me know so I can try to fix it. Or even better, let me know
179
+ the fix along with the bug!
180
+
181
+
182
+ ----------------------------------
183
+
184
+ For more, visit my website: http://theory.kitp.ucsb.edu/~paxton
185
+
186
+ Best wishes,
187
+ Bill Paxton
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+ << What's old >>
196
+
197
+ Here are the old release messages:
198
+
23
199
  Version 1.4 is a major overhaul with particular emphasis on the tioga user interface.
24
200
  Please take a moment to go through the new section of the tutorial titled, CommandLine.
25
201
  It gives a detailed discussion of the new tioga command line interface that replaces
@@ -50,11 +226,6 @@ Additionnally, some more classical functionalities have been added:
50
226
  the markers, see the plot samples/figures/figures.rb: Arrows_second_take
51
227
  * a function Dvector.write has been added that does exactly the
52
228
  reverse of Dvector.(fancy_)read.
53
-
54
-
55
-
56
-
57
- << What's old >>
58
229
 
59
230
 
60
231
  Version 1.3.1 is as usual a bug-fix release, although bugs
@@ -237,136 +408,3 @@ Not only that, he sent along an implementation to fix the problem! What could I
237
408
  I had to put it in and make a new release. So thanks to Vincent, you can now include
238
409
  markers on the lines in legends. Details in the new documentation for 'save_legend_info'.
239
410
 
240
-
241
- << Quick Installation of Tioga >>
242
-
243
- Are you feeling lucky? If so, try QUICK_INSTALL. This simply does
244
- the steps for you that are described below. The install needs to copy some
245
- files to the ruby directory. On the Mac, this probably means you need to do
246
- the whole thing with a 'sudo'. For Linux, you may have to become root.
247
- Once you've taken care of that, just run the QUICK_INSTALL script and
248
- keep your fingers crossed.
249
-
250
- You now have the option to run HOME_INSTALL instead, which will install the files to
251
- your home directory (no root privileges needed). You just need to set your RUBYLIB
252
- environment variable as reminded at the end of the file.
253
-
254
- Please check that there are 0 failures and 0 errors at the end of the test.
255
- Then, in your favorite PDF previewer, open the newly created 'tests/Icon_Test.pdf'
256
- and compare it to the prebuilt 'samples/Icon.pdf'. They should be very similar!
257
- If it all seems to be working, go directly to the << Documentation >> section below.
258
-
259
-
260
- << Step-by-Step Installation >>
261
-
262
- To get Tioga running, you need to have a working Ruby, a C compiler,
263
- make, and pdflaxtex. Assuming you've got all that (more later if you don't),
264
- connect to the Tioga directory that you just unpacked and do the following:
265
-
266
- [ this has been changed, be careful ! ]
267
-
268
- cd split
269
- ruby extconf.rb
270
- make
271
- make install
272
-
273
- This creates the Makefile, runs it, and finally does the actual
274
- installation. The "make install" needs to copy some files to the ruby directory.
275
- On the Mac, this probably means you need to do the whole thing inside a 'sudo'.
276
- For Linux, you may have to become root.
277
-
278
- Note that on Linux, the make will compile all the source files. On the Mac,
279
- the tar file includes precompiled versions of everything, so the make won't
280
- have anything to do. That's okay. Do the whole sequence anyway just to be safe.
281
-
282
- You now have another option to install: if you replace the line
283
- ruby extconf.rb
284
- with
285
- ruby extconf.rb --home
286
- it will install the files to your home directory, namely ~/lib/ruby. You don't need root
287
- privileges to do that, but make sure that you set RUBYLIB=~/lib/ruby somewhere, so that ruby
288
- can find it.
289
-
290
-
291
-
292
-
293
- << Checking The Installation >>
294
-
295
- To make sure at least something works of out the newly installed stuff,
296
- change directory to your new Tioga folder. Then enter this to the shell:
297
-
298
- cd tests
299
- ruby ts_Tioga.rb
300
-
301
- This should produce something like the following if the install worked:
302
-
303
- Loaded suite ts_Tioga
304
- Started
305
- .....................................................
306
- compressed from 0 to 8
307
- compressed from 13 to 21
308
- compressed from 70 to 69
309
- compressed from 3631 to 1642
310
- .pdflatex -interaction nonstopmode Icon_Test.tex > pdflatex.log
311
-
312
-
313
-
314
- >>> NOTE: please look at tests/Icon_Test.pdf and compare it to samples/Icon.pdf
315
- .
316
- Finished in 0.501211 seconds.
317
-
318
- 55 tests, 647 assertions, 0 failures, 0 errors
319
-
320
- These tests ensure that Tioga is accessible and that some of the basic stuff is working.
321
- Don't skip the visual check of the newly created file 'tests/Icon_Test.pdf'.
322
- If that's ok, there's a good chance your installation is up and running.
323
-
324
- The next step is to do the tutorial found in the documentation.
325
-
326
-
327
-
328
- << Tutorial >>
329
-
330
- Once you have Tioga installed, the on-line tutorial will help you
331
- get started using it.
332
-
333
- http://theory.kitp.ucsb.edu/~paxton/tioga_doc/classes/Tioga/Tutorial.html
334
-
335
-
336
- << Documentation >>
337
-
338
- Visit this website to access the documentation:
339
-
340
- http://theory.kitp.ucsb.edu/~paxton/tioga_doc/index.html
341
-
342
- If for some reason that link isn't working, go to my website,
343
-
344
- http://theory.kitp.ucsb.edu/~paxton
345
-
346
- and check there for a new link to the Tioga stuff.
347
-
348
- Try to get by with the on-line documentation, but if you really
349
- have a need to rebuild the documentation using Rdoc, I've
350
- included a .document file in the release folder. However, all
351
- the figures have direct links to jpegs on my website, so you'll
352
- either have to live with that, or do a bunch of edits. Send me
353
- an email if you'd like a tar file of the images.
354
-
355
-
356
- << Open Source >>
357
-
358
- You are welcome to take the Tioga source and do what you want with it
359
- (within the bounds of the GNU license of course). But don't even think about
360
- asking for support from me for debugging your new stuff! I have enough trouble
361
- with my own bugs to keep me busy endlessly! But if it looks like a bug in Tioga,
362
- please do let me know so I can try to fix it. Or even better, let me know
363
- the fix along with the bug!
364
-
365
-
366
- ----------------------------------
367
-
368
- For more, visit my website: http://theory.kitp.ucsb.edu/~paxton
369
-
370
- Best wishes,
371
- Bill Paxton
372
-
@@ -27,6 +27,9 @@
27
27
  #include <math.h>
28
28
  #include "intern.h"
29
29
 
30
+ #include "../symbols.h"
31
+ #include "../symbols.c"
32
+
30
33
  #include <defs.h>
31
34
 
32
35
  /* safe storing of doubles */
@@ -34,14 +34,18 @@
34
34
  */
35
35
 
36
36
  #ifdef __APPLE__
37
- # define PRIVATE __private_extern__
37
+ # define INTERN __private_extern__
38
38
  # define PUBLIC
39
39
  #elif __GNUC__ >= 4 /* we have the visibility attribute */
40
- # define PRIVATE __attribute__ ((visibility ("hidden")))
40
+ # define INTERN __attribute__ ((visibility ("hidden")))
41
41
  # define PUBLIC __attribute__ ((visibility ("default")))
42
42
  #else /* not really good */
43
- # define PRIVATE
43
+ # define INTERN
44
44
  # define PUBLIC
45
45
  #endif /* __APPLE__ and __GNU_C_ >= 4*/
46
46
 
47
+ /* In any case, PRIVATE is static */
48
+
49
+ #define PRIVATE static
50
+
47
51
  #endif
@@ -22,10 +22,10 @@ PRIVATE void * rb_import_symbol_no_raise(VALUE module,
22
22
 
23
23
  #define DECLARE_SYMBOL(ret_type,name,args) \
24
24
  typedef ret_type (*rb_export_##name##_type) args;\
25
- PRIVATE rb_export_##name##_type name
25
+ INTERN rb_export_##name##_type name
26
26
 
27
27
  #define IMPLEMENT_SYMBOL(name)\
28
- PRIVATE rb_export_##name##_type name = 0;
28
+ INTERN rb_export_##name##_type name = 0;
29
29
 
30
30
  #define RB_IMPORT_SYMBOL(module, name) \
31
31
  name = (rb_export_##name##_type) rb_import_symbol(module, #name)
@@ -30,7 +30,8 @@
30
30
  #include "intern.h"
31
31
  #include "dvector_intern.h"
32
32
 
33
- #include <symbols.h>
33
+ #include "../symbols.h"
34
+ #include "../symbols.c"
34
35
 
35
36
  /* compiler-dependent definitions, such as is_okay_number */
36
37
  #include <defs.h>
@@ -5454,7 +5455,7 @@ void Init_Dvector() {
5454
5455
  rb_define_singleton_method(cDvector, "_load", dvector_load, 1);
5455
5456
 
5456
5457
  /* simple convolution */
5457
- rb_define_method(cDvector,"convolve", dvector_convolve, 2);
5458
+ rb_define_method(cDvector, "convolve", dvector_convolve, 2);
5458
5459
 
5459
5460
  dvector_output_fs = Qnil;
5460
5461
  rb_global_variable(&dvector_output_fs);
@@ -34,14 +34,18 @@
34
34
  */
35
35
 
36
36
  #ifdef __APPLE__
37
- # define PRIVATE __private_extern__
37
+ # define INTERN __private_extern__
38
38
  # define PUBLIC
39
39
  #elif __GNUC__ >= 4 /* we have the visibility attribute */
40
- # define PRIVATE __attribute__ ((visibility ("hidden")))
40
+ # define INTERN __attribute__ ((visibility ("hidden")))
41
41
  # define PUBLIC __attribute__ ((visibility ("default")))
42
42
  #else /* not really good */
43
- # define PRIVATE
43
+ # define INTERN
44
44
  # define PUBLIC
45
45
  #endif /* __APPLE__ and __GNU_C_ >= 4*/
46
46
 
47
+ /* In any case, PRIVATE is static */
48
+
49
+ #define PRIVATE static
50
+
47
51
  #endif
@@ -22,10 +22,10 @@ PRIVATE void * rb_import_symbol_no_raise(VALUE module,
22
22
 
23
23
  #define DECLARE_SYMBOL(ret_type,name,args) \
24
24
  typedef ret_type (*rb_export_##name##_type) args;\
25
- PRIVATE rb_export_##name##_type name
25
+ INTERN rb_export_##name##_type name
26
26
 
27
27
  #define IMPLEMENT_SYMBOL(name)\
28
- PRIVATE rb_export_##name##_type name = 0;
28
+ INTERN rb_export_##name##_type name = 0;
29
29
 
30
30
  #define RB_IMPORT_SYMBOL(module, name) \
31
31
  name = (rb_export_##name##_type) rb_import_symbol(module, #name)
data/split/Flate/flate.c CHANGED
@@ -1,7 +1,8 @@
1
1
  /* flate.c -- main file for Ruby extension
2
2
  */
3
3
 
4
- #include <symbols.h>
4
+ #include "../symbols.h"
5
+ #include "../symbols.c"
5
6
  #include "zlib.h"
6
7
  #include "flate_intern.h"
7
8
  /*