[Haskell-cafe] GHCi and Cairo on Windows

2011-12-05 Thread smeltzek
In effort to keep my work cross-platform, I am trying to get GHCi and  
Cairo working together nicely on Windows (as a back-end to Diagrams,  
if it matters.) When loading the library in GHCi I get the following  
error:


Loading package cairo-0.12.2 ... linking ... ghc: unable to load  
package `cairo-0.12.2'


I am able to build, link, and execute successfully using 'ghc --make'  
so I know the libraries are installed correctly. I'm using GHC as  
packaged in the most recent version of the Haskell Platform and the  
most recent all-in-one Windows bundle of GTK.


I've seen quite similar errors reported months ago with no apparent solution.

Any help would be appreciated!

--Karl

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


Re: [Haskell-cafe] Haskell at University in Munich

2011-12-05 Thread Sean Leather
On Mon, Dec 5, 2011 at 00:18, Bartosz Wójcik wrote:

 If Munich and 200 km circle do not provide with any offer, perhaps you may
 know
 what is available in Europe, limiting language of study to [German,
 English,
 Polish]?


I believe the following recent thread will help answer this question:
http://thread.gmane.org/gmane.comp.lang.haskell.cafe/93650

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


Re: [Haskell-cafe] How to get a file path to the program invoked?

2011-12-05 Thread dokondr
This is how I finally solved this problem for POSIX complaint system:

--
-- TestRun
--
module Main where
import System.Cmd (rawSystem)
import System.Directory (getCurrentDirectory)
import System.Environment.Executable (ScriptPath(..), getScriptPath)
import System.FilePath.Posix (splitFileName)

main = do

  path - getMyPath
  putStrLn $ myPath =  ++ path
  let cmdLine = path ++ args.sh
  rawSystem cmdLine  [iphone, test-twitts.txt]

{--
data ScriptPath Source

Constructors:
Executable FilePathit was (probably) a proper compiled executable
RunGHC FilePathit was a script run by runghc/runhaskell
Interactive we are in GHCi
--}

getMyPath = do
  curDir - getCurrentDirectory -- from System.Directory
  scriptPath  - getScriptPath -- from System.Environment.Executable
  let path = getMyPath' scriptPath curDir
  return path

getMyPath' (Executable path) _ = fst (splitFileName path)
getMyPath' (RunGHC path) _  = fst (splitFileName path)
getMyPath' Interactive curDir = curDir++/


-- 
All the best,
Dmitri O. Kondratiev

This is what keeps me going: discovery
doko...@gmail.com
http://sites.google.com/site/dokondr/welcome
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] FLOPS 2012: final call for papers deadline extension

2011-12-05 Thread Tom Schrijvers
Final Call For Papers
=

  _EXTENDED SUBMISSION DEADLINE : December 16, 2011_

  *Eleventh International Symposium on Functional and Logic
Programming (FLOPS 2012)*
  May 23-25, 2012
  Kobe, Japan
  [http://www.org.kobe-u.ac.jp/flops2012/]

  FLOPS is a forum for research on all issues concerning declarative
  programming, including functional programming and logic programming,
  and aims to promote cross-fertilization and integration between the
  two paradigms. Previous FLOPS meetings were held in Fuji Susono
  (1995), Shonan Village (1996), Kyoto (1998), Tsukuba (1999), Tokyo
  (2001), Aizu (2002), Nara (2004), Fuji Susono (2006), Ise (2008),
  and Sendai (2010).

Topics
==
  FLOPS solicits original papers in all areas of functional and logic
  programming, including (but not limited to):
  - Declarative Pearls: new and excellent declarative programs with
illustrative applications.
  - Language issues: language design and constructs, programming methodology,
integration of paradigms, interfacing with other languages, type systems,
constraints, concurrency and distributed computing.
  - Foundations: logic and semantics, rewrite systems and narrowing, type
theory, proof systems.
  - Implementation issues: compilation techniques, memory management, program
analysis and transformation, partial evaluation, parallelism.
  - Applications: case studies, real-world applications, graphical user
interfaces, Internet applications, XML, databases, formal methods and model
checking.

  The proceedings will be published as an LNCS volume. The proceedings
  of the previous meeting (FLOPS 2010) were published as LNCS 6009.

PC co-Chairs

  - Tom Schrijvers (Ghent University, Belgium)
  - Peter Thiemann (University of Freiburg, Germany)

PC Members
==
 - Salvador Abreu (University of Evora, Portugal)
 - Thorsten Altenkirch (University of Nottingham, UK)
 - Sebastian Brand (NICTA, Australia)
 - Giuseppe Castagna (CNRS Univ Paris 7, France)
 - Sebastian Fischer (Germany)
 - Marco Gavanelli (University of Ferrara, Italy)
 - Joxan Jaffar (National University of Singapore, Singapore)
 - Barry Jay (University of Sydney, Australia)
 - Andy King (University of Kent, UK)
 - Claude Kirchner (INRIA, France)
 - Neelakantan R. Krishnaswami (Microsoft Cambridge, UK)
 - Yulya Lierler (University of Kentucky, USA)
 - Keiko Nakata (Tallinn University of Technology, Estonia)
 - Peter Schneider-Kamp (University of Southern Denmark, Denmark)
 - Olin Shivers (Northeastern University, USA)
 - Paul Tarau (University of Northern Texas, USA)
 - Kazunori Ueda (Waseda University, Japan)
 - Meng Wang (Chalmers Technical University, Sweden)

General Chair and Local co-Chairs
=
  - Naoyuki Tamura (Kobe University, Japan)
  - Mutsunori Banbara (Kobe University, Japan)
  - Katsutoshi Hirayama (Kobe University, Japan)

Submission
==
  Submissions must be unpublished and not submitted for publication
  elsewhere. Work that already appeared in unpublished or informally
  published workshops proceedings may be submitted. Submissions should
  fall into one of the following categories:
  - Regular research papers: they should describe new results and will be
judged on originality, correctness, and significance.
  - System descriptions: they should contain a link to a working system and
will be judged on originality, usefulness, and design.
  Submissions must be written in English and can be up to 15 pages
  long, though pearls are typically considerably shorter. Authors are
  required to use LaTeX2e and the Springer llncs class file, available at
  [http://www.springer.de/comp/lncs/authors.html].

  Regular research papers should be supported by proofs and/or
  experimental results. In case of lack of space, this supporting
  information should be made accessible otherwise (e.g., a link to a
  web page, or an appendix). Papers should be submitted electronically
  at [https://www.easychair.org/conferences/?conf=flops2012].

Important Dates
===
  - Submission deadline : December 16, 2011 (EXTENDED)
  - Author notification : February 3, 2012
  - Camera-ready copy : March 2, 2012

Place and Related Events

  Takikawa Memorial Hall, Kobe University,
  1-1 Rokkodai, Nada, Kobe 657-8501 Japan.

  The 23rd International Conference on Rewriting Techniques and
  Applications (RTA 2012) and satellite workshops including WFLP 2012
  will be held in the week after FLOPS at Nagoya, Japan.

Some Previous FLOPS
===
  - FLOPS 2010, Sendai: [http://www.kb.ecei.tohoku.ac.jp/flops2010/]
  - FLOPS 2008, Ise: [http://www.math.nagoya-u.ac.jp/~garrigue/FLOPS2008/]
  - FLOPS 2006, Fuji Susono: [http://hagi.is.s.u-tokyo.ac.jp/FLOPS2006/]

Sponsors

  - Japan Society for Software Science and Technology (JSSST) SIGPPL

In Cooperation with

[Haskell-cafe] List x ByteString x Lazy Bytestring

2011-12-05 Thread John Sneer
Hello Café,

  I've used Haskell and GHC to solve particular real life application. 4
  tools were developed and their function is almost the same - they
  modify textual input according to patterns found in the text. Thus, it
  is something like a compiler, the result is also a text and it is not
  parsed to tokens as patterns appear on a different level.

  The tools differ in tasks and number of modifications performed,
  otherwise, in principal, they are very much similar.

  I used lists (Prelude, Data.List) to develop the tools. After
  successfully completing the development, I've started to optimize the
  code to make the tools faster. After modification of some algorithms
  (which dropped the processing time notably), I started to change data
  structures. I swapped lists with lazy bytestrings. Nevertheless, what
  an unpleasant surprise, the processing speed dropped down,
  significantly / more then 30% time needed). 

  So my questions follow:
- What kind of application is lazy bytestring suitable for?
- Would it be worth using strict bytestring even if input files may be
large? (They would fit in memory, but may consume whole)
- If bytestring is not suitable for text manipulation, is there
something faster than lists?
- It would be nice to have native sort for lazy bytestring - would it be
slower than  pack $ Data.List.sort $ unpack ?
- If bytestring is suitable for text manipulation could we have some
hGetTextualContents which translates Windows EOL (CR+LF) to LF?

I'm sorry if the answers are obvious.
Could anyone point me to some article/pages I could read about?

  Thanks and regards,

John

-- 
http://www.fastmail.fm - A fast, anti-spam email service.


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


Re: [Haskell-cafe] List x ByteString x Lazy Bytestring

2011-12-05 Thread Simon Hengel
Hi,

 - If bytestring is not suitable for text manipulation, is there
 something faster than lists?
Have a look at the text package[1]. 
   

   
Cheers, 
   
Simon   
   

   
[1] http://hackage.haskell.org/package/text   

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


Re: [Haskell-cafe] writeFile: commitBuffer: invalid argument (Illegal byte sequence)

2011-12-05 Thread dokondr
I don't actually need UTF-16 code in these strings. I would rather filter
them out before writing such strings to a file.
What would be a simple filter to do this?

*Albert Y. C. Lai* trebla at vex.net
haskell-cafe%40haskell.org?Subject=Re%3A%20%5BHaskell-cafe%5D%20writeFile%3A%20commitBuffer%3A%20invalid%20argument%0A%20%28Illegal%20byte%20sequence%29In-Reply-To=%3C4EDBBEB6.3050201%40vex.net%3E
wrote:

On 11-12-04 07:08 AM, dokondr wrote: * In GHC 7.0.3 / Mac OS X when trying
to: ** ** writeFile someFile (Hoping You Have A iPhone When I Do This)
Lol ** Sleep Is When You Close These ---gt; \55357\56384 ** ** I get: *
* commitBuffer: invalid argument (Illegal byte sequence) ** ** The
string I am trying to write can also be seen here: **
http://twitter.com/#!/search/Hoping%20You%20Have%20A%20iPhone%20When%20I%20Do%20This%20lang%3Aenhttp://twitter.com/#%21/search/Hoping%20You%20Have%20A%20iPhone%20When%20I%20Do%20This%20lang%3Aen
** 
http://twitter.com/#%21/search/Hoping%20You%20Have%20A%20iPhone%20When%20I%20Do%20This%20lang%3Aen
*

\55357 and \56384 would be surrogates D83D and DC40 for use in UTF-16 only.
Haskell's Char is not a UTF-16 code unit (unlike early versions of Java and
probably current ones). GHC is correct in rejecting them. Haskell's Char is
a Unicode character directly. If you want the character U+1F440 EYES,
write \128064 directly (or \x1f440, or \x1F440). Use
http://www.unicode.org/charts/ to find out what you are getting into. You
can enter a hexadecimal number or choose a category.

On Sun, Dec 4, 2011 at 11:43 PM, Erik Hesselink hessel...@gmail.com wrote:

 Yes, you can set the text encoding on the handle you're reading this
 text from [1]. The default text encoding is determined by the
 environment, which is why I asked about LANG.

 If you're entering literal strings, see Albert Lai's answer.

 Erik

 [1]
 http://hackage.haskell.org/packages/archive/base/latest/doc/html/System-IO.html#g:23

 On Sun, Dec 4, 2011 at 19:13, dokondr doko...@gmail.com wrote:
  Is there any other way to solve this problem without changing LANG
  environment variable?
 
 
  On Sun, Dec 4, 2011 at 8:27 PM, Erik Hesselink hessel...@gmail.com
 wrote:
 
  What is the value of your LANG environment variable? Does it still
  give the error if you set it to e.g. en_US.UTF-8?
 
  Erik
 
  On Sun, Dec 4, 2011 at 13:12, dokondr doko...@gmail.com wrote:
   Correct url of a bad string:
  
  
 http://twitter.com/#!/search/Hoping%20You%20Have%20A%20iPhone%20When%20I%20Do%20This%20lang%3Aenhttp://twitter.com/#%21/search/Hoping%20You%20Have%20A%20iPhone%20When%20I%20Do%20This%20lang%3Aen
  
  
   On Sun, Dec 4, 2011 at 3:08 PM, dokondr doko...@gmail.com wrote:
  
   Hi,
   In  GHC 7.0.3 / Mac OS X when trying to:
  
   writeFile  someFile (Hoping You Have A iPhone When I Do This) Lol
   Sleep
   Is When You Close These ---gt; \55357\56384
  
   I get:
   commitBuffer: invalid argument (Illegal byte sequence)
  
   The string I am trying to write can also be seen here:
  
  
  
 http://twitter.com/#!/search/Hoping%20You%20Have%20A%20iPhone%20When%20I%20Do%20This%20lang%3Aenhttp://twitter.com/#%21/search/Hoping%20You%20Have%20A%20iPhone%20When%20I%20Do%20This%20lang%3Aen
  
   It looks like 'writeFile' can not write unicode characters.
   Any workarounds?
  
   Thanks!
   Dmitri
  
  
  
  
  
  
  
   ___
   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] List x ByteString x Lazy Bytestring

2011-12-05 Thread Yves Parès
However the performance issues seem odd: text is based on bytestring.

2011/12/5 Simon Hengel s...@typeful.net

 Hi,

  - If bytestring is not suitable for text manipulation, is there
  something faster than lists?
 Have a look at the text package[1].

 Cheers,
 Simon

 [1] http://hackage.haskell.org/package/text

 ___
 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] List x ByteString x Lazy Bytestring

2011-12-05 Thread Johan Tibell
On Mon, Dec 5, 2011 at 6:09 AM, Yves Parès limestr...@gmail.com wrote:

 However the performance issues seem odd: text is based on bytestring.


This is not the case. Text is based on ByteArray#, GHC internal type for
blocks of bytes. The text package depends on the bytestring package because
it allows you to encode/decode Text-ByteString.

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


Re: [Haskell-cafe] How to get a file path to the program invoked?

2011-12-05 Thread dokondr
Balazs, thanks for your comments!
The first comment works just fine.
With / operator I get this:

Main System.Environment.Executable System.FilePath /abc / /
/

Instead of getting /abc/ I get /. What am I doing wrong?

On Mon, Dec 5, 2011 at 6:03 PM, Balazs Komuves bkomu...@gmail.com wrote:


 Two small comments:

 1) This should work on Windows too, if you just leave out the word Posix
 from the source:
 import System.FilePath (splitFileName)

 2) In general when dealing with paths, use the / operator (from
 System.FilePath)
 instead of ++ / ++

 Balazs


 On Mon, Dec 5, 2011 at 1:44 PM, dokondr doko...@gmail.com wrote:

 This is how I finally solved this problem for POSIX complaint system:

 --
 -- TestRun
 --
 module Main where
 import System.Cmd (rawSystem)
 import System.Directory (getCurrentDirectory)
 import System.Environment.Executable (ScriptPath(..), getScriptPath)
 import System.FilePath.Posix (splitFileName)

 main = do

   path - getMyPath
   putStrLn $ myPath =  ++ path
   let cmdLine = path ++ args.sh
   rawSystem cmdLine  [iphone, test-twitts.txt]

 {--
 data ScriptPath Source

 Constructors:
 Executable FilePathit was (probably) a proper compiled executable
 RunGHC FilePathit was a script run by runghc/runhaskell
 Interactive we are in GHCi
 --}

 getMyPath = do
   curDir - getCurrentDirectory -- from System.Directory
   scriptPath  - getScriptPath -- from System.Environment.Executable
   let path = getMyPath' scriptPath curDir
   return path

 getMyPath' (Executable path) _ = fst (splitFileName path)
 getMyPath' (RunGHC path) _  = fst (splitFileName path)
 getMyPath' Interactive curDir = curDir++/



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


Re: [Haskell-cafe] List x ByteString x Lazy Bytestring

2011-12-05 Thread Daniel Fischer
On Monday 05 December 2011, 14:14:56, John Sneer wrote:
 I've used Haskell and GHC to solve particular real life application. 4
   tools were developed and their function is almost the same - they
   modify textual input according to patterns found in the text. Thus, it

Hmm, modification can be a problem for ByteStrings, since it entails 
copying. That could be worse for strict BytStrings than lazy, if in the 
lazy ByteString you can reuse many chunks.

   is something like a compiler, the result is also a text and it is not
   parsed to tokens as patterns appear on a different level.
 
   The tools differ in tasks and number of modifications performed,
   otherwise, in principal, they are very much similar.
 
   I used lists (Prelude, Data.List) to develop the tools. After
   successfully completing the development, I've started to optimize the
   code to make the tools faster. After modification of some algorithms
   (which dropped the processing time notably), I started to change data
   structures. I swapped lists with lazy bytestrings. Nevertheless, what
   an unpleasant surprise, the processing speed dropped down,
   significantly / more then 30% time needed). 

Two main possibilities:
1. your algorithm isn't suited for ByteStrings
2. you're doing it wrong

The above indicates 1., but without a more detailed description and/or 
code, it's impossible to tell.

 
   So my questions follow:
 - What kind of application is lazy bytestring suitable for?

Anything that involves examining large sequences of bytes (or ASCII 
[latin1/other single-byte encoding] text) basically sequentially (it's not 
good if you have to jump forwards and backwards a lot and far).
Also some types of modification of such data.

 - Would it be worth using strict bytestring even if input files may be
 large? (They would fit in memory, but may consume whole)

Probably not, see above. But see above.

 - If bytestring is not suitable for text manipulation, is there
 something faster than lists?

text has already been mentioned, but again, there are types of manipulation 
it's not well-suited for and where a linked list may be superior.

 - It would be nice to have native sort for lazy bytestring - would it be
 slower than  pack $ Data.List.sort $ unpack ?

The natural sort for ByteStrings would be a counting sort,
O(alphabet size + length), so for long ByteStrings, it should be 
significantly faster than pack . sort . unpack, but for short ones, it 
would be significantly slower.

 - If bytestring is suitable for text manipulation could we have some
 hGetTextualContents which translates Windows EOL (CR+LF) to LF?

Doing such a transformation would be kind of against the purpose of 
ByteStrings, I think.  Isn't the point of ByteStrings to get the raw bytes 
as efficiently as possible?


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


Re: [Haskell-cafe] How to get a file path to the program invoked?

2011-12-05 Thread Ozgur Akgun
Hi.

On 5 December 2011 14:53, dokondr doko...@gmail.com wrote:

 Main System.Environment.Executable System.FilePath /abc / /
 /

 Instead of getting /abc/ I get /. What am I doing wrong?


It thinks the second path is an absolute path.

Combine two paths, if the second path isAbsolute, then it returns the
second.

http://hackage.haskell.org/packages/archive/filepath/latest/doc/html/System-FilePath-Posix.html#v:combine

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


Re: [Haskell-cafe] How to get a file path to the program invoked?

2011-12-05 Thread Daniel Fischer
On Monday 05 December 2011, 15:53:35, dokondr wrote:
 Balazs, thanks for your comments!
 The first comment works just fine.
 With / operator I get this:
 
 Main System.Environment.Executable System.FilePath /abc / /
 /
 
 Instead of getting /abc/ I get /. What am I doing wrong?

The second path is absolute.

/ is an alias for combine, the docs for that say:

Combine two paths, if the second path isAbsolute, then it returns the 
second.

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


Re: [Haskell-cafe] List x ByteString x Lazy Bytestring

2011-12-05 Thread Yves Parès
Oh, sorry, my bad.
I misunderstood the dependency.

2011/12/5 Johan Tibell johan.tib...@gmail.com

 On Mon, Dec 5, 2011 at 6:09 AM, Yves Parès limestr...@gmail.com wrote:

 However the performance issues seem odd: text is based on bytestring.


 This is not the case. Text is based on ByteArray#, GHC internal type for
 blocks of bytes. The text package depends on the bytestring package because
 it allows you to encode/decode Text-ByteString.

 -- Johan


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


Re: [Haskell-cafe] How to get a file path to the program invoked?

2011-12-05 Thread Erik Hesselink
The operator / is an alias for `combine`, which the documentation says:

  Combine two paths, if the second path isAbsolute, then it returns the second.

In this case, / is absolute, so it is returned.

If you wish to add a trailing path separator, use `addTrailingPathSeparator`.

Erik

On Mon, Dec 5, 2011 at 15:53, dokondr doko...@gmail.com wrote:
 Balazs, thanks for your comments!
 The first comment works just fine.
 With / operator I get this:

 Main System.Environment.Executable System.FilePath /abc / /
 /

 Instead of getting /abc/ I get /. What am I doing wrong?

 On Mon, Dec 5, 2011 at 6:03 PM, Balazs Komuves bkomu...@gmail.com wrote:


 Two small comments:

 1) This should work on Windows too, if you just leave out the word Posix
 from the source:
 import System.FilePath (splitFileName)

 2) In general when dealing with paths, use the / operator (from
 System.FilePath)
 instead of ++ / ++

 Balazs


 On Mon, Dec 5, 2011 at 1:44 PM, dokondr doko...@gmail.com wrote:

 This is how I finally solved this problem for POSIX complaint system:

 --
 -- TestRun
 --
 module Main where
 import System.Cmd (rawSystem)
 import System.Directory (getCurrentDirectory)
 import System.Environment.Executable (ScriptPath(..), getScriptPath)
 import System.FilePath.Posix (splitFileName)

 main = do

   path - getMyPath
   putStrLn $ myPath =  ++ path
   let cmdLine = path ++ args.sh
   rawSystem cmdLine  [iphone, test-twitts.txt]

 {--
 data ScriptPath Source

 Constructors:
 Executable FilePath    it was (probably) a proper compiled executable
 RunGHC FilePath        it was a script run by runghc/runhaskell
 Interactive     we are in GHCi
 --}

 getMyPath = do
   curDir - getCurrentDirectory -- from System.Directory
   scriptPath  - getScriptPath -- from System.Environment.Executable
   let path = getMyPath' scriptPath curDir
   return path

 getMyPath' (Executable path) _ = fst (splitFileName path)
 getMyPath' (RunGHC path) _  = fst (splitFileName path)
 getMyPath' Interactive curDir = curDir++/



 ___
 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] How to get a file path to the program invoked?

2011-12-05 Thread dokondr
Thanks,
'addTrailingPathSeparator' works just fine !

On Mon, Dec 5, 2011 at 7:52 PM, Erik Hesselink hessel...@gmail.com wrote:

 The operator / is an alias for `combine`, which the documentation says:

  Combine two paths, if the second path isAbsolute, then it returns the
 second.

 In this case, / is absolute, so it is returned.

 If you wish to add a trailing path separator, use
 `addTrailingPathSeparator`.

 Erik

 On Mon, Dec 5, 2011 at 15:53, dokondr doko...@gmail.com wrote:
  Balazs, thanks for your comments!
  The first comment works just fine.
  With / operator I get this:
 
  Main System.Environment.Executable System.FilePath /abc / /
  /
 
  Instead of getting /abc/ I get /. What am I doing wrong?
 
  On Mon, Dec 5, 2011 at 6:03 PM, Balazs Komuves bkomu...@gmail.com
 wrote:
 
 
  Two small comments:
 
  1) This should work on Windows too, if you just leave out the word
 Posix
  from the source:
  import System.FilePath (splitFileName)
 
  2) In general when dealing with paths, use the / operator (from
  System.FilePath)
  instead of ++ / ++
 
  Balazs
 
 
  On Mon, Dec 5, 2011 at 1:44 PM, dokondr doko...@gmail.com wrote:
 
  This is how I finally solved this problem for POSIX complaint system:
 
  --
  -- TestRun
  --
  module Main where
  import System.Cmd (rawSystem)
  import System.Directory (getCurrentDirectory)
  import System.Environment.Executable (ScriptPath(..), getScriptPath)
  import System.FilePath.Posix (splitFileName)
 
  main = do
 
path - getMyPath
putStrLn $ myPath =  ++ path
let cmdLine = path ++ args.sh
rawSystem cmdLine  [iphone, test-twitts.txt]
 
  {--
  data ScriptPath Source
 
  Constructors:
  Executable FilePathit was (probably) a proper compiled executable
  RunGHC FilePathit was a script run by runghc/runhaskell
  Interactive we are in GHCi
  --}
 
  getMyPath = do
curDir - getCurrentDirectory -- from System.Directory
scriptPath  - getScriptPath -- from System.Environment.Executable
let path = getMyPath' scriptPath curDir
return path
 
  getMyPath' (Executable path) _ = fst (splitFileName path)
  getMyPath' (RunGHC path) _  = fst (splitFileName path)
  getMyPath' Interactive curDir = curDir++/
 
 
 
  ___
  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] Poll: Do you want a mascot? -- please stop this

2011-12-05 Thread Mark Lentczner
On 23/11/11 19:11, heathmatlock wrote:
 Question: Do you want a mascot?


No.

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


Re: [Haskell-cafe] could not create compact unwind

2011-12-05 Thread Mark Lentczner
The ld warning is benign. You can safely ignore it. It is a known
issue with GHC and the latest Mac OS X tool chain, and we are stuck
with it for awhile:  http://hackage.haskell.org/trac/ghc/ticket/5019
The best way to remove versions of Haskell on a Mac is now my shiny
new Mac uninstaller! I just put out a release candidate yesterday.
You can find it here:
Source: UninstallHS.hs  (just runhaskell this)Executable:
uninstall-hs.tgz  (unpack and run if your ghc is broken)
Running without will just list what's there and suggest what to do
next. It is dry-run by default.
 - Mark
PS.: rm -rf ~/.ghc only removes the package databases, not the
packages themselves. It also removes your ghci configuration, so I
don't recommend it.

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


Re: [Haskell-cafe] Poll: Do you want a mascot? -- please stop this

2011-12-05 Thread Daniel Fischer
On Monday 05 December 2011, 17:03:35, Mark Lentczner wrote:
 On 23/11/11 19:11, heathmatlock wrote:
  Question: Do you want a mascot?
 
 No.

I thought it was dead. Since it isn't: also no.

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


Re: [Haskell-cafe] Haskell at University in Munich

2011-12-05 Thread Janis Voigtländer

Am 05.12.2011 12:00, schrieb bar...@sudety.it:

Hello Haskell Cafe,

I would be grateful for any information regarding Haskell (or at least
Functional Programming) lectures at Universities near to Munich, Germany
(Master or Bachelor). Unconfirmed information I've got regarding LMU and TUM
are not promising.


Is Munich really that bad? FP'ers at LMU and TUM, please speak up.
(I know that at least research-wise there are quite a few around there,
though I don't know what they do in teaching.)


If Munich and 200 km circle do not provide with any offer, perhaps


Less than 200 km from Munich: 
http://db.inf.uni-tuebingen.de/teaching/ws1112/afp


Also, Germany extends farther than 200 km beyond Munich. :-)

Say, Bonn:

http://www.iai.uni-bonn.de/~jv/teaching/dp11/

http://www.iai.uni-bonn.de/~jv/teaching/ffp/


you may know what is available in Europe, limiting language of study
to [German, English,Polish]?


The thread Sean pointed to may provide information on that. Obvious
candidates are Utrecht and Chalmers, both teaching in English I suppose,
at least at Master level.

Best,
Janis.

--
Jun.-Prof. Dr. Janis Voigtländer
http://www.iai.uni-bonn.de/~jv/
mailto:j...@iai.uni-bonn.de

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


Re: [Haskell-cafe] GHCi and Cairo on Windows

2011-12-05 Thread Malcolm Wallace
On Windows, it is necessary to add to your PATH variable the bin directory 
where the gtk+ DLL lives.  Note, this is the C DLL, not the Haskell one 
produced by gtk2hs.  For instance, on my machine the relevant directory is 
C:\workspace\ext\gtk+-2.20\bin. It is quite likely different on yours.



On 5/12/2011, at 8:23, smelt...@eecs.oregonstate.edu wrote:

 In effort to keep my work cross-platform, I am trying to get GHCi and Cairo 
 working together nicely on Windows (as a back-end to Diagrams, if it 
 matters.) When loading the library in GHCi I get the following error:
 
 Loading package cairo-0.12.2 ... linking ... ghc: unable to load package 
 `cairo-0.12.2'
 
 I am able to build, link, and execute successfully using 'ghc --make' so I 
 know the libraries are installed correctly. I'm using GHC as packaged in the 
 most recent version of the Haskell Platform and the most recent all-in-one 
 Windows bundle of GTK.
 
 I've seen quite similar errors reported months ago with no apparent solution.
 
 Any help would be appreciated!
 
 --Karl
 
 ___
 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] GHCi and Cairo on Windows

2011-12-05 Thread Karl Smeltzer
Thanks, but I don't believe this is my problem. The directory into which
I've installed the GTK library is indeed on my path and is found without
having to specify it when I compile with GHC. It's just the interpreter
that seems to be failing.

On Mon, Dec 5, 2011 at 1:32 PM, Malcolm Wallace malcolm.wall...@me.comwrote:

 On Windows, it is necessary to add to your PATH variable the bin directory
 where the gtk+ DLL lives.  Note, this is the C DLL, not the Haskell one
 produced by gtk2hs.  For instance, on my machine the relevant directory is
 C:\workspace\ext\gtk+-2.20\bin. It is quite likely different on yours.



 On 5/12/2011, at 8:23, smelt...@eecs.oregonstate.edu wrote:

  In effort to keep my work cross-platform, I am trying to get GHCi and
 Cairo working together nicely on Windows (as a back-end to Diagrams, if it
 matters.) When loading the library in GHCi I get the following error:
 
  Loading package cairo-0.12.2 ... linking ... ghc: unable to load package
 `cairo-0.12.2'
 
  I am able to build, link, and execute successfully using 'ghc --make' so
 I know the libraries are installed correctly. I'm using GHC as packaged in
 the most recent version of the Haskell Platform and the most recent
 all-in-one Windows bundle of GTK.
 
  I've seen quite similar errors reported months ago with no apparent
 solution.
 
  Any help would be appreciated!
 
  --Karl
 
  ___
  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] ANNOUNCE: monad-control-0.3

2011-12-05 Thread Joey Hess
I'm trying to convert from 0.2 to 0.3, but in way over my head.

{-# LANGUAGE GeneralizedNewtypeDeriving #-}
newtype Annex a = Annex { runAnnex :: StateT AnnexState IO a }
deriving (
Monad,
MonadIO,
-- MonadControlIO
MonadBaseControl IO
)

I added that after seeing this when I changed some code to use
the new liftBaseOp instead of liftIOOp. (They're equivilant, right?)

No instance for (MonadBaseControl IO Annex)
 arising from a use of `liftBaseOp'

But with ghc 7.0.4, the derivation fails:

Annex.hs:45:17:
Can't make a derived instance of `MonadBaseControl IO Annex'
  (even with cunning newtype deriving):
  the class has associated types
In the newtype declaration for `Annex'

The only way I can find to make my code compile is to lose the newtype.
But of course that makes for some ugly type messages.

-- 
see shy jo


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


Re: [Haskell-cafe] ANNOUNCE: monad-control-0.3

2011-12-05 Thread Michael Snoyman
On Tue, Dec 6, 2011 at 5:03 AM, Joey Hess j...@kitenet.net wrote:
 I'm trying to convert from 0.2 to 0.3, but in way over my head.

 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 newtype Annex a = Annex { runAnnex :: StateT AnnexState IO a }
        deriving (
                Monad,
                MonadIO,
                -- MonadControlIO
                MonadBaseControl IO
        )

 I added that after seeing this when I changed some code to use
 the new liftBaseOp instead of liftIOOp. (They're equivilant, right?)

    No instance for (MonadBaseControl IO Annex)
         arising from a use of `liftBaseOp'

 But with ghc 7.0.4, the derivation fails:

 Annex.hs:45:17:
    Can't make a derived instance of `MonadBaseControl IO Annex'
      (even with cunning newtype deriving):
      the class has associated types
    In the newtype declaration for `Annex'

 The only way I can find to make my code compile is to lose the newtype.
 But of course that makes for some ugly type messages.

 --
 see shy jo

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


Hi Joey,

I just spent a fair amount of time yesterday upgrading packages to
monad-control 0.3. What I had to do was add in the MonadTransControl
and MonadBaseControl instances manually. It's actually not too
difficult; just copy out the instance for StateT and make a few
changes. Be warned that Bas used some tricky CPP stuff, however, which
you'll have to unwind ;).

Michael

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


Re: [Haskell-cafe] ANNOUNCE: monad-control-0.3

2011-12-05 Thread Joey Hess
Michael Snoyman wrote:
 I just spent a fair amount of time yesterday upgrading packages to
 monad-control 0.3. What I had to do was add in the MonadTransControl
 and MonadBaseControl instances manually. It's actually not too
 difficult; just copy out the instance for StateT and make a few
 changes. Be warned that Bas used some tricky CPP stuff, however, which
 you'll have to unwind ;).

I forgot to mention that I tried doing that, based on the example in the
haddock, but failed miserably. Care to share a working example, perhaps
in the form of a patch to the monad-control haddock? :)

-- 
see shy jo


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


Re: [Haskell-cafe] ANNOUNCE: monad-control-0.3

2011-12-05 Thread Michael Snoyman
On Tue, Dec 6, 2011 at 6:04 AM, Joey Hess j...@kitenet.net wrote:
 Michael Snoyman wrote:
 I just spent a fair amount of time yesterday upgrading packages to
 monad-control 0.3. What I had to do was add in the MonadTransControl
 and MonadBaseControl instances manually. It's actually not too
 difficult; just copy out the instance for StateT and make a few
 changes. Be warned that Bas used some tricky CPP stuff, however, which
 you'll have to unwind ;).

 I forgot to mention that I tried doing that, based on the example in the
 haddock, but failed miserably. Care to share a working example, perhaps
 in the form of a patch to the monad-control haddock? :)

 --
 see shy jo

Maybe this will help[1]. It's using RWST instead of StateT, but it's
the same idea.

[1] 
https://github.com/yesodweb/yesod/commit/7619e4e9dd88c152d1e00b6fea073c3d52dc797f#L0R105

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


Re: [Haskell-cafe] List x ByteString x Lazy Bytestring

2011-12-05 Thread Axman
I wonder what profiling tells you, you should identify where your
performance problems actually are before trying to optimise.

Some things that might help are using something like Blaze-Builder[1] to
construct your bytestrings for output. I'm hoping that they're sufficiently
lazy that you can lazily read in the input, and write output as you've made
it available. if you use the blaze-builder-enumerator package, you should
be able to get exactly what you want (but probably requires some minor
knowledge of iteratees).

Anyway, without seeing your code, we can't easily tell you what's wrong.

Cheers,
Alex

[1] http://hackage.haskell.org/package/blaze-builder
[2] http://hackage.haskell.org/package/blaze-builder-enumerator

On 6 December 2011 02:11, Yves Parès limestr...@gmail.com wrote:

 Oh, sorry, my bad.
 I misunderstood the dependency.


 2011/12/5 Johan Tibell johan.tib...@gmail.com

 On Mon, Dec 5, 2011 at 6:09 AM, Yves Parès limestr...@gmail.com wrote:

 However the performance issues seem odd: text is based on bytestring.


 This is not the case. Text is based on ByteArray#, GHC internal type for
 blocks of bytes. The text package depends on the bytestring package because
 it allows you to encode/decode Text-ByteString.

 -- Johan



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




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


[Haskell-cafe] Complete package description list

2011-12-05 Thread Shakthi Kannan
Hi,

I would like to know:

1. The correct source to get the complete list of available Haskell
package descriptions
2. Any feed or notification mechanism to get newer updates on packages

How often does the 00-index.tar.gz file from:

  http://hackage.haskell.org/packages/archive/00-index.tar.gz

get updated? Or if there is a newer version, where is it made available?

Given 00-index.tar.gz, and using the following RSS feed:

  http://hackage.haskell.org/packages/archive/recent.rss

give me the complete list of available packages?

Appreciate any suggestions in this regard,

Thanks!

SK

-- 
Shakthi Kannan
http://www.shakthimaan.com

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