Confused by profiling

2001-09-13 Thread Ian Lynagh


Hi all

I am confused by the GHC profiling output. I have put some abstracts
below to illustrate my confusion.

I compiled my code with:
HFLAGS=-Wall -package lang -prof -auto-all hmake -ghc main
and then ran it with:
./main -t +RTS -p  test5.hs

Here is some of main.prof:
  individual inherited
COST CENTRE  MODULE entries  %time %alloc   %time %alloc

[...]
  parse  Parser   10.0   0.0 81.4  62.3
   p_module  Parser   00.0   0.0 81.4  62.3
|  PC_base  69517   20.3   5.7 81.4  62.3
[...]
 p_aexp_list Parser   00.0   0.0  0.0   0.3
  con2tag_Token# Tokens 8800.0   0.0  0.0   0.0
  pIfThing   PC_base8960.0   0.0  0.0   0.0
  $ PC   00.0   0.0  0.0   0.3
   $   PC   00.0   0.0  0.0   0.3
pSucceed PC_base8960.0   0.3  0.0   0.3
*  PC_base8960.0   0.0  0.0   0.0
  *PC_base8960.0   0.0  0.0   0.0
 p_aexp_tupleParser   00.0   0.0  0.0   0.3
[...]

and here is the code for p_aexp_list:

p_aexp_list :: Parser Token Aexp
p_aexp_list = (Aexp_list . get_rights)
  $  pIfThing ((==) (Special '['))
  * pSList False p_comma p_exp
  *  pIfThing ((==) (Special ']'))

Now basically my problem is how things under p_aexp_list can be entered
896 times if p_aexp_list is entered 0 times - am I reading it wrong?

And the only place p_aexp_list is called from is

p_aexp_init = p_aexp_qvar | p_aexp_gcon | p_aexp_literal
  | p_aexp_paren | p_aexp_tuple | p_aexp_list
  | p_aexp_arith | p_aexp_listcomp | p_aexp_left
  | p_aexp_right

but my reading of the profile output shows it as being called from |
which is in turn called from p_module (all lines in the second [...] are
indented with at least  ).

Am I missing something obvious?


Thanks
Ian


___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



ghc/HopenGL/cygwin/W2K

2001-09-13 Thread Clifford Beshers



I'm trying to get to the point where I can use ghc and OpenGL under
Windows 2000.  Unfortunately, I'm lost in a maze of version numbers.

I had cygwin-1.3.2 installed, I think, which did not match the 1.3.1
used in the ghc-4.08 package.  I tried to install cygwin 1.3.1, but
got 1.3.3 instead.  Nowhere can I find a course for 1.3.1.  Nor can I
find 5.00.2 compiled for Windows, though there is some mention of W2K
support in the documentation.

Can anyone provide me with a recent road map?  I don't mind compiling
everything, if that's what it takes, I just feel I'm wandering in the
wilderness.

Thanks,

Clifford Beshers



___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



RE: Haskell98 undefinedness

2001-09-13 Thread Simon Peyton-Jones

Personally I think this is ok, and it's compatible with the 
relaxed story about cumulative imports.  I don't propose
to change this unless there are yells.

| So, it's not considered an error if you do something
| like
| 
|   module A ( B(C), ...some other stuff..., B(D) ) where 
|   ...
|   data B = C | D 
| 
| but C and D is exported. Is the extra flexibility of
| allowing duplicates really worth it?

Simon

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: The future of Haskell discussion

2001-09-13 Thread kahl


Marcin 'Qrczak' Kowalczyk [EMAIL PROTECTED] asks:
 
 12 Sep 2001 12:37:25 -, [EMAIL PROTECTED] 
[EMAIL PROTECTED] pisze:
 
  * Currently HOPS implements only one evaluation strategy,
namely leftmost outermost graph rewriting with sharing preservation
(without automatic sharing maximisation).
With the standard rules in place, this corresponds
to the original definition of lazy evaluation
(also known as the ``D-rule''), which is different
from the lazy pattern matching evaluation
of sequential Haskell implementations.
 
 What is the difference?

If you have

f x [] = 0
f x (y:ys) = 1 + f x ys

bot = bot

and consider the redex

f bot (enumFromTo 1 2)

then leftmost outermost rewriting (sharing is irrelevant here) diverges:

f bot (enumFromTo 1 2) - 
f bot (enumFromTo 1 2) - ...

while the ``functional strategy'' finds out that the second argument
needs to be evaluated first, and terminates:

f bot (enumFromTo 1 2) -
f bot (1 : enumFromTo 2 2) -
1 + f x (enumFromTo 2 2) -
1 + f x (2 : enumFromTo 3 2) -
1 + (1 + f x (enumFromTo 3 2)) -
1 + (1 + f x []) -
1 + (1 + 0) -
1 + 1 -
2


For a definition of the functional rewriting strategy
see for example p. 139f in:

@Book{Plasmeijer-vanEekelen-1993,
  author =   {Rinus Plasmeijer and van Eekelen, Marko},
  title ={Functional Programming and Parallel Graph Rewriting},
  publisher ={Addison-Wesley},
  year = 1993,
  series =   {International Computer Science Series},
  ISBN = {0-201-41663-8}
}

The fact that Haskell uses the functional strategy
should also follow from the translation for function bindings
given in the Haskell report, section 4.4.3

http://research.microsoft.com/~simonpj/haskell98-revised/haskell98-report-html/decls.html#sect4.4.3

in conjunction with the pattern matching semantics, section 3.17.

http://research.microsoft.com/~simonpj/haskell98-revised/haskell98-report-html/exps.html#pattern-matching


However, I already have troubles with
the first sentence of 3.17.2 ``Informal Semantics of Pattern Matching'':

http://research.microsoft.com/~simonpj/haskell98-revised/haskell98-report-html/exps.html#sect3.17.2

which says: ``Patterns are matched against values.'':

Variables are patterns, and in the above example,
the variable x is matched against the non-value bot ---
if my understanding of values is correct.
(Also, the direction of ``matching against'' in this
sentence is contrary to that used in most of the explanations that follow
after it.)

For the examples section of 3.17.2,
perhaps one might add an example under item 1. that illustrates this effect:

| If (x,'b') is matched against (_|_,'b'),
| the match succeeds and binds x to _|_.



Wolfram




___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



LOPSTR 2001 - Submission Deadline Extension

2001-09-13 Thread Fabio Fioravanti

___
 
Our apologies if you receive multiple copies.
___

 CALL FOR PAPERS
 
LOPSTR 2001
  11th International Workshop on
 Logic-based Program Synthesis and Transformation
 http://www.iasi.rm.cnr.it/~adp/lopstr01_cfp.html
  Paphos, Cyprus, November 28 - 30, 2001

The deadline for abstract submission has been extended to:
*** September 24th, 2001.

Invited Speaker: Natarajan Shankar, SRI, Menlo Park, CA, USA,
Generating Efficient Code from Logic.
 
The following is a non-exhaustive list of topics:
 specification analysis component-based software development
 synthesis optimization software architectures
 verification  composition  design patterns and frameworks
 transformationreuse
 specializationapplications
 
Any other information is available at:
http://www.iasi.rm.cnr.it/~adp/lopstr01_cfp.html


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



FME 2002: Call for Papers

2001-09-13 Thread mailinglist-admin

** Apologies if you receive multiple copies... **
** Also apologies if you have unsubscribed to this mailing list in the past,
we had to reinstall the original list and were unable to recover the
unsubscriptions. Please note that the list is ONLY used to announce the
18-monthly FME (Formal Methods Europe) symposia. **

 FORMAL METHODS EUROPE

   FME 2002
   Formal Methods: Getting IT Right

  International Symposium and Tutorials
   http://floc02.diku.dk/FME/
20-24 July 2002

Call for Papers
***

