digitalmars.D.bugs - [Issue 2364] New: ftell return type is long in C, that is 64-bit on x86-64
- d-bugmail puremagic.com Sep 17 2008
- downs <default_357-line yahoo.de> Sep 17 2008
- Sean Kelly <sean invisibleduck.org> Sep 17 2008
- "Steven Schveighoffer" <schveiguy yahoo.com> Sep 18 2008
- "Denis Koroskin" <2korden gmail.com> Sep 18 2008
- d-bugmail puremagic.com Oct 09 2008
- d-bugmail puremagic.com Oct 09 2008
- d-bugmail puremagic.com Oct 10 2008
- d-bugmail puremagic.com Oct 10 2008
- d-bugmail puremagic.com Oct 19 2009
- d-bugmail puremagic.com Oct 19 2009
- d-bugmail puremagic.com Oct 19 2009
- d-bugmail puremagic.com Oct 20 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2364 Summary: ftell return type is long in C, that is 64-bit on x86-64 Product: D Version: 2.019 Platform: PC URL: http://digitalmars.com/d/2.0/phobos/std_c_stdio.html#fte ll OS/Version: Windows Status: NEW Severity: trivial Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: terranium yandex.ru But in D it's declared as int ftell(FILE *); --
Sep 17 2008
d-bugmail puremagic.com wrote:http://d.puremagic.com/issues/show_bug.cgi?id=2364 Summary: ftell return type is long in C, that is 64-bit on x86-64 Product: D Version: 2.019 Platform: PC URL: http://digitalmars.com/d/2.0/phobos/std_c_stdio.html#fte ll OS/Version: Windows Status: NEW Severity: trivial Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: terranium yandex.ru But in D it's declared as int ftell(FILE *);
So .. ptrdiff_t?
Sep 17 2008
downs wrote:d-bugmail puremagic.com wrote:http://d.puremagic.com/issues/show_bug.cgi?id=2364 Summary: ftell return type is long in C, that is 64-bit on x86-64 Product: D Version: 2.019 Platform: PC URL: http://digitalmars.com/d/2.0/phobos/std_c_stdio.html#fte ll OS/Version: Windows Status: NEW Severity: trivial Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: terranium yandex.ru But in D it's declared as int ftell(FILE *);
So .. ptrdiff_t?
Nope, C long. So 32 bits on Win32, Win64, and 32-bit *nix, but 64 bits on 64-bit *nix.
Sep 17 2008
"Denis Koroskin" wroteOn Thu, 18 Sep 2008 08:52:13 +0400, Sean Kelly <sean invisibleduck.org> wrote:downs wrote:d-bugmail puremagic.com wrote:http://d.puremagic.com/issues/show_bug.cgi?id=2364 Summary: ftell return type is long in C, that is 64-bit on x86-64 Product: D Version: 2.019 Platform: PC URL: http://digitalmars.com/d/2.0/phobos/std_c_stdio.html#fte ll OS/Version: Windows Status: NEW Severity: trivial Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: terranium yandex.ru But in D it's declared as int ftell(FILE *);
Nope, C long. So 32 bits on Win32, Win64, and 32-bit *nix, but 64 bits on 64-bit *nix.
Isn't it compiler specific? I.e. DMD declares C long as D int no matter what. But I agree that it should return long (on 32-bit OS, too).
Better answer: don't use ftell :) But in case you have to, it seems that a version'd c_long is in order. -Steve
Sep 18 2008
On Thu, 18 Sep 2008 08:52:13 +0400, Sean Kelly <sean invisibleduck.org> wrote:downs wrote:d-bugmail puremagic.com wrote:http://d.puremagic.com/issues/show_bug.cgi?id=2364 Summary: ftell return type is long in C, that is 64-bit on x86-64 Product: D Version: 2.019 Platform: PC URL: http://digitalmars.com/d/2.0/phobos/std_c_stdio.html#fte ll OS/Version: Windows Status: NEW Severity: trivial Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: terranium yandex.ru But in D it's declared as int ftell(FILE *);
Nope, C long. So 32 bits on Win32, Win64, and 32-bit *nix, but 64 bits on 64-bit *nix.
Isn't it compiler specific? I.e. DMD declares C long as D int no matter what. But I agree that it should return long (on 32-bit OS, too).
Sep 18 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2364 ------- Comment #1 from terranium yandex.ru 2008-10-09 07:43 -------So .. ptrdiff_t?
Nope, C long. So 32 bits on Win32, Win64, and 32-bit *nix, but 64 bits on 64-bit *nix.
All c types are compiler-specific, but in fact long is 64 bit on x86-64 architecture (os-independent). --
Oct 09 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2364 ------- Comment #2 from matti.niemenmaa+dbugzilla iki.fi 2008-10-09 12:17 ------- Nope, see for instance http://en.wikipedia.org/wiki/64-bit#64-bit_data_models or try MSVC yourself: sizeof(long) == 4. --
Oct 09 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2364 ------- Comment #3 from terranium yandex.ru 2008-10-10 02:26 ------- ... indeed. For some reason I thought different. Was it always like this? --
Oct 10 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2364 ------- Comment #4 from matti.niemenmaa+dbugzilla iki.fi 2008-10-10 04:03 ------- Yes, I think it's always been like that. --
Oct 10 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2364 Sobirari Muhomori <dfj1esp02 sneakemail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 19 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2364 Tomas Lindquist Olsen <tomas famolsen.dk> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tomas famolsen.dk --- Comment #5 from Tomas Lindquist Olsen <tomas famolsen.dk> 2009-10-19 03:20:56 PDT --- Even with the misunderstanding of C long being 32 or 64 bit, translating a C long to a D int is still wrong. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 19 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2364 Brad Roberts <braddr puremagic.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |braddr puremagic.com Resolution|INVALID |FIXED --- Comment #6 from Brad Roberts <braddr puremagic.com> 2009-10-19 09:20:26 PDT --- Changing to resolved-fixed. In druntime, where this stuff lives now, it's defined as a c_long: c_long ftell(FILE* stream); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 19 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2364 Andrei Alexandrescu <andrei metalanguage.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrei metalanguage.com --- Comment #7 from Andrei Alexandrescu <andrei metalanguage.com> 2009-10-20 12:10:56 PDT --- I'd like to replace the antiquated fseek/ftell routines with 64-bit routines straight inside druntime. On Windows, there's _fseeki64: http://msdn.microsoft.com/en-us/library/75yw9bf3%28VS.80%29.aspx On Linux, there's fseeko64: http://www.mkssoftware.com/docs/man3/fseek.3.asp I couldn't find the appropriate OSX routine, and I wouldn't be able to test it either. I know Sean is very busy, so may I get a hand from around here? Ideally what I'd like to do would be to take care of whatever forwarding/aliasing is needed inside druntime to make the normal fseek and ftell routines use 64-bit ulong. (Sean approved.) Please let me know if you could help, thanks! -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 20 2009









"Steven Schveighoffer" <schveiguy yahoo.com> 