[Haskell-cafe] about gSoc ideas

2009-02-23 Thread Li Feng
Hi all,

I don't know if it is proper to ask about gsoc on this list, tell me if it's
not.

I find last couple year's gSoc ideas on
http://hackage.haskell.org/trac/summer-of-code/report/1,
which some of them labeled good/bad or something else. I don't know
what's their status now, and I want to ask for advice about the
project that really in need by the HASKELL and is suitable for a gSoc
project. Any suggestion will be appreciate.

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


Re[2]: Pickling a finite map (Binary + zlib) [was: [Haskell-cafe] Data.Binary poor read performance]

2009-02-23 Thread Bulat Ziganshin
Hello Duncan,

Tuesday, February 24, 2009, 5:13:05 AM, you wrote:

> That's actually rather surprising. The system time is negligible and the

yes, this looks highly suspicious. we use 1.5 seconds for 1.3 mb file,
and 0.3 seconds for 0.3 mb file, so it looks like readFile monopolize
cpu here, being able to read only 1mb per second. decoding into list
of strings (instead of building map) may help to check this assumption


-- 
Best regards,
 Bulatmailto:bulat.zigans...@gmail.com

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


Re: Pickling a finite map (Binary + zlib) [was: [Haskell-cafe] Data.Binary poor read performance]

2009-02-23 Thread Duncan Coutts
On Mon, 2009-02-23 at 17:03 -0800, Don Stewart wrote:

> Here's a quick demo using Data.Binary directly.

[...]

> $ time ./A dict +RTS -K20M
> 52848
> "done"
> ./A dict +RTS -K20M  1.51s user 0.06s system 99% cpu 1.582 total
> 
> 
> Ok. So 1.5s to decode a 1.3M Map. There may be better ways to build the Map 
> since we know the input will be sorted, but
> the Data.Binary instance can't do that.

[...]

> $ time ./A dict.gz
> 52848
> "done"
> ./A dict.gz  0.28s user 0.03s system 98% cpu 0.310 total
> 
> Interesting. So extracting the Map from a compressed bytestring in memory is 
> a fair bit faster than loading it 
> directly, uncompressed from disk.

That's actually rather surprising. The system time is negligible and the
difference between total and user time does not leave much for time
wasted doing i/o. So that's a real difference in user time. So what is
going on? We're doing the same amount of binary decoding in each right?
We're also allocating the same number of buffers, in fact slightly more
in the case that uses compression. The time taken to cat a meg through
an Handle using lazy bytestring is nothing. So where is all that time
going?

Duncan

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


Pickling a finite map (Binary + zlib) [was: [Haskell-cafe] Data.Binary poor read performance]

2009-02-23 Thread Don Stewart
wren:
> Neil Mitchell wrote:
>> 2) The storage for String seems to be raw strings, which is nice.
>> Would I get a substantial speedup by moving to bytestrings instead of
>> strings? If I hashed the strings and stored common ones in a hash
>> table is it likely to be a big win?
>
> Bytestrings should help. The big wins in this application are likely to  
> be cache issues, though the improved memory/GC overhead is nice too.
>

Here's a quick demo using Data.Binary directly.

First, let's read in the dictionary file, and build a big, worst-case finite
map of words to their occurence (always 1).

import Data.Binary
import Data.List
import qualified Data.ByteString.Char8 as B
import System.Environment
import qualified Data.Map as M

main = do
[f] <- getArgs
s   <- B.readFile f
let m = M.fromList [ (head n, length n) | n <- (group . B.lines $ s) ]
encodeFile "dict" m
print "done"

So that writes a "dict" file with a binary encoded Map ByteString Int.
Using ghc -O2 --make for everying.

$ time ./A /usr/share/dict/cracklib-small
"done"
./A /usr/share/dict/cracklib-small  0.28s user 0.03s system 94% cpu 0.331 
total

Yields a dictionary file Map:

$ du -hs dict
1.3Mdict

Now, let's read back in and decode it back to a Map 

main = do
[f] <- getArgs
m   <- decodeFile f
print (M.size (m :: M.Map B.ByteString Int))
print "done"

Easy enough:

$ time ./A dict +RTS -K20M
52848
"done"
./A dict +RTS -K20M  1.51s user 0.06s system 99% cpu 1.582 total


Ok. So 1.5s to decode a 1.3M Map. There may be better ways to build the Map 
since we know the input will be sorted, but
the Data.Binary instance can't do that.

Since decode/encode are a nice pure function on lazy bytestrings, we can try a 
trick of 
compressing/decompressing the dictionary in memory.

Compressing the dictionary:

import Data.Binary
import Data.List
import qualified Data.ByteString.Char8 as B
import qualified Data.ByteString.Lazy  as L
import System.Environment
import qualified Data.Map as M
import Codec.Compression.GZip

main = do
[f] <- getArgs
s   <- B.readFile f
let m = M.fromList [ (head n, length n) | n <- (group . B.lines $ s) ]
L.writeFile "dict.gz" . compress . encode $ m
print "done"

Pretty cool, imo, is "compress . encode":

$ time ./A /usr/share/dict/cracklib-small 
"done"
./A /usr/share/dict/cracklib-small  0.38s user 0.02s system 85% cpu 0.470 
total

Ok. So building a compressed dictionary takes only a bit longer than 
uncompressed one (zlib is fast),

$ du -hs dict.gz 
216Kdict.gz

Compressed dictionary is much smaller. Let's load it back in and unpickle it:

main = do
[f] <- getArgs
m <- (decode . decompress) `fmap` L.readFile f
print (M.size (m :: M.Map B.ByteString Int))
print "done"

Also cute. But how does it run:

$ time ./A dict.gz
52848
"done"
./A dict.gz  0.28s user 0.03s system 98% cpu 0.310 total

Interesting. So extracting the Map from a compressed bytestring in memory is a 
fair bit faster than loading it 
directly, uncompressed from disk.

Neil, does that give you some ballpark figures to work with?

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


Re: [Haskell-cafe] Data.Binary poor read performance

2009-02-23 Thread wren ng thornton

Neil Mitchell wrote:

2) The storage for String seems to be raw strings, which is nice.
Would I get a substantial speedup by moving to bytestrings instead of
strings? If I hashed the strings and stored common ones in a hash
table is it likely to be a big win?


Bytestrings should help. The big wins in this application are likely to 
be cache issues, though the improved memory/GC overhead is nice too.



If you have many identical strings then you will save lots by memoizing 
your strings into Integers, and then serializing that memo table and the 
integerized version of your data structure. The amount of savings 
decreases as the number of duplications decrease, though since you don't 
need the memo table itself you should be able to serialize it in a way 
that doesn't have much overhead.


A refinement on memoization for when you have many partial matches but 
few total matches, is to chunk the strings into a series of partial 
matches, which are then integerized. The trick is deciding on how big to 
make your chunks (which is to say, optimizing the reuse ratio). If you 
want an industrial solution like this, it may be worth looking into 
Haskell bindings for SRILM or IRSTLM.



Depending on how rough your type signature was, you may also consider 
using bytestring-trie to replace the Map String portion. For the keys of 
your map this will give the bytestring optimization as well as prefix 
sharing. You could also replace the [String] with Trie Pos where Pos 
gives the position in the list, or Trie() if order is irrelevant. And 
you could replace [(String,Int)] with Trie (Map Pos Int) or similar 
depending on whether position is important (thus Trie (Set Int)) or 
whether you can avoid conflicting Ints for the same String (thus Trie 
Int). Without knowing more I'm not sure how well


Trie [Either (String, Trie Pos) (Trie (Map Pos Int))]

will match your use case, but it's worth considering. The one thing of 
note is that Trie uses patricia trees like IntMap does rather than using 
balanced trees like Map does. Again, I'm not sure whether the 
differences will matter for your use case.


--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Need some advice on deploying an app

2009-02-23 Thread G?uenther Schmidt

Hi Henk-Jan,

en alweer hartelik bedankt.

Since this is the 1st time I have actually developed a product I'm
pretty new to this copy-protection-installer-what-not.

Actually I didn't even know the right term for what kind of tool I was
looking for, only figured that it would propably exist.

Right now I found this
http://www.softwareshield.com/Home/SoftwareShield_demonstrations.aspx

If this lives up to its promise than I'll probably choose this.

Thanks

Günther


Henk-Jan van Tuyl schrieb:
On Mon, 23 Feb 2009 21:04:49 +0100, Gü?nther Schmidt 
 wrote:



Hi,

I've just finished developing my haskell - windows app and am ready 
to ship it now. I'm using Inno Setup for the installation but need 
another tool that would wrap my app inside itself and check for valid 
keys or an expiration date on every start up.


Can anyone recommend a good tool for that purpose?

Günther



Maybe the following page helps:
  http://paypal-tools-software.qarchive.org/

Or search for:
  PayPal product activation

Let us know what your experiences are, if you find the right software!





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


[Haskell-cafe] Hac5: April 17-19, Utrecht -- Book Now!

2009-02-23 Thread Sean Leather
Twelve days ago, we emailed you about a particular event...

~~
 The 5th Haskell Hackathon

April 17 - 19, 2009

 Utrecht, The Netherlands
~~

We have some updated information for you. If you don't want to read the
details, then the important points are:

  * Hotel or hostel accommodation may be hard to come by, so book your room
now!

  * Check out the website for lots of useful information.

As I mentioned before, you can find out more about the Hackathon here:

  http://haskell.org/haskellwiki/Hac5

The site is a wealth of useful information gratefully provided by the
Utrecht organizing team. If you haven't seen it recently, check again.

In particular, however, we'd like to inform you of some newly obtained
information. We unknowingly scheduled the Hackathon on the same weekend as a
popular record and CD fair.

  http://www.recordplanet.nl/

So, not only do you get the chance to hack on projects involving your
favorite purely functional programming language, you also have the
opportunity to visit "the most impressive record fair of the world."
However, this does have some drawbacks...

Rooms in hotels and hostels in Utrecht are often notoriously difficult to
come by. It's already a crowded city sometimes with too few places to stay
(esp. if you want cheap). Therefore, if you've decided to join us or have
already registered, we highly recommend booking a room at your earliest
convenience. (If you haven't decided to visit Utrecht, then you should hurry
up and agree to it already!)

For this purpose, we have updated the main Hac5 page with information about
accommodations.

  http://haskell.org/haskellwiki/Hac5#Accommodation

We also have a Google map with information about places to stay and
transportation.

  http://haskell.org/haskellwiki/Hac5#Map

And finally, don't forget that you can use either the Attendees page, the
Hackathon mailing list, or the IRC channel to communicate with other
(potential) attendees or the organizers about sharing rooms, finding a
place, or anything else.

  http://haskell.org/haskellwiki/Hac5/Attendees

  http://haskell.org/mailman/listinfo/hackathon

  #haskell-hac5 (on freenode)

Good luck and happy hacking!

== Organizers ==

Andres Löh, Utrecht University (UU)
José Pedro Magalhães, UU
Sean Leather, UU
Eelco Lempsink, UU + Tupil
Chris Eidhof, UU + Tupil
... and more ...
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] memory-efficient data type for Netflix data - UArray Int Int vs UArray Int Word8

2009-02-23 Thread wren ng thornton

Kenneth Hoste wrote:
Well, I'm using UArray, but I'm willing to consider other suitable 
containers...

As long as they are memory efficient. :-)

The typical usage of a UArray will be getting all it's contents,
and converting it to a list to easily manipulate (filter, ...).

So, maybe another data type allows me to store the data in a limited 
amount of memory

(which is my main concern now)...


Have you considered using spectral (or counting) bloom filters? I know 
there's a non-spectral version available[1], though I haven't looked at 
it to see how easily it could be made to count.



[1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bloomfilter

--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Need some advice on deploying an app

2009-02-23 Thread Jeff Zaroyko
On Tue, Feb 24, 2009 at 7:04 AM, Gü?nther Schmidt  wrote:
> Hi,
>
> I've just finished developing my haskell - windows app and am ready to ship
> it now. I'm using Inno Setup for the installation but need another tool that
> would wrap my app inside itself and check for valid keys or an expiration
> date on every start up.
>
> Can anyone recommend a good tool for that purpose?
>
> Günther
>

EXECryptor or TheMida might be good choices, there's also VMProtect
for "protecting" certain parts of your code.

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


Re: [Haskell-cafe] Need some advice on deploying an app

2009-02-23 Thread Henk-Jan van Tuyl
On Mon, 23 Feb 2009 21:04:49 +0100, Gü?nther Schmidt   
wrote:



Hi,

I've just finished developing my haskell - windows app and am ready to  
ship it now. I'm using Inno Setup for the installation but need another  
tool that would wrap my app inside itself and check for valid keys or an  
expiration date on every start up.


Can anyone recommend a good tool for that purpose?

Günther



Maybe the following page helps:
  http://paypal-tools-software.qarchive.org/

Or search for:
  PayPal product activation

Let us know what your experiences are, if you find the right software!

--
Mit freundlichen Grüßen,
Henk-Jan van Tuyl


--
http://functor.bamikanarie.com
http://Van.Tuyl.eu/
--


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


[Haskell-cafe] Re: Hoogle and Network.Socket

2009-02-23 Thread Achim Schneider
wren ng thornton  wrote:

> Though, I think it might be easier to have an icon next to the search 
> hits, rather than segregating by platform--- since 
> segregating/sectioning runs counter to relevance ranking.
>
While OTOH, this approach might rank low-level POSIX/Windoze libraries
higher than cross-platform wrappers, which arguably isn't the best way
to promote platform-independence.

I really do think that "show N more results from platform Foo" and
"show N more platform-specific results" is the way to go: clicking them
would repeat the search with "(+platform | +all) -cross-platform" tags,
which has the benefit of implicitly documenting how to do specific
searches: No documentation needed, no GUI if you don't care.

-- 
(c) this sig last receiving data processing entity. Inspect headers
for copyright history. All rights reserved. Copying, hiring, renting,
performance and/or quoting of this signature prohibited.


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


Re: [Haskell-cafe] Stacking StateTs

2009-02-23 Thread wren ng thornton

Luis O'Shea wrote:

One way to do this is to stack two StateTs on top of m.


Another way, what might be easier to reason about, is to crush those two 
layers together and use a tuple for the state:


StateT s1 (StateT s2 m) a == StateT (s1,s2) m a

Then the only thing you'll have to worry about is making sure the 
different "clients" only access s1 or s2 as appropriate.


One approach to access control is to make a newtype S = (s1,s2) and 
define a typeclass taking S and returning the different projections of 
it (e.g. s1 or s2). This way if you needed to add another StateT layer 
you can just adjust the definition of S and add a new typeclass 
instance. Similarly if you wanted to rearrange the contents of S.


This also works if you want to have different S, S', etc ---even if they 
share projections--- though you'll need to use MPTCs (or similar) so you 
can overload on the total state as well as the projections.


The downside to the typeclass approach is that you can't have two 
projections (of the same S) sM and sN which are the same type. If you 
want that you'll need to newtype one of the projections, manually pass 
around the projector dictionaries, or similar.


--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Hoogle and Network.Socket

2009-02-23 Thread Peter Hercek

wren ng thornton wrote:

Lacking a wiki account,
~wren


From HWN:

HaskellWiki Accounts. Ashley Yakeley can [12]create a HaskellWiki
account for anyone who wants one (account creation has been disabled as
a spam-fighting measure).
http://article.gmane.org/gmane.comp.lang.haskell.general/16846

Peter

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


[Haskell-cafe] IntMap documentation error

2009-02-23 Thread Louis Wasserman
In the documentation for Data.IntMap updateMin, a piece of example
code both communicates incorrect intuition, and fails to even compile.

updateMin :: (a -> a) -> IntMap a -> IntMap a

 updateMin (\ _ -> Nothing) (fromList [(5,"a"), (3,"b")]) -- code
straight from the docs

:1:49:
   Couldn't match expected type `Maybe a'
  against inferred type `[Char]'
   In the expression: "a"
   In the expression: (5, "a")
   In the first argument of `fromList', namely `[(5, "a"), (3, "b")]'

As a side note, the sort of operation implied by the example code was
really what I was looking for in the documentation -- but such a
method no longer exists in IntMap.  ::sad::

Who do I tell this to / how do I ask to get it fixed?

Louis Wasserman
wasserman.lo...@gmail.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Hoogle and Network.Socket

2009-02-23 Thread wren ng thornton

Achim Schneider wrote:

Thomas DuBuisson  wrote:

> I still prefer showing all platform results sorted into separate
> sections with headers, but understand that I am in the minority.

You aren't alone. Labelling them prominently with POSIX, UNIX, Linux,
*BSD, OSX resp. Windoze is a Good Thing: That way, noone has to dig
into package docs. "Show N more results specific to platform Foo"-links
would be a good idea, too.



Indeed, you are not alone.

Though, I think it might be easier to have an icon next to the search 
hits, rather than segregating by platform--- since 
segregating/sectioning runs counter to relevance ranking. Of course 
icons clutter things up (though we can be innovative about what "icon" 
means and use them to colorize text or similar; since we have so few of 
them). But then there's a whole literature on clustered search engines 
that we could delve into for UI considerations (clustered-search folks 
tend to care about such things).


The main point is that I think even arch/os/compiler-specific packages 
should be searched by default and simply annotated as being 
platform-specific, rather than requiring flags (a hitherto undocumented 
feature). Cookies should be used to facilitate or suppress such platform 
specificities (with a URL interface to adjust the cookie).



Lacking a wiki account,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] advancePtr for ForeignPtr

2009-02-23 Thread Judah Jacobson
On Mon, Feb 23, 2009 at 9:02 AM, Judah Jacobson
 wrote:
> On Mon, Feb 23, 2009 at 6:48 AM, Henning Thielemann
>  wrote:
>>
>> On Mon, 23 Feb 2009, Felipe Lessa wrote:
>>
>>> On Mon, Feb 23, 2009 at 10:12 AM, Henning Thielemann
>>>  wrote:

 Is still someone on haskell.org ?
>>>
>>> Sorry, I don't know :).
>>
>> I meant f...@haskell.org
>>
 Do I have to use 'touchForeignPtr' as finalizer of the subarray's
 ForeignPtr
 in order to assert that the superarray lives at least as long as the
 subarray?
>>>
>>> This may work, but seems like a fragile hack. Why not
>>>
>>>
>>>  data SubArray a = SA {-# UNPACK #-} !(ForeignPtr a)
>>>  {-# UNPACK #-} !Int
>>
>> This would work, but I want to convert from StorableVector to CArray and
>> StorableVector has an offset parameter, which is missing in CArray.
>
> I've used something like the following for that purpose:
>
> advanceForeignPtr :: ForeignPtr a -> Int -> IO (ForeignPtr a)
> advanceForeignPtr fp n = withForeignPtr fp $ \p ->
>newForeignPtr_ (p `advancePtr` n)

Oops, sorry, that's definitely wrong.  Probably the only fix is to use
touchForeignPtr in the finalizer of the new ForeignPtr, as you said.
Time to fix some of my code... :-)

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


Re: [Haskell-cafe] looking for a 2d graphics package

2009-02-23 Thread Peter Verswyvelen
did you look at Hieroglyph?
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hieroglyph

you can also just use GTK2HS / Cairo, or even just OpenGL if you want speed.


On Mon, Feb 23, 2009 at 8:46 PM, Martin DeMello wrote:

> What 2d graphics library would be the best fit for this sort of thing?
>
> http://www.superliminal.com/geometry/tyler/gallery/circular/tiles060.html
>
> I took a look at diagrams but it seemed more geared towards things
> that fit on a rectangular layout.
>
> martin
> ___
> 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] Looping after compiling with cabal

2009-02-23 Thread Henk-Jan van Tuyl


I tried to compile with head, but I got the following error messages:

[...]\Haskell\GUI\wxHaskell\wxFruit\wxFruit-0.1.2.test>runhaskell Setup  
configure   & runhaskell Setup build   & runhaskell Setup install

Configuring wxFruit-0.1.2...
Preprocessing library wxFruit-0.1.2...
Preprocessing executables for wxFruit-0.1.2...
Building wxFruit-0.1.2...
[1 of 1] Compiling WXFruit  ( WXFruit.hs, dist\build\WXFruit.o )

WXFruit.hs:14:0:
Bad interface file:  
[...]\Haskell\GUI\wxHaskell\wxhaskell-0.11.0\lib\imports\Graphics\UI\WX.hi
mismatched interface file versions (wanted "610120090216", got  
"6101")
Setup: C:\Program Files\Haskell\doc\wxFruit-0.1.2\.copyFile6036.tmp:  
copyFile: permission denied (Toegang geweigerd.)


What should I do differently?

The problem must be
  http://hackage.haskell.org/trac/ghc/ticket/2722
, I solved the loop by defining
  id = arr Prelude.id
instead of:
  id = arr id

Regards,
Henk-Jan van Tuyl


--
http://functor.bamikanarie.com
http://Van.Tuyl.eu/
--



On Mon, 23 Feb 2009 14:54:01 +0100, Simon Peyton-Jones  
 wrote:



I suspect this may be an instance of
http://hackage.haskell.org/trac/ghc/ticket/2985

Or (less likely)
http://hackage.haskell.org/trac/ghc/ticket/2722

Can you try with the HEAD?  Or the 6.10 branch (which includes the fix  
for #2985)?


Simon

| -Original Message-
| From: haskell-cafe-boun...@haskell.org  
[mailto:haskell-cafe-boun...@haskell.org] On

| Behalf Of Henk-Jan van Tuyl
| Sent: 16 February 2009 12:04
| To: Haskell cafe
| Subject: [Haskell-cafe] Looping after compiling with cabal
|
|
| L.S.,
|
| I have updated wxFruit to compile with GHC 6.10.1, but when I compil  
using

| the commands:
|runhaskell Setup configure   & runhaskell Setup build   & runhaskell
| Setup install
| and run paddle.exe, I get the message:
|paddle: <>
|
| If I compile with:
|ghc --make paddle
| , the game starts normally.
|
| Any idea how I can solve this?
|
| Some more data:
| Using:
|Yampa-0.9.2.3
|wxFruit-0.1.1 from Hackage, updated
|GHC 6.10.1
|Windows XP
|
| Compile sessions:
|
| [...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated>ghc --make paddle
| [1 of 2] Compiling WXFruit  ( WXFruit.hs, WXFruit.o )
| [2 of 2] Compiling Main ( paddle.hs, paddle.o )
| Linking paddle.exe ...
|
| This paddle.exe works fine
|
|
| [...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated>runhaskell Setup
| configure   & runhaskell Setup build   & runhaskell Setup install
| Configuring wxFruit-0.1.2...
| Preprocessing library wxFruit-0.1.2...
| Preprocessing executables for wxFruit-0.1.2...
| Building wxFruit-0.1.2...
| [1 of 1] Compiling WXFruit  ( WXFruit.hs, dist\build\WXFruit.o  
)

| C:\Programs\ghc\ghc-6.10.1\bin\ar.exe: creating
| dist\build\libHSwxFruit-0.1.2.a
| [1 of 2] Compiling WXFruit  ( WXFruit.hs,
| dist\build\paddle\paddle-tmp\WXFruit.o )
| Linking dist\build\paddle\paddle.exe ...
| Installing library in C:\Program Files\Haskell\wxFruit-0.1.2\ghc-6.10.1
| Installing executable(s) in C:\Program Files\Haskell\bin
| Registering wxFruit-0.1.2...
| Reading package info from "dist\\installed-pkg-config" ... done.
| Writing new package config file... done.
|
| [...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated>cd dist\build\paddle
|
|  
[...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated\dist\build\paddle>paddle

| paddle: <>
|
| --
| Regards,
| Henk-Jan van Tuyl



--

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


Re: [Haskell-cafe] memory-efficient data type for Netflix data - UArray Int Int vs UArray Int Word8

2009-02-23 Thread Kenneth Hoste


On Feb 23, 2009, at 19:57 , Don Stewart wrote:


bos:

2009/2/23 Kenneth Hoste 


   Does anyone know why the Word8 version is not significantly  
better in terms

   of memory usage?


Yes, because there's a typo on line 413 of Data/Array/Vector/Prim/ 
BUArr.hs.


How's that for service? :-)


UArray or UArr?


Well, I'm using UArray, but I'm willing to consider other suitable  
containers...

As long as they are memory efficient. :-)

The typical usage of a UArray will be getting all it's contents,
and converting it to a list to easily manipulate (filter, ...).

So, maybe another data type allows me to store the data in a limited  
amount of memory

(which is my main concern now)...

K.

--

Kenneth Hoste
ELIS - Ghent University
email: kenneth.ho...@elis.ugent.be
blog: http://www.elis.ugent.be/~kehoste/blog
website: http://www.elis.ugent.be/~kehoste

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


[Haskell-cafe] Need some advice on deploying an app

2009-02-23 Thread Gü?nther Schmidt

Hi,

I've just finished developing my haskell - windows app and am ready to 
ship it now. I'm using Inno Setup for the installation but need another 
tool that would wrap my app inside itself and check for valid keys or an 
expiration date on every start up.


Can anyone recommend a good tool for that purpose?

Günther

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


[Haskell-cafe] looking for a 2d graphics package

2009-02-23 Thread Martin DeMello
What 2d graphics library would be the best fit for this sort of thing?

http://www.superliminal.com/geometry/tyler/gallery/circular/tiles060.html

I took a look at diagrams but it seemed more geared towards things
that fit on a rectangular layout.

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


Re: [Haskell-cafe] Semantic web

2009-02-23 Thread Doug Burke


> - Original Message 
> From: Doug Burke 
> To: Don Stewart ; gregg reynolds 
> Cc: haskell-cafe@haskell.org
> Sent: Friday, February 13, 2009 5:15:44 PM
> Subject: Re: [Haskell-cafe] Semantic web
>
>> - Original Message 
>> From: Don Stewart 
>> To: gregg reynolds 
>> Cc: haskell-cafe@haskell.org
>> Sent: Saturday, February 7, 2009 2:40:41 PM
>> Subject: Re: [Haskell-cafe] Semantic web
>>
>> dev:
>>> Anybody implementing rdf or owl  stuff in haskell?  Seems like a natural 
>>> fit.
>>
>> http://www.ninebynine.org/RDFNotes/Swish/Intro.html
>> 
>> Needs moving to Hackage.
>
> There is also 
>
> http://protempore.net/rdf4h/ 
> 
> which I haven't used and doesn't look to be particularly active at the moment.
> 
> Doug

Of course, there has been a release of this library just after I sent the email.

  Feb. 13, 2009: version 0.6.1; introduced type classes for RdfSerializer and 
RdfParser; updated to exploit improvements in newer versions of parsec and 
other dependent libraries

Doug



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


Re: [Haskell-cafe] memory-efficient data type for Netflix data - UArray Int Int vs UArray Int Word8

2009-02-23 Thread Don Stewart
bos:
> 2009/2/23 Kenneth Hoste 
>  
> 
> Does anyone know why the Word8 version is not significantly better in 
> terms
> of memory usage?
> 
> 
> Yes, because there's a typo on line 413 of Data/Array/Vector/Prim/BUArr.hs.
> 
> How's that for service? :-)

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


[Haskell-cafe] Re: Data.Binary poor read performance

2009-02-23 Thread Don Stewart
ndmitchell:
> Hi,
> 
> In an application I'm writing with Data.Binary I'm seeing very fast
> write performance (instant), but much slower read performance. Can you
> advise where I might be going wrong?

Can you try binary 0.5 , just released 20 mins ago?

There was definitely some slow downs due to inlining that I've mostly
fixed in this release.

  
> The data type I'm serialising is roughly: Map String [Either
> (String,[String]) [(String,Int)]]
> 
> A lot of the String's are likely to be identical, and the end file
> size is 1Mb. Time taken with ghc -O2 is 0.4 seconds.

Map serialisation was sub-optimal. That's been improved today's release.
  

> Various questions/thoughts I've had:
> 
> 1) Is reading a lot slower than writing by necessity?

Nope. Shouldn't be.
  
> 2) The storage for String seems to be raw strings, which is nice.
> Would I get a substantial speedup by moving to bytestrings instead of
> strings? If I hashed the strings and stored common ones in a hash
> table is it likely to be a big win?

Yep and maybe.
  
> 3) How long might you expect 1Mb to take to read?
> 
> Thanks for the library, its miles faster than the Read/Show I was
> using before - but I'm still hoping that reading 1Mb of data can be
> instant :-)

Tiny fractions of a second.

$ cat A.hs
import qualified Data.ByteString as B
import System.Environment

main = do
[f] <- getArgs
print . B.length =<< B.readFile f

$ du -hs /usr/share/dict/cracklib-small  
472K/usr/share/dict/cracklib-small

$ time ./A /usr/share/dict/cracklib-small  
477023
./A /usr/share/dict/cracklib-small  0.00s user 0.01s system 122% cpu 0.005 
total

If you're not seeing results like that, with binary 0.5, let's look deeper.

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


Re: [Haskell-cafe] memory-efficient data type for Netflix data - UArray Int Int vs UArray Int Word8

2009-02-23 Thread Bryan O'Sullivan
2009/2/23 Kenneth Hoste 


> Does anyone know why the Word8 version is not significantly better in terms
> of memory usage?
>

Yes, because there's a typo on line 413 of Data/Array/Vector/Prim/BUArr.hs.

How's that for service? :-)
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Data.Binary poor read performance

2009-02-23 Thread Neil Mitchell
Hi,

In an application I'm writing with Data.Binary I'm seeing very fast
write performance (instant), but much slower read performance. Can you
advise where I might be going wrong?

The data type I'm serialising is roughly: Map String [Either
(String,[String]) [(String,Int)]]

A lot of the String's are likely to be identical, and the end file
size is 1Mb. Time taken with ghc -O2 is 0.4 seconds.

Various questions/thoughts I've had:

1) Is reading a lot slower than writing by necessity?

2) The storage for String seems to be raw strings, which is nice.
Would I get a substantial speedup by moving to bytestrings instead of
strings? If I hashed the strings and stored common ones in a hash
table is it likely to be a big win?

3) How long might you expect 1Mb to take to read?

Thanks for the library, its miles faster than the Read/Show I was
using before - but I'm still hoping that reading 1Mb of data can be
instant :-)

Thanks

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


[Haskell-cafe] memory-efficient data type for Netflix data - UArray Int Int vs UArray Int Word8

2009-02-23 Thread Kenneth Hoste

Hello,

I'm having a go at the Netflix Prize using Haskell. Yes, I'm brave.

I kind of have an algorithm in mind that I want to implement using  
Haskell,
but up until now, the main issue has been to find a way to efficiently  
represent

the data...

For people who are not familiar with the Netflix data, in short, it  
consist of
roughly 100M (1e8) user ratings (1-5, integer) for 17,770 different  
movies, coming from

480,109 different users.

The idea I have in mind requires fast access to all the ratings for a  
particular user,

so I was thinking about an IntMap in terms of user ids, which maps to
movie id/rating pairs somehow.

To see if I could efficiently represent the data set in this way, I  
wrote a small

Haskell program (attached) which uses the following data type:


testMemSizeUArray_UArray_Word8.hs
Description: Binary data




type data = IntMap (UArray Int Word8) -- map of user IDs to ratings  
(lacks movie IDs)


For convenience, and because I've been discussing this with various  
people in #haskell @ IRC,
the code is also available here: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=1671#a1671 
 .


I'm aware that the way in which the UArray's are constructed (i.e. by  
adding a single element each
time), is far from efficient performance-wise, but that's not the  
point here...
By reformatting the raw data, I can easily read in the data more  
efficiently.


The issue I ran into is that changing the data type to the following,  
doesn't yield any significant

different in memory usage.

type data = IntMap (UArray Int Int) -- use Int instead of Word8 for a  
user rating


Someone (dolio) @ #haskell suggested that maybe UArray is not byte  
packed for Word8,
which would cause little difference with a UArray containing Int's,  
but someone else (dons @ #ghc)

was able to tell me it _is_ byte packed.

Does anyone know why the Word8 version is not significantly better in  
terms of memory usage?


greetings,

Kenneth

PS: My adventures on trying to tackle the Netflix Prize problem with  
Haskell can be followed at http://boegel.kejo.be.


--

Kenneth Hoste
ELIS - Ghent University
email: kenneth.ho...@elis.ugent.be
blog: http://www.elis.ugent.be/~kehoste/blog
website: http://www.elis.ugent.be/~kehoste

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


[Haskell-cafe] Fwd: [plt-scheme] Vancouver Lisp Users Group meeting for March 2009 - Haskell for Lisp Programmers

2009-02-23 Thread Tim Wawrzynczak
I thought you guys might find this interesting: Haskell for Lisp programmers

-- Forwarded message --
From: Bill Clementson 
Date: Mon, Feb 23, 2009 at 11:12 AM
Subject: [plt-scheme] Vancouver Lisp Users Group meeting for March 2009 -
Haskell for Lisp Programmers
To: undisclosed-recipients


Hi all,

Haskell is a polymorphically statically typed, lazy, purely functional
language based on the lambda calculus. As such, it shares some things
in common with some dialects of Lisp but differs in other regards. Our
March lispvan speaker will present an introduction to Haskell geared
towards Lisp programmers. If you want to read up about Haskell before
the meeting, a good starting point is the Haskell Wiki.

Here's the "official" meeting notice:

Topic: Haskell for Lisp Programmers
Presenter: Erik Charlebois
Date: Wednesday, March 4th, 2009
Time: 7pm - 10pm (or whenever)
Venue: The Hackery, 304 Victoria Dr (entrance off Franklin), Vancouver (see
map)
Summary: Haskell is a lazy, pure, statically-typed functional
programming language enjoying a lot of attention these days. Its
strict approach to side effects is seen as one of the viable
approaches to making parallel programming tractable.

Erik will talk about the core differences between Haskell and Lisp,
the actions the Haskell community is taking to manage this growth, and
some neat applications of the language already in the wild.

* Differences between Haskell and Lisp
 * Syntax
 * Static typing
 * Side effects with monads
* The Haskell Platform
 * Build, Package, Distribute
 * Community
* Haskell Dog and Pony Show

Bio: Erik was a compiler developer for 3 years at IBM working on the
XL Fortran and C/C++ compilers for the Cell processor. He is currently
employed at Slant Six Games doing gameplay programming. For the past 2
years, he has been studying programming languages and databases in a
search for smarter ways to build soft real-time applications like
games.

If possible, I will record the presentation and post it on my blog
after the meeting for those who are unable to attend. Join us for a
beer (bring your own - there's a fridge) and a chance to learn what
static typing and monads are all about!

Any updates will be posted on my blog entry for the meeting:
http://bc.tech.coop/blog/090223.html

--
Bill Clementson
_
 For list-related administrative tasks:
 http://list.cs.brown.edu/mailman/listinfo/plt-scheme
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] advancePtr for ForeignPtr

2009-02-23 Thread Judah Jacobson
On Mon, Feb 23, 2009 at 6:48 AM, Henning Thielemann
 wrote:
>
> On Mon, 23 Feb 2009, Felipe Lessa wrote:
>
>> On Mon, Feb 23, 2009 at 10:12 AM, Henning Thielemann
>>  wrote:
>>>
>>> Is still someone on haskell.org ?
>>
>> Sorry, I don't know :).
>
> I meant f...@haskell.org
>
>>> Do I have to use 'touchForeignPtr' as finalizer of the subarray's
>>> ForeignPtr
>>> in order to assert that the superarray lives at least as long as the
>>> subarray?
>>
>> This may work, but seems like a fragile hack. Why not
>>
>>
>>  data SubArray a = SA {-# UNPACK #-} !(ForeignPtr a)
>>  {-# UNPACK #-} !Int
>
> This would work, but I want to convert from StorableVector to CArray and
> StorableVector has an offset parameter, which is missing in CArray.

I've used something like the following for that purpose:

advanceForeignPtr :: ForeignPtr a -> Int -> IO (ForeignPtr a)
advanceForeignPtr fp n = withForeignPtr fp $ \p ->
newForeignPtr_ (p `advancePtr` n)

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


Re: [Haskell-cafe] Haskellers on Twitter!

2009-02-23 Thread Andrew Wagner
Modified. Is this how you want it to show?

2009/2/23 Brandon S. Allbery KF8NH 

> On 2009 Feb 21, at 16:14, Daniel Peebles wrote:
>
>> http://haskell.org/haskellwiki/Twitter. Please update with yourself or
>> any other Haskellers we may have missed.
>>
>
>
> Since I can't create an account to fix my entry:
> (1) my name is misspelled
> (2) partly to synchronize my accounts and partly to try to figure out why
> searches for me on http://search.twitter.com fail, I changed my account
> name.
>
> If you're looking to follow me on Twitter, I'm now "geekosaur".  (I still
> don't show up in searches though.  One of many; the folks at Twitter seem to
> have trouble with getting their indexes to work right)
>
> --
> brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allb...@kf8nh.com
> system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu
> electrical and computer engineering, carnegie mellon universityKF8NH
>
>
>
> ___
> 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] Haskellers on Twitter!

2009-02-23 Thread Brandon S. Allbery KF8NH

On 2009 Feb 21, at 16:14, Daniel Peebles wrote:

http://haskell.org/haskellwiki/Twitter. Please update with yourself or
any other Haskellers we may have missed.



Since I can't create an account to fix my entry:
(1) my name is misspelled
(2) partly to synchronize my accounts and partly to try to figure out  
why searches for me on http://search.twitter.com fail, I changed my  
account name.


If you're looking to follow me on Twitter, I'm now "geekosaur".  (I  
still don't show up in searches though.  One of many; the folks at  
Twitter seem to have trouble with getting their indexes to work  
right)


--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allb...@kf8nh.com
system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu
electrical and computer engineering, carnegie mellon universityKF8NH




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


[Haskell-cafe] Re: [darcs-users] darcs and Google Summer of Code

2009-02-23 Thread Wolfgang Jeltsch
Am Samstag, 21. Februar 2009 16:18 schrieb Eric Kow:
> Hi Wolgang,

Hmm, wrong again. ;-) 

> On Wed, Feb 18, 2009 at 12:53:23 +0100, Wolfgang Jeltsch wrote:
> > What do you mean with “something which will make it much easier for third
> > parties to write a GUI in the future”?
>
> Kari's example of GUI-friendly optimisations might be one thought.
>
> More generally, I was thinking of some kind of darcs library design
> work: now that we have exposed all our modules in a sort of darcs
> library, how we can grow this into a proper library that people can
> "safely" use (safe in the sense that the library makes it very clear
> what kinds of operations are read-only, or to what extent operations are
> "atomic", preferably with atomic repository-manipulating functions only
> being exposed and not their underlying substeps).  The library could
> also tackle issues like darcs sending messages back to the user (right
> now, we just putStrLn, but what if we want them to go a special Window?)

Tomorrow, I will discuss with the first half of my student project students 
(3 students) about what exact topic they will pursue. My idea is to let them 
start a Grapefruit-based darcs GUI. They should not use the currenct darcs 
interface directly where it doesn’t fit GUI frontends well. Instead they 
should write a wrapper around the “ugly” parts which exposes a “nice” 
interface. Later, one could merge this wrapper into the darcs codebase so 
that darcs exports the “nice” interface then. The GUI code wouldn’t have to 
change much then.

In April, the second half of the students will start with their project. If 
there is some graphics support in Grapefruit at that time then they might 
work on a patch viewer.

What do you think about that?

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


[Haskell-cafe] Re: Hoogle and Network.Socket

2009-02-23 Thread Achim Schneider
Thomas DuBuisson  wrote:

> I still prefer showing all platform results sorted into separate
> sections with headers, but understand that I am in the minority.
>
You aren't alone. Labelling them prominently with POSIX, UNIX, Linux,
*BSD, OSX resp. Windoze is a Good Thing: That way, noone has to dig
into package docs. "Show N more results specific to platform Foo"-links
would be a good idea, too.

-- 
(c) this sig last receiving data processing entity. Inspect headers
for copyright history. All rights reserved. Copying, hiring, renting,
performance and/or quoting of this signature prohibited.


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


Re: [Haskell-cafe] advancePtr for ForeignPtr

2009-02-23 Thread Henning Thielemann


On Mon, 23 Feb 2009, Felipe Lessa wrote:


On Mon, Feb 23, 2009 at 10:12 AM, Henning Thielemann
 wrote:

Is still someone on haskell.org ?


Sorry, I don't know :).


I meant f...@haskell.org


Do I have to use 'touchForeignPtr' as finalizer of the subarray's ForeignPtr
in order to assert that the superarray lives at least as long as the
subarray?


This may work, but seems like a fragile hack. Why not


 data SubArray a = SA {-# UNPACK #-} !(ForeignPtr a)
  {-# UNPACK #-} !Int


This would work, but I want to convert from StorableVector to CArray and 
StorableVector has an offset parameter, which is missing in CArray.

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


RE: [Haskell-cafe] Looping after compiling with cabal

2009-02-23 Thread Simon Peyton-Jones
I suspect this may be an instance of
http://hackage.haskell.org/trac/ghc/ticket/2985

Or (less likely)
http://hackage.haskell.org/trac/ghc/ticket/2722

Can you try with the HEAD?  Or the 6.10 branch (which includes the fix for 
#2985)?

Simon

| -Original Message-
| From: haskell-cafe-boun...@haskell.org 
[mailto:haskell-cafe-boun...@haskell.org] On
| Behalf Of Henk-Jan van Tuyl
| Sent: 16 February 2009 12:04
| To: Haskell cafe
| Subject: [Haskell-cafe] Looping after compiling with cabal
|
|
| L.S.,
|
| I have updated wxFruit to compile with GHC 6.10.1, but when I compil using
| the commands:
|runhaskell Setup configure   & runhaskell Setup build   & runhaskell
| Setup install
| and run paddle.exe, I get the message:
|paddle: <>
|
| If I compile with:
|ghc --make paddle
| , the game starts normally.
|
| Any idea how I can solve this?
|
| Some more data:
| Using:
|Yampa-0.9.2.3
|wxFruit-0.1.1 from Hackage, updated
|GHC 6.10.1
|Windows XP
|
| Compile sessions:
|
| [...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated>ghc --make paddle
| [1 of 2] Compiling WXFruit  ( WXFruit.hs, WXFruit.o )
| [2 of 2] Compiling Main ( paddle.hs, paddle.o )
| Linking paddle.exe ...
|
| This paddle.exe works fine
|
|
| [...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated>runhaskell Setup
| configure   & runhaskell Setup build   & runhaskell Setup install
| Configuring wxFruit-0.1.2...
| Preprocessing library wxFruit-0.1.2...
| Preprocessing executables for wxFruit-0.1.2...
| Building wxFruit-0.1.2...
| [1 of 1] Compiling WXFruit  ( WXFruit.hs, dist\build\WXFruit.o )
| C:\Programs\ghc\ghc-6.10.1\bin\ar.exe: creating
| dist\build\libHSwxFruit-0.1.2.a
| [1 of 2] Compiling WXFruit  ( WXFruit.hs,
| dist\build\paddle\paddle-tmp\WXFruit.o )
| Linking dist\build\paddle\paddle.exe ...
| Installing library in C:\Program Files\Haskell\wxFruit-0.1.2\ghc-6.10.1
| Installing executable(s) in C:\Program Files\Haskell\bin
| Registering wxFruit-0.1.2...
| Reading package info from "dist\\installed-pkg-config" ... done.
| Writing new package config file... done.
|
| [...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated>cd dist\build\paddle
|
| [...]\Haskell\GUI\wxHaskell\wxFruit-0.1.1.updated\dist\build\paddle>paddle
| paddle: <>
|
| --
| Regards,
| Henk-Jan van Tuyl
|
|
| --
| http://functor.bamikanarie.com
| http://Van.Tuyl.eu/
| --
|
|
| ___
| 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] The community is more important than the product

2009-02-23 Thread Jon Harrop
On Saturday 21 February 2009 23:59:54 Don Stewart wrote:
> http://haskell.org/haskellwiki/Protect_the_community
>
> Random notes on how to maintain tone, focus and productivity in an
> online community I took a few years ago.
>
> Might be some material there if anyone's seeking to help ensure
> we remain a constructive, effective community.

Note that you are guilty of most of these charges yourself, most notably from 
the section "conceit":

. won't engage/argue with other positions 
. makes sweeping claims.
. empty statements about a project's success 
...

When I contested your empty statements about Haskell's success and your 
sweeping claims, my post was censored and I was banned.

I am curious as to why you have changed tack and started trying to justify 
yourself? Why not just continue to silently ban people?

-- 
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] advancePtr for ForeignPtr

2009-02-23 Thread Felipe Lessa
On Mon, Feb 23, 2009 at 10:12 AM, Henning Thielemann
 wrote:
> Is still someone on haskell.org ?

Sorry, I don't know :).

> I want to have an advancePtr on ForeignPtr in order create a subarray.
> Is this reasonable and possible?

I don't think so. For example,
http://www.haskell.org/ghc/docs/latest/html/libraries/bytestring/Data-ByteString-Internal.html#t%3AByteString
explicitly list the offset.

> Do I have to use 'touchForeignPtr' as finalizer of the subarray's ForeignPtr
> in order to assert that the superarray lives at least as long as the
> subarray?

This may work, but seems like a fragile hack. Why not


  data SubArray a = SA {-# UNPACK #-} !(ForeignPtr a)
   {-# UNPACK #-} !Int

  withSubArray :: SubArray a -> (Ptr a -> IO b) -> IO b
  withSubArray (SA fptr offset) act =
  withForeignPtr fptr $ \ptr -> act (ptr `plusPtr` offset)

?

HTH,

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


[Haskell-cafe] Online GHC documentation

2009-02-23 Thread Maurí­cio

Just a small tip: I think it would
be nice if GHC online documentation
were built with links to the source
code, like in hackage.

Best,
Maurício

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


[Haskell-cafe] advancePtr for ForeignPtr

2009-02-23 Thread Henning Thielemann


Is still someone on haskell.org ?

-- Forwarded message --
Date: Thu, 19 Feb 2009 21:40:08 +0100 (CET)
From: Henning Thielemann 
To: f...@haskell.org
Subject: advancePtr for ForeignPtr


I want to have an advancePtr on ForeignPtr in order create a subarray.
Is this reasonable and possible?
Do I have to use 'touchForeignPtr' as finalizer of the subarray's ForeignPtr
in order to assert that the superarray lives at least as long as the subarray?
Anyway I'd prefer a function in the standard modules
than doing such things by myself.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] forall & ST monad

2009-02-23 Thread Ryan Ingram
On Fri, Feb 20, 2009 at 11:33 AM, Kim-Ee Yeoh  wrote:
> Here's a counterexample, regardless of whether you're using
> constructive or classical logic, that (forall a. T[a]) -> T' does
> not imply exists a. (T[a] -> T').
>
> Let a not exist, but T' true. Done.

That isn't quite a proper counterexample; if T' is true, that is, you
can write a term of type T', then exists a. (T[a] -> T') is trivially
true; here's a constructivist proof in Haskell:

type T :: * -> * -- given
type T' :: * -- given

v :: T'
v = given

type A = ()
f :: T A -> T'
f _ = v

data E t t' where E :: forall t t' a. (t a -> t') -> E t t'
proof :: E T T'
proof = E f

It believe that it's true that ((forall a. t a) -> t') does not entail
(exists a. t a -> t') in constructivist logic, but I can't come up
with a proof off the top of my head.  Intuitively, to construct a
value of type (E t t') you need to fix an "a", and I don't think it's
possible to do so.

On the other hand, "a" is hidden, so the only way to call the function
inside of E t t' is to pass it something of type (forall a. t a),
right?

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