FME 2002 is the eleventh in a series of symposia organised by Formal
Methods Europe, an independent association whose aim is to stimulate the
use of, and research on, formal methods for software development. These
symposia have been notably successful in bringing together a community of
users, researchers, and developers of precise mathematical methods for
software development. In 2002 the symposium will be held in conjunction
with the third Federated Logic Conference (FLoC'02) in Copenhagen, Denmark.

The theme of FME 2002 is Formal Methods: Getting IT Right.

The double meaning is intentional. On the one hand, the theme acknowledges
the significant contribution formal methods can make to Information
Technology, by enabling computer systems to be described precisely and
reasoned about with rigour. On the other hand, it recognises that current
formal methods are not perfect, and further research and practice are
required to improve their foundations, applicability and effectiveness.

FME seeks papers in all aspects of formal methods for computer systems,
including the following:

 * theoretical foundations
 * practical use and case studies
 * specification and modelling techniques
 * software development and refinement
 * tool support and software engineering environments for formal methods
 * verification and validation
 * hidden formal methods, and making benefits available to non-experts
 * reusable domain theories
 * method integration
 * hardware verification

In addition to presentations of submitted papers, the symposium will
offer tutorials, workshops, invited speakers, and tool demonstrations.

PAPERS

Full papers should be submitted in Postscript or PDF format by e-mail to
reach the Program Co-chairs by 15 January 2002. Papers will be refereed by
the Program Committee and must be original research papers that have not
been submitted elsewhere for publication. Accepted papers will be published
in the symposium proceedings.

Papers should not exceed twenty pages, although longer papers will be
considered if their content justifies it. LNCS format should be used: see
 http://www.springer.de/comp/lncs/authors.html for details.
Please include a short list of keywords on a separate line at the end of
the abstract, beginning with the word Keyword: in boldface.

OTHER SYMPOSIUM ACTIVITIES

Tutorials and workshops will be held on 20-21 July 2002. Each tutorial will
last one-half or one day. Proposals are welcome, and should be directed to
the Program Co-chairs by 15 January 2002; more details will appear on the
web-site above.

Tool demonstrations will also take place during the symposium, with the
opportunity for presentations to be made about each tool. Proposals for
tool demonstrations should be made to the Tool Demonstration Coordinator,
with whom provison of necessary computing facilities should be discussed.

PEOPLE

Organising Chair

   Dines Bjørner
   Informatics and Mathematical Modelling
   Building 322, Richard Petersens Plads
   Technical University of Denmark
   DK-2800 Lyngby, Denmark
   Tel: +45 4525 3720
   Email: [EMAIL PROTECTED]

Programme Co-chairs

   Lars-Henrik Eriksson, Industrilogik L4i AB
 Box 21024, SE-100 31 Stockholm, Sweden
 Tel: +46 1859 1690   Fax: +46 1847 17058
 Email: [EMAIL PROTECTED]

   Peter Lindsay, Software Verification Research Centre
 The University of Queensland, Queensland 4072, Australia
 Tel: +61 7 3365 2005  Fax: +61 7 3365 1533
 Email: [EMAIL PROTECTED]

Programme Committee

   Bernhard Aichernig Graz University of Technology, Austria
   Juan Bicarregui SERC Rutherford Labs, UK
   Ernie Cohen Telcordia Technologies, USA
   Ben Di Vito NASA Langley Research Center, USA
   Cindy Eisner IBM Haifa Research Laboratory, Israel
   Lars-Henrik Eriksson (co-chair)  Industrilogik, Sweden
   John Fitzgerald Transitive Technologies Ltd, UK
   Jim Grundy Intel Corporation, USA
   Yves Ledru LSR/IMAG, Domaine Universitaire, France
   Peter Lindsay (co-chair) University of Queensland, Australia
   Markus Montigel University of New Orleans, USA
   Richard Moore IFAD, Denmark
   Tobias Nipkow Technische Universität München, Germany
   Colin O'Halloran Qinetiq (ex-DERA), UK
   Jose Oliveira Universidade do Minho, Portugal
   Nico Plat West Consulting, The Netherlands
   Jeannette Wing 

Re: The future of Haskell discussion

2001-09-13 Thread Manuel M. T. Chakravarty

Olaf Chitil [EMAIL PROTECTED] wrote,

 Here a short summary by Malcolm and me of the final discussion at the
 Haskell workshop:

I also took a couple of notes which I like to add.

 John Launchbury and many further people made a plea that the single
 biggest hindrance to the further spread of Haskell is the lack of a
 standard
 cross-platform GUI. Alas, no answer to the problem was found. There is
 no agreement which (existing) library could be the basis of a standard
 one and nobody wanted to commit himself to developing and supporting
 such a library. Well, Manuel Chakravarty promised to continue developing
 the GTK+ binding and would be happy about people helping him. (The GUI
 library presented at the workshop is not intended to solve the standard
 GUI problem.)

In fact, the recent release of binary packages for Gtk+HS
and an example applications that demonstrates how to use
the GTK+ API in Haskell have been a reaction to the
discussions at HW  ICFP.

Let me reiterate: Gtk+HS as it is today is sufficient for
applications requiring a GUI of medium complexity.  As far
as I see, despite not covering all of GTK+ yet, Gtk+HS
already has a wider variety of widgets and functionality
than Tcl/Tk provides in its whole API.  So, at least on
Unix, the statement that there is no GUI for Haskell is just
not valid anymore.  For Win32, somebody would have to set up
the binding for use with the Win32 port of GTK+.  I am happy
to include any patches coming out of this into the main
distribution.

You can see how programs coded against the GTK+ API in
Haskell look like at the following example:

  http://www.cse.unsw.edu.au/~chak/haskell/gtk/BoolEd.html

(As for Unix/Win32 portability of GUI code, that's not great
for C or C++ either.)

 Rather than starting work on a successor to Haskell, people
 generally want to see `blessed addendums' to the Report,
 for common agreed extensions, e.g. FFI, exceptions,
 concurrency, MPTC, fundeps, etc.  The FFI addendum is almost ready,
 but any others need volunteers, not to mention agreement between
 designers and implementations.  The idea is that a solid
 reference definition/documentation of each extension should
 exist independent of any particular compiler (but there is a lack
 of volunteers).
 
 It was noted that the future job of designing Haskell-2 will be
 made much easier by many small steps rather than one large effort.

Generally, as last year, there seemed to be not much
interest to look into Haskell 2.  Meanwhile, addenda to H98
seem to be a feasible alternative.  In fact, one aim with
the FFI Addendum was to create a precedent that can be
repeated for other extensions.

The nature of an addendum brings with it that the extension
should be rather non-invasive.  For example, in the case of
the FFI, one new keyword (`foreign') is added, taking it from
the pool of available variable identifiers.  The rest of the
functionality should not invalidate any existing H98
programs.  As a consequence, the kind of extensions that can
be realised in this way are limited.  For example,
extensions of the type system are much more likely to have a
severe effect on existing H98 programs.  So, they will be
less easy to add in this form.

It was also pointed out that we should go for an addendum
only where

- the design is clear and tested (example implementations
  exist and have been used in applications) and

- where there is considerable demand.

The first point is surely self-explanatory.  As for the
second, defining an addendum is a lot of work, which can be
used better otherwise unless the extension is really
important. 

Possible further addenda (in addition to the FFI), which
have been mentioned, are the following:

- The core library (in fact, there is already exists a task
  force to look into this extension)
- Concurrency support (there just are applications that are
  virtually impossible to implement well without
  concurrency)
- Exceptions (again a really elementary feature of modern
  languages) 
- Graphics library (obviously there is a lot of demand, but
  it is also a rather involved task)

In my opinion, all the above functionality falls into the
catergory embarrassing not to have.  The lack therefore, in
fact, promotes the image of Haskell being an academic toy
language.  The only exception is to a degree the graphics
library (again my opinion, which obviouly is not shared by
everybody, most notably John Launchbury).  My reason is
that, while access to GUI toolkits is a must, few languages
standardise them.

Type extensions (multi-parameter type classes, existential
types, rank-2 polymorphism, etc.) have been mentioned, but
it seemed that there isn't really a consus as to how they
should exactly be implemented and whether they are really so
urgently needed.  Moreover, they tend to be more invasive.
Personally, I would believe that multi-parameter type
classes may maybe be the most likely candidate for an
addendum. 

There was the feeling that there is not frequent 

Re: The future of Haskell discussion

2001-09-13 Thread S. Alexander Jacobson

Rather than talking about general features of the language that might
improve adoption in general, it is more useful to talk about specific
features of the language that make it killer in a particular application
domain.

In his classic book, Crossing the Chasm : Marketing and Selling High-Tech
Products to Mainstream Customers, Geoffrey Moore argues that the way to
gain mainstream adoption of a new technology is to target specific
segments of the customer population and to deliver whole product to them
(because integration challenges are daunting).

In http://www.paulgraham.com/lib/paulgraham/bbnexcerpts.txt, Paul Graham
argues that:
   One of the reasons to use Lisp in writing Web-based applications
   is that you *can* use Lisp.  When you're writing software that is
   only going to run on your own servers, you can use whatever language
   you want.

And further that:
   Until recently, writing application programs meant writing software to
   run on desktop computers.  In desktop software there was a strong bias
   toward writing the application in the same language as the operating
   system.

I would add that web based applications can use web interfaces and that
HTML is a good interface to many applications.  (and that Paul Graham's
comments about Lisp are also true of Haskell)

As such, I would like to see a focus on making Haskell great for web
application and web service development.  Some of the the pieces required
are application level, some are libraries, and some are language features.
Here is my quick take:

Application Framework
* a simple build/install process on both unix and win32
* a way to run/link haskell applications to a web server (apache)
* a decent libary organization and CPAN-like library sharing system
* a system for publishing apps to live servers

Libraries
* an OS file/directory access library
* a database connection library (even just ODBC would be fine!)
* a database connection pool library
* a mail handling library
* an XML parser library
* an XML-RPC/SOAP library

Language Features
* concurrency (to make requests to multiple servers simultaneously)
* FFI (to access libraries in other languages)
* exceptions (may not matter depends on the webserver/haskell interface!)

Documentation
* an O'Reilly class book on learning and developing web apps in Haskell
* sample applications that demonstrate useful web service functions
* a process for managing Haskell web app development

As a general matter, the addendum process strikes me as confusing and
dangerous.  I don't want to have a conversation like: I am using
Haskell'98 with Addendum A, C, and E.  I'd rather say, I am using Haskell
2001 and know that it is useful for developing web apps.

I know this is a lot of work, but it was what you get from Python, Perl,
and Java.  If Haskell wants to compete in this arena, it needs to provide
this level of service.  Also, I think a lot of these exist in pieces, so
the real work is in compiling it all into a good usable package.  I am not
volunteering to do it, but I would be happy to help beta if someone else
does.

-Alex-

PS There may be other better/easier initial application domains for
Haskell, but this is what I know.


___
S. Alexander Jacobson   Shop.Com
1-646-638-2300 voiceThe Easiest Way To Shop (sm)



On Fri, 14 Sep 2001, Manuel M. T. Chakravarty wrote:

 Olaf Chitil [EMAIL PROTECTED] wrote,

  Here a short summary by Malcolm and me of the final discussion at the
  Haskell workshop:

 I also took a couple of notes which I like to add.

  John Launchbury and many further people made a plea that the single
  biggest hindrance to the further spread of Haskell is the lack of a
  standard
  cross-platform GUI. Alas, no answer to the problem was found. There is
  no agreement which (existing) library could be the basis of a standard
  one and nobody wanted to commit himself to developing and supporting
  such a library. Well, Manuel Chakravarty promised to continue developing
  the GTK+ binding and would be happy about people helping him. (The GUI
  library presented at the workshop is not intended to solve the standard
  GUI problem.)

 In fact, the recent release of binary packages for Gtk+HS
 and an example applications that demonstrates how to use
 the GTK+ API in Haskell have been a reaction to the
 discussions at HW  ICFP.

 Let me reiterate: Gtk+HS as it is today is sufficient for
 applications requiring a GUI of medium complexity.  As far
 as I see, despite not covering all of GTK+ yet, Gtk+HS
 already has a wider variety of widgets and functionality
 than Tcl/Tk provides in its whole API.  So, at least on
 Unix, the statement that there is no GUI for Haskell is just
 not valid anymore.  For Win32, somebody would have to set up
 the binding for use with the Win32 port of GTK+.  I am happy
 to include any patches coming out of this into the main
 distribution.

 You can see 

Re: The future of Haskell discussion

2001-09-13 Thread Mark Carroll

On Thu, 13 Sep 2001, S. Alexander Jacobson wrote:
(snip)
 As such, I would like to see a focus on making Haskell great for web
 application and web service development.  Some of the the pieces required
 are application level, some are libraries, and some are language features.
 Here is my quick take:
(snip)
 I know this is a lot of work, but it was what you get from Python, Perl,
 and Java.  If Haskell wants to compete in this arena, it needs to provide
 this level of service.  Also, I think a lot of these exist in pieces, so
 the real work is in compiling it all into a good usable package.  I am not
(snip)

For what little it's worth, I'm encouraged just to see people talking like
this lately: such things would make a lot of difference in making me much
more comfortable about using Haskell for non-trivial commercial
projects.

-- Mark


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: The future of Haskell discussion

2001-09-13 Thread C.Reinke


 There was the feeling that there is not frequent enough
 feedback from the Task Forces (eg, FFI Task Force, Library
 Task Force) to the Haskell community as a whole.  Clause
 Reinke kindly volunteered to collect status reports of Task
 Forces on a 6-monthly basis and post them to the Haskell
 mailing list.  
 
 Claus, maybe you should give the Task Forces an idea of when
 you expect the first status report.

Just a quick update: when I was volunteered for organising more
frequent feedback from the task forces to the Haskell community as a
whole, I thought of just collecting individual summaries from the
existing lists. However, my current opinion on the matter is that this
alone would actually be a bad idea, as there are too many lists, no
lists for some important topics, some topics spread over several lists,
and generally not enough useful structure for the wide range of Haskell
sub-communities.

So what has been holding up the call for status reports from here
(apart from the usual real work:-) is my attempt to (a) gather as
many of the various Haskell interest groups as I can and (b) find some
way to organise them, so that I get an idea of who is out there and how
the pieces might fit together. I won't even try to get everything right
in the first go, so I hope to send round a first draft of a structure
(based on existing info at haskell.org and elsewhere) in the next
days.  The main point I'm still undecided on is at what level to ask
for status reports.

In my current version of the hierarchy, there are three levels, with
4-5 broad areas at the top (such as libraries, implementations, etc.),
and many of the existing mailing lists or projects, such as Gtk+HS, at
the most detailed level. If our community was more organised, I would
really like to see reports at the middle (e.g., what's up in terms of
GUIs?-) or top level, but as it stands, I will probably need to look
for anything I can get at the mailing-list level and then try to edit
all those fragments into a more useful overview.

For the timescale, I still think that 6-monthly reports are a sensible
compromise, and the Haskell workshops are a good reference point. I'll
ask for the first status reports as soon as I've got an idea of how
everything might fit together, probably early next week. The second
round will then take place in between Haskell workshops, and so on.

It would be nice if we could cover not only the explicit task forces,
but all Haskell (sub-)communities (such as the folks interested in
generic programming, or in concurrent/parallel/distributed programming,
functional reactive programming, etc.). That'll mean that the
individual status reports themselves will have to be brief (plus
pointers to more detailed documents, and instructions about how to join
the communities or find archives), which should also make it easier to
find people who write them;-).

