Re: [Haskell-cafe] ghc panic when compiling blaze-builder

2010-11-20 Thread kyra

On 11/21/2010 3:20 AM, JosИ Romildo Malaquias wrote:

When compiling blaze-builder-0.2.0.1 with ghc-7.0.1 on my ~amd64 gentoo
system, I am getting the shown below.

Any clues?

Romildo


[...]
Building blaze-builder-0.2.0.1...
[1 of 8] Compiling Blaze.ByteString.Builder.Internal ( 
Blaze/ByteString/Builder/Internal.hs, 
dist/build/Blaze/ByteString/Builder/Internal.o )
ghc: panic! (the 'impossible' happened)
   (GHC version 7.0.1 for x86_64-unknown-linux):
dsLet: unlifted


Look here: http://hackage.haskell.org/trac/ghc/ticket/4498
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Same compiled program behaving differently when called from ghci and shell

2010-11-20 Thread Bruno Damour

Hello,
I have a very strange (for me) problem that I manage to reduce to this :
I have a small program that reads a file with 1 only character (è = e8)
The program is ftest2.hs :

import IO

import Data.Maybe

tfind s = lookup (head s) $ zip ['\xe8', '\xde'] "12"

main= do

h<- readFile "g:\\CODE\\rlib\\test.txt"

putStrLn h

print $ tfind h

I compile it from command line :

ghc --make ftest2.hs

Now the weird results :
1/ cmd line:

ftest2.exe

è

Just '2'

2/ ghci

Prelude>  :!ftest2.exe

è

Just '2'


3/WinGHci

Prelude>  :! ftest2.exe

è

Just '1'


I tested different variants, there is always a difference.
Any idea to help me trace this behaviour ?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Interactive OpenGL-based graphics and ghci?

2010-11-20 Thread Lyndon Maydwell
I've always had issues with GLUT under ghci. If GHC 7 fixes this it
will make me happy :)

On Sun, Nov 21, 2010 at 7:54 AM, Luke Palmer  wrote:
> On Sat, Nov 20, 2010 at 4:46 PM, Conal Elliott  wrote:
>> I'm trying to find some way to do interactive, OpenGL-based graphics in
>> Haskell on Mac OS X.
>> Does anyone here use GLUT or SDL on Mac OS X with ghci, or maybe an
>> alternative library?
>
> I was reading the GHC 7 release notes and saw this:
>
> * There is a new -fno-ghci-sandbox flag, which stops GHCi running
> computations in a separate thread; in particular, this works around an
> issue running GLUT from GHCi on OS X
>
> So that seems to indicate that GLUT would fulfill your needs.
>
> Luke
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Downloading web page in Haskell

2010-11-20 Thread Albert Y. C. Lai
Most likely you also have the zlib package (cabal-install needs it), so 
let's use it. Attached therefore.hs


import qualified Data.ByteString.Lazy as LB
import Codec.Compression.GZip(decompress)
import Network.URI(parseURI)
import Network.HTTP

url = "http://www.adorocinema.com/common/search/search_by_film/?criteria=Bourne";

-- steal from getRequest but change type
-- it's lazy bytestring because the GZip library specifies it
myGetRequest :: String -> Request LB.ByteString
myGetRequest s = case parseURI s of
  Nothing -> error "url syntax error"
  Just uri -> mkRequest GET uri

main = do
  result <- simpleHTTP (insertHeader HdrAcceptEncoding "gzip" (myGetRequest url))
  case result of
Left e -> print e
Right rsp -> do
  let src = case findHeader HdrContentEncoding rsp of
Nothing -> rspBody rsp
Just "gzip" -> decompress (rspBody rsp)
Just _ -> error "TODO: other decompressions"
  LB.writeFile "test.html" src
  LB.putStrLn src
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Downloading web page in Haskell

2010-11-20 Thread Yitzchak Gale
Albert Y. C. Lai wrote:
> ...truncates when the web server chooses the identity encoding
> The server chooses identity when
> your request's Accept-Encoding field specifies identity or simply your
> request has no Accept-Encoding field

Excellent work!

> My methodology of discovering and confirming this is a great lesson in the
> triumph of the scientific methodology (over the prevailing opinionative
> methodology, for example).

Haha, indeed!

> Actually the
> truncation strongly suggests that javascript is not involved: the truncation
> ends with an incomplete end-tag " javascript-heavy web pages.

Well, no, the theory was that the server sends some random
number of bytes from the body to ensure that the browser
starts loading the scripts in the head. So it could stop anywhere.

In the end, I think you didn't really need the W3C validator.
You also could have triangulated on the headers sent by your
own browser.

So, there you have it, folks. The Haskell community debugs
a broken web server, without being asked, and without access
to the server.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] doesDirectoryExist is always returning False

2010-11-20 Thread Judah Jacobson
On Sat, Nov 20, 2010 at 6:55 AM, Marcelo Sousa  wrote:
> Hi,
> I'm having currently a problem with System.Directory in my mac os.
>   System Version: Mac OS X 10.6.5
>   Kernel Version: Darwin 10.5.0
> Prelude System.Directory> let dirTest = do {dir <- getCurrentDirectory;
> doesDirectoryExist dir}
> Prelude System.Directory> dirTest
> False

What's the output of getCurrentDirectory?  I just tried that on OS X
10.6.4 and dirTest returned True for me.

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


[Haskell-cafe] ghc panic when compiling blaze-builder

2010-11-20 Thread José Romildo Malaquias
When compiling blaze-builder-0.2.0.1 with ghc-7.0.1 on my ~amd64 gentoo
system, I am getting the shown below.

Any clues?

Romildo


[...]
Building blaze-builder-0.2.0.1...
[1 of 8] Compiling Blaze.ByteString.Builder.Internal ( 
Blaze/ByteString/Builder/Internal.hs, 
dist/build/Blaze/ByteString/Builder/Internal.o )
ghc: panic! (the 'impossible' happened)
  (GHC version 7.0.1 for x86_64-unknown-linux):
dsLet: unlifted
AbsBinds
[b{tv aUH} [sk]]
[]
[pe{v axd} [lid] <= [b{tv aUH} [sk]] pe{v aUG} [lid]]
  pe{v axd} [lid]
:: forall b{tv aUH} [sk]. base:GHC.Ptr.Ptr{tc 33A} b{tv aUH} [sk]
  [LclId]
  { {273:19-54}
{273:19-54}
!((pe{v aUG} [lid] :: base:GHC.Ptr.Ptr{tc 33A} b{tv aUH} [sk]))
  = {273:30-54}
{273:33-41}
(base:GHC.Ptr.plusPtr{v r4X} [gid]) @ base:GHC.Word.Word8{tc 32U}
@ b{tv aUH} [sk]
  pf{v axc} [lid] firstBufSize{v arR} [lid] }
EvBinds{{}}
base:GHC.Base.>>={v 01P} [gid[ClassOp]]
  @ ghc-prim:GHC.Types.IO{tc 32I}
  $dMonad{v aUI} [lid]
  @ blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc 
rre}
  @ bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5}
  (step0{v arY} [lid]
 pf{v axc} [lid] (pe{v axd} [lid] @ base:GHC.Word.Word8{tc 32U}))
  (\ (next{v axT} [lid]
:: 
blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rre}) ->
 let {
   ds_d15b{v} [lid]
 :: 
blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rre}
   [LclId]
   ds_d15b{v} [lid] = next{v axT} [lid] } in
 case ds_d15b{v} [lid] {ghc-prim:GHC.Types.IO{tc 32I}
  
bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5}}
 of (wild_B1{v} [lid]
   :: 
blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rre}) {
   blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.Done{d rrk} 
(rb_d15l{v} [lid]

  :: ghc-prim:GHC.Prim.Addr#{(w) tc 33}) ->
 let {
   pf'{v axU} [lid]
 :: base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc 32U}
   [LclId]
   pf'{v axU} [lid] =
 base:GHC.Ptr.Ptr{v rcP} [gid[DataCon]]
   @ base:GHC.Word.Word8{tc 32U} rb_d15l{v} [lid] } in
 let {
   fail_d15c{v} [lid]
 :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
  ghc-prim:GHC.Prim.RealWorld{(w) tc 31E}
-> ghc-prim:GHC.Types.IO{tc 32I}
 
bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5}
   [LclId]
   fail_d15c{v} [lid] =
 \ (ds_d15d{v} [lid]
  :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
   ghc-prim:GHC.Prim.RealWorld{(w) tc 31E}) ->
   base:GHC.Base.${v 019} [gid]
 @ 
bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5}
 @ (ghc-prim:GHC.Types.IO{tc 32I}
  
bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5})
 (base:GHC.Base.return{v 01T} [gid[ClassOp]]
@ ghc-prim:GHC.Types.IO{tc 32I}
$dMonad{v aUN} [lid]
@ 
bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5})
 
(bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.$WChunk{v reF} 
[gid[DataConWrapper]]
(mkbs{v axe} [lid] @ base:GHC.Word.Word8{tc 32U} pf'{v 
axU} [lid])
k{v arT} [lid]) } in
 case base:GHC.Classes.=={v 01L} [gid[ClassOp]]
@ (base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc 32U})
$dEq{v aUK} [lid]
pf'{v axU} [lid]
pf{v axc} [lid] {ghc-prim:GHC.Types.IO{tc 32I}
   
bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5}}
 of (wild_B1{v} [lid] :: ghc-prim:GHC.Bool.Bool{(w) tc 3c}) {
   ghc-prim:GHC.Bool.False{(w) d 68} ->
 fail_d15c{v} [lid] ghc-prim:GHC.Prim.realWorld#{(w) v 0o} 
[gid];
   ghc-prim:GHC.Bool.True{(w) d 6u} ->
 base:GHC.Base.return{v 01T} [gid[ClassOp]]
   @ ghc-prim:GHC.Types.IO{tc 32I}
   $dMonad{v aUL} [lid]
   @ 
bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rg5}
   k{v arT} [lid]
 };
   blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BufferFull{d 
rri} (rb_d15n{v} [lid]

:: ghc-prim:GH

Re: [Haskell-cafe] Downloading web page in Haskell

2010-11-20 Thread Albert Y. C. Lai

On 10-11-20 02:54 PM, José Romildo Malaquias wrote:

In order to download a given web page, I wrote the attached program. The
problem is that the page is not being full downloaded. It is being
somehow intettupted.


The specific website and url
http://www.adorocinema.com/common/search/search_by_film/?criteria=Bourne

truncates when the web server chooses the identity encoding (i.e., as 
opposed to compressed ones such as gzip). The server chooses identity 
when your request's Accept-Encoding field specifies identity or simply 
your request has no Accept-Encoding field, such as when you use 
simpleHTTP (getRequest url), curl, wget, elinks.


When the server chooses gzip (its favourite), which is when your 
Accept-Encoding field includes gzip, the received data is complete (but 
then you have to gunzip it yourself). This happens with mainstream 
browsers and W3C's validator at validator.w3.org (which destroys the 
"you need javascript" hypothesis). I haven't tested other compressed 
encodings.


Methodology

My methodology of discovering and confirming this is a great lesson in 
the triumph of the scientific methodology (over the prevailing 
opinionative methodology, for example).


The first step is to confirm or deny a Network.HTTP problem. For a 
maximally controlled experiment, I enter HTTP by hand using nc:


$ nc www.adorocinema.com 80
GET /common/search/search_by_film/?criteria=Bourne HTTP/1.1
Host: www.adorocinema.com


It still truncates, so at least Network.HTTP is not alone. I also try 
elinks. Other people try curl and wget for the same reason and the same 
result.


The second step is to confirm or deny javascript magic. Actually the 
truncation strongly suggests that javascript is not involved: the 
truncation ends with an incomplete end-tag "for very buggy javascript-heavy web pages. To certainly deny javascript 
magic, I first try Firefox with javascript off (also java off, flash 
off, even css off), and then I also ask validator.w3.org to validate the 
page. Both receive complete data. Of course the validator is going to 
say "many errors", but the point is that if the validator reports errors 
at locations way beyond our truncation point, then the validator sees 
data we don't see, and the validator doesn't even care about javascript.


