1. Standards

I intend to track the standards if no one objects.
I will track things like syntax and how many people support it. I will also keep
a copy of the
documentation. I will write a euphoria program to make generating a submission
simple.
I will need to publish the standards on a web site and it would probablely
easier to use a free
one as I doubt RDS wants to give out access to there site and probabely don't
want to receive
heaps of mail from me. Any suggestions as to which free one ...

I will track code and values upon decision of prototypes etc.

I will write up te rules as soon as possible. Of course the main ones will be :
* All decisions will be made only by the euphoria community based on a
democratic vote.
* I will impartial.

-----------------------------------------------------------------------------------------------
A submission should be submitted as

In the Subject of the message ...
 EUSTD Submission <category>
In the body of the message ...
 Name :         Name of routine/constant/etc
 Type :         New/Change to a standard
 Reason :       I want a good reason.
 Comments :     If you want to say anything important
 Syntax :       Function Prototype
 Documentation :        On the lines underneath

The Categories are :
Mathematics, Sequence Manipulation, Object Oriented Programming, Algorithms,
Input/Output,
Networking, User Interface, Database, Graphics 2D/3D, Threads, Machine Level,
Operating System, Miscellaneous, Documentation, Standards

Vote Submision
-----------------------------------------------------------------------------------------------
In the Subject of the message ...
 VOTE Submission <category>
In the body of the message ...
 Name :         Name of routine/constant/etc
 Type :         Support / Against
 [Reason :      Out of interest]

-----------------------------------------------------------------------------------------------
If you suggest a routine you will have to provide the documentation in standard
RDS form, the
current standard.

The documentation whould be
[Platform:      DOS32/Win32/Linux]
Syntax:         [include <filename>]
function prototype / constant name / type
                                prototype
Description:    What it is / does
Comments:       Things you wnat to know
Example:
[See Also:]

A function protoype is written as...
<return type> <name>( [<type> <name>] [, <type> <name>] [, <type> <name>] etc )

A type protoype is written as...
type <name>( <type> <name> )

Types are  atom, integer, object, sequence
        string - ie a sequence of charcaters
        I know strings aren't supported however it is simpler to say string.

[] indicate it is optional.
<> idicates it should be replaced by the approriate value.

eg
PI
------------------------------------------------------------
Syntax:         include misc.e
                PI
Description:    PI (3.14159...) has been defined as a global constant.
Comments:       Enough digits have been used to attain the maximum accuracy
possible for a Euphoria
atom.
Example:        x = PI  -- x is 3.14159... See Also:    sin, cos, tan


------------------------------------------------------------
So far in Math (Votes are between [])

PI = 3.141592...                                [Approved!]
atom abs( atom )                                [6]
object = arcsin( object )       [Approved!]
object = arccos( object )       [Approved!]
atom min( sequence )            [4]
atom mean( sequence )           [2]
atom median( sequence ) [2]
atom min( atom, atom )          [4]
atom mode( sequence )           [2]
atom sign( atom )                       [3]
atom sum( sequence )            [2]
-------------------------
Sincerely,
Mathew Hounsell

mat.hounsell at excite.com

new topic     » topic index » view message » categorize

2. Re: Standards

I have a few recommendations...
--------
Don't put *all* math routines / constants into math.e - remember we're
dealing with an interpreted language.  Unless it absolutely makes sense not
to do so, we should try to keep the basic include files as small as
possible.  Advanced, infrequently used functions, should be available in
the standard library - but kept in separate include files with a standard
naming convention.  For example:

        math.e
        math_trig.e
        math_stats.e
        math_complex.e
--------
Shouldn't at least some of the following functions return objects instead
of atoms?

        object abs (object)
        object sign (object)
        object max (sequence)
        object min (sequence)

Euphoria's math paradigm is very symmetrical where atom / sequences are
concerned.  If you add sequences, Euphoria simply iterates through
sequences and even recurses if necessary to accomplish a full vector add.
 The abs () and sign () functions clearly fall into this category.

If min () and max () returned objects, they could be used to find the
(alphabetically) first string in a sequence of strings.  The question is
which would be more useful: 1) return the first string; or 2) return the
smallest atom in the whole sequence of sequences (of sequences, etc.).  I
don't have a strong opinion either way on this one.
--------
The sign () function should (for the simple case of an atom) return -1, 0,
or 1 instead of -1 or 1 as was mentioned in an earlier posting.
--------
I don't want to offend anyone, but the ".ex" extension for DOS programs
never made much sense to me.  It isn't in line with the symmetry of the
rest of the language.  The following makes more sense to me:

        .e      Generic, platform-neutral include
        .ex     Generic, platform-neutral executable

        .ew     Windows include
        .exw    Windows executable

        .ed     DOS include
        .exd    DOS executable

        .el     Linux include
        .exl    Linux executable
--------
I appreciate your volunteering to be the "keeper of the standard libraries"
Matthew.  It shows insight and initiative.  Euphoria is now several years
old, it's on the verge of being available on 3 platforms, and a
cross-platform GUI is under development.  I believe it would help grow the
popularity of the language if we made a full-featured standard library
available.  The big question now is who decides what makes it into the
official Standard Euphoria Library.  Do we want to elect a "standards body"
or do we keep the chaotic informality?

-----Original Message-----
From:   Mathew Hounsell [SMTP:mfh03 at UOW.EDU.AU]
Sent:   Friday, June 25, 1999 5:26 PM
To:     EUPHORIA at LISTSERV.MUOHIO.EDU
Subject:        Standards

I intend to track the standards if no one objects.
I will track things like syntax and how many people support it. I will also
keep a copy of the
documentation. I will write a euphoria program to make generating a
submission simple.
I will need to publish the standards on a web site and it would probablely
easier to use a free
one as I doubt RDS wants to give out access to there site and probabely
don't want to receive
heaps of mail from me. Any suggestions as to which free one ...

I will track code and values upon decision of prototypes etc.

I will write up te rules as soon as possible. Of course the main ones will
be :
* All decisions will be made only by the euphoria community based on a
democratic vote.
* I will impartial.

------------------------------------------------------------------------
-----------------------
A submission should be submitted as

In the Subject of the message ...
 EUSTD Submission <category>
In the body of the message ...
 Name :         Name of routine/constant/etc
 Type :         New/Change to a standard
 Reason :       I want a good reason.
 Comments :     If you want to say anything important
 Syntax :       Function Prototype
 Documentation :        On the lines underneath

The Categories are :
Mathematics, Sequence Manipulation, Object Oriented Programming,
Algorithms, Input/Output,
Networking, User Interface, Database, Graphics 2D/3D, Threads, Machine
Level,
Operating System, Miscellaneous, Documentation, Standards

Vote Submision
------------------------------------------------------------------------
-----------------------
In the Subject of the message ...
 VOTE Submission <category>
In the body of the message ...
 Name :         Name of routine/constant/etc
 Type :         Support / Against
 [Reason :      Out of interest]

------------------------------------------------------------------------
-----------------------
If you suggest a routine you will have to provide the documentation in
standard RDS form, the
current standard.

The documentation whould be
[Platform:      DOS32/Win32/Linux]
Syntax:         [include <filename>]
                                function prototype / constant name / type
prototype
Description:    What it is / does
Comments:       Things you wnat to know
Example:
[See Also:]

A function protoype is written as...
<return type> <name>( [<type> <name>] [, <type> <name>] [, <type> <name>]
etc )

A type protoype is written as...
type <name>( <type> <name> )

Types are  atom, integer, object, sequence
        string - ie a sequence of charcaters
        I know strings aren't supported however it is simpler to say
string.

[] indicate it is optional.
<> idicates it should be replaced by the approriate value.

eg
PI
------------------------------------------------------------
Syntax:         include misc.e
                PI
Description:    PI (3.14159...) has been defined as a global constant.
Comments:       Enough digits have been used to attain the maximum accuracy
possible for a Euphoria
atom.
Example:        x = PI  -- x is 3.14159... See Also:    sin, cos, tan


------------------------------------------------------------
So far in Math (Votes are between [])

PI = 3.141592...                                [Approved!]
atom abs( atom )                                [6]
object = arcsin( object )       [Approved!]
object = arccos( object )       [Approved!]
atom min( sequence )            [4]
atom mean( sequence )           [2]
atom median( sequence ) [2]
atom min( atom, atom )          [4]
atom mode( sequence )           [2]
atom sign( atom )                       [3]
atom sum( sequence )            [2]
-------------------------
Sincerely,
Mathew Hounsell

mat.hounsell at excite.com
________________________________________________________
NetZero - We believe in a FREE Internet.  Shouldn't you?
Get your FREE Internet Access and Email at
http://www.netzero.net/download/index.html

new topic     » goto parent     » topic index » view message » categorize

3. Re: Standards

Just a quick, short comment:

> Do we want to elect a "standards body" or do we keep the chaotic
informality?

Why elect a standards body?  Why not just make this list the standards
body, with everyone allowed their vote?  A standards body that runs
chaotic informality.  Simply have a thread started up before every major
release, asking what new ideas people have, what could be changed, what
could be dropped, added, etc.  Then, a general vote on each of the
issues raised.

It almost seems like fun =)

Greg

new topic     » goto parent     » topic index » view message » categorize

4. Re: Standards

Joe Otto wrote...
>Shouldn't at least some of the following functions return objects =
instead
>of atoms?
>
>        object abs (object)
>        object sign (object)
>        object max (sequence)
>        object min (sequence)

Hmmm, good point. Yes, I would think many math functions should return
objects, and I also think 'abs' and 'sign' should do so (much like
'floor' does).

>If min () and max () returned objects, they could be used to find the
>(alphabetically) first string in a sequence of strings.  The question =
is
>which would be more useful: 1) return the first string; or 2) return =
the
>smallest atom in the whole sequence of sequences (of sequences, etc.).  =
I
>don't have a strong opinion either way on this one.

I don't like the idea of using 'min' or 'max' with strings. In the same
way that > and < don't really make mathematical sense when strings are
involved (despite the fact that we've grown accustomed to the concept in
other languages), 'min' and 'max' imply mathematical comparisons. And
consider that in Euphoria, the following expressions don't work out like
a newbie might expect:

   {1,2,3} < 2       --> error
   {1,2,3} < {3,4,5} --> {1,1,1}, NOT {1,2,3}

Basically, strings and comparisons (which is what 'min' and 'max' really
are) don't mix in Euphoria. Plus, this might needlessly complicate the
functions themselves. *Other* functions designed to work this way with
strings (possibly optimized for string comparisons) would be nice, but I
wouldn't name them 'min' and 'max'.

I don't see anything wrong with allowing subsequences in the sequence
parameter, since current math functions (like 'floor' and 'sqrt') =
already
allow it.

Now 'sum' might present a problem. Assuming subsequences are allowed, =
how
should they be evaluated? Would it be...

   sum ({{1,2,3},{4,5,6},{7,8,9}}) --> yields 45

or...

   sum ({{1,2,3},{4,5,6},{7,8,9}}) --> yields {6,15,24}

It wouldn't really matter to me; I can see uses for both forms, and =
either
one that wasn't implemented could be easily worked around.

>The sign () function should (for the simple case of an atom) return -1, =
0,
>or 1 instead of -1 or 1 as was mentioned in an earlier posting.

Agreed.

>The big question now is who decides what makes it into the
>official Standard Euphoria Library.  Do we want to elect a "standards =
body"
>or do we keep the chaotic informality?

Um, forgive my asking, but is this approach to the idea valid? Euphoria =
isn't exactly a public-domain, Linux-like, "We the People" language, at =
least not entirely. Wouldn't Mr. Craig be the final word on all such =
decisions?


Rod Jackson

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu