Helium II

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Helium II

Jurriaan Hage
Dear all,

We’ve been active since September making the Helium compiler more Haskell 2010 compliant.
In particular, we have a branch with support for Haskell 2010 type classes, a branch that
supports import/export following the standard, and a branch that compiles to LLVM instead
of the `old’ Helium-specific LVM that has become harder and harder to maintain.
These still need to be integrated. When I find time for that is hard to say.

Another project will be taking place in the period Feb-Apr and I expect we can tie up a lot of
loose ends then. Current loose ends include newtype, record syntax, integration of previous projects,
Cabal support, Quickcheck, strict data fields, improving the LLVM back-end.

One thing I have wondered about: do we actually have something like an extensive set of tests
to throw at any Haskell 2010 compliant compiler that would help find mistakes on our parr?
My students have come up with a range of examples to test their implementations, but there
is nothing like a set of programs you’ve never seen or heard about.

We shall also be adding support for GADTs as part of a reseach project this course year. Again, a large range
of examples would be welcome indeed.

best,
Jur

_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime
Reply | Threaded
Open this post in threaded view
|

Re: Helium II

Mario Blažević-3
On 2018-11-28 2:17 a.m., Jurriaan Hage wrote:

> Dear all,
>
> We’ve been active since September making the Helium compiler more Haskell 2010 compliant.
> In particular, we have a branch with support for Haskell 2010 type classes, a branch that
> supports import/export following the standard, and a branch that compiles to LLVM instead
> of the `old’ Helium-specific LVM that has become harder and harder to maintain.
> These still need to be integrated. When I find time for that is hard to say.
>
> Another project will be taking place in the period Feb-Apr and I expect we can tie up a lot of
> loose ends then. Current loose ends include newtype, record syntax, integration of previous projects,
> Cabal support, Quickcheck, strict data fields, improving the LLVM back-end.
>
> One thing I have wondered about: do we actually have something like an extensive set of tests
> to throw at any Haskell 2010 compliant compiler that would help find mistakes on our parr?
> My students have come up with a range of examples to test their implementations, but there
> is nothing like a set of programs you’ve never seen or heard about.


If you want to be really thorough:

1. start with all of Hackage,

2. filter out all packages with the extensions: field in the cabal file,

