Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #21665

Re: Portability

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: Portability
Date 2013-04-15 16:20 +0200
Organization 1&1 Internet AG
Message-ID <kkh2c6$ijc$1@online.de> (permalink)
References (5 earlier) <Z66dnedz25l5HfjMnZ2dnUVZ_hKdnZ2d@supernews.com> <2013Apr10.175619@mips.complang.tuwien.ac.at> <g5udnV5YkqvfSvjMnZ2dnUVZ_uKdnZ2d@supernews.com> <2013Apr11.152441@mips.complang.tuwien.ac.at> <kkgt30$311$1@dont-email.me>

Show all headers | View raw


rickman wrote:
> Can you explain that?  Comparison is done by subtracting.  Subtraction
> can indeed produce overflows for two numbers of the same type.  -32000
> 32000 - does produce an overflow in a 16 bit signed number system.
> Likewise 1 2 - produces an overflow in a 16 bit unsigned number system.

Yes, and the rule for comparison is that a<b is true if (a-b<0) xor 
overflow.  Many processors have flags indicating signed overflow and carry 
(unsigned overflow, sometimes on subtraction, it's borrow, which is the 
inverse).

> Even if you ignore the overflows and just work with the result you get,
> cases can't be distinguished.  -32768 32767 - produces 1 as does 2 1 -,
> but they should produce different results in a comparison test.  Do I
> have this wrong?
> 
> I'm not clear what your point is.

That it can be done right and has been done right.

The things I'm missing are mixed-type comparisons.  If you compare 
signed<unsigned, it's true if (in Forth words):

: su< ( n u -- flag )  over 0< >r u< r> or ;

There are a number of cases where mixed operations are quite useful.  I like 
mixed s*u multiplication and s/u division, because you usually have one 
factor without sign, and then there's no need to handle the negative case, 
which costs you a bit on multiplication and some headaches on division.  
IIRC, Forth Inc. had s/u division during the early days, and was quite happy 
with that.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

 Portability kenney@cix.compulink.co.uk - 2013-04-06 04:12 -0500
  Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-06 11:31 +0000
    Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-06 10:34 -1000
      Re: Portability "Ed" <invalid@nospam.com> - 2013-04-09 09:56 +1000
        Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-09 01:30 +0000
          Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-09 07:21 +0000
            Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-08 22:18 -1000
              Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-09 12:41 +0000
                Re: Portability Coos Haak <chforth@hccnet.nl> - 2013-04-09 17:21 +0200
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-09 08:06 -1000
                Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-09 22:34 +0200
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-09 12:05 -1000
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-09 14:19 -1000
                Re: Portability Chris <xrissmith@me.com> - 2013-04-09 20:45 -0700
                Re: Portability "Ed" <invalid@nospam.com> - 2013-04-10 14:02 +1000
                Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-09 23:00 -0700
                Re: Portability "WJ" <w_a_x_man@yahoo.com> - 2013-04-12 14:41 +0000
                Re: Portability "Ed" <invalid@nospam.com> - 2013-04-13 15:34 +1000
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-10 15:19 +0000
                Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-10 11:46 +0000
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-10 15:03 +0000
                Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-09 18:28 -0700
            Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-09 17:00 -0700
          Re: Portability "Ed" <invalid@nospam.com> - 2013-04-10 13:00 +1000
            Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-10 11:55 +0000
              Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-10 10:10 -0500
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-10 15:56 +0000
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-10 16:18 -0500
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-11 13:24 +0000
                Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-11 20:50 -0700
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-12 04:17 -0500
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-12 13:43 +0000
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-12 11:08 -0500
                Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-12 18:50 +0000
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-13 03:57 -0500
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-13 11:59 +0000
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-13 14:47 -0500
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-12 10:44 -0400
                Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-15 16:20 +0200
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-16 08:12 -1000
                Re: Portability "A.K." <akk@nospam.org> - 2013-04-16 22:21 +0200
                Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-16 22:33 +0200
                Re: Portability "Ed" <invalid@nospam.com> - 2013-04-19 15:04 +1000
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-15 15:46 +0000
                Re: Portability Sieur de Bienville <morrimichael@gmail.com> - 2013-04-15 19:19 -0700
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-16 12:53 +0000
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-16 17:29 -0400
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-16 11:44 -1000
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-16 18:00 -0400
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-16 17:33 -0500
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-16 12:46 -1000
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 13:09 -0400
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-17 12:20 -0500
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-17 07:38 -1000
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-17 16:43 -0500
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 20:03 -0400
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-18 16:53 -0500
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-18 18:02 -0400
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-19 03:30 -0500
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-19 15:31 -0400
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-22 09:59 +0000
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-22 07:28 -0500
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-22 15:27 +0000
                Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-22 18:16 -0700
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-17 10:23 +0000
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 13:46 -0400
                Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-22 09:47 +0000
                Re: Portability Brad Eckert <hwfwguy@gmail.com> - 2013-04-17 10:32 -0700
                Re: Portability nobody@nowhere - 2013-04-17 17:36 +0000
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 14:21 -0400
                Re: Portability Brad Eckert <hwfwguy@gmail.com> - 2013-04-17 15:03 -0700
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 18:22 -0400
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 18:24 -0400
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-18 00:51 -0400
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-18 17:19 -0400
                Re: Portability Brad Eckert <hwfwguy@gmail.com> - 2013-04-19 12:37 -0700
                Re: Portability rickman <gnuarm@gmail.com> - 2013-04-19 15:53 -0400
                Re: Portability Lars Brinkhoff <lars.spam@nocrew.org> - 2013-04-17 19:26 +0200
                Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-10 18:50 +0000
                Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-10 22:14 +0200
                Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-12 04:18 -0500
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-12 08:30 -1000
                Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-12 18:58 +0000
                Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-12 11:29 -1000
              Re: Portability "Ed" <invalid@nospam.com> - 2013-04-13 14:57 +1000
        Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-09 04:11 -0500

csiph-web