More later,
Claus


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: The future of Haskell discussion

2001-09-13 Thread Frank Atanassow

Just a quick remark:

S. Alexander Jacobson wrote (on 13-09-01 12:40 -0400):
 As a general matter, the addendum process strikes me as confusing and
 dangerous.  I don't want to have a conversation like: I am using
 Haskell'98 with Addendum A, C, and E.  I'd rather say, I am using Haskell
 2001 and know that it is useful for developing web apps.

Eventually, you will be saying that, but about Haskell-2.

In the interim, having extensions described in addendums is probably better
than the situation we have now, in which you are forced to say that I am
using Haskell with extension X (but with whose semantics?) or I am using GHC
Haskell (but Hugs also supports my extension). At least if an extension is
described in a Haskell Report Addendum one knows where to look for its
semantics, that its semantics are standardized, and that it is reasonably
accepted by the community and not some Bizarro (I love that word :) extension
which will only ever be implemented in some obscure researcher's pet compiler
project.

-- 
Frank Atanassow, Information  Computing Sciences, Utrecht University
Padualaan 14, PO Box 80.089, 3508 TB Utrecht, Netherlands
Tel +31 (030) 253-3261 Fax +31 (030) 251-379

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: Application letters at the Haskell workshop: suggestion

2001-09-13 Thread Alastair David Reid


