Tcl Source Code

View Ticket
Login
Ticket UUID: 925620
Title: Impure generic/platform code splitting
Type: Bug Version: obsolete: 8.5a2
Submitter: dkf Created on: 2004-03-29 21:18:06
Subsystem: 37. File System Assigned To: vincentdarley
Priority: 3 Low Severity:
Status: Closed Last Modified: 2004-10-07 22:02:49
Resolution: Fixed Closed By: vincentdarley
    Closed on: 2004-10-07 15:02:49
Description:
When examining generic/tclIOUtil.c, I see a number of
references to things relating to Windows only. Would it
be possible to hive these things off behind a
TclpThingy interface?

At the same time, why is TclpNativeToNormalized defined
in that file at all?  That's a function that I'd expect
to be done exclusively by the platform-specific parts
of the core (for all that it is more work that way.) 
Perhaps we've actually got an error in the splitting of
functionality between functions if we need that much
common code in that function?

I make all these points because keeping different
platform-specific bits of the core separated from the
generic core makes for much cleaner code overall;
#ifdef-fery is often best characterised as an
obfuscation technique rather than a high-quality
programming paradigm...
User Comments: vincentdarley added on 2004-10-07 22:02:49:
Logged In: YES 
user_id=32170

Updated patch for latest cvs HEAD changes, and applied.

dgp added on 2004-10-02 08:08:36:
Logged In: YES 
user_id=80530

also tests ok on Mac OS X

dgp added on 2004-10-02 03:04:13:

File Added - 103501: 925620.patch

Logged In: YES 
user_id=80530

revised patch tests ok on 
Linux/Alpha and Solaris

now to review the code...

vincentdarley added on 2004-10-01 00:23:08:
Logged In: YES 
user_id=32170

p.s. patch needs testing on Unix.  Works fine on Windows.

vincentdarley added on 2004-10-01 00:22:28:

File Added - 103352: fsGeneric.diff

vincentdarley added on 2004-10-01 00:22:27:
Logged In: YES 
user_id=32170

Attaching a proposed patch to remove #ifdef's and move the
code to the platform directories.

vincentdarley added on 2004-03-30 17:22:31:
Logged In: YES 
user_id=32170

I agree that we would be better with more platform specific
separation, and less #ifdef'ing.  I'd certainly support any
efforts to clean things up.

Attachments: