RE: Missing HPPA1.1 GHC 2.10 link

1999-02-23 Thread Simon Marlow

Sven's hppa-1.1 binaries seem to have moved to:

   ftp://ftp.informatik.uni-muenchen.de/pub/local/pms/OLDSTUFF/

I'll update the web pages.  There's also a 3.03 binary set there that will
probably be more useful to you than 2.10.

BTW, we haven't ported 4.02 to HPPA1.1 yet - it will certainly need some
effort, although probably not too much.  We'll be happy to help out if you
could provide us with an account...

Cheers,
Simon



RE: fromInteger/hClose bugs in 4.03

1999-02-23 Thread Simon Marlow


 OK, the Word module has been fixed in the repository, but not the Int
 module.

Ok, done now.

 Hmmm, looking at the sources, I don't understand the 
 reason why
 the IntXY methods for fromInteger use a case while the corresponding
 methods in Word don't:
 
 Int.lhs:
 [...]
   fromInteger (J# s# d#)
 = case (integer2Int# s# d#) of { i# - I8# 
 (intToInt8# i#) }
 [...]
 
 Word.lhs:
 [...]
   fromInteger (J# s# d#) = W8# (wordToWord8# (integer2Word# s# d#))
 [...]

No particular reason, the code generated is the same in either case.

Cheers,
Simon



Re: Haskell 2 -- Dependent types?

1999-02-23 Thread Fergus Henderson

On 22-Feb-1999, Nick Kallen [EMAIL PROTECTED] wrote:
 min2 :: [a] - a
 min2 ((l:ls) :: [a] = Sorted) = l
 min2 l = min l

What's the semantics of that supposed to be?
If the list is not known to be definitely sorted,
will it check sortedness at runtime?

If not, then the semantics could be nondeterministic,
in general, so you've broken referential transparency.

If so, what's the difference between that and this?

min3 :: [a] - a
min3 (l:ls) | sorted (l:ls) = l
min3 l = min l

Here I'm just using an ordinary guard,
and `sorted' is just an ordinary function.

 Heh. I'm not seriously advocating adding my magic operator to the language,
 but I am pointing out that explicitly passing around proofs is a pain in the
 ass. This is good evidence that Fergus is right when he says: "As a
 programmer, I want the two to be clearly separated." However, his clear
 separation would not allow min2, would it?

It would allow min3, above.  I'm not sure what min2 buys you over min3.
If the `Sorted' type is defined in terms of `sorted', then a compiler
ought to be able to optimize min3 just as well as min2, I think.

-- 
Fergus Henderson [EMAIL PROTECTED]  |  "Binaries may die
WWW: http://www.cs.mu.oz.au/~fjh  |   but source code lives forever"
PGP: finger [EMAIL PROTECTED]| -- leaked Microsoft memo.





Re: Haskell 2 -- MR, for Curry's sakes go.

1999-02-23 Thread Alex Ferguson


John Launchbury:
 I agree that the MR is a pain. [...]
 Now we find that some type declarations
 contain more class info than type!!

And some type(+class) declarations are longer than the definition!
This sounds a trite point, but it gets very annoying when one is
"rapid-prototyping" (aka hacking, aka not wanting to think too
hard about what type is really is), and one finds a correct function
definition won't compile without a type sig, which itself then becomes
wrong later, when one "prototypes" elsewhere -- even if the defintion
was till completely correct.

 I think the MR and the default mechanism are both hacks that were
 introduced to serve a purpose. Few people love them, but I also
 suspect that few people think they serve no useful purpose at
 all.

As far as I can see, it's alleged to serve a number of purposes...

o  Avoiding "call by name" like behaviour on unwittingly
   overloaded CAFs;

o  Avoiding some cases where (some extra) ambiguity may arise
   without the MR;

o  Getting the best possible types in instances where
   there's an MR 'monomorphisation', followed by a top-level
   generalisation step.


Sorry if I'm a bit vague on the latter two;  it's been a while since
I've seen a thoroughgoing Apologia for the MR.

At any rate, the first is surely best taken care of as a matter of
compiler pragmatics.  A compiler can clearly do at least as well by
treating it as a 'stiff warning message' type offence, but more
importantly, this would allow a compiler to do _better_, where it
can detect that there's not really such a problem, or that it can
be finessed by multiple specialised instances, or whatever.


The second I don't feel too concerned about:  adding ambiguity to a
language that doesn't suffer from it would make me worry, but this
is far from the case, here...


The last is the one I'm the least clear on.  Is this at least helped
by adding scoped type sigs, or something of that sort?  Can someone
racapitulate on this point, or ideally even give the low-down on
the 'state of the art' for alternative solutions to this one?


 What we need is a general solution to managing classes and
 ambiguity, and then hopefully we can dispense with the hacks.

That would indeed be nice.

Slan libh,
Alex.






Re: Haskell-2

1999-02-23 Thread Lennart Augustsson


 I think views are really neat, but am not quite sure how I feel about
 pattern guards.
Views are neat.  Pattern guards are an absolute must.
They are just The Right Thing when you need them, and working
around not having them is clumsy.

   -- Lennart





CFP WFLP99

1999-02-23 Thread Rachid Echahed


Apologies if you receive multiple copies of this announcement

--
CALL FOR PAPERS/PARTICIPATION
 WFLP'99
   
   8th International Workshop on 
  Functional and Logic Programming
   (http://www-leibniz.imag.fr/PMP/WFLP99)

 Grenoble, France
  28-30 June 1999
--
AIMS and SCOP

WFLP'99 is the 8th of a series of  international meetings.  The aim of
the WFLP'99 workshop is to bring  together researchers and students in
order to communicate and  discuss recent developements  as well as new
research directions in  the area of declarative programming languages.
The topics of interest include but are not limited to:


  Extentions of declarative languages
  Constraint logic programming
  Functional programming
  Integration of declarative languages
  Concurrent declarative languages
  Implementation of declarative languages
  Semantics
  Inductive declarative programming
  Program analysis
  Programming environments
  Constraint Term and Graph Rewriting
  Constraint Term and Graph Narrowing
  Specification and Verification

---
SUBMISSION

Authors  are  invited to submit   an extented  abstract  in Postscript
format not exceeding12 pages via email to   [EMAIL PROTECTED]
before May 1st, 1999.  

---
LOCATION and Accomodation
 
WFLP99 will take  place  at the Chateau   de la Baume   near Grenoble,
France.  The participants will  stay either at   the Chateau or at the
nearest  hotels (5'walk). Full board is  about 61 Euros  per day for a
single room and  45,7 Euros for a double  room.  Payments will be made
directely to the Chateau de la  Baume either by  credit cards or cash.
More information will be available on the home page of the workshop.

---
REGISTRATION FORM for WFLP`99

The  number of places is  limited.  Please fill  the registration form
and  send it as soon  as  possible via email to [EMAIL PROTECTED]
befor May 1st, 1999.

First Name: ..

Last Name: ...

Institution: .

E-mail: ..

www: .

Address: .

I prefere a single room : () yes () do not care

I prefere a double room : () yes () yes with  ()no

In case of a shortage of rooms, I am willing to share a room:
() yes  () yes with   () no

Date of arrival: .

First meal: () Breakfast, () Lunch, () Dinner

Date of departure: 

Last meal: () Breakfast, () Lunch, () Dinner

I intend to give a talk: () short-15'   () long-30'

Message to the organizers:
   
   

---
DATES

Registration:   1 May
Talk abstracts: 1 May
Workshop:   28-30 June

---
CONTACT
   WFLP99
   Rachid Echahed
   Laboratoire LEIBNIZ
   46, avenue Felix Viallet
   38031 Grenoble, France
   Phone : +33 4 76 57 48 91
   Fax: +33 4 76 57 46 02
   Email: [EMAIL PROTECTED]

---
TRAVEL INFORMATION

Grenoble is easily reachable by car, train or plane.

Train: From Paris, the fast TGV train departs from Gare de Lyon several
times a day and reaches Grenoble within 3 hours. 

Plane: The  airport of Lyon-Satolas is served  by most major airlines.
From Lyon-Satolas  you can   take   a shuttle  bus to  Grenoble   (one
hour). Grenoble  Airport (Saint Geoirs) is  served mostly  by domestic
flights, and from there you can take a bus to Grenoble (40').

From the railwaystation or bus station you can take a Taxi or a bus to
go to the Chateau de La Baune.
More information will be available on the home page of the workshop.