delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/11/01/09:06:57

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <BLU113-W55CE4C7672501C78118B48BE230@phx.gbl>
From: Mike Marchywka <marchywka AT hotmail DOT com>
To: <cygwin AT cygwin DOT com>
Subject: RE: cygwin g++ strictness
Date: Sat, 1 Nov 2008 10:05:54 -0400
In-Reply-To: <490C4B7D.9000602@bmts.com>
References: <490A30C8 DOT 5000107 AT sh DOT cvut DOT cz> <001601c93b31$a961b940$4001a8c0 AT mycomputer> <003e01c93b42$e92a17a0$4001a8c0 AT mycomputer> <490AE8A0 DOT 8090009 AT sh DOT cvut DOT cz> <001a01c93b4d$617de150$4001a8c0 AT mycomputer> <490AF1E3 DOT 3020308 AT sh DOT cvut DOT cz> <007401c93b56$ebcfa510$4001a8c0 AT mycomputer> <490B0084 DOT 1070803 AT sh DOT cvut DOT cz> <008a01c93b5a$9338d300$4001a8c0 AT mycomputer> <490B078B DOT 9030007 AT byu DOT net> <20081031135011 DOT GB15518 AT calimero DOT vinschen DOT de> <490B21E9 DOT 80807 AT lysator DOT liu DOT se> <011601c93b6e$49bbb710$4001a8c0 AT mycomputer> <490B268D DOT 3010801 AT byu DOT net> <AD4006A86F9C4CDA97D99556B68434C9 AT DFW5RB41> <490C4B7D DOT 9000602 AT bmts DOT com>
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id mA1E6uoj031100



> 
>>> It is not portable to platforms with 16-bit int (although 
>>> these days, such platforms are museumware).
>> 
>> That, or:
>> - Running your car's engineware.
>> - Exploding an airbag into your face on detecting a collisionware.
>> - Recording your vital signsware.
>> - Pumping insulin into youware.
>> - Doing your laundyware
>> - Computerized exercise machinewear
>> - Microwaveware
>> - A billion other products with 8- and 16-bit microcontrollers in themware.
>>
 
These "resource constrained" devices are important to remember as even desktop
computers have limitations - and desktop programmers, from 
what I can see in how Flash and Acrobat function, often forget this. 
 
>> CSci doesn't begin and end with the CPU currently on our desks!
> 
> Thanks for reminding everyone that GCC is used for more than building
> desktop software. And to bring this around to Cygwin again, I've been
> using GCC for ARM under Cygwin for a few years now to build my Lua
> for the LEGO MINDSTORMS NXT.
> 
> Having been through the gauntlet porting C code from 8 to 16 to 32 bit
> machines, I've been bitten by almost every possible portability bug
> there is - and I agree with Gary

Having been raised on the Z80, I find it refreshing to write phone apps
and I still can't figure out how you write code that you just rebuild between
ARM and Pentium. 
 
 
> 
> Fix it the right way so that it's truly protable.

The problem of course is that "your architecture may vary."
This is a qualitative as well as quantitative ( as in the case of MPG)
variation. Java is supposed to be the same on all platforms regardless
of hardware and even floating point should always be exactly the same.
Of course, in reality, your medical device and airbag care about time but
the diff output doesn't.
 
Having ported an audio codec from java to various c++ targets,
I can assure this is usually more than just getting int size right.
 
 
As resources and constraints and objectives change, the implementation details
can effect best choice of algorithm making portable optimized code very difficult
( this isn't just typedefs or picking up a few run time parameters). Existence
of a cache is one important detail, and maybe you could argue that a 
computationally intensive app would never get ported from a desktop to a 
Z80 but the point of portability to make it limp along correctly if anyone needed to try. 
 
 
Remember, truely platform independent code would not need a platform
at all ( in fact, "independent" normally means "free of" or "unencumbered by"
not " need one of a list of things "). 
 
 
 
>
_________________________________________________________________
Stay up to date on your PC, the Web, and your mobile phone with Windows Live.
http://clk.atdmt.com/MRT/go/msnnkwxp1020093185mrt/direct/01/

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019