Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-24 Thread Richard O'Keefe


On 23 Apr 2009, at 9:45 pm, Lennart Augustsson wrote:


(+) + 1 + 1 = (+)


The thing that is bad about this is that it binds the
same identifier + twice in the head, to two different
things.  It's not really any different from

(+) + 1 = (+)

which doesn't have anything to do with n+k patterns,
but is obnoxious in the same way.

If Haskell' removes the ability to bind the same name
two different ways in the same left-hand-side, I for
one won't weep, _however_ many people currently do it.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-24 Thread Richard O'Keefe


On 24 Apr 2009, at 2:13 am, John A. De Goes wrote:



Let's turn this around. You invest 4 months of your life coming out  
with your own experimental Haskell compiler designed to easily test  
new language features. Then a bunch of ungrateful wretches on  
Haskell Cafe demand that you stop distributing your compiler until  
you have full support for Haskell 98. :-)


Do you think that's fair?


No.  I for one haven't done that.  I've thanked them for it;
I've downloaded it to learn from; I just can't use it.  (It's
not just n+k that's not implemented yet.)




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-24 Thread Richard O'Keefe


On 24 Apr 2009, at 3:23 am, Ross Paterson wrote:


On Thu, Apr 23, 2009 at 05:30:52PM +1200, Richard O'Keefe wrote:

Is there a simple way to download everything from Hackage?


There's a link on the HackageDB introduction page.


Got it.  Thanks!

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-24 Thread S. Doaitse Swierstra
Unfortunately I think 4 man years is definitely below the minimum of  
the guesses I would get if I would ask the people in my group ;-}


 Doaitse

On 23 apr 2009, at 16:13, John A. De Goes wrote:



Let's turn this around. You invest 4 months of your life coming out  
with your own experimental Haskell compiler designed to easily test  
new language features. Then a bunch of ungrateful wretches on  
Haskell Cafe demand that you stop distributing your compiler until  
you have full support for Haskell 98. :-)


Do you think that's fair?

Regards,

John A. De Goes
N-BRAIN, Inc.
The Evolution of Collaboration

http://www.n-brain.net|877-376-2724 x 101

On Apr 23, 2009, at 3:18 AM, Jon Fairbairn wrote:


John A. De Goes j...@n-brain.net writes:


That's absurd. You have no way to access private source
code, so any  decision on what features to exclude from
future versions of Haskell  must necessarily look at
publicly accessible source code.


This is all entirely beside the point. The question is not
whether n+k patterns should be in the language, it's whether
an implementation of Haskell 98 should include them.


The only alternative is to continuously add, and never
remove, features from Haskell, even if no one (that we
know) uses them.


But we can remove them in future language versions. The
point I was trying to make at the beginning of this
subthread was that implementations should follow the
definition, because having a core language (Haskell 98) that
can be relied on is simpler and wastes less time than the
alternative.

--
Jón Fairbairn jon.fairba...@cl.cam.ac.uk
http://www.chaos.org.uk/~jf/Stuff-I-dont-want.html  (updated  
2009-01-31)


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread Colin Paul Adams
 Lennart == Lennart Augustsson lenn...@augustsson.net writes:

Lennart Of course, n+k will be missed by Haskell obfuscators.  I
Lennart mean, what will we do without (+) + 1 + 1 = (+) ?

I think what would be missed would you be having the opportunity to
explain to me what it means.

But as we still have them, go right ahead (please).
-- 
Colin Adams
Preston Lancashire
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) --first release

2009-04-23 Thread Sittampalam, Ganesh
Jon Fairbairn wrote:
 John A. De Goes j...@n-brain.net writes:
 
 That's absurd. You have no way to access private source code, so any
 decision on what features to exclude from future versions of Haskell
 must necessarily look at publicly accessible source code.
 
 This is all entirely beside the point. The question is not whether
 n+k patterns should be in the language, it's whether an
 implementation of Haskell 98 should include them.  

 The only alternative is to continuously add, and never remove,
 features from Haskell, even if no one (that we
 know) uses them.
 
 But we can remove them in future language versions. The point I was
 trying to make at the beginning of this subthread was that
 implementations should follow the definition, because having a core
 language (Haskell 98) that can be relied on is simpler and wastes
 less time than the alternative.

There has to be a bit of give and take here between standards and
implementations. The Haskell 98 standard is now very old and becoming
increasingly less relevant, hence the Haskell' effort. (n+k) patterns
were always controversial and the decision to include them has indeed
been reversed by the Haskell' committee. So I would say that {Haskell 98
- (n+k)} is itself a worthwhile standard to implement. UHC is clear that
this is what it has implemented, so it's not as if they are
misrepresenting themselves.

Ganesh

=== 
 Please access the attached hyperlink for an important electronic 
communications disclaimer: 
 http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html 
 
=== 
 
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread Lennart Augustsson
Let me parenthesise and rename
  (n + 1) +++ 1 = n
This defines a function +++, first argument is a n+1 pattern, second
argument is 1.

In the same way,
  (+) + 1 + 1 = (+)
defines a function +, first argument is n+1 (but using (+) as n),
second argument is 1.

On Thu, Apr 23, 2009 at 10:27 AM, Colin Paul Adams
co...@colina.demon.co.uk wrote:
 Lennart == Lennart Augustsson lenn...@augustsson.net writes:

    Lennart Of course, n+k will be missed by Haskell obfuscators.  I
    Lennart mean, what will we do without (+) + 1 + 1 = (+) ?

 I think what would be missed would you be having the opportunity to
 explain to me what it means.

 But as we still have them, go right ahead (please).
 --
 Colin Adams
 Preston Lancashire

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread Lennart Augustsson
On Thu, Apr 23, 2009 at 6:30 AM, Richard O'Keefe o...@cs.otago.ac.nz wrote:
  - a somewhat bogus claim about how much of the library you need to
   know how to use it (of COURSE you need to know about integers in
   order to use an integer operation, what's so bad about that?)
  - the claim that + doesn't mean + (this is really an argument about
   the scope of + and could have been dealt with by ruling that n+k
   is only available when the version of + in scope is the one from
   the Prelude)

What's bogus about that claim?  Then n+k patterns have type (Integral
a) = a, so you need to know about type classes and Integral.

Even if it's listed as a reason, you rest assure that the Haskell'
committee did consider how widespread the use of n+k was before
removing it.  Of course, this can only be an educated guess.

Of course, n+k will be missed by Haskell obfuscators.  I mean, what
will we do without
  (+) + 1 + 1 = (+)
?

-- Lennart
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread John A. De Goes


On Apr 22, 2009, at 11:30 PM, Richard O'Keefe wrote:
so any decision on what features to exclude from future versions of  
Haskell must necessarily look at publicly accessible source code.


Wrong.  There is no necessarily about it.  People made decisions
about what to deprecate in the Fortran and COBOL standards without
looking at publicly accessible source code.


I'm talking about the only rational way to do it. It's irrational for  
language maintainers to remove features that are widely used in  
publicly available source code, as such changes are detrimental to the  
success of the language. Thus, rational language maintainers will  
decide what features to exclude from future versions of Haskell by  
looking at publicly accessible source code.



And the decision to remove n+k patterns from Haskell', wrong though
I think it was, was NOT made on a nose-counting basis.  Or if it was,
there is not the slightest evidence of it in
http://hackage.haskell.org/trac/haskell-prime/wiki/RemoveNPlusK


Numerous people have contributed to that discussion, and the consensus  
is that too few people are using them to justify the feature. Indeed,  
in this very discussion, you are the only one advocating them. What  
does that tell you?



It's also a straw man argument.  Nobody says that.
I certainly don't.  What I DO say is that
- MY code contains n+k


Why should this matter? The contents of your code are not relevant to  
the future of Haskell. n = 1 is meaningless.



Is there a simple way to download everything from Hackage?


One would need to write a script to do this.

Regards,

John A. De Goes
N-BRAIN, Inc.
The Evolution of Collaboration

http://www.n-brain.net|877-376-2724 x 101


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread John A. De Goes


Let's turn this around. You invest 4 months of your life coming out  
with your own experimental Haskell compiler designed to easily test  
new language features. Then a bunch of ungrateful wretches on Haskell  
Cafe demand that you stop distributing your compiler until you have  
full support for Haskell 98. :-)


Do you think that's fair?

Regards,

John A. De Goes
N-BRAIN, Inc.
The Evolution of Collaboration

http://www.n-brain.net|877-376-2724 x 101

On Apr 23, 2009, at 3:18 AM, Jon Fairbairn wrote:


John A. De Goes j...@n-brain.net writes:


That's absurd. You have no way to access private source
code, so any  decision on what features to exclude from
future versions of Haskell  must necessarily look at
publicly accessible source code.


This is all entirely beside the point. The question is not
whether n+k patterns should be in the language, it's whether
an implementation of Haskell 98 should include them.


The only alternative is to continuously add, and never
remove, features from Haskell, even if no one (that we
know) uses them.


But we can remove them in future language versions. The
point I was trying to make at the beginning of this
subthread was that implementations should follow the
definition, because having a core language (Haskell 98) that
can be relied on is simpler and wastes less time than the
alternative.

--
Jón Fairbairn jon.fairba...@cl.cam.ac.uk
http://www.chaos.org.uk/~jf/Stuff-I-dont-want.html  (updated  
2009-01-31)


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread Daniel Fischer
Am Donnerstag 23 April 2009 16:13:36 schrieb John A. De Goes:
 Let's turn this around. You invest 4 months of your life coming out  
 with your own experimental Haskell compiler designed to easily test  
 new language features. Then a bunch of ungrateful wretches on Haskell  
 Cafe demand that you stop distributing your compiler until you have  
 full support for Haskell 98. :-)

 Do you think that's fair?

 Regards,

 John A. De Goes

Well, if it doesn't implement the full standard, perhaps it should rather be 
called 
UVNABNQHC (Utrecht very nearly, almost but not quite Haskell compiler)?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread Ross Paterson
On Thu, Apr 23, 2009 at 05:30:52PM +1200, Richard O'Keefe wrote:
 Is there a simple way to download everything from Hackage?

There's a link on the HackageDB introduction page.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) --first release

2009-04-23 Thread Claus Reinke
Let's turn this around. You invest 4 months of your life coming out 
with your own experimental Haskell compiler designed to easily test 
new language features. Then a bunch of ungrateful wretches on Haskell 
Cafe demand that you stop distributing your compiler until you have 
full support for Haskell 98. :-)


Do you think that's fair?


|Well, if it doesn't implement the full standard, perhaps it should rather be called 
|UVNABNQHC (Utrecht very nearly, almost but not quite Haskell compiler)?


uHC: unsafeCompileHaskell ?-)

joking and bikeshedding aside:

- Haskell'98 is a fixed standard. Haskell'98 (revised) is a revised version of
   the same standard. The discussion on what is in either is over. Unless 
   someone wants to start and edit a new revision of Haskell'98. Or someone

   wants to write about experience with and criticism of the existing standards.
   None of which seems to relate to this thread's subject, though either would
   fit into other threads on this mailing list.

- the UHC announcement states (emphasis added): UHC supports 
   _almost all_ Haskell98 features plus many experimental extensions.

   Once they start claiming to have a full Haskell'98 implementation,
   everybody can start filing bug reports. Actually, you can start doing
   that now as they explicitly relate UHC to Haskell'98, not Haskell,
   not Haskell'. But once you've filed a bug report about a deviation
   from the version of the standard being referred to, it is up to them.

- there are one or two more interesting things to discuss about UHC.
   That would require some actual work to find out more about it.

- implementing a Haskell compiler requires a lot of work. So does
   detailing language extensions, to say nothing about providing 
   supporting evidence for suggested language extensions by 
   actually implementing them side-by-side with Haskell's other
   features. 


- anyone who gets through the work of implementing something,
   let alone a Haskell compiler, to the stage of releasing/announcing
   it, is likely looking forward to getting feedback on their work.

   In reality, the only feedback most projects get is from bug reports
   (and not always those), web access logs, and rumours on blogs
   or irc. One really, really, does not need one's project name to be 
   used for other unrelated entertainment as well.


