Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-12-04 Thread Henrik Bengtsson
FYI, in R.utils (>= 1.28.4) you can use listDirectory() to control how
deep the recursion goes, which would give you protection against your
problem, e.g.

  R.utils::listDirectory("dir", recursive=5L)

where recursive=0L is equivalent to recursive=FALSE.  Using
recursive=TRUE corresponds to recursive=+Inf, that is infinite depth.
listDirectory() accepts similar arguments that list.files() does.

/Henrik

On Sat, Sep 28, 2013 at 5:06 PM, William Dunlap  wrote:
> The issue is not symbolic links per se, but ones that form loops.
> Note that you can detect such loops by running 'find -L ...' and
> looking for the error messages.  (find by default does not follow
> any symbolic links, which can be a problem also.)
>
> It is a shortcoming of the current version of list.files().
>
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
>
>
>> -Original Message-
>> From: jgrn...@gmail.com [mailto:jgrn...@gmail.com] On Behalf Of Jonathan
>> Greenberg
>> Sent: Saturday, September 28, 2013 10:51 AM
>> To: William Dunlap
>> Cc: r-help
>> Subject: Re: [R] Error: C stack usage is too close to the limit when using 
>> list.files()
>>
>> Thanks all -- ok, so the symbolic link issue is a distinct
>> possibility, but fundamentally doesn't solve the issue since most
>> users will have symbolic links on their machines SOMEPLACE, so a full
>> drive scan will run into these issues --  is list.files calling find,
>> or is it using a different algorithm?  This seems like a shortcoming
>> in the list.files algorithm -- is there a better solution (short of a
>> System call, which I'm still not sure will work on Macs without Xcode
>> -- a colleague of mine did NOT have Xcode, and reported not being able
>> to run find from the command line) -- perhaps a different package?
>>
>> --j
>>
>> On Fri, Sep 27, 2013 at 3:08 PM, William Dunlap  wrote:
>> > Toss a couple of extra files in there and you will see the output grow 
>> > exponentially.
>> >
>> > % touch dir/IMPORTANT_1 dir/subdir/IMPORTANT_2
>> >
>> > and in R those two new files cause 82 more strings to appear in 
>> > list.file's output:
>> >
>> >> nchar(list.files("dir", recursive=TRUE))
>> >  [1]  11  18  33  40  55  62  77  84  99 106 121 128 143 150 165 172 187 
>> > 194 209
>> > [20] 216 231 238 253 260 275 282 297 304 319 326 341 348 363 370 385 392 
>> > 407 414
>> > [39] 429 436 451 458 473 480 495 502 517 524 539 546 561 568 583 590 605 
>> > 612 627
>> > [58] 634 649 656 671 678 693 700 715 722 737 744 759 766 781 788 803 810 
>> > 825 832
>> > [77] 847 854 869 876 891 898 901
>> >
>> > 'find', by default, does not following symbolic links.
>> >
>> > % find dir
>> > dir
>> > dir/subdir
>> > dir/subdir/IMPORTANT_2
>> > dir/subdir/linkToUpperDir
>> > dir/IMPORTANT_1
>> >
>> > The -L option makes it follow them, but it won't follow loops:
>> >
>> > % find -L dir
>> > dir
>> > dir/subdir
>> > dir/subdir/IMPORTANT_2
>> > find: File system loop detected; `dir/subdir/linkToUpperDir' is part of 
>> > the same file
>> system loop as `dir'.
>> > dir/IMPORTANT_1
>> >
>> > Bill Dunlap
>> > Spotfire, TIBCO Software
>> > wdunlap tibco.com
>> >
>> >
>> >> -Original Message-
>> >> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] 
>> >> On
>> Behalf
>> >> Of William Dunlap
>> >> Sent: Friday, September 27, 2013 12:56 PM
>> >> To: Jonathan Greenberg; r-help
>> >> Subject: Re: [R] Error: C stack usage is too close to the limit when 
>> >> using list.files()
>> >>
>> >> Do you have some symbolic links that make loops in your file system?
>> >> list.files() has problems with such loops and find does not.  E.g.,  on a 
>> >> Linux box:
>> >>
>> >> % cd /tmp
>> >> % mkdir dir dir/subdir
>> >> % cd dir/subdir
>> >> % ln -s ../../dir linkToUpperDir
>> >> % cd /tmp
>> >> % R --quiet
>> >> > list.files("dir", recursive=TRUE, full=TRUE)
>> >> [1]
>> >>
>> "dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToU
>> >>
>> pperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpper

Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-28 Thread William Dunlap
The issue is not symbolic links per se, but ones that form loops.
Note that you can detect such loops by running 'find -L ...' and 
looking for the error messages.  (find by default does not follow
any symbolic links, which can be a problem also.)

It is a shortcoming of the current version of list.files().

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -Original Message-
> From: jgrn...@gmail.com [mailto:jgrn...@gmail.com] On Behalf Of Jonathan
> Greenberg
> Sent: Saturday, September 28, 2013 10:51 AM
> To: William Dunlap
> Cc: r-help
> Subject: Re: [R] Error: C stack usage is too close to the limit when using 
> list.files()
> 
> Thanks all -- ok, so the symbolic link issue is a distinct
> possibility, but fundamentally doesn't solve the issue since most
> users will have symbolic links on their machines SOMEPLACE, so a full
> drive scan will run into these issues --  is list.files calling find,
> or is it using a different algorithm?  This seems like a shortcoming
> in the list.files algorithm -- is there a better solution (short of a
> System call, which I'm still not sure will work on Macs without Xcode
> -- a colleague of mine did NOT have Xcode, and reported not being able
> to run find from the command line) -- perhaps a different package?
> 
> --j
> 
> On Fri, Sep 27, 2013 at 3:08 PM, William Dunlap  wrote:
> > Toss a couple of extra files in there and you will see the output grow 
> > exponentially.
> >
> > % touch dir/IMPORTANT_1 dir/subdir/IMPORTANT_2
> >
> > and in R those two new files cause 82 more strings to appear in list.file's 
> > output:
> >
> >> nchar(list.files("dir", recursive=TRUE))
> >  [1]  11  18  33  40  55  62  77  84  99 106 121 128 143 150 165 172 187 
> > 194 209
> > [20] 216 231 238 253 260 275 282 297 304 319 326 341 348 363 370 385 392 
> > 407 414
> > [39] 429 436 451 458 473 480 495 502 517 524 539 546 561 568 583 590 605 
> > 612 627
> > [58] 634 649 656 671 678 693 700 715 722 737 744 759 766 781 788 803 810 
> > 825 832
> > [77] 847 854 869 876 891 898 901
> >
> > 'find', by default, does not following symbolic links.
> >
> > % find dir
> > dir
> > dir/subdir
> > dir/subdir/IMPORTANT_2
> > dir/subdir/linkToUpperDir
> > dir/IMPORTANT_1
> >
> > The -L option makes it follow them, but it won't follow loops:
> >
> > % find -L dir
> > dir
> > dir/subdir
> > dir/subdir/IMPORTANT_2
> > find: File system loop detected; `dir/subdir/linkToUpperDir' is part of the 
> > same file
> system loop as `dir'.
> > dir/IMPORTANT_1
> >
> > Bill Dunlap
> > Spotfire, TIBCO Software
> > wdunlap tibco.com
> >
> >
> >> -Original Message-
> >> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On
> Behalf
> >> Of William Dunlap
> >> Sent: Friday, September 27, 2013 12:56 PM
> >> To: Jonathan Greenberg; r-help
> >> Subject: Re: [R] Error: C stack usage is too close to the limit when using 
> >> list.files()
> >>
> >> Do you have some symbolic links that make loops in your file system?
> >> list.files() has problems with such loops and find does not.  E.g.,  on a 
> >> Linux box:
> >>
> >> % cd /tmp
> >> % mkdir dir dir/subdir
> >> % cd dir/subdir
> >> % ln -s ../../dir linkToUpperDir
> >> % cd /tmp
> >> % R --quiet
> >> > list.files("dir", recursive=TRUE, full=TRUE)
> >> [1]
> >>
> "dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToU
> >>
> pperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkT
> >>
> oUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/li
> >>
> nkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdi
> >>
> r/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/su
> >>
> bdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir
> >>
> /subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpper
> >>
> Dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUp
> >>
> perDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkTo
> >>
> UpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/lin
> >> kToUpperDir/subdir/linkToUpperDir/s

Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-28 Thread Berend Hasselman

