A N N O U N C E M E N T
Happy v0.7 (alpha)
The LALR(1) Parser Generator for Haskell
This is the first public release of our parser generator system for
Haskell, called Happy (a dyslexic acronym for 'A Yacc-like Haskell
Parser
For all those having problems compiling Happy with ghc version 0.16,
the solution is to compile the module ProduceCode.lhs without
optimisation. A small patch to the Makefile can be found on
ftp.dcs.gla.ac.uk in the file pub/haskell/happy/happy-0.7-0.7.1.patch.
Also, we didn't make it clear
for Simon's generalised
guards:
f x y | x@(Just 3) = e
This to me is nicer than re-using - in a different setting. Ok, it
means more than a one-symbol change to the grammar. Comments?
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED]
University
layout rule), and consistent error
handling.
* The %newline feature is removed, the same effect can be achieved
using the new monad support.
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow http://www.dcs.gla.ac.uk/~simonm
The Glasgow Haskell Compiler -- version 2.07
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 2.07. Source distribution is freely available
via the World-Wide Web and through anon.
The Glasgow Haskell Compiler -- version 2.08
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 2.08. Source distribution is freely available
via the World-Wide Web and through anon.
LFE Programmier- und Modellierungssprachen Oettingenstr. 67
mailto:[EMAIL PROTECTED]D-80538 Muenchen
http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne
--
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow
The Glasgow Haskell Compiler -- version 2.09
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 2.09. Source distribution is freely available
via the World-Wide Web and through anon.
The Glasgow Haskell Compiler -- version 2.10
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 2.10. Source and Binary distribution is freely
available via the World-Wide Web and
Happy 1.5
The LALR(1) Parser Generator for Haskell
This is the nth public release of the parser generator system for
Haskell, called Happy (a dyslexic acronym for 'A Yacc-like Haskell
Parser generator').
What's new in Happy 1.5 (vs. Happy 0.9)
*
to regenerate the persistent
store. This seems overly restrictive, it might be simpler to just use
the Native or Binary classes.
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow http://www.dcs.gla.ac.uk
The Glasgow Haskell Compiler -- version 3.01
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 3.01. The source distribution is freely
available via the World-Wide Web and through
| otherwise = False
is of course fine.
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow http://www.dcs.gla.ac.uk/~simonm/
finger for PGP public key
The Glasgow Haskell Compiler -- version 3.02
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 3.02. The source distribution is freely
available via the World-Wide Web and through
of the Prelude operators
from n to n*100.
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow http://www.dcs.gla.ac.uk/~simonm/
finger for PGP public key
- parsing is easier
Possible drawbacks:
- with fixities and imports at the top, it might be possible to
resolve infix expressions during parsing. Neither Hugs nor
GHC nor nhc do this.
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED
this clear. The idea is that they scope
over the entire module. All other kinds of declaration in Haskell
have this property, so it's consistent.
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow
tr "s"
else
return ()
putStr " sitting on a wall"
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow http://www.dcs.gla.ac.uk/~simonm/
finger for PGP public key
possible.
The common case of applying a dyadic operation to small Integers would
then be pretty close in performance to that of Int (a couple of
indirect jumps, and a test/branch for the overflow detection, to be
precise).
Cheers,
Simon
--
Simon Marlow
The Glasgow Haskell Compiler -- version 4.00
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 4.00. The source distribution is freely
available via the World-Wide Web and through
definition of
the identity function? (it's the latter).
Here's to cleaning up the language, and to more exciting obfuscated
Haskell competitions!
Cheers,
Simon
--
Simon Marlow [EMAIL PROTECTED]
University of Glasgow http://www.dcs
. This results in
everyone getting several copies of the same message, and apparently the mail
server at Glasgow is already croaking under the strain.
So: please make sure you only reply to [EMAIL PROTECTED] in addition to
any private addresses.
Cheers
--
Simon Marlow
Microsoft Research Ltd., Cambridge
sheet.html
in the new-rts branch of GHC.
Cheers,
Simon
--
Simon Marlow
Microsoft Research Ltd., Cambridge, U.K.
Tommy Thorn says:
Even when taking the simple example from my previous^2 post
ghc -c Add.hs
ghc -c Main.hs
ghc -o Main Main.o Add.o
Actually, you can do this in one:
ghc Add.hs Main.hs -o Main
we notice that it takes three commands, in the right order, each with
a non
I would be great to get to know which address one should use for the
Haskell mailing list. Could not somebody please post info
about that to
that list, as there has been problems with that in the past
(haskell.org
not working, etc.).
The official address for the haskell mailing list is
Sergey said:
Sorry,
i am testing which Haskell list is alive.
[EMAIL PROTECTED] returns the mail. So are other *haskell.org
lists.
?
The mailing lists have just moved, which probably accounts for the problems.
It may take a while for the changes to filter through.
There's no change to
It was said long ago that these strict fields help to somewhat
increase the performance. For example, Ratio uses this (?).
The next version of ghc will make further use of strictness annotations on
constructors by unboxing/unpacking strict fields. eg.
data T = T !Int
will
Re: layout changes in Haskell 98
Having had a bit more time to muse over this issue and discuss it with Simon
P.J., we came to the conclusion that the issue is far from concluded. The
Haskell 98 layout rule still has some problems (shock! :-)
This message is indended to summarise what I
I just uncovered a couple of strange cases in the Haskell lexical syntax.
If you're not especially bothered about such things, don't bother to read
on!
Quick quiz: how many Haskell lexemes are represented by the following
sequences of characters?
1) M.x
2) M.let
I don't think there was a solution.
At least, I'm still being mailed :-(
I guess the administrators aren't paying much attention to
what's going
on... Poor job.
Sorry, I've been away for a few days.
1. To remove yourself from this mailing list, mail "[EMAIL PROTECTED]"
with the line
I would like to have a comparison instruction that compares
the internal
reference of two objects.
Let's call it "req".
req :: a - a - Bool
By coincidence, I was just looking at GHC's documentation on
stable names
and pointers, and it seems relevant here.
Manuel Chakravarty writes:
What kind of implementation did the originators of this
clause envision? If the layout rule is really implemented
as a filter between the scanner and the parser, it seems
extremely awkward to add a dependency on the error condition
of the parser - in particular,
Does anybody disagree with my interpretation of the standard? Are
there any implementations that actually follow the standard here?
(Maybe the standard should be changed to follow the implementations in
this area.)
Phew. Well spotted. Of course, none of the existing Haskell
Now that you're an (ahem) Microsoft employee, is there any
intention of
allowing ghc to use Visual C++ instead of gcc,
We plan to allow this, but there'll be a price to pay: the gcc extensions
that we use buy us about a factor of 2 in performance and binary sizes.
or supporting the Win32
Does it mean that the following expressions would be illegal?
if cond then do proc1; proc2 else do proc3; proc4
(case e of Just x - x 0; Nothing - False)
Unfortunately, yes.
Now one can forget about {} and use layout everywhere. He would no
longer be able to forget or he would have to
In brief:
Define __HASKELL__=98 and __HASKELL98__ as preprocessor
macros for all
Haskell 98 compilers.
Ok, GHC 4.04 (in the forthcoming patchlevel 1 release) will follow suit.
Cheers,
Simon
Out of curiosity, how big is the user community? How many
downloads of
the software? How many are on this list?
There are ~700 people on the Haskell list, ~200 on glasgow-haskell-users and
~150 on hugs-users. About 160 people downloaded ghc-4.02 for Linux last
month, I'm waiting to find
I think that the transformation is exactly fully laziness.
Sometimes, it
helps to improve space/time performance, but it needs to be tunned up
due to the reasons including one given by Tweed.
GHC does full laziness(*). As far as I know, no-one ever complained :)
Simon
(*) Well, actually
IIRC, GHC does the tuning, i.e. CAFs are garbage collected in a clever
way (describe in SPJ's book, I think), e.g. if there is only one
reference into the "middle" of a CAF left, only that part is
kept alive.
and not the wohle CAF. Comments from Mr. GC? :-)
True, but this doesn't solve
Maintainer's note:
The Haskell mailing list, and all the other lists served by
haskell.org, have recently moved to a new machine (the "real"
haskell.org). None of the addresses have changed, and the address for
admin requests is still [EMAIL PROTECTED]
The lists have been down for a short
Herbert Schuetz writes:
But of course if the great merger of GHC and Hugs provides all the
needed functionality (including, e.g., the possibility to load and
invoke interpreted modules from within compiled code), then such a
project might be superfluous, and your idea #1 becomes the
best
I would like to add a vote for reorganization into two lists
one of which
is a proper subset of the other. I stopped reading Usenet a
long time ago
when the spam got too intolerable.
In my experience, this sort of thing doesn't work too well in practice.
People tend to cross-post, or
Happy 1.6
The LALR(1) Parser Generator for Haskell
This is the nth public release of our parser generator system for
Haskell, called Happy (a dyslexic acronym for 'A Yacc-like Haskell
Parser generator').
What's new in Happy 1.6 (vs. Happy 1.5)
*
Is there any references to memoization techniques? I could not find
any reference to memoization facilities in the Haskell report and
library report. Neither in the Clean report. After looking at GHC,
Hugs98 and nhc98, I have found that GCH provides the memo function
used in the example.
A quick question: what is the intended behaviour of the
Hugs/ghc extension types Int8, Int16, Int32, and Int64
with regard to overflow? The documentation for the Word*
types says that they compute modulo arithmetic, but there
is no similar guarantee for the Int* types. Is it the
intention
Folks,
Please do not adjust your set :-)
Due to problems with the haskell.org setup at Yale, all the mailing
lists served by haskell.org (haskell, glasgow-haskell*, hugs* etc.)
are down, as is http://www.haskell.org.
Normal service will be resumed as soon as possible.
Cheers,
Simon
i am preparing a demonstration on memory management/garbage
collection,
and to give the students some real life examples,
i am looking for a simple patch to some Haskell runtime system
so that it would display the heap *while* the program is running.
like, opening an X window and mapping
Haskell.org is now back up again.
Simon
Well, I see what you mean, no way, NO means, etc. So, the
program below
in Hugs would not work as it should? Too bad...
-- ===
-- ioio.hs
dump f = readFile f = putStr
gimmeThat = dump "ioio.hs"
-- ===
Well, pedantically speaking
A few folk have asked about an archive of this mailing list recently - the
answer is that the one at Glasgow isn't being updated any more (and it was
never very good anyway). There's a better archive at
http://www.mail-archive.com/haskell@haskell.org
and similarly for all the other
Sergey writes:
Today, there came the letter by Joe English on space leak etc.,
dated of February 06.
And today is February 22.
I wonder, what is the matter with the mail lists.
This was due to the filtering on haskell.org, which thought the message
contained an admin request
Title: RE: Wanted: mmap or other fast IO
Is there any interface to mmap(2) available? Something that
behaves like
an immutable array would be great.
An mmap may have a signature like
mmap :: Ix a, ?? b = Handle - IO (Array a b)
I've no idea what types should be allowed for b. It
Alternatively, of course, the coding style could simply change to
case e of
-- ...
_other - default_action
or
case e of
-- ...
_ - default_action
The former is IMHO ugly, and the latter fails to indicate to the
reader that this is intended to match not
-Original Message-
From: Simon Marlow [SMTP:[EMAIL PROTECTED]]
Sent: 25 February 2000 13:54
Subject:I Want A Mirror
IP addr : 148.88.2.7 (no name in the DNS?)
Browser : Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Referer : http://www.mirror.ac.uk
GHC folks, would it be a problem to allow transparent
unwrapping of newtypes in foreign calls?
Shouldn't be a problem, I'll be happy to do it if that's what the conclusion
is.
I don't understand Qrczak's comment:
data CLDouble = CLD# Double# -- ugh, plain newtype won't work
if we
The problem with this is that there is a performance penalty to be
paid for overloading a function in this way. `take' is implemented as
a function of two arguments, as you would expect. It is given a
number and a list; it has no idea what type the list has, nor does it
need to: it just
Why are type constructors and classes in the same namespace?
Because otherwise the syntax
module M ( T ) where
would be ambiguous. I suppose it could be resolved to mean "export the
class and/or data type T". It was proposed for Haskell 98 that the syntax
be changed to
Dear Haskell folks,
There's a web server written in Haskell running on haskell.org:
http://www.haskell.org:8080/
Please surf on over and press reload a few times. First one to bring it
down gets a gold star. I'll be watching the logs :-)
The source (not properly packaged, just
Simon Marlow wrote:
| lines :: String - [String]
| lines s = lines' s ""
| where
| lines' [] acc = [acc]
| lines' ('\n':s) acc = reverse acc : lines' s ""
| lines' (c:s)acc = lines' s (c:acc)
|
| This one is more than twice
Yes, break is very expensive due to its pairing up of results
for every
character consumed. You didn't mention the accumulating
parameter version:
lines :: String - [String]
lines s = lines' s ""
where
lines' [] acc = [acc]
lines' ('\n':s) acc = reverse acc : lines' s
the grammar for import and export lists use `tycon'
and `qtycon' (respectively) rather than `gtycon'.
Is there any particular reason for this, or is this
just a defect in the Haskell 98 report?
Would changing `qtycon' to `gtycon' in the
grammar production for `export' cause any problems?
Thanks for everyone who participated in the recent poll. Here
are the results:
Never used: 6
Sometimes used: 1
Common commments:
willing to give it up for something cool
can be easily rewritten
wouldn't make a lot of difference
not sure if used ever, but
How do I use sockets in Haskell? The ghc manual had some
information in the users guide (6.7 Interfaces to C
libraries) but the sentence which started tantalisingly
"Various examples of networking Haskell code are provided in "
had no second half.
I'd prefer to use hugs during
ANNOUNCING Happy 1.8 - The LALR(1) Parser Generator for Haskell
I'm pleased to announce version 1.8 of Happy, the parser generator
system for Haskell. Changes in this version, relative to version 1.6
(the previous full
Simon, can you tell me how I shall link to hslibs, especially each
individual library? Obviously a user would also like to download a
single library.
That's not so obvious to me. We're going to the effort of packaging up all
these libraries into a single coherent collection, that can be
Keith Malde writes:
Apologies for not bringing up heavy theoretical issues, but
is there a
library routine for retrieveing URLs? I need to digest some
web pages
and extract a bit of data from them, and I've munged together
a rather
naïve XML (and soon HTML) parser[0], but I bet
"Incorrect" UTF-8 in Chars is seen only by the conversion engine and
sometimes by low-level I/O code.
... and by the application if it inadvertently specifies "no encoding" when
the source is actually encoded.
I think I agree with John here - specifying "no encoding" on a Handle
shouldn't
Yep, the GHC stuff is a gold mine, and one which I frequent all to
rarely (mostly using Hugs for development). Unfortunately, I can't
find any URI - String functions - but I could probably build it on
top of URI and Socket (great stuff btw, just what I (might) need)
URI is an instance of
Why does this code fragment print a continous stream of b's?
I thought it should print some alternation of a's and b's.
I am using GHC 4.08.1 on Windows 98 with Cygwin.
import Concurrent
main = forkIO a b
where
a = putStrLn "a" a
b = putStrLn "b" b
---
On Fri 22 Sep, [EMAIL PROTECTED] wrote:
Why does this code fragment print a continous stream of b's?
I thought it should print some alternation of a's and b's.
Sorry, I don't know the answer, but this post reminds me of something
I'd been meaning to ask..
I seem to remember reading
Dear Haskell Haskell-cafe,
At haskell.org we're migrating the mailing lists from majordomo (which is
somewhat old and clunky) to Mailman, which will amongst other things make my
life a lot easier, provide better archives, add digest support and allow
subscription/unsubscription via a web
That's the problem. And I think your solution is overly complicated.
Why not copy what Common Lisp does, just that Haskell can do
it without
macros:
withOpenFile :: FilePath - IOMode - (Handle - IO a) - IO a
withOpenFile name mode action = do
handle - openFile name mode
An older version of HaXml is also included in GHC's hslibs, in package
"text". This will probably be updated to 1.00 at some time.
great, I assume you'll check in the new version?
Cheers,
Simon
___
Haskell mailing list
[EMAIL PROTECTED]
ANNOUNCING Happy 1.9 - The LALR(1) Parser Generator for Haskell
-
I'm pleased to announce version 1.9 of Happy, the parser generator
system for Haskell. Changes in this version, relative to version 1.8
(the previous full
What should be the preferred way of marking correspondence to source
positions after some preprocessing?
Here is what is currently supported:
| {-# LINE 100 "Foo.hs #-} | #
100 "Foo.hs"
+--+--
How about turning ghc into a compilation server ?
It would run as a daemon waiting for network
connections, retrieve source files (through the
same network socket, or nfs, or cvs, ...), compile
them locally, and send back the result.
This would prevent having to reload the compiler
for
I looked on www.haskell.org for the Simon Marlow's Web Server,
but couldn't find. Did I overlook it?
The source is here:
http://research.microsoft.com/~simonmar/hws.tar.gz
Cheers,
Simon
___
Haskell mailing list
[EMAIL
Mark Utting writes:
fb::IO ()
fb =
do {
putStr "Enter Data: ";
line - getLine;
let line2 = line;
putStr line2;
}
ERROR "f.hs" (line 13): Syntax error in definition
(unexpected symbol "putStr")
I find it hard
About the program below, someone (I think Simon Marlow) said
that if I run
it for long enough, I'll see as rather than bs. I would
like to know for
how long I will have to wait, since 2 hours were not enough to see it
switching from bs to as.
main = forkIO a b
where
ANNOUNCING Happy 1.10 - The LALR(1) Parser Generator for Haskell
-
I'm pleased to announce version 1.10 of Happy, the parser generator
system for Haskell. Changes in this version, relative to version 1.10
(the previous full
S. Alexander Jacobson writes:
I am not a parsing expert, but given the recent discussion on
macros, I
have to ask: why use happy rather than monadic parsing?
Monadic parsing
allows you to avoid a whole additional language/compilation
step and work
in Hugs (where you don't have a
I don't like the idea of a program working which compiles only under
compilers which have certain language extensions built in.
If I understand things correctly, there is a list of language
extensions
(FFI for example), which has been accepted by all Haskell
compilers developers. If
[ moved from glasgow-haskell-users to [EMAIL PROTECTED] ]
Carl Witty writes:
If the report does not allow the implementation to flush buffers at
any time, I would call that a bug in the report.
Indeed, perhaps the report should be clarified on this issue.
Currently, in section 11.4.2 the
I am going to install hmake and upgrade to ghc 5 but in the
meantime I decided to use make.
I am puzzled however. Presumably building a module that
imports a module needs the .hi file and therefore the
makefile should be something like this:
Tagsv1.o : Tagsv1.hs
ghc -c
Malcolm Wallace writes:
I submit that the way `hiding' clauses are ignored is a vestige from
the days when it was not possible to have overlapped module renamings.
Now that overlapped renamings are possible, the `hiding' clauses
should be permitted to take effect.
I think you're right.
Simon Peyton Jones writes:
In short, an import *always* brings the entire *qualified*
set of names into scope. Hiding and revealing applies only
to unqualified names. I must say that I thought GHC implemented
this rule; if not I should fix it.
That's not my reading of the report, and it's
Can anyone give me a brief explanation (or show me where in the web I
can
find some info) about using the profiling library in GHC? Is it
avaible for Windows 98/NT?
There's documentation on GHC's profiling facilities here:
http://www.haskell.org/ghc/docs/latest/set/profiling.html
3. A precedence table says that case (rightwards) has higher
precedence
than operators and right associativity. If it's meaningful to talk
about precedence of such syntactic constructs as case at all,
it should
probably be told to have a lower precedence, so case x+1 of ...
is valid as
I'm just getting started using the glasgow haskell compiler
and when I try to
compile a simple program, named Hello.lhs, like this:
module Main (main) where
main = putStrLn Hello World
end
with the command
ghc Hello.lhs
I get the message on standard output:
No definitions
Jeffrey Palmer writes:
I think the question is more along the lines of Why doesn't Haskell
come bundled with complete, useful and _supported_ libraries?
There's an ongoing effort to rectify the situation. There is a mailing
list: [EMAIL PROTECTED], which you can join by going to
As far as I can tell, the report doesn't allow (:) or []((:),
[]) in the
export list, yet the hugs prelude has the first and the GHC
prelude has
the second. Have I missed something that allows them or is
this a bug in
the preludes or the report?
(:) is allowed in an export list; it is
Ian Lynagh writes:
On Thu, Sep 20, 2001 at 01:32:54PM +0100, Simon Marlow wrote:
(:) is allowed in an export list; it is just a normal operator.
An export is
export - qvar
| qtycon [(..) | ( qcname1 , ... , qcnamen )] (n=0)
| qtycls [(..) | ( qvar1 , ... , qvarn )] (n
ANNOUNCING Happy 1.11 - The LALR(1) Parser Generator for Haskell
-
I'm pleased to announce version 1.11 of Happy, the parser generator
system for Haskell. This is a minor update from version 1.10, with
- a bugfix for
ANNOUNCING Happy 1.11 - The LALR(1) Parser Generator for Haskell
-
Owing to a rather embarrassing bug related to precedence parsing in the
1.11 release, I've uploaded new versions of the packages with the bug
fixed.
My
Great. So that is something that goes into some library conventions
document.
Such a document is here:
http://www.haskell.org/~simonmar/libraries/libraries.html
If there are comments on the design (which is by no means finalised),
please take them to the libraries mailing list.
Just spotted this Haskell tutorial at IBM developerWorks (free
registration required):
http://www-105.ibm.com/developerworks/education.nsf/linux-onlinecourse-b
ytitle/9A31A3C4A0CE683E86256AD400822942?opent=grl,l=805,t=haskell
(hope that URL doesn't get mangled by Exchange...). Looks like it's
Carlos Scheidegger writes:
First, the Happy example uses some functions that exist in
Hugs but not in GHC, like isAlpha, isDigit and isSpace (I think so,
at least, because i type ':t isAlpha' in GHCi and get
'variable not in
scope'), so I created a module called CharClasses with
What do you all think about activating the mechanism that
automatically includes the name of the list before the subject
of a mailing list email?
For example:
[hugs-users] Installation problems or [haskell] newbie
question.
I don't like the extra prefixes, but if most folk would prefer
i_succ' = succ i'
-- ghc : 2147483648
-- hugs: -2147483648
-- nhc98: -2147483648
-- hbc: -2147483648
I think Hugs is wrong. Integer shouldn't wrap.
(Actually, ghc is `wrong': hbc, hugs and nhc98 match the Report's
specification here: succ = toEnum . (+1) .
I was very surprised when I discovered (writing a bit more complicated
program) that a program like
import Numeric ( floatToDigits )
print $ showFFloat Nothing 0.01
enters in to infinite loop. I found that (formatRealFloat FFFixed
Nothing) do not like displaying numbers less than
1 - 100 of 5259 matches
Mail list logo