Re: cycles in class definitions

1998-05-29 Thread Simon L Peyton Jones


  class Fallible m where
fail_  :: String - m a
rethrow:: Fallible n = m a - n b
 
 GHC 2.10 (solaris) complains about this:
 
  Cycle.lhs:2: Cycle in class declarations ... `Fallible' Cycle.lhs:4
 
 
 Whereas Hugs (jan98) is fine with it.
 
 I didn't see anything in the 1.4 report which forbids such declarations,
 and haven't found anything in the ghc docs. 
 
 So, which system is doing the right thing? 

I think Hugs is.  I had better fix this.

Simon





ANNOUNCE: GHC Versiomn 3.02

1998-05-29 Thread Simon Marlow


 The Glasgow Haskell Compiler -- version 3.02
==

We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 3.02.  The source distribution is freely
available via the World-Wide Web and through anon. FTP; details below.

Haskell is "the" standard lazy functional programming language; the
current language version is 1.4, agreed in April, 1997.  Haskell
related information is available from the Haskell home page at

http://haskell.org/

+ What's new
=

GHC 3.02 is a source-only release.  Major news items:

* A new specialiser,
* A new unsafeCoerce# primitive.
* A NOINLINE pragma.
* Many bugs fixed, including several performance-related ones,

GHC 3.02 produces the fastest code since 0.29, but there's still
plenty of tuning to do.

+ Mailing lists


We run mailing lists for GHC users and bug reports; to subscribe, send
mail to [EMAIL PROTECTED]; the msg body should be:

subscribe glasgow-haskell-which Your Name [EMAIL PROTECTED]

Please send bug reports about GHC to [EMAIL PROTECTED] ; GHC
users hang out on [EMAIL PROTECTED]


+ On-line GHC-related resources


Relevant URLs on the World-Wide Web:

GHC home page http://www.dcs.gla.ac.uk/fp/software/ghc/
Haskell home page http://haskell.org/
Glasgow FP group page http://www.dcs.gla.ac.uk/fp/
comp.lang.functional FAQ  http://www.cs.nott.ac.uk/Department/Staff/mpj/faq.html


+ How to get it


The easy way is to go to the WWW page, which should be
self-explanatory:

http://www.dcs.gla.ac.uk/fp/software/ghc/

Once you have the distribution, please follow the pointers in the
README file to find all of the documentation about this release.  NB:
preserve modification times when un-tarring the files (no `m' option
for tar, please)!


+ System requirements
==

To compile up this source-only release, you need a machine with 16+MB
memory, GNU C (`gcc'), `perl' plus a version of GHC installed (version
2.10 at least). We have seen GHC work on these platforms:

  * alpha-dec-osf{2,3}
  * hppa1.1-hp-hpux{9,10}
  * sparc-sun-{sunos4,solaris2}
  * mips-sgi-irix{5,6}
  * i386-unknown-{linux,solaris2,freebsd,cygwin32}.
  * {rs6000,powerpc}-ibm-aix

Similar platforms should work with minimal hacking effort.  The installer's
guide included in distribution gives a complete run-down of what-ports-work;
an on-line version can be found at

   http://www.dcs.gla.ac.uk/fp/software/ghc/3.02/installation_guide/installing_toc.html

EOF




order of evalutation of ||

1998-05-29 Thread Alex Ferguson


S. Alexander Jacobson wonders:
 If you have a statement like:

 result= a || b || c 
 
 does Haskell guarantee that a gets evaluated before b?

Indeed it does, for see the standard Prelude definition of (||):

True  || _   =  True
False || x   =  x

Hope that helps.

Slainte,
Alex.





Re: Pattern Match Success Changes Types

1998-05-29 Thread Fergus Henderson

On 28-May-1998, Adrian Hey [EMAIL PROTECTED] wrote:
  A strong type system is supposed to prevent runtime errors.
  Thus it makes sense to disallow anything that might
  result in an attempt to access an unbound type.
 
 Yes, but in the cases we've been talking about we know that there will be
 no access to the unbound type since the reason the type is unbound is that
 it isn't referenced by expressions such as (Right something).

That does not imply that the type won't be used.
As shown in my example program, the type may be used for method
dispatch, even if there aren't any instances of the type (i.e.
values which have that type) around.

   as a general rule, I completely disregard Haskell's class system when ever
   possible. If this makes me a naive user, then I must plead guilty.
  
  You shouldn't disregard it "when ever possible";
  you should only disregard it in cases where you will
  often want to apply different methods to the same data type.
 
 I know using Haskell Classes will probably result in neater code a lot of
 the time. But when I write modules I like to think that they will last
 me 'forever', so I try to make them as general purpose as possible in the
 hope that they might come in handy again some day. Given the choice between
 a neat but non-general way of doing things and a messy but general way I
 am always inclined towards the latter.

Ah, but the type class method is general.
It's just a question of where you put the messiness.
With type classes, the common case is elegant, but things
get messy (you have to use newtype, etc.) if you want to
use operations other than the default for the type.
With the alternatives that you are advocating, using
different operations is elegant, but things are a little
messy (you have to pass stuff explicitly) in the common case.

   I suppose I could probably get around this problem by by making different
   types using newtype, but I this would no doubt cause other complications
   elsewhere.
  
  Yes, perhaps.  See Alistair Reid's proposal for newtype typecasts
  to avoid some of these complications.
 
 I think I've seen this. It didn't seem to go down to well if my memory
 is correct.

True, but maybe considerations such as these will sway the balance a bit! ;-)

-- 
Fergus Henderson [EMAIL PROTECTED]  |  "I have always known that the pursuit
WWW: http://www.cs.mu.oz.au/~fjh  |  of excellence is a lethal habit"
PGP: finger [EMAIL PROTECTED]| -- the last words of T. S. Garp.





Re: order of evalutation of ||

1998-05-29 Thread Simon L Peyton Jones

 
 If you have a statement like:
 
 result= a || b || c 
 
 does Haskell guarantee that a gets evaluated before b?
 If it does then I only have to protect against pattern match failure in
 one place, a.

Yes; if a is true, b and c won't be evaluated.  That's part of
the defn of ||

Simon





Preliminary Announcement and CFP: COORDINATION 99

1998-05-29 Thread Farhad . Arbab


Advanced apologies in case you receive more than one copy of this.--fa



   Preliminary Announcement and Call for Papers

   COORDINATION '99
  Third International Conference on Coordination Models and Languages

  Amsterdam, The Netherlands
   26-28 April 1999

   http://www.cs.unibo.it/~coord99/

The last decade has seen the emergence of a class of models and
languages variously termed "coordination languages", "configuration
languages", "architectural description languages", and "agent-oriented
programming languages".  These formalisms provide a clean separation
between individual software components and their interaction within
the overall software organization.  This separation makes large
applications more tractable, supports global analysis, and enhances
reuse of software.

Building on the success of COORDINATION '96 and '97, whose proceedings
were published as Springer Verlag LNCS 1061 and LNCS 1282, this
conference provides a forum for the growing community of researchers
interested in models, languages, and implementation techniques for
coordination.

Topics of interest include (but are not limited to):

* Theoretical models and foundations for coordination: component
  composition, concurrency, mobility, dynamic aspects of coordination.

* Specification, refinement, and analysis of software architectures:
  patterns and styles, verification of functional and non-functional
  properties.

* Coordination, architectural, and interface definition languages:
  implementation, interoperability, heterogeneity.

* Agent-oriented languages: formal models for interacting agents.

* Dynamic software architectures: mobile agents, configuration,
  reconfiguration.

* Tools and environments for the development of coordinated applications:
  integration within the development process.

* Industrial relevance of coordination and software architectures:
  programming in the large, domain-specific software architectures and
  coordination models, case studies.

Submission Instructions

Authors are invited to send 6 copies of a full paper (in English, up
to 6000 words, preferably double-sided) at the postal address
mentioned below.  Please use the LNCS style, which is described at the
following site.

http://www.springer.de/comp/lncs/authors.html

Full papers must be received no later than Nov 25 1998.  Electronic
submissions will not be considered.  Simultaneous or similar
submissions to other conferences or journals is not allowed.

An abstract of no more than 250 words must be sent by email in ASCII
format to [EMAIL PROTECTED]  Included in the email must be the
names and affiliations of all authors, and the full address
information (address, phone, fax, email) of one contact author.  The
email abstract must be received by Nov 18 1998.

Submissions should explicitly state their contribution and their
relevance to the theme of the conference.  Other criteria for
selection will be originality, significance, correctness, and clarity.

Conference Location

Coordination '99 will be hosted by CWI in Amsterdam, NL.  Information
on CWI and Amsterdam are available at the following sites.

http://www.cwi.nl
http://www.cwi.nl/~steven/amsterdam.html
http://www.cwi.nl/~behr/PanoramaUK/Panorama.html


   IMPORTANT DATES

 Pre-submission abstracts (email):  Nov 18 1998
 Full paper submissions (post): Nov 25 1998
 Notification of acceptance:Jan 25 1999
 Camera-ready version:  Feb 25 1999

Address submissions to:

   Prof. P. Ciancarini
   Dipartimento di Scienze dell'Informazione
   Universita' di Bologna
   Mura Anteo Zamboni, 7
   40127 Bologna - Italy

Program co-chairs: 
   Paolo Ciancarini (Italy) and Alexander Wolf (USA)

Organizing Chairs:
   Farhad Arbab (NL) and Joost Kok (NL)

Program Committee:
   Farhad Arbab (CWI/NL)
   Maarten Boasson (Signaal/NL)
   Nick Carriero (Yale/USA)   
   Georges Gonthier (INRIA/F) 
   Roberto Gorrieri (Bologna/Italy)
   Chris Hankin (IC/UK)
   Paola Inverardi (L'Aquila/Italy)
   Valerie Issarny (IRISA/F)   
   Suresh Jagannathan (NEC/USA)
   Joost Kok (U.Leiden/NL) 
   Jeff Kramer (IC/UK) 
   Jose Meseguer (SRI/USA)
   Claudia Linnhoff-Popien (Aachen/D)
   Antonio Porto (U.Lisbon/P)
   G. Catalin Roman (S. Louis/USA)
   Richard Taylor (UCI/USA)  
   Robert Tolksdorf (TUBerlin/D) 
   Mike Woolridge (QMC/UK)   








ANNOUNCE: GHC Version 3.02

1998-05-29 Thread Simon Marlow


 The Glasgow Haskell Compiler -- version 3.02
==

We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 3.02.  The source distribution is freely
available via the World-Wide Web and through anon. FTP; details below.

Haskell is "the" standard lazy functional programming language; the
current language version is 1.4, agreed in April, 1997.  Haskell
related information is available from the Haskell home page at

http://haskell.org/

+ What's new
=

GHC 3.02 is a source-only release.  Major news items:

* A new specialiser,
* A new unsafeCoerce# primitive.
* A NOINLINE pragma.
* Many bugs fixed, including several performance-related ones,

GHC 3.02 produces the fastest code since 0.29, but there's still
plenty of tuning to do.

+ Mailing lists


We run mailing lists for GHC users and bug reports; to subscribe, send
mail to [EMAIL PROTECTED]; the msg body should be:

subscribe glasgow-haskell-which Your Name [EMAIL PROTECTED]

Please send bug reports about GHC to [EMAIL PROTECTED] ; GHC
users hang out on [EMAIL PROTECTED]


+ On-line GHC-related resources


Relevant URLs on the World-Wide Web:

GHC home page http://www.dcs.gla.ac.uk/fp/software/ghc/
Haskell home page http://haskell.org/
Glasgow FP group page http://www.dcs.gla.ac.uk/fp/
comp.lang.functional FAQ  http://www.cs.nott.ac.uk/Department/Staff/mpj/faq.html


+ How to get it


The easy way is to go to the WWW page, which should be
self-explanatory:

http://www.dcs.gla.ac.uk/fp/software/ghc/

Once you have the distribution, please follow the pointers in the
README file to find all of the documentation about this release.  NB:
preserve modification times when un-tarring the files (no `m' option
for tar, please)!


+ System requirements
==

To compile up this source-only release, you need a machine with 16+MB
memory, GNU C (`gcc'), `perl' plus a version of GHC installed (version
2.10 at least). We have seen GHC work on these platforms:

  * alpha-dec-osf{2,3}
  * hppa1.1-hp-hpux{9,10}
  * sparc-sun-{sunos4,solaris2}
  * mips-sgi-irix{5,6}
  * i386-unknown-{linux,solaris2,freebsd,cygwin32}.
  * {rs6000,powerpc}-ibm-aix

Similar platforms should work with minimal hacking effort.  The installer's
guide included in distribution gives a complete run-down of what-ports-work;
an on-line version can be found at

   http://www.dcs.gla.ac.uk/fp/software/ghc/3.02/installation_guide/installing_toc.html

EOF