3. filter out all modules with the {-# LANGUAGE ... #-} pragma,

4. recursively filter out all modules that import any filtered-out module,

5. you're left with a large set of pure Haskell 2010 modules.


     If you'd rather start small, I suspect it's best to look at the
existing Haskell implementations. For example, there is a test suite at
https://github.com/ajhc/ajhc/tree/arafura/regress/tests


_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime
Reply | Threaded
Open this post in threaded view
|

Re: Helium II

AntC
In reply to this post by Jurriaan Hage
On 2018-11-28 14:03:30 UTC, Mario Blažević wrote:

>> On 2018-11-28 2:17 a.m., Jurriaan Hage wrote: >
>> do we actually have something like an extensive set of tests
>> to throw at any Haskell 2010 compliant compiler that would help find mistakes on our parr?
> If you want to be really thorough: > > 1. start with all of Hackage, > > 2. filter out all packages with the extensions: field in the cabal file, > > 3. filter out all modules with the {-# LANGUAGE ... #-} pragma, > > 4. recursively filter out all modules that import any filtered-out module, > > 5. you're left with a large set of pure Haskell 2010 modules.
At 3.b. also filter out anything with inline pragmas like {-# OVERLAPS/PING/ABLE, INCOHERENT #-}. Note that GHC allows "the possibility" of instances to overlap even without any flags/pragmas set. It's only if you try to use them that it starts insisting on pragmas. Whereas the H2010 standard is clear that overlaps are not allowed.

What about anything that relies on the FTP changes to Prelude? Has Juriaan's team upgraded their Prelude?

Frankly after you've filtered out all that, I'd be astonished if you have anything left. It seems to be usual practice on Hackage to switch on a swag of LANGUAGE pragmas even if this module isn't using them. (MPTCs, FlexibleInstances/Contexts in particular.)


AntC

_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime
Reply | Threaded
Open this post in threaded view
|

Re: Helium II

Doug McIlroy
In reply to this post by Jurriaan Hage
> Frankly after you've filtered out all that, I'd be astonished if you
> have anything left. It seems to be usual practice on Hackage to switch
> on a swag of LANGUAGE pragmas even if this module isn't using them.
> (MPTCs, FlexibleInstances/Contexts in particular.)

A depressing remark, which comes close to saying there is
no true Haskell. It's one reason I hang mostly with Hugs.
GHC pretty well repudiates Haskell 2010. May Haskell 2020
receive more respect!

Doug
_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime
Reply | Threaded
Open this post in threaded view
|

Re: Helium II

AntC
In reply to this post by Jurriaan Hage
On Thu Nov 29 15:00:19 UTC 2018, Doug McIlroy wrote:

> Frankly after you've filtered out all that, I'd be astonished if you have anything left. It seems to be usual practice on Hackage to switch on a swag of LANGUAGE pragmas even if this module isn't using them.
>> (MPTCs, FlexibleInstances/Contexts in particular.)
> A depressing remark, which comes close to saying
> there is no true Haskell.

? There wasn't a true Haskell in 1998. Already Hugs (in HugsMode) and GHC (with glasgow-extns) had MPTCs, FlexibleInstances/Contexts, FunDeps, UndecidableInstances. Overlapping instances was optional extra.

> It's one reason I hang mostly with Hugs.

Interesting. Does that mean Hugs98? How on earth do you manage without at least some of the above?

> GHC pretty well repudiates Haskell 2010.

So does Hugs (in HugsMode): a large proportion of the extra features in H2010 were suggested by the Hugs teams; and Hugs 2006 was already far advanced beyond it.


> May Haskell 2020 receive more respect!

I think you'll need to adjust your expectations: I doubt H2020 will happen. There was a glimmer of activity last month, but this list has resumed its moribund state. So I think we can put last month down to dead cat bounce. If H2020 does happen, HugsMode will still be well ahead of whatever gets added.


AntC

_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime
Reply | Threaded
Open this post in threaded view
|

Re: Helium II

Carter Schonwald
i'm slowly prepping some stuff for ghc and the committee, though i can't say about the general action. I do think some stuff i've got planned should make its way in, i cant speak for other folks etc etc 

On Fri, Nov 30, 2018 at 5:54 AM Anthony Clayden <[hidden email]> wrote:
On Thu Nov 29 15:00:19 UTC 2018, Doug McIlroy wrote:

> Frankly after you've filtered out all that, I'd be astonished if you have anything left. It seems to be usual practice on Hackage to switch on a swag of LANGUAGE pragmas even if this module isn't using them.
>> (MPTCs, FlexibleInstances/Contexts in particular.)
> A depressing remark, which comes close to saying
> there is no true Haskell.

? There wasn't a true Haskell in 1998. Already Hugs (in HugsMode) and GHC (with glasgow-extns) had MPTCs, FlexibleInstances/Contexts, FunDeps, UndecidableInstances. Overlapping instances was optional extra.

> It's one reason I hang mostly with Hugs.

Interesting. Does that mean Hugs98? How on earth do you manage without at least some of the above?

> GHC pretty well repudiates Haskell 2010.

So does Hugs (in HugsMode): a large proportion of the extra features in H2010 were suggested by the Hugs teams; and Hugs 2006 was already far advanced beyond it.


> May Haskell 2020 receive more respect!

I think you'll need to adjust your expectations: I doubt H2020 will happen. There was a glimmer of activity last month, but this list has resumed its moribund state. So I think we can put last month down to dead cat bounce. If H2020 does happen, HugsMode will still be well ahead of whatever gets added.


AntC
_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime

_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime
Reply | Threaded
Open this post in threaded view
|

Re: Helium II

Philippa Cowderoy

Good to know!

It's important to keep morale up and do what we can. I imagine that'll be small details in my case, but there's meaningful modernisation to be done even if major type system features are still too difficult to standardise just yet.

On 03/12/2018 21:23, Carter Schonwald wrote:
i'm slowly prepping some stuff for ghc and the committee, though i can't say about the general action. I do think some stuff i've got planned should make its way in, i cant speak for other folks etc etc 

On Fri, Nov 30, 2018 at 5:54 AM Anthony Clayden <[hidden email]> wrote:
On Thu Nov 29 15:00:19 UTC 2018, Doug McIlroy wrote:

> Frankly after you've filtered out all that, I'd be astonished if you have anything left. It seems to be usual practice on Hackage to switch on a swag of LANGUAGE pragmas even if this module isn't using them.
>> (MPTCs, FlexibleInstances/Contexts in particular.)
> A depressing remark, which comes close to saying
> there is no true Haskell.
? There wasn't a true Haskell in 1998. Already Hugs (in HugsMode) and GHC (with glasgow-extns) had MPTCs, FlexibleInstances/Contexts, FunDeps, UndecidableInstances. Overlapping instances was optional extra.
> It's one reason I hang mostly with Hugs.
Interesting. Does that mean Hugs98? How on earth do you manage without at least some of the above?
> GHC pretty well repudiates Haskell 2010.
So does Hugs (in HugsMode): a large proportion of the extra features in H2010 were suggested by the Hugs teams; and Hugs 2006 was already far advanced beyond it.
> May Haskell 2020 receive more respect!
I think you'll need to adjust your expectations: I doubt H2020 will happen. There was a glimmer of activity last month, but this list has resumed its moribund state. So I think we can put last month down to dead cat bounce. If H2020 does happen, HugsMode will still be well ahead of whatever gets added.
AntC
_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime

_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime

_______________________________________________
Haskell-prime mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime