The R Project SVN R

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
52864 5807 d 2 h urbaneks /branches/R-exp-R5/ Experinental branch implementing "R5" ideas - extending S language to
create a more intuitive object system
 
51319 5974 d 18 h falcon /trunk/ any() and all() now return early if possible (try #2)

The implementation now avoids checking every element of the input if the
result is already determined. Regression tests are more complete and
easier to read.
 
51308 5975 d 12 h ripley /trunk/ r51298 was incorrect: back it out, add regression tests for the cases it got wrong.  
51298 5976 d 2 h falcon /trunk/ any() and all() now return early if possible

The implementation now avoids checking every element of the input if the
result is already determined.
 
49903 6143 d 22 h maechler /trunk/ logic operators now work with complex  
45446 6670 d 6 h ripley /trunk/src/main/ whitespace cleanup  
43283 6849 d 12 h ripley /trunk/ add warning if all/any do any unusual coercion  
43271 6850 d 7 h ripley /trunk/ omit zero-length objects in any() and all() to avoid coercion overhead.
correct misuses of any() for length(), e.g. in grep output.
 
42643 6910 d 12 h ripley /trunk/ make the rest of the group generics primitive  
42307 6942 d 9 h ripley /trunk/src/ change reference to GPL  
41680 7005 d 9 h ripley /trunk/ improvements to the handling of warning/error messages  
39866 7196 d 4 h duncan /trunk/src/ The following are half the files changed to compile R with C++.
These are the simple, safe changes that keep the stricter compiler happy.

Change variable new to _new, class to klass, this to This or _this, template to Template, not to Not.
Remove some duplicate routine declarations.
Modernize some K&R routine parameter definitions.
Make explicit the signature for some routine pointer types.
Declare mode in creating connection as a const char * const.
Correct some routine declarations.
Add a throw to some routine definitions if in C++ to match built-in definitions.
Made the Clinkage explicit for rwarnc, rexitc. Use enum labels/constants where necessary.

The goals of using g++ are
a) to use a stricter compiler to discover anomolies in our code,
b) be able to use g++ -fdump-translation-unit so that we can more readily
do code analysis on the routines, variables, expressions and at the very
least allow me to identify the use of global variables automatically
and propose refactoring strategies,
c) to explore the pros and cons of using an Object Oriented programming
language C++ as the base language to get extensibility at the system level
and take advantage of some higher-level language features such as exceptions.
 
36990 7507 d 21 h ripley /trunk/ reduce the number of visible symbols in libR.so from 1806 to 1136  
36820 7524 d 1 h ripley /trunk/ update FSF address  
35189 7657 d 22 h tlumley /trunk/src/main/ fixes from no-segfault.R under valgrind.  
32867 7851 d 10 h ripley /trunk/ update message info  
32233 7891 d 10 h ripley /trunk/src/ allow coercion in any/all, as Blue Book documents  
32228 7891 d 21 h ripley /trunk/src/ document what coercion all/any actually do  
31982 7918 d 9 h ripley /trunk/ fix arg matching bug in sum etc discovered by Pat Burns  
31887 7927 d 10 h ripley /trunk/src/ improve reporting of unimplemented types  

Show All