May I respectfully suggest that further postings under _this_ subject 
give something back to the UHC implementers, in the form of investing 
some actual work and time to find out about the fruits of their work?


Claus

PS. Sorry for going meta about this. Just one reader's and fellow
   programmer's over-sensitive opinion. Feel free to colour bikesheds 
   or have interesting discussions on non-UHC-specific Haskell 
   standard issues, in non-UHC-specific threads. Or to ignore this 
   suggestion alltogether.


PPS. If you want to see future announcements of real software
   appear on the haskell@ list only, excluding the haskell-bikeshed@ 
   list. That is assuming that people will still be motivated to implement

   such software, if vapourware could trigger the same responses.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) --first release

2009-04-23 Thread Gwern Branwen
On Thu, Apr 23, 2009 at 12:39 PM, Claus Reinke claus.rei...@talk21.com wrote:
...
 joking and bikeshedding aside:

 - Haskell'98 is a fixed standard. Haskell'98 (revised) is a revised version
 of
   the same standard. The discussion on what is in either is over. Unless
 someone wants to start and edit a new revision of Haskell'98. Or someone
   wants to write about experience with and criticism of the existing
 standards.
   None of which seems to relate to this thread's subject, though either
 would
   fit into other threads on this mailing list.

 - the UHC announcement states (emphasis added): UHC supports   _almost all_
 Haskell98 features plus many experimental extensions.
   Once they start claiming to have a full Haskell'98 implementation,
   everybody can start filing bug reports. Actually, you can start doing
   that now as they explicitly relate UHC to Haskell'98, not Haskell,
   not Haskell'. But once you've filed a bug report about a deviation
   from the version of the standard being referred to, it is up to them.

 - there are one or two more interesting things to discuss about UHC.
   That would require some actual work to find out more about it.

 - implementing a Haskell compiler requires a lot of work. So does
   detailing language extensions, to say nothing about providing   supporting
 evidence for suggested language extensions by   actually implementing them
 side-by-side with Haskell's other
   features.
 - anyone who gets through the work of implementing something,
   let alone a Haskell compiler, to the stage of releasing/announcing
   it, is likely looking forward to getting feedback on their work.

   In reality, the only feedback most projects get is from bug reports
   (and not always those), web access logs, and rumours on blogs
   or irc. One really, really, does not need one's project name to be   used
 for other unrelated entertainment as well.

 May I respectfully suggest that further postings under _this_ subject give
 something back to the UHC implementers, in the form of investing some actual
 work and time to find out about the fruits of their work?

 Claus

I'd like to second this email. I found the ehc/uhc project very
interesting when I was looking at it a year or two ago, and I'm a
little distressed that this thread has been so unproductive and
basically hostile. I was hoping that comments would be more
substantive, rather than carping about what a maintainer plans on
adding (and thereby triggering an apparent holy war).

For example, I expected someone to ask why it was not cabalized since
that would help distribution; to which a developer could respond that
it could well be except source files need to be preprocessed with the
grammar-conversion tool (UUAGC?) and Cabal doesn't support that like
it does alex/happy; to which someone might propose a hack-around using
GHC's -Fgetc. option, or maybe someone would go quickly add support to
Cabal and we could get started on Cabalizing the various compilers -

Er. Not to try to force the discussion in any particular direction or
anything...

-- 
gwern
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-23 Thread Richard O'Keefe


On 23 Apr 2009, at 9:02 pm, Lennart Augustsson wrote:

On Thu, Apr 23, 2009 at 6:30 AM, Richard O'Keefe o...@cs.otago.ac.nz  
wrote:

 - a somewhat bogus claim about how much of the library you need to
  know how to use it (of COURSE you need to know about integers in
  order to use an integer operation, what's so bad about that?)
 - the claim that + doesn't mean + (this is really an argument about
  the scope of + and could have been dealt with by ruling that n+k
  is only available when the version of + in scope is the one from
  the Prelude)


What's bogus about that claim?  Then n+k patterns have type (Integral
a) = a, so you need to know about type classes and Integral.


One thing that is bogus is the apparent suggestion that the amount
you have to know about the library is EXCESSIVE.

The other thing is that in fact it's not true.  Students can
perfectly well learn how to use n+k patterns at a time when
the only numeric type they know about is Int.  When they learn
that there are other numeric types, they have to learn about
type classes if they want to understand what they are doing
when they use = or -.  So it simply isn't true that
understanding n+k patterns requires any *MORE* understanding
of type classes than understanding the contorted code required
to replace them.





Even if it's listed as a reason, you rest assure that the Haskell'
committee did consider how widespread the use of n+k was before
removing it.  Of course, this can only be an educated guess.


I did try finding something about the reasons for the choices
made, but in this case was unable to find anything beyond the
originally listed pros and cons.

Given Haskell's avoid success ethos, I'm actually of the
opinion that the Haskell' committee SHOULDN'T consider how
widely spread the use of some feature is or isn't.  It's
good if they don't go the CORBA route and standardise features
that have never been implemented, let alone used.  I can
imagine very widely used features being RIGHTLY removed, as
Classic C function headers were removed from C99.


Of course, n+k will be missed by Haskell obfuscators.  I mean, what
will we do without
 (+) + 1 + 1 = (+)
?


Haskell obfuscators have such a vast playground that the
loss of n+k will go completely unnoticed by them.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Miguel Mitrofanov


On 22 Apr 2009, at 13:07, Jon Fairbairn wrote:


Miguel Mitrofanov miguelim...@yandex.ru writes:


Well, the problem is that every implementor does choose a
subset of standart to implement.


That's what I'm complaining about.


And that's exactly what you (or anybody else) can't do anything about  
(thank God for that).



It's much worse in JavaScript - essential features working
differently in Internet Explorer, Firefox, Opera, and
Safari, and sometimes they even differ between versions; Web
programmers still manage.


Strange example to choose. Have you any idea how much time
is wasted because of the implementation differences in
JavaScript?


Actually, I have a pretty good idea - I've used to be a Web  
programmer. Surprisingly, not much.



It's arrogant
and disrespectful on the part of the implementors to say
that they know better than the committee what features
should be part of the language.


It's arrogant and disrespectful on the part of the committee to say  
that they know better than the implementors what features should they  
implement.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread david48
On Wed, Apr 22, 2009 at 12:32 AM, Duncan Coutts duncan.cou...@worc.ox.ac.uk
 wrote:

 On Tue, 2009-04-21 at 12:31 +0200, david48 wrote:
  For what it's worth, It's bothered me often enough that cabal doesn't
  install globally by default that I had to reinstall ghc in order to
  solve package issues.

 Do you know what the problem was exactly? It's possible to get problems
 with overlap between the user and global package dbs, but the exact same
 problems can also happen just within the global package db.



One problem I had was while installing Lehksah. ( It was you who pointed me
to the solution, thanks. )
The last problem was for installing wxhaskell from the source. The first
part compiled just fine, but the second wouldn't with a package problem. I
didn't want to bother searching what the problem was, so I thought it was
faster to reinstall ghc and compile wxhaskell then. (it worked)
Also, I think it's been a while I managed to do a cabal upgrade which didn't
stop on a dependency issue.

Since I didn't write down the exact problems I had, I'm attempting a fresh
install, and I'll write down what happens as I go.

1) Installing GHC 6.10.2 from the tarball, I decided to give it a try to
./configure --prefix=/home/david/local
2) Adding /home/david/local' to my PATH
3) I find a binary for cabal-install 0.6.0,
4) cabal update
5) cabal install cabal-install

Proceeds to download and compile HTTP-4000.0.6, then zlib-0.5.0.0 which
fails because I don't have zlib.h on this new system.

da...@pcdavid2:~$ sudo apt-get install
... well there is no zlib-dev, libzlib-dev available on Jaunty. there is a
zlib1-dev which fails to install, and a zlib1g-dev which works.

da...@pcdavid2:~$ cabal-0.6.0 install cabal-install   again.
This time zlib-0.5.0.0 compiles, but then :
/usr/bin/ld: cannot find -lgmp

da...@pcdavid2:~$ sudo apt-get install libgmp3-dev

da...@pcdavid2:~$ download/cabal-0.6.0 install cabal-install   againagain.

This time all goes well except that:
Installing executable(s) in /home/david/.cabal/bin
why the hell would cabal install binaries in a subdirectory of a hidden
directory. Why not /home/david/bin or /home/david/local/bin ?

Ok so I find out the setting to change in .cabal/configure, but there's
already two packages installed and downloaded there, and I don't know how to
change them to the correct location.

So, deleting .cabal and local, reinstalling ghc. I kept the de-tarred
directory around, so it's really quick.
cabal-update again, make sure config has the right path.
oops. Cabal thinks zlib is still around, I thought I had deleted that.

Looks like reinstalling ghc didn't rewrite my package list. removing .ghc
and trying again.
Now something else.

da...@pcdavid2:~$ ghc-pkg check
There are problems in package rts-1.0:
  include-dirs: PAPI_INCLUDE_DIR doesn't exist or isn't a directory

The following packages are broken, either because they have a problem
listed above, or because they depend on a broken package.
rts-1.0
haddock-2.4.2
ghc-prim-0.1.0.0
integer-0.1.0.1
base-4.1.0.0
...

Solution :
da...@pcdavid2:~$ ghc-pkg describe rts | sed 's/PAPI_INCLUDE_DIR//' |
ghc-pkg update -

da...@pcdavid2:~$ download/cabal-0.6.0 install cabal-install
Linking dist/build/cabal/cabal ...
Installing executable(s) in /home/david/.cabal/bin

WTF?

da...@pcdavid2:~$ vi .cabal/config
install-dirs user
  -- prefix: /home/david/local
  -- bindir: $prefix/bin
  -- libdir: $prefix/lib

I give up for now.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Duncan Coutts
On Wed, 2009-04-22 at 12:21 +0200, david48 wrote:

 Do you know what the problem was exactly? It's possible to get
 problems with overlap between the user and global package dbs,
 but the exact same problems can also happen just within the
 global package db.
 
 
 One problem I had was while installing Lehksah. ( It was you who
 pointed me to the solution, thanks. )
 The last problem was for installing wxhaskell from the source. The
 first part compiled just fine, but the second wouldn't with a package
 problem. I didn't want to bother searching what the problem was, so I
 thought it was faster to reinstall ghc and compile wxhaskell then. (it
 worked) 
 Also, I think it's been a while I managed to do a cabal upgrade which
 didn't stop on a dependency issue.
 
 Since I didn't write down the exact problems I had, I'm attempting a
 fresh install, and I'll write down what happens as I go.
 
 1) Installing GHC 6.10.2 from the tarball, I decided to give it a try
 to ./configure --prefix=/home/david/local
 2) Adding /home/david/local' to my PATH
 3) I find a binary for cabal-install 0.6.0,
 4) cabal update
 5) cabal install cabal-install
 
 Proceeds to download and compile HTTP-4000.0.6, then zlib-0.5.0.0
 which fails because I don't have zlib.h on this new system.
 
 da...@pcdavid2:~$ sudo apt-get install
 ... well there is no zlib-dev, libzlib-dev available on Jaunty. there
 is a zlib1-dev which fails to install, and a zlib1g-dev which works.
 
 da...@pcdavid2:~$ cabal-0.6.0 install cabal-install   again.
 This time zlib-0.5.0.0 compiles, but then :
 /usr/bin/ld: cannot find -lgmp

The ghc installer should really check for this at install time rather
than us waiting for the first time you compile something for it to fail.

 da...@pcdavid2:~$ sudo apt-get install libgmp3-dev
 
 da...@pcdavid2:~$ download/cabal-0.6.0 install cabal-install
 againagain.
 
 This time all goes well except that:
 Installing executable(s) in /home/david/.cabal/bin
 why the hell would cabal install binaries in a subdirectory of a
 hidden directory. Why not /home/david/bin or /home/david/local/bin ?

Yes, this is clearly suboptimal but getting agreement on where to put it
has not proved easy. There are users that will scream and shout if we
install to $HOME/bin by default.

Please add your thoughts on the best default behaviour to this ticket:
http://hackage.haskell.org/trac/hackage/ticket/289

In my opinion, what we should do is something like:

  * By default use symlink-bindir: ~/bin  if that directory is on
the path (creating it if necessary -- but only if the dir was
already on the $PATH). In this case we would inform users that's
what we've done and about the location of the config file if
they want to change it.
  * If the ~/bin directory is not on the $PATH then we should give a
warning that binaries will be installed in ~/.cabal/bin and that
the user should either put that on the $PATH or should change
the config file to specify a symlink-bindir directory that is on
the $PATH.

The symlink-bindir feature is safe in the sense that we never
overwrite files that are not already symlinks to the location where the
actual binaries are installed (eg usually ~/.cabal/bin). So in
particular we never overwrite any actual binaries you installed there
yourself.

 da...@pcdavid2:~$ ghc-pkg check
 There are problems in package rts-1.0:
   include-dirs: PAPI_INCLUDE_DIR doesn't exist or isn't a directory

That's a known bug in ghc-6.10.2 sadly. It means for the 6.10.2 release
that ghc-pkg check is not helpful (unless you fix it the way you did).

 da...@pcdavid2:~$ download/cabal-0.6.0 install cabal-install
 Linking dist/build/cabal/cabal ...
 Installing executable(s) in /home/david/.cabal/bin
 
 WTF?
 
 da...@pcdavid2:~$ vi .cabal/config
 install-dirs user
   -- prefix: /home/david/local
   -- bindir: $prefix/bin
   -- libdir: $prefix/lib
 
 I give up for now.

Lines starting with -- are comments. You need to uncomment the prefix
line for it to have an effect.

The latest version of cabal-install makes a config file with these
instructions at the top:

-- This is the configuration file for the 'cabal' command line tool.

-- The available configuration options are listed below.
-- Some of them have default values listed.

-- Lines (like this one) beginning with '--' are comments.
-- Be careful with spaces and indentation because they are
-- used to indicate layout for nested sections.

Unfortunately I think you mentioned that you grabbed a binary of an
older version so you missed out on the improved instructions.


Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread david48
On Wed, Apr 22, 2009 at 1:01 PM, Duncan Coutts
duncan.cou...@worc.ox.ac.ukwrote:

 On Wed, 2009-04-22 at 12:21 +0200, david48 wrote:

 Lines starting with -- are comments. You need to uncomment the prefix
 line for it to have an effect.


Man do I feel dumb now :)


David.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) --first release

2009-04-22 Thread Claus Reinke

Installing executable(s) in /home/david/.cabal/bin
why the hell would cabal install binaries in a subdirectory of a
hidden directory. Why not /home/david/bin or /home/david/local/bin ?


Yes, this is clearly suboptimal but getting agreement on where to put it
has not proved easy. There are users that will scream and shout if we
install to $HOME/bin by default.


Having learned from experience that user preferences differ wildly,
even on similar platforms, not to mention a variety of platforms or,
even worse, intentionally different forks of the same platform, and 
that trying to guess what defaults might be sensible, let alone acceptable,

can be a losing game, I'd like to offer an alternative view:

   if there is no universally acceptable default, do not use a default

Next to not being bothered with configurations they agree with, users
like to be in control, or at least be informed about what is going on,
and precisely how to change it, *before* anything happens that they
do not like.

cabal install could, on its first invocation, point to its configuration
file, explaining precisely the minimum number of changes required
to get it working (with potential defaults being present in the config
file, commented out and explained, the config file could be a config
mini-tutorial).

This would depend on few things to be acceptable:

- configuration should be straightforward, with explanations of
   possible consequences being clear and close at hand; if there
   is no config file, the tool should be able to generate a partial
   one (with disputed choices commented out) for further editing

- configuration should be persistent (never overwrite old config
   file without user permission; propagate old config to new tool
   version)

That way, nothing would happen until users are satisfied that things
will happen exactly as they like it and, once that is done, they won't
have to think about this again (until cabal changes substantially and
needs to ask for further user advice, which seems better than silently
changing behaviour).

If you want cabal to be installable in settings where no user is
available, you could either generate a full config file before install,
or add an --i-really-don't-care-about-config-settings option.

This road isn't perfect, but it can be less unacceptable than any
arbitrary set of default choices.

Claus


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread John A. De Goes


That's absurd. You have no way to access private source code, so any  
decision on what features to exclude from future versions of Haskell  
must necessarily look at publicly accessible source code. The only  
alternative is to continuously add, and never remove, features from  
Haskell, even if no one (that we know) uses them.


Moreover, the odds that everyone who is using n + k patterns are doing  
so only in private is an untestable hypothesis (i.e. unscientific) and  
extremely unlikely to be true.


Regards,

John A. De Goes
N-BRAIN, Inc.
The Evolution of Collaboration

http://www.n-brain.net|877-376-2724 x 101

On Apr 21, 2009, at 9:34 PM, Richard O'Keefe wrote:


It *is* true that things that *are* used in the commonly
available sources should continue to be supported in order
to preserve the value of those commonly available sources.
It is *not* true that things that are *not* used in the
commonly available sources are therefore of no value and
safely to be discarded.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Jason Dusek
2009/04/22 Miguel Mitrofanov miguelim...@yandex.ru:
 It's arrogant and disrespectful on the part of the
 implementors to say that they know better than the committee
 what features should be part of the language.

 It's arrogant and disrespectful on the part of the committee
 to say that they know better than the implementors what
 features should they implement.

  So what is the committee there for? To approve helpful
  suggestions?

--
Jason Dusek
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Miguel Mitrofanov


On 22 Apr 2009, at 21:19, Jason Dusek wrote:


2009/04/22 Miguel Mitrofanov miguelim...@yandex.ru:

It's arrogant and disrespectful on the part of the
implementors to say that they know better than the committee
what features should be part of the language.


It's arrogant and disrespectful on the part of the committee
to say that they know better than the implementors what
features should they implement.


 So what is the committee there for? To approve helpful
 suggestions?


To give advice(s). Like, for example, W3C.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread David Leimbach
On Wed, Apr 22, 2009 at 10:19 AM, Jason Dusek jason.du...@gmail.com wrote:

 2009/04/22 Miguel Mitrofanov miguelim...@yandex.ru:
  It's arrogant and disrespectful on the part of the
  implementors to say that they know better than the committee
  what features should be part of the language.
 
  It's arrogant and disrespectful on the part of the committee
  to say that they know better than the implementors what
  features should they implement.

  So what is the committee there for? To approve helpful
  suggestions?


The fun of sharing code is that you get to deal with the peanut gallery...
Oh right, that's why I don't share.




 --
 Jason Dusek
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Duncan Coutts
On Wed, 2009-04-22 at 13:20 +0200, david48 wrote:
 
 
 On Wed, Apr 22, 2009 at 1:01 PM, Duncan Coutts
 duncan.cou...@worc.ox.ac.uk wrote:
 
 On Wed, 2009-04-22 at 12:21 +0200, david48 wrote:
 
 
 Lines starting with -- are comments. You need to uncomment the
 prefix line for it to have an effect.
 
 Man do I feel dumb now :)

Don't :-) you're not the only one who got tripped up by this. It looked
a lot like -- as in --command-line-flags=. The new text in 0.6.2 makes
it clearer.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Richard O'Keefe




It's irrelevant, because I _do_ have root access to my machine,


How nice to be you.
Since the argument is entirely about people who _don't_,
your point it?

It is clear that the only sensible default is no default.
Someone else has said it recently and said it much better.


I think the right question is how many people prefer user installs
over system installs, wrt. their hackage packages?.


No, because the costs are asymmetric.


Endusers, of course, might have other preferences, but cabal doesn't
(IMHO) cater to them, directly: It caters to distribution packages (or
windows installers, or whatever), so cabal's default behaviour is  
quite

irrelevant for those cases.


The clear impression I've received on this mailing list
is that cabal is _also_ for people who are using Haskell
and find that there's a new package reported in HWN that
they'd like to have.  If you are now telling me that I
should ignore it because I'm not making distribution
packages or Windows installers, fine, just tell me what
to use instead.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Richard O'Keefe


On 23 Apr 2009, at 2:09 am, John A. De Goes wrote:



That's absurd. You have no way to access private source code,


Right.

so any decision on what features to exclude from future versions of  
Haskell must necessarily look at publicly accessible source code.


Wrong.  There is no necessarily about it.  People made decisions
about what to deprecate in the Fortran and COBOL standards without
looking at publicly accessible source code.  The changes made in
producing ECMA Eiffel were _definitely_ done without looking at
publicly accessible source code.

And the decision to remove n+k patterns from Haskell', wrong though
I think it was, was NOT made on a nose-counting basis.  Or if it was,
there is not the slightest evidence of it in
http://hackage.haskell.org/trac/haskell-prime/wiki/RemoveNPlusK

The reasons for the removal are, in order
 - no other data type has it
   (and how many other data types allow [a,b,c] as well as a:b:c:[]?)
 - a somewhat bogus claim about how much of the library you need to
   know how to use it (of COURSE you need to know about integers in
   order to use an integer operation, what's so bad about that?)
 - the claim that + doesn't mean + (this is really an argument about
   the scope of + and could have been dealt with by ruling that n+k
   is only available when the version of + in scope is the one from
   the Prelude)
 - an assertion of personal taste (the side condition that the
   thing is FOR is called 'ugly')
 - a pious hope that something might replace them
 - another assertion of personal taste.

That's *it*.  There is nothing about the operation being *rare*
in any source code, publicly available or otherwise.  There is
no suggestion that commonly used features would not be proposed
for removal.  For example, . as the composition operator, and
~ lazy patterns, have both been proposed for removal.

The only alternative is to continuously add, and never remove,  
features from Haskell, even if no one (that we know) uses them.


Look again at the Haskell' status page,
http://hackage.haskell.org/trac/haskell-prime/wiki/Status

Of all the proposed removals, n+k is the ONLY one to have been
accepted.  It may well be true that someone counted how many
publicly accessible modules use those features, but I cannot
find any evidence in the Haskell' wiki that this is so, or for
that matter that people would have cared very much.  (Meyer
wasn't bothered by the major incompatibilities between ETL3
Eiffel and ECMA Eiffel.)

With this one unique solitary exception, so far Haskell'
*is* just adding features to Haskell.  So if trawling through
publicly available sources is somehow supposed to stop that
happening, I'm sorry, but it hasn't done so yet.



Moreover, the odds that everyone who is using n + k patterns are  
doing so only in private is an untestable hypothesis (i.e.  
unscientific) and extremely unlikely to be true.