Quick reply to just one point (more later, I hope):

   Also, do these books have good coverage of things like
 existential types, functional dependencies, other
 experimental-but-apparently-crucial features that are hard to find
 documentation for?

I consider myself a fairly hardcore Haskell user (I used to be a
language designer and compiler/library developer but now I work on
another language and write my tools in Haskell and perl).  Despite
this, I don't think I use any of the features you list (I guess I'm
suggesting that these might not be the most important to you either).

I do use the IO monad, IORefs (sparingly), constructor classes, lots
of libraries, the foreign function interface (lets you call C and
C++), parser generators (happy) and parser combinators, exception
handling and concurrency (even just the lame non-preemptive version
that Hugs provides).

Of course, this partly reflects the kinds of programs I write and, to
some extent, my being comfortable with the features and libraries I
know and not having time to really explore what I can do with the
other features.

-- 
Alastair Reid[EMAIL PROTECTED]http://www.cs.utah.edu/~reid/

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



RE: Application letters at the Haskell workshop: suggestion

2001-09-13 Thread brk

Thanks, that's very valuable information. It's hard to appreciate the
relative utility (as you can see :-)) of different experimental features. 

It's also confusing that things like exceptions, concurrency, and FFI are
labeled 'experimental'. They're so (IMHO) crucial that I find myself saying,
Okay, if exceptions are 'experimental', what other really important things
might I be missing by not being familiar with all the experimental
extensions? Thanks for clearing that up somewhat.