On 28-09-2013, at 19:51, Jonathan Greenberg  wrote:

> Thanks all -- ok, so the symbolic link issue is a distinct
> possibility, but fundamentally doesn't solve the issue since most
> users will have symbolic links on their machines SOMEPLACE, so a full
> drive scan will run into these issues --  is list.files calling find,
> or is it using a different algorithm?  This seems like a shortcoming
> in the list.files algorithm -- is there a better solution (short of a
> System call, which I'm still not sure will work on Macs without Xcode
> -- a colleague of mine did NOT have Xcode, and reported not being able
> to run find from the command line) -- perhaps a different package?
> 

Since Mac OS X Tiger at least  there is a find utility.
By doing a search here http://www.opensource.apple.com you can see that there 
is a find utility since 10.0
(to be found here 
http://www.opensource.apple.com/source/shell_cmds/shell_cmds-17.1/ ).
 
There must be something wrong with your colleague's setup.

Berend

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-28 Thread Jonathan Greenberg
Thanks all -- ok, so the symbolic link issue is a distinct
possibility, but fundamentally doesn't solve the issue since most
users will have symbolic links on their machines SOMEPLACE, so a full
drive scan will run into these issues --  is list.files calling find,
or is it using a different algorithm?  This seems like a shortcoming
in the list.files algorithm -- is there a better solution (short of a
System call, which I'm still not sure will work on Macs without Xcode
-- a colleague of mine did NOT have Xcode, and reported not being able
to run find from the command line) -- perhaps a different package?

--j

On Fri, Sep 27, 2013 at 3:08 PM, William Dunlap  wrote:
> Toss a couple of extra files in there and you will see the output grow 
> exponentially.
>
> % touch dir/IMPORTANT_1 dir/subdir/IMPORTANT_2
>
> and in R those two new files cause 82 more strings to appear in list.file's 
> output:
>
>> nchar(list.files("dir", recursive=TRUE))
>  [1]  11  18  33  40  55  62  77  84  99 106 121 128 143 150 165 172 187 194 
> 209
> [20] 216 231 238 253 260 275 282 297 304 319 326 341 348 363 370 385 392 407 
> 414
> [39] 429 436 451 458 473 480 495 502 517 524 539 546 561 568 583 590 605 612 
> 627
> [58] 634 649 656 671 678 693 700 715 722 737 744 759 766 781 788 803 810 825 
> 832
> [77] 847 854 869 876 891 898 901
>
> 'find', by default, does not following symbolic links.
>
> % find dir
> dir
> dir/subdir
> dir/subdir/IMPORTANT_2
> dir/subdir/linkToUpperDir
> dir/IMPORTANT_1
>
> The -L option makes it follow them, but it won't follow loops:
>
> % find -L dir
> dir
> dir/subdir
> dir/subdir/IMPORTANT_2
> find: File system loop detected; `dir/subdir/linkToUpperDir' is part of the 
> same file system loop as `dir'.
> dir/IMPORTANT_1
>
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
>
>
>> -Original Message-
>> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
>> Behalf
>> Of William Dunlap
>> Sent: Friday, September 27, 2013 12:56 PM
>> To: Jonathan Greenberg; r-help
>> Subject: Re: [R] Error: C stack usage is too close to the limit when using 
>> list.files()
>>
>> Do you have some symbolic links that make loops in your file system?
>> list.files() has problems with such loops and find does not.  E.g.,  on a 
>> Linux box:
>>
>> % cd /tmp
>> % mkdir dir dir/subdir
>> % cd dir/subdir
>> % ln -s ../../dir linkToUpperDir
>> % cd /tmp
>> % R --quiet
>> > list.files("dir", recursive=TRUE, full=TRUE)
>> [1]
>> "dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToU
>> pperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkT
>> oUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/li
>> nkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdi
>> r/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/su
>> bdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir
>> /subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpper
>> Dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUp
>> perDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkTo
>> UpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/lin
>> kToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir"
>> > system("find dir")
>> dir
>> dir/subdir
>> dir/subdir/linkToUpperDir
>>
>> Bill Dunlap
>> Spotfire, TIBCO Software
>> wdunlap tibco.com
>>
>>
>> > -Original Message-
>> > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] 
>> > On Behalf
>> > Of Jonathan Greenberg
>> > Sent: Friday, September 27, 2013 12:13 PM
>> > To: r-help
>> > Subject: [R] Error: C stack usage is too close to the limit when using 
>> > list.files()
>> >
>> > R-helpers:
>> >
>> > I'm running a file search on my entire drive (Mac OS X) using:
>> >
>> > files_found <- 
>> > list.files(dir="/",pattern=somepattern,recursive=TRUE,full.names=TRUE)
>> > where somepattern is a search pattern (which I have confirmed via a
>> > unix "find / -name somepattern" only returns ~ 3 results).
>> >
>> > I keep getting an error:
>> >
>> > Error: C stack usage is too close

Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-27 Thread William Dunlap
Toss a couple of extra files in there and you will see the output grow 
exponentially.

% touch dir/IMPORTANT_1 dir/subdir/IMPORTANT_2

and in R those two new files cause 82 more strings to appear in list.file's 
output:

> nchar(list.files("dir", recursive=TRUE))
 [1]  11  18  33  40  55  62  77  84  99 106 121 128 143 150 165 172 187 194 209
[20] 216 231 238 253 260 275 282 297 304 319 326 341 348 363 370 385 392 407 414
[39] 429 436 451 458 473 480 495 502 517 524 539 546 561 568 583 590 605 612 627
[58] 634 649 656 671 678 693 700 715 722 737 744 759 766 781 788 803 810 825 832
[77] 847 854 869 876 891 898 901

'find', by default, does not following symbolic links.

% find dir
dir
dir/subdir
dir/subdir/IMPORTANT_2
dir/subdir/linkToUpperDir
dir/IMPORTANT_1

The -L option makes it follow them, but it won't follow loops:

% find -L dir
dir
dir/subdir
dir/subdir/IMPORTANT_2
find: File system loop detected; `dir/subdir/linkToUpperDir' is part of the 
same file system loop as `dir'.
dir/IMPORTANT_1

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -Original Message-
> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
> Behalf
> Of William Dunlap
> Sent: Friday, September 27, 2013 12:56 PM
> To: Jonathan Greenberg; r-help
> Subject: Re: [R] Error: C stack usage is too close to the limit when using 
> list.files()
> 
> Do you have some symbolic links that make loops in your file system?
> list.files() has problems with such loops and find does not.  E.g.,  on a 
> Linux box:
> 
> % cd /tmp
> % mkdir dir dir/subdir
> % cd dir/subdir
> % ln -s ../../dir linkToUpperDir
> % cd /tmp
> % R --quiet
> > list.files("dir", recursive=TRUE, full=TRUE)
> [1]
> "dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToU
> pperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkT
> oUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/li
> nkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdi
> r/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/su
> bdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir
> /subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpper
> Dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUp
> perDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkTo
> UpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/lin
> kToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir"
> > system("find dir")
> dir
> dir/subdir
> dir/subdir/linkToUpperDir
> 
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
> 
> 
> > -Original Message-
> > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
> > Behalf
> > Of Jonathan Greenberg
> > Sent: Friday, September 27, 2013 12:13 PM
> > To: r-help
> > Subject: [R] Error: C stack usage is too close to the limit when using 
> > list.files()
> >
> > R-helpers:
> >
> > I'm running a file search on my entire drive (Mac OS X) using:
> >
> > files_found <- 
> > list.files(dir="/",pattern=somepattern,recursive=TRUE,full.names=TRUE)
> > where somepattern is a search pattern (which I have confirmed via a
> > unix "find / -name somepattern" only returns ~ 3 results).
> >
> > I keep getting an error:
> >
> > Error: C stack usage is too close to the limit
> >
> > when running this command.  Any ideas on 1) how to fix this or 2) if
> > there is an alternative to using list.files() to accomplish this
> > search without resorting to an external package?
> >
> > Cheers!
> >
> > --jonathan
> >
> >
> > --
> > Jonathan A. Greenberg, PhD
> > Assistant Professor
> > Global Environmental Analysis and Remote Sensing (GEARS) Laboratory
> > Department of Geography and Geographic Information Science
> > University of Illinois at Urbana-Champaign
> > 259 Computing Applications Building, MC-150
> > 605 East Springfield Avenue
> > Champaign, IL  61820-6371
> > Phone: 217-300-1924
> > http://www.geog.illinois.edu/~jgrn/
> > AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007
> >
> > __
> > R-help@r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> 

Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-27 Thread Berend Hasselman

On 27-09-2013, at 21:50, Jonathan Greenberg  wrote:

> Ben:
> 
> I'd like to avoid using that (previous version of my code solved it in
> that way) -- I would like cross-platform compatibility and I am pretty
> sure, along with Windows, vanilla Macs don't come with "find" either
> unless XCode has been installed.
> 

As far as I can tell Mac OS X provides a find utility (the Unix version). It is 
not part of Xcode.

Berend

> Is the list.files() code itself recursive when using recursive=TRUE
> (so it has one recursion per bottom-folder)?
> 
> --j
> 
> P.S. I recognized that in my initial post I indicated using "dir" as
> the parameter -- it should have been "path" (the error occurred
> through the correct usage of list.files(path="/",...)   That'll teach
> me not to copy/paste from my code...
> 
> On Fri, Sep 27, 2013 at 2:36 PM, Ben Bolker  wrote:
>> Jonathan Greenberg  illinois.edu> writes:
>> 
>>> 
>>> R-helpers:
>>> 
>>> I'm running a file search on my entire drive (Mac OS X) using:
>>> 
>>> files_found <-
>> list.files(dir="/",pattern=somepattern,recursive=TRUE,full.names=TRUE)
>>> where somepattern is a search pattern (which I have confirmed via a
>>> unix "find / -name somepattern" only returns ~ 3 results).
>>> 
>>> I keep getting an error:
>>> 
>>> Error: C stack usage is too close to the limit
>>> 
>>> when running this command.  Any ideas on 1) how to fix this or 2) if
>>> there is an alternative to using list.files() to accomplish this
>>> search without resorting to an external package?
>> 
>>  I assuming that using
>> 
>> system("find / -name somepattern")
>> 
>> (possibly with intern=TRUE) isn't allowed?  (I don't know what you're
>> trying to do, but if you don't need it to work on Windows-without-cygwin,
>> this should work across most Unix variants (although a "-print" might
>> be required)
>> 
>> __
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> 
> 
> 
> -- 
> Jonathan A. Greenberg, PhD
> Assistant Professor
> Global Environmental Analysis and Remote Sensing (GEARS) Laboratory
> Department of Geography and Geographic Information Science
> University of Illinois at Urbana-Champaign
> 259 Computing Applications Building, MC-150
> 605 East Springfield Avenue
> Champaign, IL  61820-6371
> Phone: 217-300-1924
> http://www.geog.illinois.edu/~jgrn/
> AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007
> 
> __
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-27 Thread William Dunlap
Do you have some symbolic links that make loops in your file system?
list.files() has problems with such loops and find does not.  E.g.,  on a Linux 
box:

% cd /tmp
% mkdir dir dir/subdir
% cd dir/subdir
% ln -s ../../dir linkToUpperDir
% cd /tmp
% R --quiet
> list.files("dir", recursive=TRUE, full=TRUE)
[1] 
"dir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir/subdir/linkToUpperDir"
> system("find dir")
dir
dir/subdir
dir/subdir/linkToUpperDir

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -Original Message-
> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
> Behalf
> Of Jonathan Greenberg
> Sent: Friday, September 27, 2013 12:13 PM
> To: r-help
> Subject: [R] Error: C stack usage is too close to the limit when using 
> list.files()
> 
> R-helpers:
> 
> I'm running a file search on my entire drive (Mac OS X) using:
> 
> files_found <- 
> list.files(dir="/",pattern=somepattern,recursive=TRUE,full.names=TRUE)
> where somepattern is a search pattern (which I have confirmed via a
> unix "find / -name somepattern" only returns ~ 3 results).
> 
> I keep getting an error:
> 
> Error: C stack usage is too close to the limit
> 
> when running this command.  Any ideas on 1) how to fix this or 2) if
> there is an alternative to using list.files() to accomplish this
> search without resorting to an external package?
> 
> Cheers!
> 
> --jonathan
> 
> 
> --
> Jonathan A. Greenberg, PhD
> Assistant Professor
> Global Environmental Analysis and Remote Sensing (GEARS) Laboratory
> Department of Geography and Geographic Information Science
> University of Illinois at Urbana-Champaign
> 259 Computing Applications Building, MC-150
> 605 East Springfield Avenue
> Champaign, IL  61820-6371
> Phone: 217-300-1924
> http://www.geog.illinois.edu/~jgrn/
> AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007
> 
> __
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-27 Thread Jonathan Greenberg
Ben:

