Description of Haskell extensions used by FPTOOLS

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Description of Haskell extensions used by FPTOOLS

Brian Smith-3
Is there any design document for the FPTOOLS libraries or some description of language features that are (allowed to be) used in them?

I am going to be taking some significant time off from my normal jobs in the upcoming months. During part of that time, I would like to do some work to improve the Haskell toolchain. This involves creating or improving tools that parse and analyze Haskell code. My goal is to have these tools support enough of Haskell to be able to handle at least the most important libraries used by Haskell programmers. In particular, this includes all or most of the libraries in FPTOOLS. Plus, I want these tools to operate on Darcs as it is an obvious poster-child for Haskell. Thus, I need to support Haskell 98 plus all the extensions being used in Darcs and FPTOOLS as of approx. March, 2007 (as I intened to start working again at that time).

It would be very nice if there was some document that described "Haskell 98 plus all the extensions being used in Darcs and FPTOOLS as of March, 2007." Besides being useful to me, it would be a useful guide for potential contributors to FPTOOLS.

Regards,
Brian

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Description of Haskell extensions used by FPTOOLS

Donald Bruce Stewart
brianlsmith:
>
>    Is there any design document for the FPTOOLS libraries or
>    some description of language features that are (allowed to
>    be) used in them?

There's a list of extensions used at the bottom of this page:
    http://hackage.haskell.org/trac/haskell-prime/wiki/HaskellExtensions

>    I am going to be taking some significant time off from my
>    normal jobs in the upcoming months. During part of that
>    time, I would like to do some work to improve the Haskell
>    toolchain. This involves creating or improving tools that
>    parse and analyze Haskell code. My goal is to have these
>    tools support enough of Haskell to be able to handle at
>    least the most important libraries used by Haskell
>    programmers. In particular, this includes all or most of the
>    libraries in FPTOOLS. Plus, I want these tools to operate on
>    Darcs as it is an obvious poster-child for Haskell. Thus, I
>    need to support Haskell 98 plus all the extensions being
>    used in Darcs and FPTOOLS as of approx. March, 2007 (as I
>    intened to start working again at that time).

Cool!

>    It would be very nice if there was some document that
>    described "Haskell 98 plus all the extensions being used in
>    Darcs and FPTOOLS as of March, 2007." Besides being useful
>    to me, it would be a useful guide for potential contributors
>    to FPTOOLS.

Darcs may also use GADTs then (not in the standard libs). Better check
with the darcs src.

-- Don
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

RE: Description of Haskell extensions used by FPTOOLS

Simon Peyton Jones
In reply to this post by Brian Smith-3

Brian

 

Great!

 

You might like to consider using GHC as a library

                http://haskell.org/haskellwiki/GHC/As_a_library

 

The advantage is that you just “import GHC” and then you can parse all of Haskell (including GHC’s extensions).  Then you can rename it to resolve lexical scopes, typecheck, and so on.  It will certainly deal with all of Darcs… because GHC compiles Darcs.

 

It’s all supposed to be a good basis for tools that consume and analyse Haskell programs, which is exactly what you propose to do.  Example, there’s a summer-of-code project to use it for Haddock.

 

That said, the API is really just what we needed to build GHC itself.  It needs a serious design effort.  One of the things that would motivate such an effort would be “customers” saying “I needed to do X with the API and it was inconvenient/impossible”.  Still, it does work, today.

 

Simon

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brian Smith
Sent: 17 August 2006 17:01
To: [hidden email]
Subject: [Haskell-cafe] Description of Haskell extensions used by FPTOOLS

 

Is there any design document for the FPTOOLS libraries or some description of language features that are (allowed to be) used in them?

I am going to be taking some significant time off from my normal jobs in the upcoming months. During part of that time, I would like to do some work to improve the Haskell toolchain. This involves creating or improving tools that parse and analyze Haskell code. My goal is to have these tools support enough of Haskell to be able to handle at least the most important libraries used by Haskell programmers. In particular, this includes all or most of the libraries in FPTOOLS. Plus, I want these tools to operate on Darcs as it is an obvious poster-child for Haskell. Thus, I need to support Haskell 98 plus all the extensions being used in Darcs and FPTOOLS as of approx. March, 2007 (as I intened to start working again at that time).

It would be very nice if there was some document that described "Haskell 98 plus all the extensions being used in Darcs and FPTOOLS as of March, 2007." Besides being useful to me, it would be a useful guide for potential contributors to FPTOOLS.

Regards,
Brian


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

HTTPS in Haskell

Pasqualino "Titto" Assini

Hello,

 

Is there any implementation of HTTPS/SSL in Haskell?

 

This would seem to be critical to develop commercial web applications.

 

Thanks,

 

     Titto assini

 

 

 

 

 


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: HTTPS in Haskell

Andrew Pimlott-3
On Fri, Aug 18, 2006 at 11:05:21AM +0100, Pasqualino 'Titto' Assini wrote:
> Is there any implementation of HTTPS/SSL in Haskell?

Have you seen hsgnutls?  It uses the GnuTLS C library.

http://www.cs.helsinki.fi/u/ekarttun/hsgnutls/

(Hmm, perhaps it would be easier to find if the word "Haskell" appeared
on that page.)

Andrew
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: HTTPS in Haskell

Tim Newsham
> Have you seen hsgnutls?  It uses the GnuTLS C library.
> http://www.cs.helsinki.fi/u/ekarttun/hsgnutls/

If TLS is desired its probably for security.  I would think a TLS
implementation written in Haskell would offer much better assurances that
the implementation was correct.  Given the complexity of TLS and history
of past mistakes, I would feel much better having a Haskell-based TLS than
one written in C with a thin Haskell wrapper...

(Of course I'll take the thin wrapper over no-TLS :)

> Andrew

Tim Newsham
http://www.thenewsh.com/~newsham/
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: HTTPS in Haskell

Adam Peacock
In reply to this post by Pasqualino "Titto" Assini
On 8/18/06, Pasqualino 'Titto' Assini <[hidden email]> wrote:
>
> Is there any implementation of HTTPS/SSL in Haskell?
>
>
>
> This would seem to be critical to develop commercial web applications.

WASH has a run time function ( runWithOptions ) that has type:

runWithOptions :: CGIOptions -> CGI () -> IO ()

with...

type CGIOptions = [CGIOption]

data CGIOption =
....
AutoHttps -- autodetect Https by checking for port number 443 and env var HTTPS
...

Taken from:

http://www.informatik.uni-freiburg.de/~thiemann/WASH/doc/WASH-CGI-CGI.html

Adam.
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

RE: HTTPS in Haskell

Pasqualino "Titto" Assini
Hi Adam,

I believe that this is simply to detect that the WASH CGI script is being
invoked using HTTPS while running into a Web server (say Apache) that
supports it.

   titto


> -----Original Message-----
> From: [hidden email] [mailto:haskell-cafe-
> [hidden email]] On Behalf Of Adam Peacock
> Sent: 19 August 2006 02:34
> To: [hidden email]
> Subject: Re: [Haskell-cafe] HTTPS in Haskell
>
> On 8/18/06, Pasqualino 'Titto' Assini <[hidden email]> wrote:
> >
> > Is there any implementation of HTTPS/SSL in Haskell?
> >
> >
> >
> > This would seem to be critical to develop commercial web applications.
>
> WASH has a run time function ( runWithOptions ) that has type:
>
> runWithOptions :: CGIOptions -> CGI () -> IO ()
>
> with...
>
> type CGIOptions = [CGIOption]
>
> data CGIOption =
> ....
> AutoHttps -- autodetect Https by checking for port number 443 and env var
> HTTPS
> ...
>
> Taken from:
>
> http://www.informatik.uni-freiburg.de/~thiemann/WASH/doc/WASH-CGI-CGI.html
>
> Adam.
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Description of Haskell extensions used by FPTOOLS

Brian Smith-3
In reply to this post by Simon Peyton Jones
Simon,

I am familiar with the GHC library as I had used it a year or so ago to create a very cheap Haddock knockoff. I used the GHC library to do the type inference (which Haddock didn't do at the time) and to deal with elements that didn't have source code available. I remember that I created it specifically because I couldn't get Haddock to work on the GHC API in a useful way. I am looking forward to the result of the SoC project.

IIRC, the GHC API needs to be modified to provide (better) support for parsing and typechecking code with syntax errors. That is something that I can probably do when I get to that point.

Even if a tool is implemented using the GHC library, it is likely that it would need to limit itself to some subset of GHC's features. For example, an IDE that had a "define instance" feature would need special code to deal with associated types. Similarly, it is better for a tool to refuse to operate on code using implicit parameters rather than (silently) fail to handle them properly, because people tend to hate tools that are really convenienty but occasionally mess up their programs.

Regards,
Brian


On 8/18/06, Simon Peyton-Jones <[hidden email]> wrote:

Brian

 

Great!

 

You might like to consider using GHC as a library

                <a href="http://haskell.org/haskellwiki/GHC/As_a_library" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://haskell.org/haskellwiki/GHC/As_a_library

 

The advantage is that you just "import GHC" and then you can parse all of Haskell (including GHC's extensions).  Then you can rename it to resolve lexical scopes, typecheck, and so on.  It will certainly deal with all of Darcs… because GHC compiles Darcs.

 

It's all supposed to be a good basis for tools that consume and analyse Haskell programs, which is exactly what you propose to do.  Example, there's a summer-of-code project to use it for Haddock.

 

That said, the API is really just what we needed to build GHC itself.  It needs a serious design effort.  One of the things that would motivate such an effort would be "customers" saying "I needed to do X with the API and it was inconvenient/impossible".  Still, it does work, today.

 

Simon

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Brian Smith
Sent: 17 August 2006 17:01
To: [hidden email]
Subject: [Haskell-cafe] Description of Haskell extensions used by FPTOOLS

 

Is there any design document for the FPTOOLS libraries or some description of language features that are (allowed to be) used in them?

I am going to be taking some significant time off from my normal jobs in the upcoming months. During part of that time, I would like to do some work to improve the Haskell toolchain. This involves creating or improving tools that parse and analyze Haskell code. My goal is to have these tools support enough of Haskell to be able to handle at least the most important libraries used by Haskell programmers. In particular, this includes all or most of the libraries in FPTOOLS. Plus, I want these tools to operate on Darcs as it is an obvious poster-child for Haskell. Thus, I need to support Haskell 98 plus all the extensions being used in Darcs and FPTOOLS as of approx. March, 2007 (as I intened to start working again at that time).

It would be very nice if there was some document that described "Haskell 98 plus all the extensions being used in Darcs and FPTOOLS as of March, 2007." Besides being useful to me, it would be a useful guide for potential contributors to FPTOOLS.

Regards,
Brian



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe