World: r3wp
[Core] Discuss core issues
older newer | first last |
Graham 1-Jun-2008 [10569] | Since I might be grabbing the image as jpg and then saving it to png, I guess I should save it to memory as binary and do the calculation that way. |
Will 1-Jun-2008 [10570x2] | I use these quite often: ifs: func [c b][either c [do b][""]] ;like if but return empty string ifb: func [c b][either c [do b][[]]] ;like if but return empty block |
my bad, thanks Dock, I can refactor to ifs: func [c b][either c b [""]] ;like if but return empty string ifb: func [c b][either c b [[]]] ;like if but return empty block so ifs is like your if* 8) | |
Josh 12-Jun-2008 [10572x2] | Which version of rebol allows for evaluation in paths? (i.e. block/(1+i): "hello" ) Or am I not remembering this correctly? |
Nevermind, I think I just had a typo in my code. :) | |
[unknown: 5] 14-Jun-2008 [10574x4] | What is the limitation on file size that REBOL 7.6 can handle? |
I'm assuming there must be a iimit that open/direct can't just mount any file size. I'm assuming that the limitation is roughly 2 Gigs. | |
I'm also assuming since a port/size is integer! that the file size can be no greater than 2099999999 bytes. | |
Since integers greater than that number cause errors. | |
[unknown: 5] 16-Jun-2008 [10578] | Ok, I checked for a file size limitation in REBOL but haven't found one. I noticed the documentation for open/direct for example says that /direct can be used for files of any size. I don't see how that can be if it is calculating the size as an integer and integer has a limitations. |
Geomol 16-Jun-2008 [10579] | Largest 32-bit signed int is 2 ** 31 - 1 = 2'147'483'647 If REBOL internally use 32-bit unsigned, it's 2 ** 32 - 1 = 4'294'967'295 If REBOL internally use 64-bit unsigned, it's 2 ** 64 - 1 ca. = 1.845E+19 |
[unknown: 5] 16-Jun-2008 [10580] | I'm actually running an experiment now. I'm going to write a file that will attempt to exceed those sizes. |
Geomol 16-Jun-2008 [10581x2] | :-) Be sure, you have enough HD space! |
The file system might have max-size for files. I remember something about 2 or 4GB for some file systems. | |
Henrik 16-Jun-2008 [10583] | FAT32 is the one with that limit. |
Anton 16-Jun-2008 [10584] | Yep, hit it today on FAT32 - 4GB file was produced. |
[unknown: 5] 16-Jun-2008 [10585x3] | I'm on NTFS. I'll post what I find out. |
currently still writing a file which is only at 668 Megs at the moment. | |
Anton, you created a 4GB file using REBOL or was reading one when you got the error? | |
Anton 16-Jun-2008 [10588] | Sorry, not using Rebol, but in Linux, creating a file in a FAT32 partition. |
[unknown: 5] 16-Jun-2008 [10589x3] | ahhh ok. |
I was curious because I'm interested in what happens when I hit 2099999999 size. | |
Actually a bit larger than that. | |
Anton 16-Jun-2008 [10592] | I don't know where you got that number from; If I remember correctly the first time you can get a problem with rebol file size is at 2 ^ 31 - 1 |
[unknown: 5] 16-Jun-2008 [10593] | Oh it was a generic range number based on a algorithm I was running. I expect the number to be the 32 bit signed number that John posted. |
Anton 16-Jun-2008 [10594] | Maybe it was 2 ^ 31 - your buffer size ? |
[unknown: 5] 16-Jun-2008 [10595] | That number I posted is the highest in my algorithm I could hit. |
Anton 16-Jun-2008 [10596] | Ok, that makes sense. |
Oldes 16-Jun-2008 [10597x2] | p: open/direct/write/new %/k/test.bin b: make binary! 1000000 insert/dup b #{00} 1000000 i: 0 while [not error? try [insert tail p b]][i: i + 1] |
created file ower 5GB here... than I stoped it. | |
[unknown: 5] 16-Jun-2008 [10599] | what OS? |
Oldes 16-Jun-2008 [10600] | WIN/ ntfs |
[unknown: 5] 16-Jun-2008 [10601x3] | ok cool. |
I want to be able to do some probes on the file once I get it to size. | |
on the port rather. | |
Oldes 16-Jun-2008 [10604] | The problem is with reading anyway |
[unknown: 5] 16-Jun-2008 [10605] | You having problem reading that file now? |
Oldes 16-Jun-2008 [10606] | But not impossible I guess. Using such a big files is not practical imho. |
Anton 16-Jun-2008 [10607x2] | I think it's when you want to seek to a position greater than 2 ^ 31 - 1 |
you run into a problem then. | |
Oldes 16-Jun-2008 [10609] | I'm not going to read such a file if I have only 1GB memory:) |
[unknown: 5] 16-Jun-2008 [10610x6] | Well I'm testing a new indexing system for TRETBASE and need to know some significant data to fine tune it. |
That is where my interest lies Anton. | |
Interesting the limit for file size in REBOL is 2 ** 31 | |
when the port/state/tail value reaches 2 ** 31 it converts it to a negative number and gives an error which is an "access error writing to port". | |
Now the port can still be read via open/direct but no longer accessible via open/seek at that point. | |
Not sure how OLDES was able to get his file over 5GB on NTFS as my test was also on NTFS. | |
Henrik 16-Jun-2008 [10616] | I wonder if WRITE/APPEND allows files over 4 GB? |
[unknown: 5] 16-Jun-2008 [10617x2] | I would have thought that write would be using open also. |
REBOL should be able to break this limitation. Even if it means holding a pointer to a file position and then looping over again. | |
older newer | first last |