I'd like to avoid using that (previous version of my code solved it in
that way) -- I would like cross-platform compatibility and I am pretty
sure, along with Windows, vanilla Macs don't come with "find" either
unless XCode has been installed.

Is the list.files() code itself recursive when using recursive=TRUE
(so it has one recursion per bottom-folder)?

--j

P.S. I recognized that in my initial post I indicated using "dir" as
the parameter -- it should have been "path" (the error occurred
through the correct usage of list.files(path="/",...)   That'll teach
me not to copy/paste from my code...

On Fri, Sep 27, 2013 at 2:36 PM, Ben Bolker  wrote:
> Jonathan Greenberg  illinois.edu> writes:
>
>>
>> R-helpers:
>>
>> I'm running a file search on my entire drive (Mac OS X) using:
>>
>> files_found <-
> list.files(dir="/",pattern=somepattern,recursive=TRUE,full.names=TRUE)
>> where somepattern is a search pattern (which I have confirmed via a
>> unix "find / -name somepattern" only returns ~ 3 results).
>>
>> I keep getting an error:
>>
>> Error: C stack usage is too close to the limit
>>
>> when running this command.  Any ideas on 1) how to fix this or 2) if
>> there is an alternative to using list.files() to accomplish this
>> search without resorting to an external package?
>
>   I assuming that using
>
> system("find / -name somepattern")
>
> (possibly with intern=TRUE) isn't allowed?  (I don't know what you're
> trying to do, but if you don't need it to work on Windows-without-cygwin,
> this should work across most Unix variants (although a "-print" might
> be required)
>
> __
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



-- 
Jonathan A. Greenberg, PhD
Assistant Professor
Global Environmental Analysis and Remote Sensing (GEARS) Laboratory
Department of Geography and Geographic Information Science
University of Illinois at Urbana-Champaign
259 Computing Applications Building, MC-150
605 East Springfield Avenue
Champaign, IL  61820-6371
Phone: 217-300-1924
http://www.geog.illinois.edu/~jgrn/
AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Error: C stack usage is too close to the limit when using list.files()

2013-09-27 Thread Ben Bolker
Jonathan Greenberg  illinois.edu> writes:

> 
> R-helpers:
> 
> I'm running a file search on my entire drive (Mac OS X) using:
> 
> files_found <-
list.files(dir="/",pattern=somepattern,recursive=TRUE,full.names=TRUE)
> where somepattern is a search pattern (which I have confirmed via a
> unix "find / -name somepattern" only returns ~ 3 results).
> 
> I keep getting an error:
> 
> Error: C stack usage is too close to the limit
> 
> when running this command.  Any ideas on 1) how to fix this or 2) if
> there is an alternative to using list.files() to accomplish this
> search without resorting to an external package?

  I assuming that using

system("find / -name somepattern")

(possibly with intern=TRUE) isn't allowed?  (I don't know what you're
trying to do, but if you don't need it to work on Windows-without-cygwin,
this should work across most Unix variants (although a "-print" might
be required)

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


[R] Error: C stack usage is too close to the limit when using list.files()

2013-09-27 Thread Jonathan Greenberg
R-helpers:

I'm running a file search on my entire drive (Mac OS X) using:

files_found <- 
list.files(dir="/",pattern=somepattern,recursive=TRUE,full.names=TRUE)
where somepattern is a search pattern (which I have confirmed via a
unix "find / -name somepattern" only returns ~ 3 results).

I keep getting an error:

Error: C stack usage is too close to the limit

when running this command.  Any ideas on 1) how to fix this or 2) if
there is an alternative to using list.files() to accomplish this
search without resorting to an external package?

Cheers!

--jonathan


-- 
Jonathan A. Greenberg, PhD
Assistant Professor
Global Environmental Analysis and Remote Sensing (GEARS) Laboratory
Department of Geography and Geographic Information Science
University of Illinois at Urbana-Champaign
259 Computing Applications Building, MC-150
605 East Springfield Avenue
Champaign, IL  61820-6371
Phone: 217-300-1924
http://www.geog.illinois.edu/~jgrn/
AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.