The validator may be very sophisticated in parsing html, but in sending 
an HTTP request it ought to be very simple-minded. The third step is to 
find out what extra thing the validator does to deserve complete data. 
So I try diagonalization: I give this CGI script to the validator:


#! /bin/sh

echo 'Content-Type: text/html'
echo ''
e=`env`
cat  save.gz
GET /common/search/search_by_film/?criteria=Bourne HTTP/1.1
Host: www.adorocinema.com
Accept-Encoding: gzip



Now save.gz contains both header and body, and it only makes sense to 
uncompress the body. So edit save.gz to delete the header part.


Applying gunzip to the body will give some "unexpected end of file" 
error. Don't despair. Do this instead:


$ zcat save.gz > save.html

It is still an error but save.html has meaningful and complete content. 
You can examine it. You can load it in a web browser and see. At least, 
it is much longer, and it ends with "" rather than "

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84562.html">Re: [Haskell-cafe] Interactive OpenGL-based graphics and ghci?</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Interactive+OpenGL%5C-based+graphics+and+ghci%5C%3F%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Luke+Palmer%22&o=newest&f=1">Luke Palmer</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On Sat, Nov 20, 2010 at 4:46 PM, Conal Elliott  wrote:
> I'm trying to find some way to do interactive, OpenGL-based graphics in
> Haskell on Mac OS X.
> Does anyone here use GLUT or SDL on Mac OS X with ghci, or maybe an
> alternative library?

I was reading the GHC 7 release notes and saw this:

* There is a new -fno-ghci-sandbox flag, which stops GHCi running
computations in a separate thread; in particular, this works around an
issue running GLUT from GHCi on OS X

So that seems to indicate that GLUT would fulfill your needs.

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84561.html">Re: [Haskell-cafe] Downloading web page in Haskell</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Downloading+web+page+in+Haskell%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Sterling+Clover%22&o=newest&f=1">Sterling Clover</a></span>
</div>
<blockquote><span class="msgFragment"><pre>

On Nov 20, 2010, at 5:10 PM, Yitzchak Gale wrote:

> José Romildo Malaquias wrote:
>> Web browsers like Firefox and Opera does not seem to have the same
>> problem with this web page.
>> I would like to be able to download this page from Haskell.
> 
> Hi Romildo,
> 
> This web page serves the head, including a lot of JavaScript,
> and the first few hundred bytes of the body, then pauses.
> That causes web browsers to begin loading and executing
> the JavaScript. Apparently, the site only continues serving
> the rest of the page if the JavaScript is actually loaded and
> executed. If not, it aborts.

Actually, I think it's just a misconfigured proxy. The curl executable fails, 
at the same point, but a curl --compressed call succeeds. The curl bindings 
don't allow you to automatically get and decompress gzip data, so you could 
either set the accept: gzip header yourself, then pipe the output through the 
appropriate decompression routine, or, more simply, just get the page via using 
System.Process to drive the curl binary directly.

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84560.html">[Haskell-cafe] Interactive OpenGL-based graphics and ghci?</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Interactive+OpenGL%5C-based+graphics+and+ghci%5C%3F%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Conal+Elliott%22&o=newest&f=1">Conal Elliott</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
I'm trying to find some way to do interactive, OpenGL-based graphics in
Haskell on Mac OS X.
Does anyone here use GLUT or SDL on Mac OS X with ghci, or maybe an
alternative library?
Using ghci is very important to me, as my programs are pretty high-level and
are often half-liners.
I'm using gtk2hs for now, but I want something that works more natively,
i.e., without the awkwardness of going through the X server.

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84559.html">Re: [Haskell-cafe] category-extras clash with transformers</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+category%5C-extras+clash+with+transformers%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Ivan+Lazar+Miljenovic%22&o=newest&f=1">Ivan Lazar Miljenovic</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On 21 November 2010 09:59, Tony Morris  wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> On 21/11/10 08:41, Edward Z. Yang wrote:
>> No, you're not totally screwed; you just need to bug
>> xmonad-contrib and category-extras to fix their code.
>>
>> Edward
> I am wondering if upgrading from 6.12.1 to 6.12.3 will allow me to
> compile xmonad-contrib* and therefore, be ride of the old version of
> mtl and therefore, can install category extras.

No; since xmonad-contrib doesn't have bounds on the version of mtl
being used, cabal-install will take the latest version.  You need to
use --constraint="mtl < 2".

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84558.html">Re: [Haskell-cafe] category-extras clash with transformers</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+category%5C-extras+clash+with+transformers%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Tony+Morris%22&o=newest&f=1">Tony Morris</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 21/11/10 08:41, Edward Z. Yang wrote:
> No, you're not totally screwed; you just need to bug
> xmonad-contrib and category-extras to fix their code.
>
> Edward
I am wondering if upgrading from 6.12.1 to 6.12.3 will allow me to
compile xmonad-contrib* and therefore, be ride of the old version of
mtl and therefore, can install category extras.

*

$ cabal install xmonad-contrib
Resolving dependencies...
Configuring xmonad-contrib-0.9.1...
Preprocessing library xmonad-contrib-0.9.1...
Building xmonad-contrib-0.9.1...
[  1 of 180] Compiling XMonad.Util.Replace ( XMonad/Util/Replace.hs,
dist/build/XMonad/Util/Replace.o )

XMonad/Util/Replace.hs:1:0:
Warning: Module `Prelude' is deprecated:
   You are using the old package `base' version 3.x.
   Future GHC versions will not support base version 3.x. You
   should update your code to use the new base version 4.x.
[  2 of 180] Compiling XMonad.Util.CustomKeys (
XMonad/Util/CustomKeys.hs, dist/build/XMonad/Util/CustomKeys.o )

XMonad/Util/CustomKeys.hs:80:23:
Not in scope: data constructor `Reader'
cabal: Error: some packages failed to install:
xmonad-contrib-0.9.1 failed during the building phase. The exception was:
ExitFailure 1



- -- 
Tony Morris
http://tmorris.net/

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkzoUrYACgkQmnpgrYe6r60E4QCfXjGuWsu9xLcEVn142+lJkzRQ
+0QAoJpbYpioJaIeuygxZXKLHKb7fRBk
=dBSD
-END PGP SIGNATURE-

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84557.html">Re: [Haskell-cafe] category-extras clash with transformers</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+category%5C-extras+clash+with+transformers%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Edward+Z.+Yang%22&o=newest&f=1">Edward Z. Yang</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
No, you're not totally screwed; you just need to bug xmonad-contrib
and category-extras to fix their code.

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84556.html">Re: [Haskell-cafe] category-extras clash with transformers</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+category%5C-extras+clash+with+transformers%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Tony+Morris%22&o=newest&f=1">Tony Morris</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 21/11/10 04:43, Ross Paterson wrote:
> On Sat, Nov 20, 2010 at 10:58:44PM +1000, Tony Morris wrote:
>> I have installed mtl-1.1.1.0 so that xmonad-contrib-0.9.1 would
>> compile with GHC 6.12.1.
>> http://permalink.gmane.org/gmane.comp.lang.haskell.xmonad/10603
>>
>> Then I tried to installed category-extras-0.53.5, which clashed
>> with transformers-0.2.2.0 for the Applicative/Monad instances for
>> Either.
>>
>> Is there any way out of this problem? Thanks for any pointers.
>
> The instance in question is in the base package from GHC 7, which
> should avoid this problem of clashing orphans in the future.
> Unfortunately that doesn't help you -- I think both xmonad-contrib
> and category-extras need to be updated.
> ___ Haskell-Cafe
> mailing list Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
Thanks Ross,
I just wish to confirm -- I'm totally screwed, right?

- -- 
Tony Morris
http://tmorris.net/

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkzoSnsACgkQmnpgrYe6r62K3QCgnxkRqnQbv0FlKBy1sfrxcoKC
1zcAoM295VGFZBo/OQR1Qq4jW1zI3C+D
=FRrh
-END PGP SIGNATURE-

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84555.html">Re: [Haskell-cafe] Downloading web page in Haskell</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Downloading+web+page+in+Haskell%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Yitzchak+Gale%22&o=newest&f=1">Yitzchak Gale</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
José Romildo Malaquias wrote:
> Web browsers like Firefox and Opera does not seem to have the same
> problem with this web page.
> I would like to be able to download this page from Haskell.

Hi Romildo,

This web page serves the head, including a lot of JavaScript,
and the first few hundred bytes of the body, then pauses.
That causes web browsers to begin loading and executing
the JavaScript. Apparently, the site only continues serving
the rest of the page if the JavaScript is actually loaded and
executed. If not, it aborts.

Either intentionally or unintentionally, that effectively prevents
naive scripts from accessing the page. Cute technique.

So if you don't want to honor the site author's intention not
to allow scripts to load the page, try looking through the
JavaScript and find out what you need to do to get the page to
continue loading. However, if the site author is very determined
to stop you, the JavaScript will be obfuscated or encrypted,
which would make this an annoying task.

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84554.html">Re: [Haskell-cafe] Downloading web page in Haskell</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Downloading+web+page+in+Haskell%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Jos%C3%A9+Romildo+Malaquias%22&o=newest&f=1">José Romildo Malaquias</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On Sat, Nov 20, 2010 at 10:26:49PM +0100, Daniel Fischer wrote:
> On Saturday 20 November 2010 21:47:52, Don Stewart wrote:
> > > 2010/11/20 José Romildo Malaquias :
> > > > In order to download a given web page, I wrote the attached program.
> > > > The problem is that the page is not being full downloaded. It is
> > > > being somehow intettupted.
> > > >
> > > > Any clues on how to solve this problem?
> >
> > FWIW, with this url, I get the same problem using the Curl package
> 
> Just for the record, wget also gets a truncated (at the same point) file, 
> so it's not a Haskell problem.

Web browsers like Firefox and Opera does not seem to have the same
problem with this web page.

I would like to be able to download this page from Haskell.

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84553.html">Re: [Haskell-cafe] Re: Codec.Crypto.RSA question</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Re%5C%3A+Codec.Crypto.RSA+question%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Mathias+Weber%22&o=newest&f=1">Mathias Weber</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
The problem in this example is the use of Data.Binary. When using
Data.ByteString.Lazy.Char8 instead, the problem does not exist.

import qualified Codec.Crypto.RSA as Crypto
import System.Random (mkStdGen)
import Data.ByteString.Lazy.UTF8 (toString)
import qualified Data.ByteString.Lazy.Char8 as C8
import qualified Data.ByteString.Lazy

n = 1024
(pubKey,privKey,_) = Crypto.generateKeyPair (mkStdGen n) n

encrypt :: String -> Data.ByteString.Lazy.ByteString
encrypt str = fst $ Crypto.encrypt (mkStdGen n) pubKey (C8.pack str)

decrypt :: Data.ByteString.Lazy.ByteString -> String
decrypt = toString . Crypto.decrypt privKey

decrypt $ encrypt "haskell" = "haskell"



Regards,
Mathias

Am 20.11.2010 13:15, schrieb Charles-Pierre Astolfi:

> > Here's a working example:
> >
> > import qualified Codec.Crypto.RSA as Crypto
> > import System.Random (mkStdGen)
> > import Data.Binary (encode)
> > import Data.ByteString.Lazy.UTF8 (toString)
> >
> > n = 1024
> > (pubKey,privKey,_) = Crypto.generateKeyPair (mkStdGen n) n
> >
> > encrypt :: (Data.Binary.Binary a) => a ->
> > Data.ByteString.Lazy.Internal.ByteString
> > encrypt str = fst $ Crypto.encrypt (mkStdGen n) pubKey (encode str)
> >
> > decrypt :: Data.ByteString.Lazy.Internal.ByteString -> String
> > decrypt = toString . Crypto.decrypt privKey
> >
> > Thus,
> > decrypt $ encrypt "haskell" = "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ahaskell"
> >
> >
> > I'm using Codec.Crypto.RSA and you're quoting Codec.Encryption.RSA,
> > which is not the same thing; unfortunately I need to use RSAES-OAEP
> > (SHA1) so I guess I have to stick with Codec.Crypto.RSA.
> > Any ideas?
> > --
> > Cp
> >
> >
> >
> > On Sat, Nov 20, 2010 at 12:50, Dominic Steinitz  
> > wrote:
>> >> Charles-Pierre Astolfi  crans.org> writes:
>> >>
>>> >>> Hi -cafe,
>>> >>>
>>> >>> I have a question about Codec.Crypto.RSA: how to enforce that
>>> >>> (informally) decrypt . encrypt = id
>>> >>> Consider this code:
>>> >>>
>> >> That's certainly what I would expect and one of the unit tests  that 
>> >> comes with
>> >> http://hackage.haskell.org/packages/archive/Crypto/4.2.2/doc/html/Codec-Encryption-RSA.html
>> >> checks for this. I wasn't able to get you code to compile so I couldn't
>> >> investigate further. Maybe you could post a fully compiling example?
>> >>
>> >> ___
>> >> Haskell-Cafe mailing list
>> >> Haskell-Cafe@haskell.org
>> >> http://www.haskell.org/mailman/listinfo/haskell-cafe
>> >>
> > ___
> > Haskell-Cafe mailing list
> > Haskell-Cafe@haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84552.html">Re: [Haskell-cafe] Downloading web page in Haskell</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Downloading+web+page+in+Haskell%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Daniel+Fischer%22&o=newest&f=1">Daniel Fischer</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On Saturday 20 November 2010 21:47:52, Don Stewart wrote:
> > 2010/11/20 José Romildo Malaquias :
> > > In order to download a given web page, I wrote the attached program.
> > > The problem is that the page is not being full downloaded. It is
> > > being somehow intettupted.
> > >
> > > Any clues on how to solve this problem?
>
> FWIW, with this url, I get the same problem using the Curl package

Just for the record, wget also gets a truncated (at the same point) file, 
so it's not a Haskell problem.

>
> Not a problem on e.g. http://haskell.org
>
> -- Don

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84551.html">Re: [Haskell-cafe] Downloading web page in Haskell</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Downloading+web+page+in+Haskell%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Don+Stewart%22&o=newest&f=1">Don Stewart</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
michael:
> 2010/11/20 José Romildo Malaquias :
> > In order to download a given web page, I wrote the attached program. The
> > problem is that the page is not being full downloaded. It is being
> > somehow intettupted.
> >
> > Any clues on how to solve this problem?
> 
> My guess is that there's a character encoding issue. Another approach
> would be using the http-enumerator package[1]. The equivalent program
> is:
> 
> module Main where
> 
> import Network.HTTP.Enumerator (simpleHttp)
> import qualified Data.ByteString.Lazy as L
> 
> main =
>   do src <- simpleHttp
> "http://www.adorocinema.com/common/search/search_by_film/?criteria=Bourne";
>  L.writeFile "test.html" src
>  L.putStrLn src
> 


FWIW, with this url, I get the same problem using the Curl package (via the 
download-curl):

import Network.Curl.Download
import qualified Data.ByteString as B

main = do
edoc <- openURI 
"http://www.adorocinema.com/common/search/search_by_film/?criteria=Bourne";
case edoc of
Left err  -> print err
Right doc -> B.writeFile "test.html" doc
 

Not a problem on e.g. http://haskell.org

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84550.html">Re: [Haskell-cafe] Downloading web page in Haskell</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Downloading+web+page+in+Haskell%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Michael+Snoyman%22&o=newest&f=1">Michael Snoyman</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
2010/11/20 José Romildo Malaquias :
> In order to download a given web page, I wrote the attached program. The
> problem is that the page is not being full downloaded. It is being
> somehow intettupted.
>
> Any clues on how to solve this problem?

My guess is that there's a character encoding issue. Another approach
would be using the http-enumerator package[1]. The equivalent program
is:

module Main where

import Network.HTTP.Enumerator (simpleHttp)
import qualified Data.ByteString.Lazy as L

main =
  do src <- simpleHttp
"http://www.adorocinema.com/common/search/search_by_film/?criteria=Bourne";
 L.writeFile "test.html" src
 L.putStrLn src

Michael

[1] http://hackage.haskell.org/package/http-enumerator
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84549.html">[Haskell-cafe] Downloading web page in Haskell</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Downloading+web+page+in+Haskell%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Jos%C3%A9+Romildo+Malaquias%22&o=newest&f=1">José Romildo Malaquias</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
In order to download a given web page, I wrote the attached program. The
problem is that the page is not being full downloaded. It is being
somehow intettupted.

Any clues on how to solve this problem?

Romildo
module Main where

import Network.HTTP (getResponseBody, getRequest, simpleHTTP)

openURL x = simpleHTTP (getRequest x) >>= getResponseBody

main =
  do src <- openURL "http://www.adorocinema.com/common/search/search_by_film/?criteria=Bourne";
 writeFile "test.html" src
 putStrLn src
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84548.html">Re: [Haskell-cafe] category-extras clash with transformers</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+category%5C-extras+clash+with+transformers%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Ross+Paterson%22&o=newest&f=1">Ross Paterson</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On Sat, Nov 20, 2010 at 10:58:44PM +1000, Tony Morris wrote:
> I have installed mtl-1.1.1.0 so that xmonad-contrib-0.9.1 would compile
> with GHC 6.12.1.
> http://permalink.gmane.org/gmane.comp.lang.haskell.xmonad/10603
> 
> Then I tried to installed category-extras-0.53.5, which clashed with
> transformers-0.2.2.0 for the Applicative/Monad instances for Either.
> 
> Is there any way out of this problem? Thanks for any pointers.

The instance in question is in the base package from GHC 7, which should
avoid this problem of clashing orphans in the future.  Unfortunately
that doesn't help you -- I think both xmonad-contrib and category-extras
need to be updated.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84547.html">Re: [Haskell-cafe] Re: Codec.Crypto.RSA question</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Re%5C%3A+Codec.Crypto.RSA+question%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Dominic+Steintiz%22&o=newest&f=1">Dominic Steintiz</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
Charles-Pierre Astolfi wrote:
> Here's a working example:
>
> import qualified Codec.Crypto.RSA as Crypto
> import System.Random (mkStdGen)
> import Data.Binary (encode)
> import Data.ByteString.Lazy.UTF8 (toString)
>
> n = 1024
> (pubKey,privKey,_) = Crypto.generateKeyPair (mkStdGen n) n
>
> encrypt :: (Data.Binary.Binary a) => a ->
> Data.ByteString.Lazy.Internal.ByteString
> encrypt str = fst $ Crypto.encrypt (mkStdGen n) pubKey (encode str)
>
> decrypt :: Data.ByteString.Lazy.Internal.ByteString -> String
> decrypt = toString . Crypto.decrypt privKey
>
> Thus,
> decrypt $ encrypt "haskell" = "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ahaskell"
>
>
> I'm using Codec.Crypto.RSA and you're quoting Codec.Encryption.RSA,
> which is not the same thing; unfortunately I need to use RSAES-OAEP
> (SHA1) so I guess I have to stick with Codec.Crypto.RSA.
> Any ideas?
> --
>   
I was quoting Codec.Encryption.RSA only to suggest that I would expect
that decrypt . encrypt == id.

Here's an example using RSAES-OAEP that demonstrates the desired property.

I'm not sure what your application is but if you want to interoperate
e.g. with openssl, it's pretty essential to be able to be able to handle
certificates. Unfortunately, it looks like the asn1 package is now
bit-rotted. At one point there was a test against openssl together with
instructions on how to interoperate. I still have the instructions if
you are interested.
> module Main(main) where
>
> import Codec.Utils
> import Data.Digest.SHA1(hash,Word160(Word160))
> import Codec.Encryption.RSA.MGF
> import Codec.Encryption.RSA.EMEOAEP
> import Codec.Encryption.RSA
> import Test.HUnit
>
> import qualified Codec.Crypto.RSA as Crypto
> import System.Random (mkStdGen)
> import qualified Data.Binary as Binary
> import Data.ByteString.Lazy.UTF8 (toString)
>
> import Data.Char
> import qualified Codec.Encryption.RSA.EMEOAEP as E
> import Codec.Encryption.RSA.MGF
>
>
> n1 = 1024
> (pubKey,privKey,_) = Crypto.generateKeyPair (mkStdGen n1) n1
>
> encrypt1 str = fst $ Crypto.encrypt (mkStdGen n1) pubKey
> (Binary.encode str)
>
> decrypt1 = toString . Crypto.decrypt privKey
>
> randomSeed :: [Octet]
> randomSeed = hash' [3]
>
> hash' xs = let (Word160 a b c d e) = hash xs in concatMap (toOctets
> 256) [a,b,c,d,e]
>
> ciphertext :: [Octet] -> [Octet] -> String -> [Octet]
> ciphertext n d x =
>encrypt (n,d) $
>E.encode mgf hash' [] randomSeed n $
>map (fromIntegral . ord) x
>
> plaintext :: [Octet] -> [Octet] -> [Octet] -> String
> plaintext n e x =
>map (chr . fromIntegral) $
>E.decode mgf hash' [] $
>decrypt (n,e) $ x
>
> ciphertext1 privKey x =
>ciphertext (toOctets 256 $ Crypto.private_n privKey) (toOctets 256
> $ Crypto.private_d privKey) x
>
> plaintext1 pubKey x =
>plaintext (toOctets 256 $ Crypto.public_n pubKey) (toOctets 256 $
> Crypto.public_e pubKey) x
>
> main = putStrLn $ plaintext1 pubKey $ ciphertext1 privKey "Hello"

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84546.html">[Haskell-cafe] doesDirectoryExist is always returning False</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+doesDirectoryExist+is+always+returning+False%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Marcelo+Sousa%22&o=newest&f=1">Marcelo Sousa</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
Hi,

I'm having currently a problem with System.Directory in my mac os.
  System Version:   Mac OS X 10.6.5 
  Kernel Version:   Darwin 10.5.0

Prelude System.Directory> let dirTest = do {dir <- getCurrentDirectory; 
doesDirectoryExist dir}
Prelude System.Directory> dirTest 
False

I noticed also that I can't change the searchable field in the permissions 
record.

Prelude System.Directory> getPermissions "."
Permissions {readable = True, writable = True, executable = True, searchable = 
False}

I tried different versions of directory and filepath packages but with no 
success at the moment. 

Any suggestions?!

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84545.html">[Haskell-cafe] Re: Re: Reply-To: Header in Mailinglists (was: About "Fun with type functions" example)</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Re%5C%3A+Re%5C%3A+Reply%5C-To%5C%3A+Header+in+Mailinglists+%5C%28was%5C%3A+About+%5C%22Fun+with+type+functions%5C%22+example%5C%29%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Maciej+Piechotka%22&o=newest&f=1">Maciej Piechotka</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On Fri, 2010-11-19 at 15:25 +0100, Arnaud Bailly wrote:
> I personnally use most of the time gmail, so I don't have access to a
> Reply-To-List feature (or do I?).
> I usually do Reply-to-all which I think is as I guess most mailers
> remove duplicate mails. Am I right?
> 
> Arnaud

As message have the same Message-ID the servers have to (or at least
should - I'm too lazy right now to check the RFC) considered it 'the
same' message (i.e. say - oh. I've already received this message).

I tend to use reply-to-all or reply-to-list if the latter is present.

Regards

PS. Please note that sometimes people do not subscribe to receive
messages. For example I asked a few times on various mailing lists for
help when I was not interested in general discussion on topic asking to
add me to CC.

If the mailing list replaced Reply-To header it would required
additional effort for responders instead of just pressing reply-to-all.




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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84544.html">[Haskell-cafe] category-extras clash with transformers</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+category%5C-extras+clash+with+transformers%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Tony+Morris%22&o=newest&f=1">Tony Morris</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

I have installed mtl-1.1.1.0 so that xmonad-contrib-0.9.1 would compile
with GHC 6.12.1.
http://permalink.gmane.org/gmane.comp.lang.haskell.xmonad/10603

Then I tried to installed category-extras-0.53.5, which clashed with
transformers-0.2.2.0 for the Applicative/Monad instances for Either.

Is there any way out of this problem? Thanks for any pointers.

$ ghc-pkg list | grep mtl
mtl-1.1.1.0
mtl-2.0.1.0
$ ghc-pkg list | grep transformers
transformers-0.2.2.0
$ cabal install category-extras
...
[39 of 99] Compiling Control.Monad.Either ( src/Control/Monad/Either.hs,
dist/build/Control/Monad/Either.o )

src/Control/Monad/Either.hs:44:9:
Duplicate instance declarations:
  instance Monad (Either e)
-- Defined at src/Control/Monad/Either.hs:44:9-24
  instance Monad (Either e)
-- Defined in transformers-0.2.2.0:Control.Monad.Trans.Error

src/Control/Monad/Either.hs:49:9:
Duplicate instance declarations:
  instance Applicative (Either e)
-- Defined at src/Control/Monad/Either.hs:49:9-30
  instance Applicative (Either e)
-- Defined in transformers-0.2.2.0:Control.Monad.Trans.Error

src/Control/Monad/Either.hs:53:9:
Duplicate instance declarations:
  instance MonadFix (Either e)
-- Defined at src/Control/Monad/Either.hs:53:9-27
  instance MonadFix (Either e)
-- Defined in transformers-0.2.2.0:Control.Monad.Trans.Error
cabal: Error: some packages failed to install:
category-extras-0.53.5 failed during the building phase. The exception
was:
ExitFailure 1

- -- 
Tony Morris
http://tmorris.net/

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkznxgQACgkQmnpgrYe6r60dkACfZQkYKbMOQuGfaVpFb2MfhJWD
asAAn1/hoX+m/YpUOch3r4NsR99y2htz
=IsZc
-END PGP SIGNATURE-

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84543.html">Re: [Haskell-cafe] Musings on type systems</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Musings+on+type+systems%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Stephen+Tetley%22&o=newest&f=1">Stephen Tetley</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On 20 November 2010 12:05, Tillmann Rendel
 wrote:

> I would expect the "exponential type" to be (a -> b):
>

Terminologically, "Bananas in Space" (!) agrees with you.

http://www.cs.nott.ac.uk/~gmh/bananas.pdf

Regards

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84542.html">Re: [Haskell-cafe] Re: Codec.Crypto.RSA question</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Re%5C%3A+Codec.Crypto.RSA+question%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Charles%5C-Pierre+Astolfi%22&o=newest&f=1">Charles-Pierre Astolfi</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
Here's a working example:

import qualified Codec.Crypto.RSA as Crypto
import System.Random (mkStdGen)
import Data.Binary (encode)
import Data.ByteString.Lazy.UTF8 (toString)

n = 1024
(pubKey,privKey,_) = Crypto.generateKeyPair (mkStdGen n) n

encrypt :: (Data.Binary.Binary a) => a ->
Data.ByteString.Lazy.Internal.ByteString
encrypt str = fst $ Crypto.encrypt (mkStdGen n) pubKey (encode str)

decrypt :: Data.ByteString.Lazy.Internal.ByteString -> String
decrypt = toString . Crypto.decrypt privKey

Thus,
decrypt $ encrypt "haskell" = "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ahaskell"


I'm using Codec.Crypto.RSA and you're quoting Codec.Encryption.RSA,
which is not the same thing; unfortunately I need to use RSAES-OAEP
(SHA1) so I guess I have to stick with Codec.Crypto.RSA.
Any ideas?
--
Cp



On Sat, Nov 20, 2010 at 12:50, Dominic Steinitz  wrote:
> Charles-Pierre Astolfi  crans.org> writes:
>
>>
>> Hi -cafe,
>>
>> I have a question about Codec.Crypto.RSA: how to enforce that
>> (informally) decrypt . encrypt = id
>> Consider this code:
>>
> That's certainly what I would expect and one of the unit tests  that comes 
> with
> http://hackage.haskell.org/packages/archive/Crypto/4.2.2/doc/html/Codec-Encryption-RSA.html
> checks for this. I wasn't able to get you code to compile so I couldn't
> investigate further. Maybe you could post a fully compiling example?
>
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84541.html">Re: [Haskell-cafe] Musings on type systems</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Musings+on+type+systems%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Tillmann+Rendel%22&o=newest&f=1">Tillmann Rendel</a></span>
</div>
<blockquote><span class="msgFragment"><pre>

Ketil Malde wrote:

  data Sum a b = A a | B b -- values = values in a + values in b
  data Prod a b = P a b-- values = values in a * values in b

I guess this makes [X] an exponential type, although I don't remember
seeing that term :-)


I would expect the "exponential type" to be (a -> b):

> type Exp b a = a -> b -- values = values in b ^ values in a

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84540.html">[Haskell-cafe] Re: Codec.Crypto.RSA question</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Re%5C%3A+Codec.Crypto.RSA+question%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Dominic+Steinitz%22&o=newest&f=1">Dominic Steinitz</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
Charles-Pierre Astolfi  crans.org> writes:

> 
> Hi -cafe,
> 
> I have a question about Codec.Crypto.RSA: how to enforce that
> (informally) decrypt . encrypt = id
> Consider this code:
> 
That's certainly what I would expect and one of the unit tests  that comes with
http://hackage.haskell.org/packages/archive/Crypto/4.2.2/doc/html/Codec-Encryption-RSA.html
checks for this. I wasn't able to get you code to compile so I couldn't
investigate further. Maybe you could post a fully compiling example?

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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84539.html">Re: [Haskell-cafe] Musings on type systems</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Musings+on+type+systems%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Ketil+Malde%22&o=newest&f=1">Ketil Malde</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
Andrew Coppin  writes:

> Now here's an interesting thought. Haskell has "algebraic data
> types". "Algebraic" because they are sum types of product types (or,
> equivilently, product types of sum types). Now I don't actually know
> what those terms mean,

The quick rule to remember this that the size of the resulting types
correspond to the arithmetic names.  I.e.

 data Sum a b = A a | B b -- values = values in a + values in b
 data Prod a b = P a b-- values = values in a * values in b

I guess this makes [X] an exponential type, although I don't remember
seeing that term :-)

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84538.html">Re: [Haskell-cafe] Musings on type systems</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Musings+on+type+systems%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Tillmann+Rendel%22&o=newest&f=1">Tillmann Rendel</a></span>
</div>
<blockquote><span class="msgFragment"><pre>

Hi Andrew,

Andrew Coppin wrote:

Now, what about type variables? What do they do? Well now, that seems to
be slightly interesting, since a type variable holds an entire type
(whereas normal program variables just hold a single value), and each
occurrance of the same variable is statically guaranteed to hold the
same thing at all times. It's sort of like how every instance of a
normal program variable holds the same value, except that you don't
explicitly say what that value is; the compiler infers it.


What do you mean by "hold the same thing at all times"?

Consider the following program:

  id :: forall a . a -> a
  id x = x

  call1 :: Bool
  call1 = id True

  call2 :: Int
  call2 = id 42

This program contains a type variable a, and a value variable x. Now, 
these variables do *not* mean the same thing at all times. In the first 
call of id, a is Bool and x is True; but in the second call of id, a is 
Int and x is 42. If these variables would mean the same thing at all 
times, I would expect them to be called constants, wouldn't you?


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

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84537.html">Re: [Haskell-cafe] RegEx versus (Parsec, TagSoup, others...)</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+RegEx+versus+%5C%28Parsec%2C+TagSoup%2C+others...%5C%29%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Stephen+Tetley%22&o=newest&f=1">Stephen Tetley</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
On 19 November 2010 22:17, Brandon S Allbery KF8NH  wrote:

> If a Perl "expert" tells you that regexps are the way to parse HTML/XML, you
> can safely conclude they've never actually tried to do it.

For the original message it sounded like the Perl expert recommended
regexps to scrape facts from Html. That's a quite different scenario
from parsing and not unreasonable for regexps.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

</pre></span>
</blockquote><br>

<h3><span class=subject><a href="/haskell-cafe@haskell.org/msg84536.html">Re: [Haskell-cafe] Quasi quotation question</a></span></h3>
<div class="darkgray font13">
<span class="sender pipe">
<span class=date><a href="/search?l=haskell-cafe%40haskell.org&q=date:20101120&o=newest&f=1">2010-11-20</a></span></span>
<span class="sender pipe">
<span class=thead><a href="/search?l=haskell-cafe%40haskell.org&q=subject:%22%5C%5BHaskell%5C-cafe%5C%5D+Quasi+quotation+question%22&o=newest&f=1">Thread</a></span></span>
<span class=name><a href="/search?l=haskell-cafe%40haskell.org&q=from:%22Oscar+Finnsson%22&o=newest&f=1">Oscar Finnsson</a></span>
</div>
<blockquote><span class="msgFragment"><pre>
Sure. Just use http://hackage.haskell.org/package/haskell-src-meta-0.0.6.

You are probably interested in parsePat or parseExp. I've used parseExp in a
package.

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

</pre></span>
</blockquote><br>
    <h2></h2>
  </div>
  <div class="aside" role="complementary">
    <div class="logo">
      <a href="/"><img src="/logo.png" width=247 height=88 alt="The Mail Archive"></a>
    </div>
    <h2>35 matches</h2>
    <br>
    
<ul><li><a href="/search?l=haskell-cafe%40haskell.org&q=date%3A20101120&a=1&o=newest&f=1">Advanced search</a></li></ul>
<form class="overflow" action="/search" method="get">
<input type="hidden" name="l" value="haskell-cafe@haskell.org">
<label class="hidden" for="q">Search the list</label>
<input class="submittext" type="text" id="q" name="q" placeholder="Search haskell-cafe" value="date:20101120">
<input class="submitbutton" id="submit" type="image" src="/submit.png" alt="Submit">
</form>

    
    <div class="nav margintop" id="nav" role="navigation">
      <h2 class="hidden">
                               Site Navigation
      </h2>
      <ul class="icons font16">
        <li class="icons-home"><a href="/">The Mail Archive home</a></li>
        <li class="icons-list">
          <a href="/haskell-cafe@haskell.org" title="c" id="c">haskell-cafe - all messages</a></li>
        <li class="icons-about">
          <a href="/haskell-cafe@haskell.org/info.html">haskell-cafe  - about the list</a></li>
        <li class="icons-expand"><a href="/search?l=haskell-cafe%40haskell.org&q=date%3A20101120&o=newest" title="e" id="e">Expand</a></li>
      </ul>
    </div>

    <div class="listlogo margintopdouble">
      <h2 class="hidden">
  				Mail list logo
      </h2>
      
    </div>
  </div>
  <div class="footer" role="contentinfo">
    <h2 class="hidden">
	        	      Footer information
    </h2>
    <ul>
      <li><a href="/">The Mail Archive home</a></li>
      <li><a href="/faq.html#newlist">Add your mailing list</a></li>
      <li><a href="/faq.html">FAQ</a></li>
      <li><a href="/faq.html#support">Support</a></li>
      <li><a href="/faq.html#privacy">Privacy</a></li>
    </ul>
  </div>
<script language="javascript" type="text/javascript">
document.onkeydown = NavigateThrough;
function NavigateThrough (event)
{
  if (!document.getElementById) return;
  if (window.event) event = window.event;
  if (event.target.tagName == 'INPUT') return;
  if (event.ctrlKey || event.metaKey) return;
  var link = null;
  switch (event.keyCode ? event.keyCode : event.which ? event.which : null) {
    case 69:
      link = document.getElementById ('e');
      break;
    }
  if (link && link.href) document.location = link.href;
}
</script>
</body>
</html>