[Bug fortran/23815] Add -byteswapio flag

2006-02-09 Thread tobi at gcc dot gnu dot org


--- Comment #33 from tobi at gcc dot gnu dot org  2006-02-09 15:12 ---
Thomas,

I'm seeing the following failure on the trunk:
Running /home/pcl331/schluter/src/gcc/gcc/testsuite/gfortran.dg/dg.exp ...
FAIL: gfortran.dg/unf_io_convert_4.f90  -O0  execution test
FAIL: gfortran.dg/unf_io_convert_4.f90  -O1  execution test
FAIL: gfortran.dg/unf_io_convert_4.f90  -O2  execution test
FAIL: gfortran.dg/unf_io_convert_4.f90  -O3 -fomit-frame-pointer  execution
test
FAIL: gfortran.dg/unf_io_convert_4.f90  -O3 -fomit-frame-pointer -funroll-loops
 execution test
FAIL: gfortran.dg/unf_io_convert_4.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  execution test
FAIL: gfortran.dg/unf_io_convert_4.f90  -O3 -g  execution test
FAIL: gfortran.dg/unf_io_convert_4.f90  -Os  execution test


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2006-02-09 Thread tkoenig at gcc dot gnu dot org


--- Comment #34 from tkoenig at gcc dot gnu dot org  2006-02-09 20:03 
---
(In reply to comment #33)

Hi Tobi,

 I'm seeing the following failure on the trunk:
 Running /home/pcl331/schluter/src/gcc/gcc/testsuite/gfortran.dg/dg.exp ...
 FAIL: gfortran.dg/unf_io_convert_4.f90  -O0  execution test

Strange.  I don't see this with revision 110664 on i686-pc-linux-gnu,
and also nothing on

http://gcc.gnu.org/ml/gcc-testresults/2006-02/msg00430.html
http://gcc.gnu.org/ml/gcc-testresults/2006-02/msg00416.html

What system are you running on?  What happens if you run this
test case directly?

Thomas


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2006-02-08 Thread tkoenig at gcc dot gnu dot org


--- Comment #31 from tkoenig at gcc dot gnu dot org  2006-02-08 20:14 
---
Subject: Bug 23815

Author: tkoenig
Date: Wed Feb  8 20:14:00 2006
New Revision: 110764

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=110764
Log:
2005-02-08  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/23815
* gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
variable.
* invoke.texi:  Mention the Runtime chapter.
Document the -fconvert= option.
* gfortran.h:  Add options_convert.
* lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
fconvert=native and fconvert=swap.
* trans-decl.c (top level):  Add gfor_fndecl_set_convert.
(gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
(gfc_generate_function_code):  If -fconvert was specified,
and this is the main program, add a call to set_convert().
* options.c:  Handle the -fconvert options.

2005-02-08  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/23815
* runtime/environ.c (init_unformatted):  Add GFORTRAN_CONVERT_UNIT
environment variable.
(top level):  Add defines, type and static variables for
GFORTRAN_CONVERT_UNIT handling.
(search_unit):  New function.
(match_word): New function.
(match_integer): New function.
(next_token): New function.
(push_token): New function.
(mark_single): New function.
(mark_range): New funciton.
(do_parse): New function.
(init_unformatted): New function.
(get_unformatted_convert): New function.
* runtime/compile_options.c:  Add set_convert().
* libgfortran.h:  Add convert to compile_options_t.
* io/open.c (st_open): Call get_unformatted_convert to get
unit default; if CONVERT_NONE is returned, check for
the presence of a CONVERT specifier and use it.
As default, use compile_options.convert.
* io/io.h (top level): Add CONVERT_NONE to unit_convert, to signal
nothing has been set.
(top level): Add prototype for get_unformatted_convert.

2005-02-08  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/23815
* unf_io_convert_4.f90:  New test.


Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/unf_io_convert_4.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/gfortran.h
branches/gcc-4_1-branch/gcc/fortran/gfortran.texi
branches/gcc-4_1-branch/gcc/fortran/invoke.texi
branches/gcc-4_1-branch/gcc/fortran/lang.opt
branches/gcc-4_1-branch/gcc/fortran/options.c
branches/gcc-4_1-branch/gcc/fortran/trans-decl.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/libgfortran/ChangeLog
branches/gcc-4_1-branch/libgfortran/io/io.h
branches/gcc-4_1-branch/libgfortran/io/open.c
branches/gcc-4_1-branch/libgfortran/libgfortran.h
branches/gcc-4_1-branch/libgfortran/runtime/compile_options.c
branches/gcc-4_1-branch/libgfortran/runtime/environ.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2006-02-08 Thread tkoenig at gcc dot gnu dot org


--- Comment #32 from tkoenig at gcc dot gnu dot org  2006-02-08 20:15 
---
Fixed on 4.1 as well.

Closing.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2006-02-06 Thread tkoenig at gcc dot gnu dot org


--- Comment #30 from tkoenig at gcc dot gnu dot org  2006-02-06 20:12 
---
Subject: Bug 23815

Author: tkoenig
Date: Mon Feb  6 20:12:44 2006
New Revision: 110664

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=110664
Log:
2005-02-06  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/23815
* gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
variable.
* invoke.texi:  Mention the Runtime chapter.
Document the -fconvert= option.
* gfortran.h:  Add options_convert.
* lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
fconvert=native and fconvert=swap.
* trans-decl.c (top level):  Add gfor_fndecl_set_convert.
(gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
(gfc_generate_function_code):  If -fconvert was specified,
and this is the main program, add a call to set_convert().
* options.c:  Handle the -fconvert options.

2005-02-06  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/23815
* runtime/environ.c (init_unformatted):  Add GFORTRAN_CONVERT_UNIT
environment variable.
(top level):  Add defines, type and static variables for
GFORTRAN_CONVERT_UNIT handling.
(search_unit):  New function.
(match_word): New function.
(match_integer): New function.
(next_token): New function.
(push_token): New function.
(mark_single): New function.
(mark_range): New funciton.
(do_parse): New function.
(init_unformatted): New function.
(get_unformatted_convert): New function.
* runtime/compile_options.c:  Add set_convert().
* libgfortran.h:  Add convert to compile_options_t.
* io/open.c (st_open): Call get_unformatted_convert to get
unit default; if CONVERT_NONE is returned, check for
the presence of a CONVERT specifier and use it.
As default, use compile_options.convert.
* io/io.h (top level): Add CONVERT_NONE to unit_convert, to signal
nothing has been set.
(top level): Add prototype for get_unformatted_convert.

2005-02-06  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/23815
* unf_io_convert_4.f90:  New test.


Added:
trunk/gcc/testsuite/gfortran.dg/unf_io_convert_4.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/gfortran.texi
trunk/gcc/fortran/invoke.texi
trunk/gcc/fortran/lang.opt
trunk/gcc/fortran/options.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/io.h
trunk/libgfortran/io/open.c
trunk/libgfortran/libgfortran.h
trunk/libgfortran/runtime/compile_options.c
trunk/libgfortran/runtime/environ.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2006-01-27 Thread tkoenig at gcc dot gnu dot org


--- Comment #29 from tkoenig at gcc dot gnu dot org  2006-01-27 20:40 
---
Updated patch, which also implements a compile-time option.

Hopefully, this will be reviewed some day.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/fortra|http://gcc.gnu.org/ml/fortra
   |n/2006-01/msg00179.html |n/2006-01/msg00294.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2006-01-15 Thread tkoenig at gcc dot gnu dot org


--- Comment #28 from tkoenig at gcc dot gnu dot org  2006-01-15 21:07 
---
Patch for environment variable in for review.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/fortra
   ||n/2006-01/msg00179.html
   Keywords||patch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2006-01-09 Thread tkoenig at gcc dot gnu dot org


--- Comment #27 from tkoenig at gcc dot gnu dot org  2006-01-09 22:53 
---
Created an attachment (id=10602)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10602action=view)
proposed patch for environment variable

This implements setting the default for byte-swapping via an
environment variable.

Still needs documentation etc.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #10350|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815




[Bug fortran/23815] Add -byteswapio flag

2005-12-13 Thread tkoenig at gcc dot gnu dot org


--- Comment #26 from tkoenig at gcc dot gnu dot org  2005-12-13 21:11 
---
Subject: Bug 23815

Author: tkoenig
Date: Tue Dec 13 21:11:23 2005
New Revision: 108483

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=108483
Log:
2005-12-13  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/23815
* io.c (top level):  Add convert to io_tag.
(resolve_tag):  convert is GFC_STD_GNU.
(match_open_element):  Add convert.
(gfc_free_open):  Likewise.
(gfc_resolve_open):  Likewise.
(gfc_free_inquire):  Likewise.
(match_inquire_element):  Likewise.
* dump-parse-tree.c (gfc_show_code_node):  Add
convet for open and inquire.
gfortran.h: Add convert to gfc_open and gfc_inquire.
* trans-io.c (gfc_trans_open):  Add convert.
(gfc_trans_inquire):  Likewise.
* ioparm.def:  Add convert to open and inquire.
* gfortran.texi:  Document CONVERT.

2005-12-13  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/23815
* io/file_pos.c (unformatted_backspace):  If flags.convert
does not equal CONVERT_NATIVE, reverse the record marker.
* io/open.c:  Add convert_opt[].
(st_open):  If no convert option is given, set CONVERT_NATIVE.
If CONVERT_BIG or CONVERT_LITTLE are given, set flags.convert to
CONVERT_NATIVE or CONVERT_SWAP (depending on wether we have
a big- or little-endian system).
* io/transfer.c (unformatted_read):  Remove unused attribute
from arguments.
If we need to reverse
bytes, break up large transfers into a loop.  Split complex
numbers into its two parts.
(unformatted_write):  Likewise.
(us_read):  If flags.convert does not equal CONVERT_NATIVE,
reverse the record marker.
(next_record_w): Likewise.
(reverse_memcpy):  New function.
* io/inquire.c (inquire_via_unit):  Implement convert.
* io/io.h (top level):  Add enum unit_convert.
Add convert to st_parameter_open and st_parameter_inquire.
Define IOPARM_OPEN_HAS_CONVERT and IOPARM_INQUIRE_HAS_CONVERT.
Increase padding for st_parameter_dt.
Declare reverse_memcpy().

2005-12-13  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/23815
* gfortran.dg/unf_io_convert_1.f90:  New test.
* gfortran.dg/unf_io_convert_2.f90:  New test.
* gfortran.dg/unf_io_convert_3.f90:  New test.


Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/unf_io_convert_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/dump-parse-tree.c
branches/gcc-4_1-branch/gcc/fortran/gfortran.h
branches/gcc-4_1-branch/gcc/fortran/gfortran.texi
branches/gcc-4_1-branch/gcc/fortran/io.c
branches/gcc-4_1-branch/gcc/fortran/ioparm.def
branches/gcc-4_1-branch/gcc/fortran/trans-io.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/libgfortran/ChangeLog
branches/gcc-4_1-branch/libgfortran/io/file_pos.c
branches/gcc-4_1-branch/libgfortran/io/inquire.c
branches/gcc-4_1-branch/libgfortran/io/io.h
branches/gcc-4_1-branch/libgfortran/io/open.c
branches/gcc-4_1-branch/libgfortran/io/transfer.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-12-10 Thread tkoenig at gcc dot gnu dot org


--- Comment #23 from tkoenig at gcc dot gnu dot org  2005-12-10 13:09 
---
Updated patch.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/fortra|http://gcc.gnu.org/ml/fortra
   |n/2005-12/msg00127.html |n/2005-12/msg00146.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-12-10 Thread tkoenig at gcc dot gnu dot org


--- Comment #24 from tkoenig at gcc dot gnu dot org  2005-12-10 20:02 
---
Subject: Bug 23815

Author: tkoenig
Date: Sat Dec 10 20:01:56 2005
New Revision: 108358

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=108358
Log:
2005-12-10  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/23815
* io.c (top level):  Add convert to io_tag.
(resolve_tag):  convert is GFC_STD_GNU.
(match_open_element):  Add convert.
(gfc_free_open):  Likewise.
(gfc_resolve_open):  Likewise.
(gfc_free_inquire):  Likewise.
(match_inquire_element):  Likewise.
* dump-parse-tree.c (gfc_show_code_node):  Add
convet for open and inquire.
gfortran.h: Add convert to gfc_open and gfc_inquire.
* trans-io.c (gfc_trans_open):  Add convert.
(gfc_trans_inquire):  Likewise.
* ioparm.def:  Add convert to open and inquire.
* gfortran.texi:  Document CONVERT.

2005-12-10  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/23815
* io/file_pos.c (unformatted_backspace):  If flags.convert
does not equal CONVERT_NATIVE, reverse the record marker.
* io/open.c:  Add convert_opt[].
(st_open):  If no convert option is given, set CONVERT_NATIVE.
If CONVERT_BIG or CONVERT_LITTLE are given, set flags.convert to
CONVERT_NATIVE or CONVERT_SWAP (depending on wether we have
a big- or little-endian system).
* io/transfer.c (unformatted_read):  Remove unused attribute
from arguments.
If we need to reverse
bytes, break up large transfers into a loop.  Split complex
numbers into its two parts.
(unformatted_write):  Likewise.
(us_read):  If flags.convert does not equal CONVERT_NATIVE,
reverse the record marker.
(next_record_w): Likewise.
(reverse_memcpy):  New function.
* io/inquire.c (inquire_via_unit):  Implement convert.
* io/io.h (top level):  Add enum unit_convert.
Add convert to st_parameter_open and st_parameter_inquire.
Define IOPARM_OPEN_HAS_CONVERT and IOPARM_INQUIRE_HAS_CONVERT.
Increase padding for st_parameter_dt.
Declare reverse_memcpy().

2005-12-10  Thomas Koenig  [EMAIL PROTECTED]

PR fortran/23815
* gfortran.dg/unf_io_convert_1.f90:  New test.
* gfortran.dg/unf_io_convert_2.f90:  New test.
* gfortran.dg/unf_io_convert_3.f90:  New test.


Added:
trunk/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90
trunk/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90
trunk/gcc/testsuite/gfortran.dg/unf_io_convert_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/dump-parse-tree.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/gfortran.texi
trunk/gcc/fortran/io.c
trunk/gcc/fortran/ioparm.def
trunk/gcc/fortran/trans-io.c
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/file_pos.c
trunk/libgfortran/io/inquire.c
trunk/libgfortran/io/io.h
trunk/libgfortran/io/open.c
trunk/libgfortran/io/transfer.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-12-10 Thread tkoenig at gcc dot gnu dot org


--- Comment #25 from tkoenig at gcc dot gnu dot org  2005-12-10 20:12 
---
The committed patch implements the basic functionality, via
the CONVERT keyword for open.

We still need different options to select this (via compile-time flags
and environment variables), so I'm leaving this bug open.

Thomas


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/fortra|
   |n/2005-12/msg00146.html |
   Keywords|patch   |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-12-06 Thread tkoenig at gcc dot gnu dot org


--- Comment #22 from tkoenig at gcc dot gnu dot org  2005-12-06 21:45 
---
Added new patch.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/fortra
   ||n/2005-12/msg00127.html
   Keywords||patch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-27 Thread tkoenig at gcc dot gnu dot org


--- Comment #19 from tkoenig at gcc dot gnu dot org  2005-11-27 22:14 
---
Created an attachment (id=10350)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10350action=view)
broken patch

The patches for this PR have been obsoleted of the introduction of the
thread-safety patch.

I have a patch (attached), but it causes quite a number of
regressions (something messes up the gfc_unit) and I haven't found
the reason yet.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #10224|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-27 Thread tkoenig at gcc dot gnu dot org


--- Comment #20 from tkoenig at gcc dot gnu dot org  2005-11-27 22:27 
---
Removed patch keyword.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/fortra|
   |n/2005-11/msg00451.html |
   Keywords|patch   |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-27 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #21 from sgk at troutmask dot apl dot washington dot edu  
2005-11-27 22:42 ---
Subject: Re:  Add -byteswapio flag

On Sun, Nov 27, 2005 at 10:15:02PM -, tkoenig at gcc dot gnu dot org wrote:
 
 I have a patch (attached), but it causes quite a number of
 regressions (something messes up the gfc_unit) and I haven't found
 the reason yet.
 

gfc_unit may need to be locked before its accessed.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-18 Thread tkoenig at gcc dot gnu dot org


--- Comment #18 from tkoenig at gcc dot gnu dot org  2005-11-18 21:17 
---
Updated patch.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/fortra|http://gcc.gnu.org/ml/fortra
   |n/2005-11/msg00372.html |n/2005-11/msg00451.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-11 Thread rrr6399 at futuretek dot com


--- Comment #15 from rrr6399 at futuretek dot com  2005-11-11 13:26 ---
I think the approach of having multiple ways of changing the behavior is a good
one. Many Unix programs do this kind of thing to allow the user to choose the
best way to accomplish the goal. I've found each approach useful in the past.

The environment variable approach also allows the same executable to be
used for different scenarios. The only negative I see is if the executable
was compiled by a different compiler (ifort, pgf95, etc.). A user might 
expect that the behavior will change with an environment variable setting and
then wonder why it didn't. Perhaps the same environment variable names used by
ifort could be used by gfortran to limit this issue a bit?

(In reply to comment #14)
 Thomas,
 
 I'm not in favor of environmental variables, which I think would
 also be Paul Brook's position.  It's too easy to have the variables
 set or unset at the wrong time.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-11 Thread tkoenig at gcc dot gnu dot org


--- Comment #16 from tkoenig at gcc dot gnu dot org  2005-11-11 23:53 
---
Created an attachment (id=10224)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10224action=view)
New version of patch

This patch should be fairly complete, without documentation.
This only implements the convert keyword for open and inquire


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #10210|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-11 Thread tkoenig at gcc dot gnu dot org


--- Comment #17 from tkoenig at gcc dot gnu dot org  2005-11-12 00:02 
---
(In reply to comment #14)
 Thomas,
 
 I'm not in favor of environmental variables, which I think would
 also be Paul Brook's position.  It's too easy to have the variables
 set or unset at the wrong time.

In the docs, I would recommend setting them via

GFORTRAN_CONVERT_BIG_ENDIAN=3 progname

or

(setenv GFORTRAN_CONVERT_BIG_ENDIAN=3 ; progname )


 What are your plans for REAL(10), REAL(16), INTEGER(16), COMPLEX(10),
 and COMPLEX(16)?  AFAIK, the reals may have padding issues.

I don't have enough information about alignment to get
REAL(10) to work on a big-endian system.  If we use those,
we also get bitten by the 12-byte/16-byte alignment issue for
different architectures.  Does any big-endian architecture have
REAL(10)?

(In reply to comment #15)

 The environment variable approach also allows the same executable to be
 used for different scenarios. The only negative I see is if the executable
 was compiled by a different compiler (ifort, pgf95, etc.). A user might 
 expect that the behavior will change with an environment variable setting and
 then wonder why it didn't. Perhaps the same environment variable names used by
 ifort could be used by gfortran to limit this issue a bit?

Ifort uses environment variables based on unit numbers, file extensions,
and I don't know what else.  I'd hate to copy all that.  Also,I'd
rather stick to the GFORTRAN_* namespace of environment variables.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-10 Thread tkoenig at gcc dot gnu dot org


--- Comment #12 from tkoenig at gcc dot gnu dot org  2005-11-10 22:39 
---
Created an attachment (id=10210)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10210action=view)
proposed patch, without docs (so far)

Here's a partial solution, which implements the CONVERT keyword
in the open statement.

INQUIRE doesn't work yet.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |tkoenig at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-10 Thread tkoenig at gcc dot gnu dot org


--- Comment #13 from tkoenig at gcc dot gnu dot org  2005-11-10 22:53 
---
Also, little_endian and big_endian have
to be converted to native or swap, depending on
the architecture.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-10 Thread kargl at gcc dot gnu dot org


--- Comment #14 from kargl at gcc dot gnu dot org  2005-11-11 04:52 ---
Thomas,

I'm not in favor of environmental variables, which I think would
also be Paul Brook's position.  It's too easy to have the variables
set or unset at the wrong time.

OTOH, you're working on a patch, so it's up to you.

What are your plans for REAL(10), REAL(16), INTEGER(16), COMPLEX(10),
and COMPLEX(16)?  AFAIK, the reals may have padding issues.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-05 Thread tkoenig at gcc dot gnu dot org


--- Comment #11 from tkoenig at gcc dot gnu dot org  2005-11-05 22:21 
---
OK, for the interface...

My suggestion would be to have three levels of supplying this value (ifort
has five or six :-)

First, an option to supply to the compiler.  This could be
-fconvert=big_endian
-fconvert=little_endian
-fconvert=native (the default)

and maybe, at a later date,
-fconvert=vax_d
-fconvert=ibm_360.

This would be valid for all the units.

With this option alone, it would not be possible to write a conversion
program, so we need something else.

This could be overridden by a CONVERT=BIG_ENDIAN etc. in the OPEN statement.

This, in turn, could be overridden by environment variables in the format

GFORTRAN_CONVERT_BIG_ENDIAN=10,20,30,40
GFORTRAN_CONVERT_LITTLE_ENDIAN=11,21,31,41

Agreed?

It would probably best to implement the compiler swith as selecting a
library at runtime.  I'll leave that to a later date :-)

If anybody knows how to set an environment variable in a dejagnu
testcase, please tell :-)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-02 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2005-11-02 17:16 ---
All P1 enhancements not targeted towards 4.1, moving to P5.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P1  |P5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-02 Thread rrr6399 at futuretek dot com


--- Comment #9 from rrr6399 at futuretek dot com  2005-11-02 18:17 ---
I imagine code from g95 could be leveraged to support this feature couldn't it?

This is a really important feature, especially in corporate environments where
there is usually mix of big-endian and little-endian machines. (Of course, the
current 64 bit record delimitters for unformatted files eliminates any hope of
interoperability with other fortran compilers.) 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-11-02 Thread tkoenig at gcc dot gnu dot org


--- Comment #10 from tkoenig at gcc dot gnu dot org  2005-11-02 21:20 
---
(In reply to comment #9)
 I imagine code from g95 could be leveraged to support this feature couldn't 
 it?

Rather not.  The libraries have diverged pretty much so it is probably
easier to write this from scratch.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-10-11 Thread tobi at gcc dot gnu dot org


--- Comment #3 from tobi at gcc dot gnu dot org  2005-10-11 13:25 ---
(In reply to comment #2)
 In case anybody wants to work on this, I have an old unfinished patch lying
 around that adds builtins and RTL codes for byteswap operation. This allows
 to use platform specific tricks that almost any platform has.

This would have to be implemented in the library, so the effects of such a
patch would only matter in the code GCC generates when compiling the library.
IOW, I don't think this would be of much benefit here.


-- 

tobi at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||tobi at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-10-11 Thread tkoenig at gcc dot gnu dot org


--- Comment #4 from tkoenig at gcc dot gnu dot org  2005-10-11 18:40 ---
I'm trying to work on this.

I would prefer a syntax open(...,convert=little_endian) or something like
that.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||tkoenig at gcc dot gnu dot
   ||org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-10-11 Thread Tobias dot Schlueter at physik dot uni-muenchen dot de


--- Comment #5 from Tobias dot Schlueter at physik dot uni-muenchen dot de  
2005-10-11 19:01 ---
Subject: Re:  Add -byteswapio flag

tkoenig at gcc dot gnu dot org wrote:
 --- Comment #4 from tkoenig at gcc dot gnu dot org  2005-10-11 18:40 
 ---
 I'm trying to work on this.
 
 I would prefer a syntax open(...,convert=little_endian) or something like
 that.

This wouldn't allow taking sources and data files from a big-endian platform
to a little-endian platform without either conversion of the data files or
modifications to the sources, so this will also have to be settable at runtime.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-10-11 Thread rrr6399 at futuretek dot com


--- Comment #6 from rrr6399 at futuretek dot com  2005-10-11 19:20 ---
Many compilers, like the Intel and PGI ones for instance, simply have a
-byteswap flag that is set at compile time. That way any unformatted data that
is input or output is expected to be switched to Little or Big Endian all the
time. This is typically what we've needed over the years. I haven't really seen
a case to only byteswap certain files. A run time option would work as well as
long as people remember to set the environment variable or whatever.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-10-11 Thread tkoenig at gcc dot gnu dot org


--- Comment #7 from tkoenig at gcc dot gnu dot org  2005-10-11 19:37 ---
(In reply to comment #6)
 Many compilers, like the Intel and PGI ones for instance, simply have a
 -byteswap flag that is set at compile time.

ifort actually uses -convert big_endian or -convert little_endian to
supply defaults.  This is better than specifying byteswapping,
because it is (if set) platform-independent.

We could also use environment variables the same way that ifort
does.

Three ways to specify the same thing... but I think there's a need
for that.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815



[Bug fortran/23815] Add -byteswapio flag

2005-09-12 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-12 
14:29 ---
Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-09-12 14:29:20
   date||
Summary|Add -byteswapio flag|Add -byteswapio flag


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815


[Bug fortran/23815] Add -byteswapio flag

2005-09-12 Thread falk at debian dot org

--- Additional Comments From falk at debian dot org  2005-09-12 19:22 
---
In case anybody wants to work on this, I have an old unfinished patch lying
around that adds builtins and RTL codes for byteswap operation. This allows
to use platform specific tricks that almost any platform has.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23815