It's also a straw man argument.  Nobody says that.
I certainly don't.  What I DO say is that
 - MY code contains n+k
 - MY code is not publicly available (there are many much brighter
   people than me working on Haskell and whenever I have a cool idea
   it has so far always been done, and in any case, much of the
   Haskell code I've written would be of no interest to anyone else)
 - so the nose counting process would certainly miss ME
 - there doesn't seem to be any reason to consider me unique
We simply DON'T KNOW how many people are using n+k patterns
or anything else that people have proposed for removal from Haskell'.
One thing we DO know is that existing Haskell textbooks teach the
use of n+k patterns.

Is there a simple way to download everything from Hackage?
As I've said before, trawling through stuff like that _can_ show
that something is used, but if it doesn't show that, we do NOT
learn that it isn't, but only that we DON'T KNOW.

As someone who is only a Haskell user, I don't really have any
*rights* in the matter.  Using Haskell at all is a privilege,
and if the Haskell committee decide, and Haskell implementors
agree, to remove a feature that I like, then I just have to
live with it.  But let's not pretend that this was ever about
how many people used the feature.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-22 Thread Richard O'Keefe


On 23 Apr 2009, at 2:24 am, Achim Schneider wrote:


Richard O'Keefe et all wrote:


[n+k patterns]

I'd like to add my two cents: Assuming that UHC's roadmap strives to  
be

H'-compilant in the future, and n+k patterns aren't going to be in H',
why bother implementing them?


Haskell' is a moving target.
There are as yet no programs that are *known* to be Haskell' programs.
There are as yet no Haskell' textbooks.
(I remember someone once wrote a book about Prolog that presented
 Prolog according to the then-current draft of the standard.  The
 next year the draft lurched back towards then-current practice,
 and the book was left describing a language that was never  
implemented.)


If you want to support existing code written by people
trained on the existing textbooks, you support as much of the
existing language as you can.

Otherwise you have to rely on people writing code specifically
for your compiler.


Also, assuming that current H98 code will be ported to H', shouldn't
n+k patterns be removed from existing code, anyway?


Someone who really believed that would surely be recommending
that a compiler accept the feature and generate working code for
it but WARN at each occurrence with a warning that can't be
switched off.  That would be a useful way to help people remove
this clarity from their code.

No, the UHC people can do what they please.  It's _their_ compiler.
It's _great_ that there's another almost-Haskell98 compiler.
It's a little puzzling that section 3 Language extensions and
differences with Haskell98 says nothing whatsoever about n+k
patterns.  It's only in section 4.1, where we learn also that
'default' isn't there and might never be.  We don't yet know
whether 'default' will be in Haskell'.  We also learn from
http://www.cs.uu.nl/wiki/bin/view/Ehc/EhcUserDocumentation
that IO is under construction, Directory, Time, Locale, CPUTime,
and Random are not available.  This is clearly work in progress,
and we can only be thankful for something that's intended to be
read as well as written.  In fact, I've downloaded it, precisely
in order to see how much work it will be to add n+k support.

The thing is that it really seems bizarre to see this one feature
singled out for non-implementation.

If I can do the equivalent of n+k patterns
by programming in the *type system*, why *not* in a pattern?


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Jason Dagit
On Mon, Apr 20, 2009 at 10:21 PM, Richard O'Keefe o...@cs.otago.ac.nz wrote:

 On 21 Apr 2009, at 5:10 pm, Jason Dagit wrote:

 Plus, there was a movement to ban them:

 And somehow this means people don't?

...see the humor.


 BUT, here is the real point of my reply:

 To end this debate as to whether people really use them.  We have this
 huge collection of source code called Hackage.  I bet that if someone
 with haskell-src-ext experience sat down they could go through all of
 package in an automated way and count the number of uses of n+k
 patterns in source code that appears in the wild.

 I'm sorry, that wouldn't even come *close* to answering the question.
 It's a good way to demonstrate that people *are* using some feature
 (like hierarchical package names), but an incredibly bad way to show
 that they aren't.

Not really.  Obviously some programs use the feature, but let us
restrict to interesting programs that have been shared with the world
and have some potential to receive maintenance.  From these programs
we can do a sampling.  While I'm not a statistics expert, my
understanding is the main problem with using hackage packages is a bit
of selection bias.  I bet the selection bias isn't even that bad for
this statistical test due to the nature of programming style
diversity.  Maybe someone with a stronger stats background could
comment.

 If every Haskell user contributed to Hackage, and if
 every contributer to Hackage contributed all the code they wrote,
 then it would make sense.

I think that would give us an exhaustive collection of haskell code,
but I assert we don't need that.  Biologists don't need a DNA sample
from every organism to draw conclusions about the genetics of a
species.  Scientists work with incomplete data and draw sound
conclusions in spite of that.  The tools they use to do so are known
as statistics.

 In the Erlang mailing list, I frequently use the technique of
 trawling through publically available Erlang sources to demonstrate
 that features people claim are rare are not.  But I'd never be
 silly enough to claim on the basis of such a scan that some feature
 _wasn't_ being used extensively in other sources.

Okay, then prove n+k patterns are not rare in the publicly available
sources.  That's the challenge I was trying to make in my first email.
 My apology for not being more direct in the asking.

Jason
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Edward Middleton
Richard O'Keefe wrote:
 On 21 Apr 2009, at 2:10 pm, Edward Middleton wrote:
 Using non-standard installation methods makes it harder for package
 maintainers to package the application and suggests you haven't taken
 any care / don't care about making global installation safe.

 I'm sorry, there is no such animal as safe global installation,
 in the sense of download this one package and do what it says.

Well I have been doing that for more then 10 years, it is one of the
functions any decent package management systems is designed to do.

 ghc 6.8.3 is /usr/bin/ghc on my office Mac, but nothing in the world
 prevents there being some other program called ghc that would also
 like to be there.  Only by painstaking verification of a whole
 bunch of applications together can one be confident of safety.

Well then I guess we agree,  so the question becomes who should do the
painstaking verification.  I think distribution maintainers should do
this, you think end users who can't compile source packages should do this.

Edward
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread david48
For what it's worth, It's bothered me often enough that cabal doesn't
install globally by default that I had to reinstall ghc in order to solve
package issues.

So I'd prefer the default to be global.

But I don't care that much, I don't think arguing that point is leading
anywhere.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Edward Middleton
Achim Schneider wrote:
 Edward Middleton emiddle...@bebear.net wrote:

   
 ghc 6.8.3 is /usr/bin/ghc on my office Mac, but nothing in the world
 prevents there being some other program called ghc that would also
 like to be there.  Only by painstaking verification of a whole
 bunch of applications together can one be confident of safety.  
   
 Well then I guess we agree,  so the question becomes who should do the
 painstaking verification.  I think distribution maintainers should do
 this, you think end users who can't compile source packages should do
 this.
 

 Not the maintainers, but the tool. Portage doesn't install stuff if it
 would overwrite other things, records changes to files in e.g. /etc to
 be merged later (interactively, with diffs), and records every file it
 ever installed by having the package install itself in
 /var/portage/package/version. You are _completely_busted_ if your
 install script doesn't support that: The script runs sandboxed.

 Portage even registers every installed package into an empty ghc
 package database, and merges them later. It knows what it does.

 I can switch between different versions of packages, or different
 implementations of the same functionality (say, java-sun vs.
 java-blackdown) with eselect.

 In short: Don't write your own install scripts, you're bound to get it
 wrong, and/or be vastly inferior, compared to portage.
   

But who writes the ebuild[1] ?  That said, on the various system I run I
have over 100 custom ebuilds that I maintain.  I can do this because
most applications have standard sane build systems that install things
in the regular places.

Edward
1. http://en.wikipedia.org/wiki/Ebuild
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Xiao-Yong Jin
Achim Schneider bars...@web.de writes:

 Richard O'Keefe o...@cs.otago.ac.nz wrote:

  This is good advice (/usr/local is fine though).  
 
 Actually, no, it isn't.
 To start with, these days it's chock full of stuff
 which is hardly less critical for system operation
 than anything you'll find in /bin.

 More importantly, /usr/local is a bugger to manage by hand, even if the
 sources came with uninstall capabilities, chances are they're not
 around, anymore, or messed up.

/usr/local is the default prefix in FreeBSD ports system.
-- 
c/*__o/*
\ * (__
*/\  
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread S. Doaitse Swierstra
Maybe it has gone unnoticed, but the main reason we made the compiler  
available, was to make it possible for others to experiment with its  
type extensions, its Grin based back-end and  to show the advantages  
(and disadvantages?) of generating large part of the compiler from an  
attribute grammar based descriptions.


If we had been interested in raising fierce discussions about n+k  
patterns or how and where cabal installs things, we could have easily  
achieved the same effect with much less effort.


 Doaitse Swierstra








___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Duncan Coutts
On Tue, 2009-04-21 at 12:31 +0200, david48 wrote:
 For what it's worth, It's bothered me often enough that cabal doesn't
 install globally by default that I had to reinstall ghc in order to
 solve package issues.

Do you know what the problem was exactly? It's possible to get problems
with overlap between the user and global package dbs, but the exact same
problems can also happen just within the global package db.

 So I'd prefer the default to be global.

You can make that the default in the config file.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Richard O'Keefe


On 21 Apr 2009, at 7:39 pm, Jason Dagit wrote:

Not really.  Obviously some programs use the feature, but let us
restrict to interesting programs that have been shared with the world
and have some potential to receive maintenance.


Why?

You are, in effect, saying that my code has no value at all.
You are saying that code written by students has no value at all.
Why do you think that only code that is shared with the world
has some potential to receive maintenance?

By the way, not all publicly available code is in Hackage.
The hbc release that's on my SPARC -- and thankful I've been for
it, the grief GHC has given me there -- has at least one use of
an n+k pattern that I know of, and more in a specification comment.


 From these programs
we can do a sampling.  While I'm not a statistics expert, my
understanding is the main problem with using hackage packages is a bit
of selection bias.


I can see no reason to assume that it's only a bit.
Maybe it's a bit.  Maybe it's a very great deal.
It would be interesting to investigate this, but the only way
you can investigate it is to examine a lot of code that
_isn't_ there.


 I bet the selection bias isn't even that bad for
this statistical test due to the nature of programming style
diversity.  Maybe someone with a stronger stats background could
comment.


I have a statistics degree.  I don't know if that's strong enough
for you.  It's strong enough that I assume selection bias until I
see evidence otherwise.


I think that would give us an exhaustive collection of haskell code,
but I assert we don't need that.  Biologists don't need a DNA sample
from every organism to draw conclusions about the genetics of a
species.


It depends on what _kind_ of conclusion they want to draw.
If they want to show that some feature _is_ present, a sample
will do.  If they want to show that it's absent or rare, then
they need a much bigger sample.


 Scientists work with incomplete data and draw sound
conclusions in spite of that.  The tools they use to do so are known
as statistics.


Yes, I know.  That's why I get cross when people suggest silly
things like trawling through Hackage to demonstrate that nobody
is using n+k patterns.  Where's the statistics in that?  Where are
the estimates of natural variation?

Note: I do not assert that the use of n_k patterns is rare.
Here's _all_ that I assert about n+k patterns:
(1) they are part of Haskell 98
(2) I believe they make programs more readable
(3) I use them
(4) they are no worse than certain features proposed for
addition to Haskell'.


Okay, then prove n+k patterns are not rare in the publicly available
sources.



Why the X should I?  I do not claim that they are common
IN THE PUBLICLY AVAILABLE SOURCES, I have NEVER claimed that,
and I don't even CARE whether they are rare in the publicly
available sources or not.

Because they make programs more readable, n+k patterns
probably *should* be moderately common in the publicly available
sources, but I have no idea whether they are or not.

It *is* true that things that *are* used in the commonly
available sources should continue to be supported in order
to preserve the value of those commonly available sources.
It is *not* true that things that are *not* used in the
commonly available sources are therefore of no value and
safely to be discarded.


That's the challenge I was trying to make in my first email.


It's a challenge to the irrelevant.

Let's consider three versions of naive Fibonacci.

fibA :: (Integral a, Integral b) = a - b

fibA 0 = 1
fibA 1 = 1
fibA (n+2) = fibA (n+1) + fibA n

Simple, readable, Haskell 98.

pred2 :: (Integral a) = a - Maybe a
pred2 n = if n = 2 then Just (n-2) else Nothing

fibB :: (Integral a, Integral b) = a - b

fibB 0 = 1
fibB 1 = 1
fibB x | Just n - pred2 x = fibB (n+1) + fibB n

Uses a pattern guard, implemented in GHC.

Pattern guards are neat.  I like them a lot.  They make sense.
But it's impossible for me to see fibB as more readable than
fibA.

While pattern guards come _close_ to offering a replacement
for n+k patterns, they don't quite.  If I had

f x (n+1)
  | p x = ...
  | q x = ...

I would have to write the pattern guard twice as

f x n'
  | Just n - pred1 n', p x = ...
  | Just n - pred1 n', q x = ...

That doesn't seem like an advantage, somehow.

Now for the third alternative.
The view proposal in the Haskell' wiki and the views implemented
in GHC are different.  In fact the view proposal document goes to
some trouble to show how views can replace n+k patterns, so I
suppose I don't need to review that.  Here's what it looks like
using GHC syntax.  (I can't make ghc 6.8.3 accept this;
ghc --supported-languages does not list ViewPatterns.  So this is
UNTESTED CODE!)

data Integral a = Nat2 a = Succ2 a | One2 | Zero2

nat2 :: Integral a = a - Nat2 a

nat2 n | n = 2 = Succ2 (n-2)
nat2 1  = One2
nat2 0  = Zero2
nat2 _  = error nat2: not a natural number

fibC (nat2 - Zero2)   = 1
fibC (nat2 - 

Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Richard O'Keefe


On 21 Apr 2009, at 8:20 pm, Edward Middleton wrote:

ghc 6.8.3 is /usr/bin/ghc on my office Mac, but nothing in the world
prevents there being some other program called ghc that would also
like to be there.  Only by painstaking verification of a whole
bunch of applications together can one be confident of safety.


Well then I guess we agree,  so the question becomes who should do the
painstaking verification.  I think distribution maintainers should do
this, you think end users who can't compile source packages should  
do this.


You cannot be serious.

Come ON people, let's have some honest argument here.

1.  There are people who CAN'T install stuff in system areas.
There seems to be no reason why they should not use Haskell.

2.  The claimed advantage of putting things in a standard place
is unreal.  Or rather, it's real to the extent that you can
assume that all the world is Linux.

3.  There is no guaranteed safe *SYSTEM* place to put things.

4.  A user can, however, readily verify that THEY don't have
or don't use another program by the same name, regardless
of what some other user on the same machine might have or use.

5.  If something installs in user space, the user can get rid of
it, or if not, at least only that user is harmed.

My departmental laptop has just had to be wiped and reinstalled
because a commercial program that installed things in a standard
place stuffed up.

It is absurd to allege that I think end users who cannot compile
source packages should verify a collection of oodles of packages.
I don't, and I never wrote anything that should lead anyone to
suppose so.  I'm not sure _anyone_ can.

Installing stuff in system areas,
whether it is standard or default to do so or not, is DANGEROUS.
Installing stuff in user areas is LESS dangerous.  All installs are
dangerous.  I don't say user installs are safe.  Just that they are
LESS dangerous.

In particular, a user install will not stuff things up for all the
users on a machine.  There are four people in my immediate family.
We all have accounts on the machines I own.  Even though I own
those machines and DO have superuser access, I DON'T want to risk
stuffing up the entire system.   Installing stuff under my own
account gives the others some protection.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Richard O'Keefe


On 21 Apr 2009, at 11:36 pm, Achim Schneider wrote:


Richard O'Keefe o...@cs.otago.ac.nz wrote:


Some of the right questions are
 - how many potential whatever users would need to have
   whatever installed on _some_ machine they do NOT have
   administrator access to?


Irrelevant.


How van the question that is the very heart of this thread
be irrelevant?

This is precisely the situation I'm in, and it's precisely
the class of users I'm arguing for.

I'm encouraged by the constructive suggestions of package
tools (nix, portage) that are said to address some of these
issues.  Except of course that I have to install them first...





OTOH, quickly checking whether the user has write permissions to / and
failing with you need root right to do that, did you mean to call  
this

script with --user? instead of failing with access denied errors is a
Good Thing.[1]


I think we can agree on this.



Echoing binaries were installed in $HOME/.cabal/bin, and checking  
the

user's $PATH and displaying a warning if that directory isn't in it is
a Good Thing, too. I guess it's also the main problem those not
literate in UNIX have with cabal.


I think we can agree on this too.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Alexander Dunlap
On Tue, Apr 21, 2009 at 8:34 PM, Richard O'Keefe o...@cs.otago.ac.nz wrote:

 On 21 Apr 2009, at 7:39 pm, Jason Dagit wrote:

 Not really.  Obviously some programs use the feature, but let us
 restrict to interesting programs that have been shared with the world
 and have some potential to receive maintenance.

 Why?

 You are, in effect, saying that my code has no value at all.
 You are saying that code written by students has no value at all.
 Why do you think that only code that is shared with the world
 has some potential to receive maintenance?

 By the way, not all publicly available code is in Hackage.
 The hbc release that's on my SPARC -- and thankful I've been for
 it, the grief GHC has given me there -- has at least one use of
 an n+k pattern that I know of, and more in a specification comment.

  From these programs
 we can do a sampling.  While I'm not a statistics expert, my
 understanding is the main problem with using hackage packages is a bit
 of selection bias.

 I can see no reason to assume that it's only a bit.
 Maybe it's a bit.  Maybe it's a very great deal.
 It would be interesting to investigate this, but the only way
 you can investigate it is to examine a lot of code that
 _isn't_ there.

  I bet the selection bias isn't even that bad for
 this statistical test due to the nature of programming style
 diversity.  Maybe someone with a stronger stats background could
 comment.

 I have a statistics degree.  I don't know if that's strong enough
 for you.  It's strong enough that I assume selection bias until I
 see evidence otherwise.

 I think that would give us an exhaustive collection of haskell code,
 but I assert we don't need that.  Biologists don't need a DNA sample
 from every organism to draw conclusions about the genetics of a
 species.

 It depends on what _kind_ of conclusion they want to draw.
 If they want to show that some feature _is_ present, a sample
 will do.  If they want to show that it's absent or rare, then
 they need a much bigger sample.

  Scientists work with incomplete data and draw sound
 conclusions in spite of that.  The tools they use to do so are known
 as statistics.

 Yes, I know.  That's why I get cross when people suggest silly
 things like trawling through Hackage to demonstrate that nobody
 is using n+k patterns.  Where's the statistics in that?  Where are
 the estimates of natural variation?

 Note: I do not assert that the use of n_k patterns is rare.
 Here's _all_ that I assert about n+k patterns:
 (1) they are part of Haskell 98
 (2) I believe they make programs more readable
 (3) I use them
 (4) they are no worse than certain features proposed for
    addition to Haskell'.

 Okay, then prove n+k patterns are not rare in the publicly available
 sources.


 Why the X should I?  I do not claim that they are common
 IN THE PUBLICLY AVAILABLE SOURCES, I have NEVER claimed that,
 and I don't even CARE whether they are rare in the publicly
 available sources or not.

 Because they make programs more readable, n+k patterns
 probably *should* be moderately common in the publicly available
 sources, but I have no idea whether they are or not.

 It *is* true that things that *are* used in the commonly
 available sources should continue to be supported in order
 to preserve the value of those commonly available sources.
 It is *not* true that things that are *not* used in the
 commonly available sources are therefore of no value and
 safely to be discarded.

 That's the challenge I was trying to make in my first email.

 It's a challenge to the irrelevant.

 Let's consider three versions of naive Fibonacci.

 fibA :: (Integral a, Integral b) = a - b

 fibA 0 = 1
 fibA 1 = 1
 fibA (n+2) = fibA (n+1) + fibA n

 Simple, readable, Haskell 98.

 pred2 :: (Integral a) = a - Maybe a
 pred2 n = if n = 2 then Just (n-2) else Nothing

 fibB :: (Integral a, Integral b) = a - b

 fibB 0 = 1
 fibB 1 = 1
 fibB x | Just n - pred2 x = fibB (n+1) + fibB n

 Uses a pattern guard, implemented in GHC.

 Pattern guards are neat.  I like them a lot.  They make sense.
 But it's impossible for me to see fibB as more readable than
 fibA.

 While pattern guards come _close_ to offering a replacement
 for n+k patterns, they don't quite.  If I had

 f x (n+1)
  | p x = ...
  | q x = ...

 I would have to write the pattern guard twice as

 f x n'
  | Just n - pred1 n', p x = ...
  | Just n - pred1 n', q x = ...

 That doesn't seem like an advantage, somehow.

 Now for the third alternative.
 The view proposal in the Haskell' wiki and the views implemented
 in GHC are different.  In fact the view proposal document goes to
 some trouble to show how views can replace n+k patterns, so I
 suppose I don't need to review that.  Here's what it looks like
 using GHC syntax.  (I can't make ghc 6.8.3 accept this;
 ghc --supported-languages does not list ViewPatterns.  So this is
 UNTESTED CODE!)

 data Integral a = Nat2 a = Succ2 a | One2 | Zero2

 nat2 :: Integral a = a - Nat2 a

 nat2 n | 

Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-21 Thread Jason Dagit
On Tue, Apr 21, 2009 at 8:34 PM, Richard O'Keefe o...@cs.otago.ac.nz wrote:

 On 21 Apr 2009, at 7:39 pm, Jason Dagit wrote:

 Not really.  Obviously some programs use the feature, but let us
 restrict to interesting programs that have been shared with the world
 and have some potential to receive maintenance.

 Why?

 You are, in effect, saying that my code has no value at all.
 You are saying that code written by students has no value at all.
 Why do you think that only code that is shared with the world
 has some potential to receive maintenance?

Code which is not used has what value exactly?  Other than some
learning value for the author, what is the purpose?  You also
misinterpreted my grammar.  That and is a logical one.  For example,
I intended to exclude programs which have been shared but have no
maintenance.

 By the way, not all publicly available code is in Hackage.
 The hbc release that's on my SPARC -- and thankful I've been for
 it, the grief GHC has given me there -- has at least one use of
 an n+k pattern that I know of, and more in a specification comment.

I know not all publicly available code is there.  I said as much in my
previous mail.  If a code base the size of hbc has one use of n+k
patterns, I bet you know enough that you could rewrite it to not need
it with very little effort, FWIW.

 I have a statistics degree.  I don't know if that's strong enough
 for you.  It's strong enough that I assume selection bias until I
 see evidence otherwise.

Then please, apply what you know and let's take the rumor, conjecture,
and speculation out of this discussion.

 It depends on what _kind_ of conclusion they want to draw.
 If they want to show that some feature _is_ present, a sample
 will do.  If they want to show that it's absent or rare, then
 they need a much bigger sample.

And Hackage is the largest sample I can think of.  Feel free to
provide a larger sample if you have one.

  Scientists work with incomplete data and draw sound
 conclusions in spite of that.  The tools they use to do so are known
 as statistics.

 Yes, I know.  That's why I get cross when people suggest silly
 things like trawling through Hackage to demonstrate that nobody
 is using n+k patterns.  Where's the statistics in that?  Where are
 the estimates of natural variation?

 Note: I do not assert that the use of n_k patterns is rare.
 Here's _all_ that I assert about n+k patterns:
 (1) they are part of Haskell 98
 (2) I believe they make programs more readable
 (3) I use them
 (4) they are no worse than certain features proposed for
    addition to Haskell'.

 Okay, then prove n+k patterns are not rare in the publicly available
 sources.


 Why the X should I?  I do not claim that they are common
 IN THE PUBLICLY AVAILABLE SOURCES, I have NEVER claimed that,
 and I don't even CARE whether they are rare in the publicly
 available sources or not.

Please.  Let's remain calm.  This is just a thread on a geeky mailing
list for Haskell enthusiasts.  I'm not trying to raise your taxes,
take away any rights, or insult / offend you.

Why?  Because you're a stats expert so you have the necessary
background to do it right.  Also, because, hey, it would be
interesting to see the numbers.  Plus, it seemed relevant to me.

 Because they make programs more readable, n+k patterns
 probably *should* be moderately common in the publicly available
 sources, but I have no idea whether they are or not.

Personally, when a public debate stops being about provable things I
get bored.  Unless the next reply to this involves more facts and less
speculation I have no plans to reply.  Not to be rude, but the thread
would be a waste of my time at that point.

 It *is* true that things that *are* used in the commonly
 available sources should continue to be supported in order
 to preserve the value of those commonly available sources.
 It is *not* true that things that are *not* used in the
 commonly available sources are therefore of no value and
 safely to be discarded.

Ah, I think I see where we disagree.  Things which are:
1) rarely used;
2) add complexity to implementations;
3) add complexity for novices; and
4) are easily replaced;
should be removed from the specification so that it is simpler.  I
have a belief that n+k patterns fit the above 4 items and that taken
together they are sufficient, although perhaps not necessary or
complete in general, as a reason to move towards removing them.  I
thought it would be interesting to have someone make a measure of #1.
I think #3 applies here because it has to be explained.  As a
programmer, I didn't immediately grok it even though mathematically it
makes  sense.  I doubt any of the reasons taken individually would be
enough unless it is an extreme case.