On a tenuously related note, I should mention that so many Haskell examples
focus on things which fit easily into a functional mold (factorial, etc.)
that I did not actually have the faintest idea how to create a real and
useful Haskell program until I saw the code for Simon Marlow's web server.
The snippets on Doug Bagley's Computer Language Shootout were also helpful.
It's also very difficult to find examples which demonstrate the use of
experimental features. I mention this only because your report below of what
features you use daily provides a useful point of reference for people
wondering what actually goes into a non-trivial Haskell application.

Bryn

 I consider myself a fairly hardcore Haskell user (I used to be a
 language designer and compiler/library developer but now I work on
 another language and write my tools in Haskell and perl).  Despite
 this, I don't think I use any of the features you list (I guess I'm
 suggesting that these might not be the most important to you either).
 
 I do use the IO monad, IORefs (sparingly), constructor classes, lots
 of libraries, the foreign function interface (lets you call C and
 C++), parser generators (happy) and parser combinators, exception
 handling and concurrency (even just the lame non-preemptive version
 that Hugs provides).
 
 Of course, this partly reflects the kinds of programs I write and, to
 some extent, my being comfortable with the features and libraries I
 know and not having time to really explore what I can do with the
 other features.
 
 -- 
 Alastair Reid[EMAIL PROTECTED]http://www.cs.utah.edu/~reid/

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: The future of Haskell discussion

2001-09-13 Thread Wolfgang Jeltsch

