1. Size of files

Hi all,

how big are the biggest files that Euphoria can handle (especially
interesting for me: on Windows)?

I stumbled across the following text in the Eu 2.5 documentation of
where():   "i = where(fn)".
In the Euphoria documentation, 'i' means an integer, doesn't it?
Since where() is zero based(*), this would mean that it works with
files up to
     MAX_INTEGER+1 bytes = power(2,30) bytes = 1 GB

Does where() actually not work with files > 1 GB?

Regards,
   Juergen

(*) This is not mentioned in the documentation of where(), BTW.

-- 
Have you read a good program lately?

new topic     » topic index » view message » categorize

2. Re: Size of files

Juergen Luethje wrote:
> 
> Hi all,
> 
> how big are the biggest files that Euphoria can handle (especially
> interesting for me: on Windows)?
> 
> I stumbled across the following text in the Eu 2.5 documentation of
> where():   "i = where(fn)".
> In the Euphoria documentation, 'i' means an integer, doesn't it?
> Since where() is zero based(*), this would mean that it works with
> files up to
>      MAX_INTEGER+1 bytes = power(2,30) bytes = 1 GB
> 
> Does where() actually not work with files > 1 GB?
> 
> Regards,
>    Juergen
> 
> (*) This is not mentioned in the documentation of where(), BTW.
> 
> -- 
> Have you read a good program lately?
> 
> 

That was a bug fix in Euphoria 2.4 Alpha:

bug fixed: where() was not always reporting file positions greater than 1 Gb
correctly. Arithmetic performed on the position would probably fail. It now
handles up to 2 Gb.


You can use integer atoms up to 32 bits long, but the limit of 2 GB is based on
the open() routine who's OP uses an obsolete C file routine, I think. Thus 2 GB
is the limit for Euphoria applications, libraries, opening files, file inclusion,
EDB files, etc.

Rob should use newer C file I/O routines in the C backend that offer the full 4
GB limit/8 byte offsets or something. Rob should also be thinking about 64 bit
compliant products sooner rather than later.

4 GB these days is not very much let alone 2 GB, especially for databases.


Regards,
Vincent

----------------------------------------------
     ___	      __________      ___
    /__/\            /__________\    |\ _\
    \::\'\          //::::::::::\\   |'|::|
     \::\'\        //:::_::::_:::\\  |'|::|
      \::\'\      //::/  |::|  \::\\ |'|::|
       \::\'\    //::/   |::|   \::\\|'|::|
        \::\'\__//::/    |::|    \::\|'|::|
         \::\','/::/     |::|     \::\\|::|
          \::\_/::/      |::|      \::\|::|
           \::,::/       |::|       \:::::|
            \___/        |__|        \____|

 	                 .``.
		         ',,'

new topic     » goto parent     » topic index » view message » categorize

3. Re: Size of files

Vincent wrote:
> 
> Juergen Luethje wrote:
> > 
> > Hi all,
> > 
> > how big are the biggest files that Euphoria can handle (especially
> > interesting for me: on Windows)?
> > 
> > I stumbled across the following text in the Eu 2.5 documentation of
> > where():   "i = where(fn)".
> > In the Euphoria documentation, 'i' means an integer, doesn't it?
> > Since where() is zero based(*), this would mean that it works with
> > files up to
> >      MAX_INTEGER+1 bytes = power(2,30) bytes = 1 GB
> > 
> > Does where() actually not work with files > 1 GB?
> > 
> > Regards,
> >    Juergen
> > 
> > (*) This is not mentioned in the documentation of where(), BTW.
> > 
> > -- 
> > Have you read a good program lately?
> > 
> > 
> That was a bug fix in Euphoria 2.4 Alpha:
> 
> bug fixed: where() was not always reporting file positions greater than 1 Gb
> correctly. Arithmetic performed on the position would probably fail. It now
> handles up to 2 Gb. 
> 
> 
> You can use integer atoms up to 32 bits long, but the limit of 2 GB is based
> on the open() routine who's OP uses an obsolete C file routine, I think. Thus
> 2 GB is the limit for Euphoria applications, libraries, opening files, file
> inclusion, EDB files, etc.
> 
> Rob should use newer C file I/O routines in the C backend that offer the full
> 4 GB limit/8 byte offsets or something. Rob should also be thinking about 64
> bit compliant products sooner rather than later.
> 
> 4 GB these days is not very much let alone 2 GB, especially for databases.

That's correct. Thanks.
I should add that the manual uses "i" to indicate 31-bit Euphoria
integers, but seek() and where() can handle a number bigger than
an integer (1Gb). I just re-tested it on some huge files. 
I will update the docs to use "a", to show that
a number greater than 1Gb can be used. Actually, the limit on all
platforms is 2 Gb, due to restrictions in the standard C library routines.
You'd think the limit would be 4Gb, but it's not.
I intend to go well beyond 2Gb or 4Gb, sooner or later, 
but it might not be possible for DOS.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

4. Re: Size of files

Robert Craig wrote:

<snip>

> I should add that the manual uses "i" to indicate 31-bit Euphoria
> integers, but seek() and where() can handle a number bigger than
> an integer (1Gb). I just re-tested it on some huge files.
> I will update the docs to use "a", to show that
> a number greater than 1Gb can be used.

Thanks. I really like this way to document routines. When I see an "a",
I immediately know that I have to declare the concerning variable as
atom.

> Actually, the limit on all
> platforms is 2 Gb, due to restrictions in the standard C library routines.
> You'd think the limit would be 4Gb, but it's not.
> I intend to go well beyond 2Gb or 4Gb, sooner or later,

That would be nice.

> but it might not be possible for DOS.

Maybe in the next Eu release, you could mention the file size limit --
whatever it may be at that time -- in the documentation of open()?

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

5. Re: Size of files

Vincent wrote:

> Juergen Luethje wrote:

<snip>

>> Does where() actually not work with files > 1 GB?
>
> That was a bug fix in Euphoria 2.4 Alpha:
>
> bug fixed: where() was not always reporting file positions greater than
> 1 Gb correctly. Arithmetic performed on the position would probably
> fail. It now handles up to 2 Gb.

Thanks for the info.

<snip>

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

6. Re: Size of files

Juergen Luethje wrote:
> Maybe in the next Eu release, you could mention the file size limit --
> whatever it may be at that time -- in the documentation of open()?

Yes, I'll do that. Thanks.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu