Title: OpenVMS file system and UNIVERSAL_NEWLINES support
Type: behavior Stage:
Components: None Versions:
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: BreamoreBoy, ajaksu2, loewis, pieronne
Priority: low Keywords:

Created on 2004-02-24 10:20 by pieronne, last changed 2010-09-12 10:21 by BreamoreBoy. This issue is now closed.

File name Uploaded Description Edit
vms_patch_1.diff pieronne, 2004-03-29 20:53 patch file version 1
Messages (7)
msg20127 - (view) Author: Piéronne Jean-François (pieronne) Date: 2004-02-24 10:20
I am one of the maintainer of Python on OpenVMS.

Building from time to time Python 2.4 from CVS
snapshot, I have just noticed that all the conditional
compilation against WITH_UNIVERSAL_NEWLINES has been

This is a major problem on OpenVMS.

VMS has a complex file system which is mostly record
oriented and not stream oriented (even if it support
stream oriented files, this is not the default).
For example it support the following record formats:
fixed-length, variable-length, variable with
fixed-length control, 3 stream format, etc...
The default is variable-length.

So reading (opening) text file, for example during a
import, in binary mode lead to incorrect results
because there are no '\n' or any character (or
combinaison of characters) at the end of the line.
If the file is not open in binary mode the VMS CRTL
automatically append a '\n' at the end of the record,
so all work correctly. This not the case in binary
mode, in this case the record is read as is, in fact
you even get the control part of the record for some
record format.

So, is it possible to maintain this test, even as
undocumented or is it acceptable to transform it into a
specific VMS test. But I suspect that other mainframe
file systems will have the same problem.

Thanks for any help.


msg20128 - (view) Author: Piéronne Jean-François (pieronne) Date: 2004-03-29 20:53
Logged In: YES 

I have attach a patch for

This patch use a new conditionnal compilation item:

which need to be define only on systems which use RECORD
oriented IO and not stream oriented IO

It also contain a small fix for OpenVMS.

msg20129 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2004-03-29 22:05
Logged In: YES 

I don't understand the problem. What precisely is currently
not working, and precisely why does it fail? (exact file and
line that causes problems, please)
msg20130 - (view) Author: Piéronne Jean-François (pieronne) Date: 2004-03-29 23:05
Logged In: YES 

Hi Martin,

A few week ago I have open a thread on the mailing list do
you have read it which explain the problem and include a few
others contributions.
msg81874 - (view) Author: Daniel Diniz (ajaksu2) Date: 2009-02-13 04:19
Here's the thread mentioned:

Couldn't find any resolution about this issue after the messages here.
msg114328 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2010-08-19 06:21
I'll close this in a couple of weeks unless anyone objects.
msg116162 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2010-09-12 10:21
No reply to msg114328.
Date User Action Args
2010-09-12 10:21:52BreamoreBoysetstatus: pending -> closed
resolution: out of date
messages: + msg116162
2010-08-19 06:21:28BreamoreBoysetstatus: open -> pending
nosy: + BreamoreBoy
messages: + msg114328

2009-02-13 04:19:28ajaksu2setpriority: normal -> low
nosy: + ajaksu2
type: behavior
messages: + msg81874
2004-02-24 10:20:33pieronnecreate