On Thursday, 13. September 2001 17:50, Manuel M. T. Chakravarty wrote:
 [...]
 Let me reiterate: Gtk+HS as it is today is sufficient for
 applications requiring a GUI of medium complexity.  As far
 as I see, despite not covering all of GTK+ yet, Gtk+HS
 already has a wider variety of widgets and functionality
 than Tcl/Tk provides in its whole API.  So, at least on
 Unix, the statement that there is no GUI for Haskell is just
 not valid anymore.  For Win32, somebody would have to set up
 the binding for use with the Win32 port of GTK+.  I am happy
 to include any patches coming out of this into the main
 distribution.

In my opinion GTK+ is not that nice to develop Win32 applications because it 
provides its own look-and-feel which conflicts with the one of Windows. On 
UNIX-like systems where each desktop environment has its own look-and-feel it 
does not conflict under GNOME because GNOME is based on it. That's why I 
think GTK+ should be used mainly to develop applications which are intended 
to run under GNOME and preferably not to do cross-plattform GUI programming. 
I think the best solution for the latter thing is to use a library which has 
multiple implementations based on different native libraries like Win32, 
GTK+, Qt. wxWindows (http://www.wxwindows.org/) is an example for this kind 
of library.

 [...]
 Type extensions (multi-parameter type classes, existential
 types, rank-2 polymorphism, etc.) have been mentioned, but
 it seemed that there isn't really a consus as to how they
 should exactly be implemented and whether they are really so
 urgently needed.

I need at least multi-parameter type classes urgently. I am currently working 
on a software package allowing website implementation in Haskell which relies 
on them.

 [...]

Wolfgang

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



RE: The future of Haskell discussion

2001-09-13 Thread brk



 In my opinion GTK+ is not that nice to develop Win32 applications because
 it 
 provides its own look-and-feel which conflicts with the one of Windows. On
 
 UNIX-like systems where each desktop environment has its own look-and-feel
 it 
 does not conflict under GNOME because GNOME is based on it. That's why I 
 think GTK+ should be used mainly to develop applications which are
 intended 
 to run under GNOME and preferably not to do cross-plattform GUI
 programming. 
 I think the best solution for the latter thing is to use a library which
 has 
 multiple implementations based on different native libraries like Win32,
 
 GTK+, Qt. wxWindows (http://www.wxwindows.org/) is an example for this
 kind 
 of library.
 
[Bryn Keller]  
Yes, exactly. Additionally, I have had trouble with bugginess in GTK
on Win32 (not the Haskell bindings, but GTK itself), and things which want
to compile with GTK usually insist on using an executable called gtk-info
(IIRC) or something similar -- but on windows, only the DLLs are available
(last time I checked).

My personal vote would be for wxWindows - it's good stuff, and it's
free even for commercial use. Qt's main advantage IMHO is in
internationalization.

The thing I'd most like to see, however, is not a standard C++
toolkit, but a standard Haskell GUI API which could then be implemented on
top of other things (wxWindows, GTK, OpenGL, XUL, etc.). Frantk is
implemented something like this I believe, and Fruit also has an interesting
(if young) model.


Bryn

  

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: Application letters at the Haskell workshop: suggestion

2001-09-13 Thread Lennart Augustsson

[EMAIL PROTECTED] wrote:

 Thanks, that's very valuable information. It's hard to appreciate the
 relative utility (as you can see :-)) of different experimental features.

 It's also confusing that things like exceptions, concurrency, and FFI are
 labeled 'experimental'. They're so (IMHO) crucial that I find myself saying,
 Okay, if exceptions are 'experimental', what other really important things
 might I be missing by not being familiar with all the experimental
 extensions? Thanks for clearing that up somewhat.

I have been writing substantial Haskell programs and I use *NO* experimental
features.  What I'm currently working on is over 2 lines of Haskell 98.
No extensions whatsoever.  (It even compiles and runs with all available
Haskell implementations.)
Granted, I write mostly compiler like programs (files in, files out), but there
is still a lot you can do in Haskell just as it is.  Sometimes it might require
bending slightly backwards to get it done, though.

-- Lennart

PS. OK, a small confession, that program contains one unsafePerformIO for
performance reasons.  It works fine without it, but 5% slower.



___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: Application letters at the Haskell workshop: suggestion

2001-09-13 Thread Jeffrey R Lewis

Lennart Augustsson wrote:



 I have been writing substantial Haskell programs and I use *NO* experimental
 features.  What I'm currently working on is over 2 lines of Haskell 98.
 No extensions whatsoever.  (It even compiles and runs with all available
 Haskell implementations.)
 Granted, I write mostly compiler like programs (files in, files out), but there
 is still a lot you can do in Haskell just as it is.  Sometimes it might require
 bending slightly backwards to get it done, though.

Well, that's nothing!

I have been writing substantial ANSI C programs and I use *NO* experimental
features.  What I'm currently working on is over 2 lines of ANSI C.
No extensions whatsoever.  (It even compiles and runs with all available
C implementations.)
Granted, I write mostly compiler like programs (files in, files out), but there
is still a lot you can do in ANSI C just as it is.  Sometimes it might require
bending slightly backwards to get it done, though.

;-)

