Re: cycles in class definitions
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
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 ||
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
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 ||
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
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
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