I'll also mention that I don't think Fortran is great language just
because it takes on the burden of backwards compatibility.  I think
there should be a balance.

 Let's consider three versions of naive Fibonacci.
[snip]
 That doesn't 

Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Miguel Mitrofanov
I disagree. First of all, UHC states explicitly that some features are not supported (and probably never would be). Secondly, it seems like 
almost nobody uses (n+k)-patterns, and when they are used, they make the code less readable; so it's good NOT to support them, in order to make 
programmers avoid them as much as possible. I don't think #ifdef's would be really all over the place; it's more likely that a minor 
refactoring would take place so that (n+k)-patterns would disappear.


Jon Fairbairn wrote on 20.04.2009 13:59:

Achim Schneider bars...@web.de writes:


Jon Fairbairn jon.fairba...@cl.cam.ac.uk wrote:


a...@cs.uu.nl writes:


Utrecht Haskell Compiler -- first release, version 1.0.0



The UHC team is happy to announce the first public release of the
Utrecht Haskell Compiler (UHC). UHC supports almost all Haskell98
features

Why? Is there something about Haskell 98 that's hard to
implement?


Insanity. I doubt anyone is going to miss n+k patterns:


That (taken with the followup from Richard O'Keefe saying he
does use them) underlines my point, really. What follows is
specific to Haskell, but the general point applies to most
languages I've encountered.

I have no love for n+k patterns, but they are part of
Haskell98 -- and were the subject of protracted arguments
for and against them before the Report was finished (I was
against them, if I remember correctly). Any implementation
claiming to be of Haskell98 should have them, whether or not
the implementor likes them, because otherwise someone will
come along with a valid Haskell98 programme and it won't
compile, so they'll have to hack it around. This sort of
thing (and resulting #ifdef all over the place) wastes far
more programmer time in the end (assuming the compiler
becomes popular) than it would take to implement the
feature.

It's not an implementor's place to make such decisions --
they can legitimately say this feature sucks and tell the
next Haskell committee so. If they care enough about it,
they can lobby or get on that next committee, but the
arguments for n+k patterns /in Haskell98/ were done long
ago.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) --first release

2009-04-20 Thread Sittampalam, Ganesh
Miguel Mitrofanov wrote:
 Jon Fairbairn wrote on 20.04.2009 13:59:
 Achim Schneider bars...@web.de writes:
 
 Jon Fairbairn jon.fairba...@cl.cam.ac.uk wrote:
 
 a...@cs.uu.nl writes:
 
   Utrecht Haskell Compiler -- first release, version 1.0.0
   
 
 
 The UHC team is happy to announce the first public release of the
 Utrecht Haskell Compiler (UHC). UHC supports almost all Haskell98
 features
 Why? Is there something about Haskell 98 that's hard to implement?
 
 Insanity. I doubt anyone is going to miss n+k patterns:
 
 That (taken with the followup from Richard O'Keefe saying he does use
 them) underlines my point, really. What follows is specific to
 Haskell, but the general point applies to most languages I've
 encountered. 
 
 I have no love for n+k patterns, but they are part of
 Haskell98 -- and were the subject of protracted arguments for and
 against them before the Report was finished (I was against them, if I
 remember correctly). Any implementation claiming to be of Haskell98
 should have them, whether or not the implementor likes them, because
 otherwise someone will come along with a valid Haskell98 programme
 and it won't compile, so they'll have to hack it around. This sort of
 thing (and resulting #ifdef all over the place) wastes far more
 programmer time in the end (assuming the compiler becomes popular)
 than it would take to implement the feature.
 
 It's not an implementor's place to make such decisions -- they can
 legitimately say this feature sucks and tell the next Haskell
 committee so. If they care enough about it, they can lobby or get on
 that next committee, but the arguments for n+k patterns /in
 Haskell98/ were done long ago. 
 
 
 I disagree. First of all, UHC states explicitly that some features
 are not supported (and probably never would be). Secondly, it seems
 like almost nobody uses (n+k)-patterns, and when they are used, they
 make the code less readable; so it's good NOT to support them, in
 order to make programmers avoid them as much as possible. I don't
 think #ifdef's would be really all over the place; it's more likely
 that a minor refactoring would take place so that (n+k)-patterns
 would disappear.   

In addition, (n+k) patterns will be removed from the standard as soon as
the Haskell prime process produces a new one, so people who want to make
their code support that new standard should be removing them right now.

Ganesh

=== 
 Please access the attached hyperlink for an important electronic 
communications disclaimer: 
 http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html 
 
=== 
 
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Jules Bean

Achim Schneider wrote:

Don Stewart d...@galois.com wrote:


This means that 'cabal
install' works out of the box on every system, without needing
admin/root privs (esp. important for students).


...and people who were bitten by sanity and thus never, ever touch /usr
manually, only through their distribution's package manager.


This is good advice (/usr/local is fine though). However, the point here 
is surely that the de-facto default for all other downloaded programs - 
standard makefile setups, automake, autoconf, perl package, python 
packages, graphic installers like firefox - is do to what cabal calls a 
'global' install by default.


This makes cabal's inversion of default a violation of least surprise, 
however easy it may be to justify that user installs are better.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Lennart Augustsson
I agree in principle; you should really implement the full Haskell98
if you claim to be a Haskell implementation.
In the particular case of n+k I don't care, since I never use them and
they are slated for removal in Hakell'.

  -- Lennart

On Mon, Apr 20, 2009 at 11:59 AM, Jon Fairbairn
jon.fairba...@cl.cam.ac.uk wrote:
 Achim Schneider bars...@web.de writes:

 Jon Fairbairn jon.fairba...@cl.cam.ac.uk wrote:

 a...@cs.uu.nl writes:

         Utrecht Haskell Compiler -- first release, version 1.0.0
         
 
 
  The UHC team is happy to announce the first public release of the
  Utrecht Haskell Compiler (UHC). UHC supports almost all Haskell98
  features

 Why? Is there something about Haskell 98 that's hard to
 implement?

 Insanity. I doubt anyone is going to miss n+k patterns:

 That (taken with the followup from Richard O'Keefe saying he
 does use them) underlines my point, really. What follows is
 specific to Haskell, but the general point applies to most
 languages I've encountered.

 I have no love for n+k patterns, but they are part of
 Haskell98 -- and were the subject of protracted arguments
 for and against them before the Report was finished (I was
 against them, if I remember correctly). Any implementation
 claiming to be of Haskell98 should have them, whether or not
 the implementor likes them, because otherwise someone will
 come along with a valid Haskell98 programme and it won't
 compile, so they'll have to hack it around. This sort of
 thing (and resulting #ifdef all over the place) wastes far
 more programmer time in the end (assuming the compiler
 becomes popular) than it would take to implement the
 feature.

 It's not an implementor's place to make such decisions --
 they can legitimately say this feature sucks and tell the
 next Haskell committee so. If they care enough about it,
 they can lobby or get on that next committee, but the
 arguments for n+k patterns /in Haskell98/ were done long
 ago.


 --
 Jón Fairbairn                                 jon.fairba...@cl.cam.ac.uk
 http://www.chaos.org.uk/~jf/Stuff-I-dont-want.html  (updated 2009-01-31)

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Bulat Ziganshin
Hello Jon,

Monday, April 20, 2009, 1:59:07 PM, you wrote:

 It's not an implementor's place to make such decisions --
 they can legitimately say this feature sucks and tell the
 next Haskell committee so. If they care enough about it,
 they can lobby or get on that next committee, but the
 arguments for n+k patterns /in Haskell98/ were done long
 ago.

if you really believe in that you said, you can spend your own time
adding its support :)  i never seen n+k patterns in real code so i
understand developers that don't want to waste time just to compliant
standard even if their efforts will be never really used



-- 
Best regards,
 Bulatmailto:bulat.zigans...@gmail.com

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Lennart Augustsson
If every implementor got to choose what subset of the standard to
implement that all code would have have to written in the implemented
intersection.  I think that's a terrible idea.
The Haskell98 standard was set so there would be a baseline that
people could rely on.

When I implemented Haskell (both times) there were odds and ends that
I really hated (some of those feelings have changed), but I did it
anyway.

  -- Lennart

On Mon, Apr 20, 2009 at 1:02 PM, Bulat Ziganshin
bulat.zigans...@gmail.com wrote:
 Hello Jon,

 Monday, April 20, 2009, 1:59:07 PM, you wrote:

 It's not an implementor's place to make such decisions --
 they can legitimately say this feature sucks and tell the
 next Haskell committee so. If they care enough about it,
 they can lobby or get on that next committee, but the
 arguments for n+k patterns /in Haskell98/ were done long
 ago.

 if you really believe in that you said, you can spend your own time
 adding its support :)  i never seen n+k patterns in real code so i
 understand developers that don't want to waste time just to compliant
 standard even if their efforts will be never really used



 --
 Best regards,
  Bulat                            mailto:bulat.zigans...@gmail.com

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Miguel Mitrofanov

Well, the problem is that every implementor does choose a subset of standart to 
implement.

It's much worse in JavaScript - essential features working differently in Internet Explorer, Firefox, Opera, and Safari, and sometimes they even 
differ between versions; Web programmers still manage. (n+k)-patterns are nothing compared to that.


Lennart Augustsson wrote on 20.04.2009 15:17:

If every implementor got to choose what subset of the standard to
implement that all code would have have to written in the implemented
intersection.  I think that's a terrible idea.
The Haskell98 standard was set so there would be a baseline that
people could rely on.

When I implemented Haskell (both times) there were odds and ends that
I really hated (some of those feelings have changed), but I did it
anyway.

  -- Lennart

On Mon, Apr 20, 2009 at 1:02 PM, Bulat Ziganshin
bulat.zigans...@gmail.com wrote:

Hello Jon,

Monday, April 20, 2009, 1:59:07 PM, you wrote:


It's not an implementor's place to make such decisions --
they can legitimately say this feature sucks and tell the
next Haskell committee so. If they care enough about it,
they can lobby or get on that next committee, but the
arguments for n+k patterns /in Haskell98/ were done long
ago.

if you really believe in that you said, you can spend your own time
adding its support :)  i never seen n+k patterns in real code so i
understand developers that don't want to waste time just to compliant
standard even if their efforts will be never really used



--
Best regards,
 Bulatmailto:bulat.zigans...@gmail.com

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Lennart Augustsson
I don't think that other languages failing should be an excuse for
Haskell to be equally bad.

On Mon, Apr 20, 2009 at 1:23 PM, Miguel Mitrofanov
miguelim...@yandex.ru wrote:
 Well, the problem is that every implementor does choose a subset of standart
 to implement.

 It's much worse in JavaScript - essential features working differently in
 Internet Explorer, Firefox, Opera, and Safari, and sometimes they even
 differ between versions; Web programmers still manage. (n+k)-patterns are
 nothing compared to that.

 Lennart Augustsson wrote on 20.04.2009 15:17:

 If every implementor got to choose what subset of the standard to
 implement that all code would have have to written in the implemented
 intersection.  I think that's a terrible idea.
 The Haskell98 standard was set so there would be a baseline that
 people could rely on.

 When I implemented Haskell (both times) there were odds and ends that
 I really hated (some of those feelings have changed), but I did it
 anyway.

  -- Lennart

 On Mon, Apr 20, 2009 at 1:02 PM, Bulat Ziganshin
 bulat.zigans...@gmail.com wrote:

 Hello Jon,

 Monday, April 20, 2009, 1:59:07 PM, you wrote:

 It's not an implementor's place to make such decisions --
 they can legitimately say this feature sucks and tell the
 next Haskell committee so. If they care enough about it,
 they can lobby or get on that next committee, but the
 arguments for n+k patterns /in Haskell98/ were done long
 ago.

 if you really believe in that you said, you can spend your own time
 adding its support :)  i never seen n+k patterns in real code so i
 understand developers that don't want to waste time just to compliant
 standard even if their efforts will be never really used



 --
 Best regards,
  Bulat                            mailto:bulat.zigans...@gmail.com

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Miguel Mitrofanov

Me neither; there were actually two points:

1) It's not bad; at least, it's not bad for reasons you provide.

2) It would be here whether we like it or not.

Lennart Augustsson wrote on 20.04.2009 15:31:

I don't think that other languages failing should be an excuse for
Haskell to be equally bad.