--Jeff


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



RE: Application letters at the Haskell workshop: suggestion

2001-09-13 Thread Manuel M. T. Chakravarty

[EMAIL PROTECTED] wrote,

 Thanks, that's very valuable information. It's hard to appreciate the
 relative utility (as you can see :-)) of different experimental features. 
 
 It's also confusing that things like exceptions, concurrency, and FFI are
 labeled 'experimental'. They're so (IMHO) crucial that I find myself saying,
 Okay, if exceptions are 'experimental', what other really important things
 might I be missing by not being familiar with all the experimental
 extensions? Thanks for clearing that up somewhat.

Maybe it should be clarified that there are exceptions in
H98, but *only* in the IO monad.  What the extension is
about are exceptions in pure functions.  As for the FFI and
concurrency, I agree with you, but these are also the two
extensions of which it is very clear how to do them by now
and it is more a matter of getting all implementations in
sync.  Languages like Perl and Python don't have this
problem.  There is just one implementation and that defines
the language.

Otherwise, I can assure you, Haskell has a rather complete
feature set and is ready for serious use.

Cheers,
Manuel

[1] I know that this is not entirely true for Python, but
the net effect is the same.

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: The future of Haskell discussion

2001-09-13 Thread Manuel M. T. Chakravarty

Wolfgang Jeltsch [EMAIL PROTECTED] wrote,

 That's why I 
 think GTK+ should be used mainly to develop applications which are intended 
 to run under GNOME and preferably not to do cross-plattform GUI programming. 
 I think the best solution for the latter thing is to use a library which has 
 multiple implementations based on different native libraries like Win32, 
 GTK+, Qt. wxWindows (http://www.wxwindows.org/) is an example for this kind 
 of library.

wxWindows is quite C++ centric and AFAIK nobody has made a
serious effort at a C++ FFI yet.  One of the big advantages
of GTK+ is that it was written with bindings for other
languages in mind.  Therefore, it is probably the toolkit
with the most language bindings.

One alternative would be to standardise on a kind of subset
of the GTK+ API and then somebody with a lot of spare time
could implement that on top of the Win32 API natively - in
the meantime, the original GTK+ libraries would at least
provide some form of implementation under Win32.  (You
should bear in mind that anything that doesn't build on
existing infrastructure involves a lot of coding and I
haven't seen many volunteers stepping forward yet.)

Manuel

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: The future of Haskell discussion

2001-09-13 Thread Mark Carroll

On Fri, 14 Sep 2001, Manuel M. T. Chakravarty wrote:
(snip)
 wxWindows is quite C++ centric and AFAIK nobody has made a
 serious effort at a C++ FFI yet.  One of the big advantages
(snip)

Of course, wxPython also exists - I assume that the emphasis on object
orientation is the problem?

-- Mark


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: The future of Haskell discussion

2001-09-13 Thread S. Alexander Jacobson

Out of curiosity, how does GTK+ compare with Fruit?
It seems like it would make sense for the standard Haskell GUI also to be
functional.

-Alex-

PS I don't do GUI stuff so I don't really know much.  I did read the Fruit
paper and it looked interesting.



On Fri, 14 Sep 2001, Manuel M. T. Chakravarty wrote:

 Wolfgang Jeltsch [EMAIL PROTECTED] wrote,

  That's why I
  think GTK+ should be used mainly to develop applications which are intended
  to run under GNOME and preferably not to do cross-plattform GUI programming.
  I think the best solution for the latter thing is to use a library which has
  multiple implementations based on different native libraries like Win32,
  GTK+, Qt. wxWindows (http://www.wxwindows.org/) is an example for this kind
  of library.

 wxWindows is quite C++ centric and AFAIK nobody has made a
 serious effort at a C++ FFI yet.  One of the big advantages
 of GTK+ is that it was written with bindings for other
 languages in mind.  Therefore, it is probably the toolkit
 with the most language bindings.

 One alternative would be to standardise on a kind of subset
 of the GTK+ API and then somebody with a lot of spare time
 could implement that on top of the Win32 API natively - in
 the meantime, the original GTK+ libraries would at least
 provide some form of implementation under Win32.  (You
 should bear in mind that anything that doesn't build on
 existing infrastructure involves a lot of coding and I
 haven't seen many volunteers stepping forward yet.)

 Manuel

 ___
 Haskell mailing list
 [EMAIL PROTECTED]
 http://www.haskell.org/mailman/listinfo/haskell


___
S. Alexander Jacobson   Shop.Com
1-646-638-2300 voiceThe Easiest Way To Shop (sm)


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell