zsh-workers
 help / color / mirror / code / Atom feed
* Re: Floating point support?
@ 1999-09-15  7:16 Sven Wischnowsky
  1999-09-15 15:20 ` Bart Schaefer
  1999-09-15 17:59 ` Peter Whaite
  0 siblings, 2 replies; 6+ messages in thread
From: Sven Wischnowsky @ 1999-09-15  7:16 UTC (permalink / raw)
  To: zsh-workers


Peter Stephenson wrote:

> I'm thinking about adding some floating point support to zsh; this is just
> to canvas opinions.

Yes!

> My idea is to add a floating point parameter type,
> together with support in math evaluations (which would involve stuff like
> promoting integers to floats etc.). 

That's what I was thinking about, too.

>  ...
>
> - Is anyone able to summarise what the status is with other shells
> (particularly ksh)?

I once looked for floating point support in ksh, but don't remember
everything, so... http://www.kornshell.com (sorry ;-)


Bart Schaefer wrote:

> Problems that immediately come to mind:
> 
> For one, suppose I have float-typed parameters x and y and I write
> 
> 	for i in {$x..$y}; do
> or
> 	print *.<$x-$y>
> 
> Another is that array subscripts are math-eval'd, and some pretty strange
> things may happen in any code that relies upon multiplication or division
> to compute subscripts if floating point gets involved (even if the result
> is rounded down).  Not that I'm directly aware of any such code ...

Hm, but that last one is the same as in every other programming
language. So maybe it's OK if we just mention these problems in the
docs. Or maybe not?

> I'd vote for the module, though it should be in the builtin modules list
> for a static compile.

Agreed.

> } which would require yet more support for hooks
> 
> We could treat it like a Windoze DLL and simply load the module named 
> "math" (or "float" or something); if users want other special functions
> they have add them to a module with that same name.

I think we should just allow modules to define functions for math
contexts and the possibility to make modules autoloaded on them.
Doesn't sound too hard.

> Maybe we could put
> in support for any module to load another one later in the module path,
> for creation of such augmented modules.

That may be interesting to have anyway. Although it may be a bit
irritating if the loading of such an augmenting module happens
accidentally.

Bye
 Sven


--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Floating point support?
  1999-09-15  7:16 Floating point support? Sven Wischnowsky
@ 1999-09-15 15:20 ` Bart Schaefer
  1999-09-15 17:59 ` Peter Whaite
  1 sibling, 0 replies; 6+ messages in thread
From: Bart Schaefer @ 1999-09-15 15:20 UTC (permalink / raw)
  To: zsh-workers

On Sep 15,  9:16am, Sven Wischnowsky wrote:
} Subject: Re: Floating point support?
}
} Bart Schaefer wrote:
} 
} > Another is that array subscripts are math-eval'd, and some pretty strange
} > things may happen in any code that relies upon multiplication or division
} > to compute subscripts if floating point gets involved (even if the result
} > is rounded down).  Not that I'm directly aware of any such code ...
} 
} Hm, but that last one is the same as in every other programming
} language.

The difference is that one used to be able to count on a certain behavior
from zsh, and we're talking about changing that.

} So maybe it's OK if we just mention these problems in the docs.

Probably.  It's not as if we haven't changed plenty of other behavior
already ...

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Floating point support?
  1999-09-15  7:16 Floating point support? Sven Wischnowsky
  1999-09-15 15:20 ` Bart Schaefer
@ 1999-09-15 17:59 ` Peter Whaite
  1 sibling, 0 replies; 6+ messages in thread
From: Peter Whaite @ 1999-09-15 17:59 UTC (permalink / raw)
  To: zsh-workers


Sven Wischnowsky said:
> 
> Peter Stephenson wrote:
> 
> > I'm thinking about adding some floating point support to zsh; this is just
> > to canvas opinions.
> 
> Yes!

Yes.  Its very useful in ksh93 (pksh).

> 
> > My idea is to add a floating point parameter type,
> > together with support in math evaluations (which would involve stuff like
> > promoting integers to floats etc.). 
> 
> That's what I was thinking about, too.
> 
> >  ...
> >
> > - Is anyone able to summarise what the status is with other shells
> > (particularly ksh)?
> 
> I once looked for floating point support in ksh, but don't remember
> everything, so... http://www.kornshell.com (sorry ;-)

    http://www.cs.princeton.edu/~jlk/kornshell/doc/man93.html
    http://members.xoom.com/_XOOM/dfrench/kshman93.html

You could also download UWIN from 

    http://www.research.att.com/sw/tools/uwin/

and that would give you a man page, and an "official" ksh, for NT/98/95.

---
peta


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Floating point support?
  1999-09-14 17:06 ` Bart Schaefer
@ 1999-09-15  9:19   ` Peter Stephenson
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Stephenson @ 1999-09-15  9:19 UTC (permalink / raw)
  To: Zsh hackers list

"Bart Schaefer" wrote:
> I'm also a bit dubious of making floating point precision dependent on the
> size of the integer type, but if it doesn't bother you ...

It does, and ksh 93 promises doubles, which are in any case what the
standard library routines will expect and produce.  The problem is the
alignment in zsh's memory routines, including the heap allocation:
alignment is tied to the size of the integer type used.  So if it's a
32-bit long you need to fiddle around to get doubles aligned.  It can be
done, it just makes the thing more messy and accident prone.

-- 
Peter Stephenson <pws@ibmth.df.unipi.it>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Floating point support?
  1999-09-14 15:56 Peter Stephenson
@ 1999-09-14 17:06 ` Bart Schaefer
  1999-09-15  9:19   ` Peter Stephenson
  0 siblings, 1 reply; 6+ messages in thread
From: Bart Schaefer @ 1999-09-14 17:06 UTC (permalink / raw)
  To: Zsh hackers list

On Sep 14,  5:56pm, Peter Stephenson wrote:
} Subject: Floating point support?
}
} I'm thinking about adding some floating point support to zsh; this is just
} to canvas opinions.  My idea is to add a floating point parameter type
} together with support in math evaluations [...]

Problems that immediately come to mind:

For one, suppose I have float-typed parameters x and y and I write

	for i in {$x..$y}; do
or
	print *.<$x-$y>

Another is that array subscripts are math-eval'd, and some pretty strange
things may happen in any code that relies upon multiplication or division
to compute subscripts if floating point gets involved (even if the result
is rounded down).  Not that I'm directly aware of any such code ...

Then there's the (very minor) matter of associative arrays with numeric
indices (which are represented by converting to strings) and expectations
of accuracy when indexing those with the result of floating-point math
(the problem being that there shouldn't be any expectation of accuracy).

I'm also a bit dubious of making floating point precision dependent on the
size of the integer type, but if it doesn't bother you ...

} - Does anyone object to sullying the integral purity of zsh with decimal
} points and exponents?

Plainly from the standpoint of purity, not I.

} - What about functions?  We could supply some basic maths functions, or
} could put them in a loadable module

I'd vote for the module, though it should be in the builtin modules list
for a static compile.

} which would require yet more support for hooks

We could treat it like a Windoze DLL and simply load the module named 
"math" (or "float" or something); if users want other special functions
they have add them to a module with that same name.  Maybe we could put
in support for any module to load another one later in the module path,
for creation of such augmented modules.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Floating point support?
@ 1999-09-14 15:56 Peter Stephenson
  1999-09-14 17:06 ` Bart Schaefer
  0 siblings, 1 reply; 6+ messages in thread
From: Peter Stephenson @ 1999-09-14 15:56 UTC (permalink / raw)
  To: Zsh hackers list

I'm thinking about adding some floating point support to zsh; this is just
to canvas opinions.  My idea is to add a floating point parameter type,
together with support in math evaluations (which would involve stuff like
promoting integers to floats etc.).  It would be easiest to make the
floating point type the same size as the integer type, i.e. usually double
if longs are 64 bits or if long longs are in use, float otherwise.

- Does anyone object to sullying the integral purity of zsh with decimal
points and exponents?

- Is anyone able to summarise what the status is with other shells
(particularly ksh)?

- What about functions?  We could supply some basic maths functions, or
could put them in a loadable module, which would require yet more support
for hooks, although it's certainly more flexible (write your own library
routines).  This may mean some more configuration checking for
capabilities, although I think basic maths library routines are universal.
(We could even make it forget to put -lm on the link line the first time,
just to make users feel at home :-) :-).)

-- 
Peter Stephenson <pws@ibmth.df.unipi.it>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~1999-09-15 17:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-09-15  7:16 Floating point support? Sven Wischnowsky
1999-09-15 15:20 ` Bart Schaefer
1999-09-15 17:59 ` Peter Whaite
  -- strict thread matches above, loose matches on Subject: below --
1999-09-14 15:56 Peter Stephenson
1999-09-14 17:06 ` Bart Schaefer
1999-09-15  9:19   ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).