On Mon, Apr 20, 2009 at 1:23 PM, Miguel Mitrofanov
miguelim...@yandex.ru wrote:

Well, the problem is that every implementor does choose a subset of standart
to implement.

It's much worse in JavaScript - essential features working differently in
Internet Explorer, Firefox, Opera, and Safari, and sometimes they even
differ between versions; Web programmers still manage. (n+k)-patterns are
nothing compared to that.

Lennart Augustsson wrote on 20.04.2009 15:17:

If every implementor got to choose what subset of the standard to
implement that all code would have have to written in the implemented
intersection.  I think that's a terrible idea.
The Haskell98 standard was set so there would be a baseline that
people could rely on.

When I implemented Haskell (both times) there were odds and ends that
I really hated (some of those feelings have changed), but I did it
anyway.

 -- Lennart

On Mon, Apr 20, 2009 at 1:02 PM, Bulat Ziganshin
bulat.zigans...@gmail.com wrote:

Hello Jon,

Monday, April 20, 2009, 1:59:07 PM, you wrote:


It's not an implementor's place to make such decisions --
they can legitimately say this feature sucks and tell the
next Haskell committee so. If they care enough about it,
they can lobby or get on that next committee, but the
arguments for n+k patterns /in Haskell98/ were done long
ago.

if you really believe in that you said, you can spend your own time
adding its support :)  i never seen n+k patterns in real code so i
understand developers that don't want to waste time just to compliant
standard even if their efforts will be never really used



--
Best regards,
 Bulatmailto:bulat.zigans...@gmail.com

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread David Leimbach
Just refuse to use UHC until it conforms.  One can refuse to use GHC
libraries that use extensions as well for similar reasons.  I always think
twice when I see something that isn't Haskell 98 in my stack.
Anything that doesn't conform completely to Haskell 98 can effectively be
considered not Haskell 98 at all (all or nothing mentality), if you want to
be really strict.

The fact is we have a choice... I won't tell people not to implement things
in a way I don't like, I'll just look at it and decide whether I care to use
it or not.

As a result, UHC is not something I care to use, though I'm sure it's
interesting for those who are using it.

If I cared enough, and I don't, and the UHC sources are licensed in a way
permitting so, I could make a Haskell 98 conforming version of it, and fork
it myself.

Dave

On Mon, Apr 20, 2009 at 4:31 AM, Lennart Augustsson
lenn...@augustsson.netwrote:

 I don't think that other languages failing should be an excuse for
 Haskell to be equally bad.

 On Mon, Apr 20, 2009 at 1:23 PM, Miguel Mitrofanov
 miguelim...@yandex.ru wrote:
  Well, the problem is that every implementor does choose a subset of
 standart
  to implement.
 
  It's much worse in JavaScript - essential features working differently in
  Internet Explorer, Firefox, Opera, and Safari, and sometimes they even
  differ between versions; Web programmers still manage. (n+k)-patterns are
  nothing compared to that.
 
  Lennart Augustsson wrote on 20.04.2009 15:17:
 
  If every implementor got to choose what subset of the standard to
  implement that all code would have have to written in the implemented
  intersection.  I think that's a terrible idea.
  The Haskell98 standard was set so there would be a baseline that
  people could rely on.
 
  When I implemented Haskell (both times) there were odds and ends that
  I really hated (some of those feelings have changed), but I did it
  anyway.
 
   -- Lennart
 
  On Mon, Apr 20, 2009 at 1:02 PM, Bulat Ziganshin
  bulat.zigans...@gmail.com wrote:
 
  Hello Jon,
 
  Monday, April 20, 2009, 1:59:07 PM, you wrote:
 
  It's not an implementor's place to make such decisions --
  they can legitimately say this feature sucks and tell the
  next Haskell committee so. If they care enough about it,
  they can lobby or get on that next committee, but the
  arguments for n+k patterns /in Haskell98/ were done long
  ago.
 
  if you really believe in that you said, you can spend your own time
  adding its support :)  i never seen n+k patterns in real code so i
  understand developers that don't want to waste time just to compliant
  standard even if their efforts will be never really used
 
 
 
  --
  Best regards,
   Bulatmailto:bulat.zigans...@gmail.com
 
  ___
  Haskell-Cafe mailing list
  Haskell-Cafe@haskell.org
  http://www.haskell.org/mailman/listinfo/haskell-cafe
 
  ___
  Haskell-Cafe mailing list
  Haskell-Cafe@haskell.org
  http://www.haskell.org/mailman/listinfo/haskell-cafe
 
  ___
  Haskell-Cafe mailing list
  Haskell-Cafe@haskell.org
  http://www.haskell.org/mailman/listinfo/haskell-cafe
 
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Martijn van Steenbergen

David Leimbach wrote:
Just refuse to use UHC until it conforms.  One can refuse to use GHC 
libraries that use extensions as well for similar reasons.  I always 
think twice when I see something that isn't Haskell 98 in my stack.


Do you not use Hugs for the same reason?

http://cvs.haskell.org/Hugs/pages/users_guide/haskell98.html#BUGS-HASKELL98

Martijn.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Malcolm Wallace
  Just refuse to use UHC until it conforms.
 Do you not use Hugs for the same reason?

Not to mention that GHC does not comply with the H'98 standard either:


http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs-and-infelicities.html#vs-Haskell-defn

Regards,
Malcolm
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread David Leimbach
On Mon, Apr 20, 2009 at 8:19 AM, Martijn van Steenbergen 
mart...@van.steenbergen.nl wrote:

 David Leimbach wrote:

 Just refuse to use UHC until it conforms.  One can refuse to use GHC
 libraries that use extensions as well for similar reasons.  I always think
 twice when I see something that isn't Haskell 98 in my stack.


 Do you not use Hugs for the same reason?

 http://cvs.haskell.org/Hugs/pages/users_guide/haskell98.html#BUGS-HASKELL98

 Martijn.


I never use hugs... the only time I've ever run hugs, is because it was
available for Plan 9.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread David Leimbach
On Mon, Apr 20, 2009 at 8:38 AM, Malcolm Wallace 
malcolm.wall...@cs.york.ac.uk wrote:

   Just refuse to use UHC until it conforms.
  Do you not use Hugs for the same reason?

 Not to mention that GHC does not comply with the H'98 standard either:


 http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs-and-infelicities.html#vs-Haskell-defn

 Regards,
Malcolm



It's still a matter of choice.  So we're saying there are no implementations
of Haskell 98?  Sounds like the same problem C++ and C99 have.

Dave



 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Sebastiaan Visser

On Apr 20, 2009, at 5:44 PM, David Leimbach wrote:
On Mon, Apr 20, 2009 at 8:38 AM, Malcolm Wallace malcolm.wall...@cs.york.ac.uk 
 wrote:

  Just refuse to use UHC until it conforms.
 Do you not use Hugs for the same reason?

Not to mention that GHC does not comply with the H'98 standard either:

   
http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs-and-infelicities.html#vs-Haskell-defn

Regards,
   Malcolm


It's still a matter of choice.  So we're saying there are no  
implementations of Haskell 98?  Sounds like the same problem C++ and  
C99 have.


Dave


Why is this such a problem?

You can still write and compile very beautiful programs with both GHC  
and UHC.


And keep in mind that the UHC compiler is probably not designed to  
replace GHC and to be fully compliant with the Haskell 98 standard. It  
still has a very useful place in education and is certainly worth  
looking at.


It is intensively making use of the attribute grammar system to  
perform traversals over the different internally used languages. This  
is a very different approach from what GHC does which makes it very  
interesting from an educational and scientific point of view.


I encourage you to take a look inside, it is reasonably easy to grasp  
what going on inside of UHC.


--
Sebastiaan
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Richard O'Keefe


On 20 Apr 2009, at 10:12 pm, Miguel Mitrofanov wrote:

I disagree. First of all, UHC states explicitly that some features  
are not supported (and probably never would be). Secondly, it seems  
like almost nobody uses (n+k)-patterns,


How can you possibly know that?


and when they are used, they make the code less readable;


I use them because they make the code *MORE* readable.

Some versions of the 'view' idea can be used to fake n+k patterns,
so I imagine that this argument will be used to ensure that UHC
never ever supports anything resembling views.

If I want something that's almost a Haskell compiler but not
quite, with some interesting extensions, I've known where to
find Clean for a long time.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Richard O'Keefe


On 20 Apr 2009, at 10:27 pm, Jules Bean wrote:

This is good advice (/usr/local is fine though).


Actually, no, it isn't.
To start with, these days it's chock full of stuff
which is hardly less critical for system operation
than anything you'll find in /bin.

More importantly, it's not a place that many people *can*
install stuff in.  This University, for example, has a strict
policy that NO-ONE (not even heads of department) other than
designated system administrators may have 'adminstrator'
access, which is required to install stuff in /usr/local.

Either stuff can be installed easily in my own directories
(which is why I have ~/local on all my machines), or I have
to ask the system adminstrators to install it when they can
get around to it (I've been waiting a couple of months already
for one thing), or it doesn't get installed.

As long as there are Windows machines in this organisation,
that policy is _not_ going to change, not even for Linux or
MacOS or Solaris.

However, the point here is surely that the de-facto default for all  
other downloaded programs - standard makefile setups, automake,  
autoconf, perl package, python packages, graphic installers like  
firefox - is do to what cabal calls a 'global' install by default.


The assumption here seems to be that everyone owns their own machine
or has a system adminstrator with large amounts of free time on their
hands.  Just because a lot of other people are doing something crazy
doesn't mean we have to copy them.



This makes cabal's inversion of default a violation of least  
surprise, however easy it may be to justify that user installs are  
better.



Sometimes it is _nice_ to be surprised.  If someone out of the blue
gave you a free car, would you turn it down because it violated the
principle of least surprise?  Least surprise is not as important
as do the right thing.

On Macs and Windows boxes, I expect installers to _ask_ me where I
want to put things.

In any case, there are two easy ways to address the issue.

1.  Have the installation tools *ask* the user whether they want
the software installed in their own files or in /usr/local.

2.  If you want to follow the blundering herd as much as you can,
have the installation process start by trying to install an
empty file in /usr/local, and if it can't do that, do the
right thing instead.

 
   
___

Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Brandon S. Allbery KF8NH

On Apr 20, 2009, at 10:46 , David Leimbach wrote:
Just refuse to use UHC until it conforms.  One can refuse to use GHC  
libraries that use extensions as well for similar 	reasons.  I  
always think twice when I see something that isn't Haskell 98 in my  
stack.


So you don't use hierarchical libraries?

For that matter, *GHC* isn't fully Haskell98:  
http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs-and-infelicities.html#haskell98-divergence

--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allb...@kf8nh.com
system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu
electrical and computer engineering, carnegie mellon universityKF8NH




PGP.sig
Description: This is a digitally signed message part
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Edward Middleton
Richard O'Keefe wrote:
 On 20 Apr 2009, at 10:27 pm, Jules Bean wrote:
 However, the point here is surely that the de-facto default for all
 other downloaded programs - standard makefile setups, automake,
 autoconf, perl package, python packages, graphic installers like
 firefox - is do to what cabal calls a 'global' install by default.

 The assumption here seems to be that everyone owns their own machine
 or has a system adminstrator with large amounts of free time on their
 hands.  Just because a lot of other people are doing something crazy
 doesn't mean we have to copy them.

The assumption is that you are running a multipurpose computer, i.e.
your Haskell compiler isn't the only application you care about and you
don't want it or other applications to interact badly together.   The
best way to do this is to have a package maintained by the distribution,
and not have users or even sysadmins directly install it from source. 
Using non-standard installation methods makes it harder for package
maintainers to package the application and suggests you haven't taken
any care / don't care about making global installation safe.

Edward
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Xiao-Yong Jin
Brandon S. Allbery KF8NH allb...@ece.cmu.edu writes:

 On Apr 20, 2009, at 10:46 , David Leimbach wrote:

 Just refuse to use UHC until it conforms.  One can refuse to use GHC
 libraries that use extensions as well for similar reasons.  I always think
 twice when I see something that isn't Haskell 98 in my stack.

 So you don't use hierarchical libraries?

 For that matter, *GHC* isn't fully Haskell98:  http://www.haskell.org/ghc/docs
 /latest/html/users_guide/bugs-and-infelicities.html#haskell98-divergence

It's about compatibility.  An implementation can diverge
from the standard, but it should be able to parse the
standard code correctly.  It is totally okay to add
something to the standard, but not remove something from the
standard.  Because by adding something, you wouldn't break
the standard compliant code.  But removing anything from
standard would prevent any standard code from working
correctly.  The only thing that would make a standard code
break in ghc is

 let x = 42 in x == 42 == True

But I believe it is a much smaller issue compared to what
UHC has.

I believe the standard should be maintained as the intersect
of all the valid implementations.  If any implementation
does not implement all of the standard, according to what
should our coders write?
-- 
c/*__o/*
\ * (__
*/\  
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Xiao-Yong Jin
Edward Middleton emiddle...@bebear.net writes:

 Richard O'Keefe wrote:
 On 20 Apr 2009, at 10:27 pm, Jules Bean wrote:
 However, the point here is surely that the de-facto default for all
 other downloaded programs - standard makefile setups, automake,
 autoconf, perl package, python packages, graphic installers like
 firefox - is do to what cabal calls a 'global' install by default.

 The assumption here seems to be that everyone owns their own machine
 or has a system adminstrator with large amounts of free time on their
 hands.  Just because a lot of other people are doing something crazy
 doesn't mean we have to copy them.

 The assumption is that you are running a multipurpose computer, i.e.
 your Haskell compiler isn't the only application you care about and you
 don't want it or other applications to interact badly together.   The
 best way to do this is to have a package maintained by the distribution,
 and not have users or even sysadmins directly install it from source. 
 Using non-standard installation methods makes it harder for package
 maintainers to package the application and suggests you haven't taken
 any care / don't care about making global installation safe.

I second that.
-- 
c/*__o/*
\ * (__
*/\  
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Miguel Mitrofanov


On 21 Apr 2009, at 04:59, Richard O'Keefe wrote:



On 20 Apr 2009, at 10:12 pm, Miguel Mitrofanov wrote:

I disagree. First of all, UHC states explicitly that some features  
are not supported (and probably never would be). Secondly, it seems  
like almost nobody uses (n+k)-patterns,


How can you possibly know that?


I can't; that's why I've said seems like.


If I want something that's almost a Haskell compiler but not
quite, with some interesting extensions, I've known where to
find Clean for a long time.


That's a strange desire. Personally, I want a compiler for a nice,  
simple, and useful language. I don't want a Haskell compiler; it just  
so happens that GHC is the best approximation.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Jules Bean

Richard O'Keefe wrote:
However, the point here is surely that the de-facto default for all 
other downloaded programs - standard makefile setups, automake, 
autoconf, perl package, python packages, graphic installers like 
firefox - is do to what cabal calls a 'global' install by default.


The assumption here seems to be that everyone owns their own machine
or has a system adminstrator with large amounts of free time on their
hands.  Just because a lot of other people are doing something crazy
doesn't mean we have to copy them.


No.

It's not an assumption, it's a default.

No one is assuming anything. Both options are available.

The point I was making, which is scarcely important enough to bother 
explaining again, is that having the same *default* as other software is 
a virtue.


In point of fact, I'm sure that a larger proportion of haskell users 
have their own machine than don't.


Jules
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Richard O'Keefe


On 21 Apr 2009, at 4:52 pm, Jules Bean wrote:


The point I was making, which is scarcely important enough to bother  
explaining again, is that having the same *default* as other  
software is a virtue.


That point is mistaken.

I have no idea how many people are unable to use that default,
but there are lots of people at this University in my situation.
A default which means we can't install stuff is a default that
I cannot regard with happiness, and which I cannot comprehend
anyone contemplating with complacency.

One of the suggestions I have made is that an installer
could/should investigate whether it *can* install in the
standard place (since ghc on my Mac is in /bin, not /usr/local/bin,
and since I certainly didn't put it there, I wonder just how standard
a standard place is), and if it *can't*, instead of failing miserably,
it should *out of the box* *without recompiling from sources* let the
user put it wherever it needs to go.

This is compatible with the default on all systems where the
default would actually _work_, while being _useful_ on systems
where it wouldn't.

It shouldn't be necessary to point out that the people least able
to install in /usr/local are by and large going to be the people
least able to build from sources, so saying build from sources if
you can't install in a standard place would not be user-friendly.

In point of fact, I'm sure that a larger proportion of haskell users  
have their own machine than don't.


That's the wrong question.

In addition to the several machines in my office, and the departmental
laptop, I _do_ have several machines of my own.  But the mere fact of
possessing my own machines does NOT mean that I am able to install
stuff on the machines I spend most of my time using.

Some of the right questions are
 - how many potential whatever users would need to have
   whatever installed on _some_ machine they do NOT have
   administrator access to?
 - if people find Mac and Windows installers that show you where
   something is going to be put and offer you the chance to change
   it acceptable, why exactly would that be unacceptable under
   Linux or Solaris?
 - since we know install-anywhere binary releases are possible,
   and since we know that an installer _can_ probe to see whether
   installation in /usr/local (or any other standard place) is
   possible, why not do it?


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Jason Dagit
On Mon, Apr 20, 2009 at 9:45 PM, Miguel Mitrofanov
miguelim...@yandex.ru wrote:

 On 21 Apr 2009, at 04:59, Richard O'Keefe wrote:


 On 20 Apr 2009, at 10:12 pm, Miguel Mitrofanov wrote:

 I disagree. First of all, UHC states explicitly that some features are
 not supported (and probably never would be). Secondly, it seems like almost
 nobody uses (n+k)-patterns,

 How can you possibly know that?

 I can't; that's why I've said seems like.

Plus, there was a movement to ban them:
http://www.mail-archive.com/hask...@haskell.org/msg01261.html

All jesting aside, after I read article I was even less eager to use
them, and I never thought to use them in a real program anyway.

BUT, here is the real point of my reply:

To end this debate as to whether people really use them.  We have this
huge collection of source code called Hackage.  I bet that if someone
with haskell-src-ext experience sat down they could go through all of
package in an automated way and count the number of uses of n+k
patterns in source code that appears in the wild.

Jason
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Richard O'Keefe


On 21 Apr 2009, at 2:10 pm, Edward Middleton wrote:


Richard O'Keefe wrote:


The assumption here seems to be that everyone owns their own machine
or has a system adminstrator with large amounts of free time on their
hands.  Just because a lot of other people are doing something crazy
doesn't mean we have to copy them.


The assumption is that you are running a multipurpose computer, i.e.
your Haskell compiler isn't the only application you care about and  
you

don't want it or other applications to interact badly together.


That cannot be right.
By that definition, I *do* run a multipurpose computer,
in fact several of them.
If I _weren't_ running multipurpose computers,
I wouldn't be wanting GHC on them.
On none of them is it possible for me to install in /usr/local.
On no computer that is ever attached to the University's network
is it possible for me or any other staff member (except the
designated sysadmins) to do so, let alone students.


  The
best way to do this is to have a package maintained by the  
distribution,

and not have users or even sysadmins directly install it from source.


Whether or not one installs from source
and whether one installs in a system location or a user location
are INDEPENDENT questions.

Quintus, for example, provided binary releases that customers
could install wherever they wanted.  We were doing that 25 years
ago.  Installing-wherever-the-user-wants WITHOUT source has been
doable for a long time, and is what I _expect_ in a Windows or Mac
program.

There are dishonourable exceptions.
Recently I bought a French drill program for my elder daughter.
At home I use a dual-boot (MacOS/Windows Vista) laptop provided
by the department.  On the Windows side, it asked me where I wanted
it to go, and went there, no worries.  On the MacOS side,
- I was logged in as XXX
- in order to install, I had to enter my junior sysadmin
  (adminXXX) credentials -- I don't think I was supposed to
  be given this much power, but I'd given the sysadmins such
  a long shopping list of applications I wanted on this
  multipurpose computer that they preferred me to do most
  of it
- the programs were actually _installed_ as owned by 'admin'
with the result that I cannot run them, or change their permissions
so that I can run them, or even remove them.  You can imagine how
happy that kind of nonsense makes me.  If they could get it right on
Windows, how come they got it so egregiously wrong on MacOS?

By assuming that everyone can become the ultimate superuser at will.



Using non-standard installation methods makes it harder for package
maintainers to package the application and suggests you haven't taken
any care / don't care about making global installation safe.


I'm sorry, there is no such animal as safe global installation,
in the sense of download this one package and do what it says.
ghc 6.8.3 is /usr/bin/ghc on my office Mac, but nothing in the world
prevents there being some other program called ghc that would also
like to be there.  Only by painstaking verification of a whole
bunch of applications together can one be confident of safety.
My $PATH has to be maintained with some delicacy, as more than 1200
command names appear in more than two directories on it.  There
seem, for example, to be 4 programs called 'python'; two of them
are links to 2.4, one of them is 2.3, and I can't tell what the
other is.  And don't go blaming me for this state of affairs,
because they are _all_ system directories.  Oh, and none of the
directories holding python is any part of /usr/local.  Since the
version of gcc in /usr/local is 2.95.2, if I want a less antique
version of gcc, /usr/local/bin isn't much use in my $PATH.  Put
ghc there, and what makes you think I will be able to run it?
(The version of Amaya there is also hopelessly out of date, but
there is nothing I can do about it.)

Package maintainers _should_ find it _easier_ to provide
reliably installable packages if they _don't_ take it for
granted that they can put things in questionably standard
places.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-20 Thread Richard O'Keefe


On 21 Apr 2009, at 5:10 pm, Jason Dagit wrote:

Plus, there was a movement to ban them:


And somehow this means people don't?

BUT, here is the real point of my reply:

To end this debate as to whether people really use them.  We have this
huge collection of source code called Hackage.  I bet that if someone
with haskell-src-ext experience sat down they could go through all of
package in an automated way and count the number of uses of n+k
patterns in source code that appears in the wild.


I'm sorry, that wouldn't even come *close* to answering the question.
It's a good way to demonstrate that people *are* using some feature
(like hierarchical package names), but an incredibly bad way to show
that they aren't.  None of the Haskell code I've ever written, for
example, will appear.  Because none of that code was intended for
general use.  If every Haskell user contributed to Hackage, and if
every contributer to Hackage contributed all the code they wrote,
then it would make sense.

In the Erlang mailing list, I frequently use the technique of
trawling through publically available Erlang sources to demonstrate
that features people claim are rare are not.  But I'd never be
silly enough to claim on the basis of such a scan that some feature
_wasn't_ being used extensively in other sources.

If the Haskell Great Powers decide to remove n+k patterns,
so be it.  I can live with that.  It's not my language after all.
I'm profoundly grateful to the people who designed and implemented
it, and who keep stretching my mind with new levels of reuse and
composition.  I won't _like_ the loss of a contributor to readability,
but I can live with it, just as I lived with having to use fmap
instead of map.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-19 Thread Daniel Fischer
Am Sonntag 19 April 2009 18:28:18 schrieb Simon Michael:
  Yes, it is bad that the runhaskell Setup interface has a different
  default. But, as Duncan said, too late to change it now.

 Why, especially as it seems something you would now rarely use directly ?
 (When would you want it ?)


Because the two interfaces to the Cabal library having different default 
behaviours can 
easily confuse people using both or switching to cabal.
It's not a show-stopper, just an annoyance.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-19 Thread Duncan Coutts
On Sun, 2009-04-19 at 11:47 -0700, Simon Michael wrote:
 I meant, why is it too late to change the Setup interface to match
 cabal's --user by default behaviour ?

All the distro packages etc use the Setup.hs interface without
explicitly specifying --global.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

2009-04-19 Thread Richard O'Keefe


On 20 Apr 2009, at 12:52 am, Achim Schneider wrote:

Why? Is there something about Haskell 98 that's hard to
implement?


Insanity. I doubt anyone is going to miss n+k patterns:


They are one of my favourite features.
They express briefly and neatly what would otherwise
take several separate steps to express.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe