Re: [Haskell-cafe] [Haskell] ANNOUNCE: genprog-0.1

2010-12-09 Thread Ketil Malde
Andrew Coppin andrewcop...@btinternet.com writes:

 A change to a gene does not make you to have a extra bone. It can
 make you to have your hand slighltly longer. or shorter. 

 Actually I suspect it does - or at least can do. It's just a rather
 rare event.

Bodily development is regulated by a cluster of genes (the HOX
cluster).  The modern-day Galvani experiment is reshuffling this in
fruit fly to make antenna into legs.

I don't think it happens all that much in nature, and I guess any
resulting offspring would have reduced fitness.

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants

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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Vincent Hanquez

 On 08/12/10 20:25, Luke Palmer wrote:

I could upload a new version of mtl if I wanted.  Plenty of people
would install it.


Correct me if i'm wrong; You would appear in the UploadedBy, and then 
you might be challenged by the traditional uploaders or attentive users 
(most users wouldn't know of course) to give a reason of doing the upload.


--
Vincent

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


Re: [Haskell-cafe] [Haskell] ANNOUNCE: genprog-0.1

2010-12-09 Thread Ketil Malde
Mitar mmi...@gmail.com writes:

 Neither Haskell nor any conventional language has [evolved to evolve]

 True.

Well - thinking about it, there's no fundamental difference between
genetic algorithms - where you have a genome in the form of a set of
parameters and genetic programming - where the genome is a program of
some sort, typically Lisp code, since the syntax tree is so accessible
and malleable.

In either case, you have an interpreter that interprets the genome, the
difference is mainly in the expressive power of the language.  I haven't
looked closely, but I suspect you might not want Turing-completeness in
either case (Alberto?).

But yes, by designing the language to evolve, we can get a head start
compared to nature.

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants

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


Re: [Haskell-cafe] ANNOUNCE: mime-mail 0.1.0

2010-12-09 Thread Magnus Therning
On Wed, Dec 8, 2010 at 19:11, Michael Snoyman mich...@snoyman.com wrote:
 Hi all (again),

 I'm happy to announce the second major release of the mime-mail[1]
 package. mime-mail is a package providing support for rendering
 multipart emails. This new release introduces:

Very nice!  Are you working on a parser to accompany the renderer? ;-)

/M

-- 
Magnus Therning                      OpenPGP: 0xAB4DFBA4
email: mag...@therning.org   jabber: mag...@therning.org
twitter: magthe               http://therning.org/magnus

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


Re: [Haskell-cafe] ANNOUNCE: mime-mail 0.1.0

2010-12-09 Thread Michael Snoyman
On Thu, Dec 9, 2010 at 11:48 AM, Magnus Therning mag...@therning.org wrote:
 On Wed, Dec 8, 2010 at 19:11, Michael Snoyman mich...@snoyman.com wrote:
 Hi all (again),

 I'm happy to announce the second major release of the mime-mail[1]
 package. mime-mail is a package providing support for rendering
 multipart emails. This new release introduces:

 Very nice!  Are you working on a parser to accompany the renderer? ;-)

 /M


I'm not currently, though that is definitely a direction the project
could expand to. I've already written some multipart-parsing code in
wai-extra, though that code probably wouldn't help here too much. The
quoted-printable decoding is simple enough to write, and
base64-decoding has already been solved. Is this a challenge anyone
out there wants to undertake?

Michael

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


Re: [Haskell-cafe] dot-ghci files

2010-12-09 Thread Ketil Malde
Tony Morris tonymor...@gmail.com writes:

 I teach haskell quite a lot. I recommend using .ghci files in projects.
 Today I received complaints about the fact that ghci will reject .ghci
 if it is group-writeable. 

Huh? That's pretty weird.

 I am wondering if these complaints have legitimate grounds i.e. maybe
 you want to have group write on that file for some reason.

Well - one common setup is to create users along with their own group,
and optional membership in other groups, combined with an umask of 002
(i.e., files are created group-writeable) or perhaps 027
(group-readable, but not accessible at all to others).

This way, a group-shared directory can have the setgid bit set, and when
a user writes a file in this directory, the file will inherit the group
from the directory, and be writeable by other people of the group.
Unless it also has the sticky bit set.

(Hmm, aren't Unix permissions supposed to be the *simple* solution? It's
been a while since I looked at this, so please correct if I got the
details wrong. :-)

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants

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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Vincent Hanquez

 On 08/12/10 10:41, Ketil Malde wrote:

Yes.  And you should start with assessing how much cost and
inconvenience you are willing to suffer for the improvement in
security you gain.  In this case, my assertion is that the marginal
worsening of security by having a mirror of hackage even without signing
of packages etc., is less than the marginal improvement in usability.

I'm a bit surprised to find that there seems to be a lot of opposition
to this view, but perhaps the existing structure is more secure than I
thought?  Or the benefit of a mirror is exaggerated - I can see how
it would be annoying to have hackage down, but it hasn't happened to my,
so perhaps those complaining about it just were very unlucky.


You might have misunderstood what I was talking about. I'm proposing 
signing on the hackage server on reception of the package,
where it can be verified by cabal that the package hasn't been signed 
properly. This is not about all the way
signing of every uploaders, with chain of trust and such (which has been 
proposed by wren).


The implication on the users should be minimal. I mean they shouldn't 
even know about it. It would only complain if the signature isn't valid.


--
Vincent

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


Re: [Haskell-cafe] dot-ghci files

2010-12-09 Thread Christian Maeder
Am 09.12.2010 08:01, schrieb Tony Morris:
 I teach haskell quite a lot. I recommend using .ghci files in projects.
 Today I received complaints about the fact that ghci will reject .ghci
 if it is group-writeable. I didn't offer an opinion on the matter. I am
 wondering if these complaints have legitimate grounds i.e. maybe you
 want to have group write on that file for some reason.
 
 I'd appreciate some comments on this issue. Thanks.

Indeed I get:

 GHCi, version 7.0.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
*** WARNING: /home/maeder/.ghci is writable by someone else, IGNORING!

and I'm surprised!

Cheers Christian

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


Re: [Haskell-cafe] dot-ghci files

2010-12-09 Thread Vincent Hanquez

 On 09/12/10 07:01, Tony Morris wrote:

I teach haskell quite a lot. I recommend using .ghci files in projects.
Today I received complaints about the fact that ghci will reject .ghci
if it is group-writeable. I didn't offer an opinion on the matter. I am
wondering if these complaints have legitimate grounds i.e. maybe you
want to have group write on that file for some reason.

I'd appreciate some comments on this issue. Thanks.

You can insert *any* commands in the ghci file. including some system 
commands, to delete everything.
That's probably the reason to deny a file to be group writable (anyone 
in a group could write bad thing in there)


you can try putting the following in the .ghci to check for example:


readFile somefileyouwanttoread = writeFile /tmp/apublicplace


--
Vincent


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


Re: [Haskell-cafe] ANNOUNCE: mime-mail 0.1.0

2010-12-09 Thread Nicolas Pouillard
On Thu, 09 Dec 2010 01:10:59 +, Maciej Piechotka uzytkown...@gmail.com 
wrote:
 On Wed, 2010-12-08 at 21:11 +0200, Michael Snoyman wrote:
  Hi all (again),
  
  I'm happy to announce the second major release of the mime-mail[1]
  package. mime-mail is a package providing support for rendering
  multipart emails. This new release introduces:
  
  * A partHeaders record, allowing you to place arbitrary headers on
  individual parts of a message. This is especially useful for ContentID
  * Support for quoted-printable. There are two new Encoding
  constructors added: QuotedPrintableText and QuotedPrintableBinary.
  They differ in how they treat newline characters: the latter outputs
  CRs and LFs in an escaped form, while the former strips all CRs and
  outputs LFs as the ASCII codes for \r\n.
  * Support for encoded-word for header values. This is a completely
  transparent change: now if you use non-ASCII characters in your header
  values, mime-mail will automatically encode appropriately.
  
  Enjoy!
  Michael
  
  [1] http://hackage.haskell.org/package/mime-mail
 
 Sorry I'm asking here (I know it is slightly off-topic) - does anyone
 knows package to parse MIME messages operating on ByteString/Text
 instead of String (reverse of mime-mail)?

I have a fork of the mime library to work on bytestring, it worked for
me but didn't took the time to release it. (I sent multiple mails to
the original author though). I've just setup a repo on github [1], feel
free to test, fork, polish...

Have fun,

[1]: https://github.com/np/mime-bytestring

-- 
Nicolas Pouillard
http://nicolaspouillard.fr

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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Markus Läll
My take on the issue is that we should make it possible to easily mirror
hackage (what the OP asked for), so that people could use it when they
wanted to, and have a list of the mirrors on the wiki. This way those who
are interested can use them. Like when the mirror is faster/closer to them
or to help out when hackage is temporarily down. Those who need the security
can choose not to use mirrors, or make their own (private), or develop a
secure scheme, when it doesn't exist yet.

It's perfectly understandable, that people doing work/serious stuff need the
guarantees, but I bet a many of us are just playing around and developing
things for themselves.

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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Ivan Lazar Miljenovic
On 9 December 2010 20:55, Vincent Hanquez t...@snarc.org wrote:

 You might have misunderstood what I was talking about. I'm proposing signing
 on the hackage server on reception of the package,
 where it can be verified by cabal that the package hasn't been signed
 properly.

By cabal, are you referring to Cabal or cabal-install?  If the
former, then I'm not sure how exactly it would do such verification
since it doesn't have any notion of the internet as far as I'm aware;
if the latter then it means absolutely nothing for those of us that do
not use cabal-install for most packages.

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com

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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Vincent Hanquez
On Thu, Dec 09, 2010 at 10:45:39PM +1100, Ivan Lazar Miljenovic wrote:
 On 9 December 2010 20:55, Vincent Hanquez t...@snarc.org wrote:
 
  You might have misunderstood what I was talking about. I'm proposing signing
  on the hackage server on reception of the package,
  where it can be verified by cabal that the package hasn't been signed
  properly.
 
 By cabal, are you referring to Cabal or cabal-install?  If the
 former, then I'm not sure how exactly it would do such verification
 since it doesn't have any notion of the internet as far as I'm aware;
 if the latter then it means absolutely nothing for those of us that do
 not use cabal-install for most packages.

I don't really know the difference between Cabal and cabal-install, but

Something is downloading the .tar.gz, and that thing can always download an 
extra
.tar.gz.sign file which contains a way to verify that's the .tar.gz is genuinely
the one that has been received by hackage.

For those not using the thing-that-download-archive to get their package from
hackage, they can build the same mechanism that download an extra file, and
check the signature. Or they can even choose not to bother, and just download
the package as they just did before.

Note that, I'm not actually inventing anything new here, this is a common way
to distribute software (linux distributions, many opensource softwares, etc).

-- 
Vincent

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


[Haskell-cafe] Enhancing the security of hackage

2010-12-09 Thread Ketil Malde
Vincent Hanquez t...@snarc.org writes:

 You might have misunderstood what I was talking about. I'm proposing
 signing on the hackage server on reception of the package,

Okay, fair enough.  You can't *enforce* this, of course, since I might
work without general internet access but a local mirror, but you could
require me to run 'cabal --dont-check-signatures' or similar, so this
would still make a hostile-operated mirror less useful.

OTOH, if I should suggest improving the security of Hackage, I would
prioritize:

a) email the maintainer whenever a new upload is accepted - preferably
   with a notice about whether the build works or fails.  Mabye also
   highlight the case when maintainer differs from uploader - if that
   doesn't give a ton of false positives.

b) email the *previous* maintainer when a new upload is accepted and the
   maintainer field has changed.

This way, somebody is likely to actually *notice* when some evil person
uploads a trojan mtl or bytestring or whatever.  The downside is more
mail, and the people who run Hackage have been wary about this.  So
perhaps even this is on the wrong side of the cost/benefit fence.

(People with admin privileges (staff or hackers) to hackage can of course
 still work around everything - crypto signatures or email-schemes.)

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants

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


Re: [Haskell-cafe] Enhancing the security of hackage

2010-12-09 Thread Lally Singh
On Thu, Dec 9, 2010 at 7:04 AM, Ketil Malde ke...@malde.org wrote:
 Vincent Hanquez t...@snarc.org writes:

 You might have misunderstood what I was talking about. I'm proposing
 signing on the hackage server on reception of the package,

 Okay, fair enough.  You can't *enforce* this, of course, since I might
 work without general internet access but a local mirror, but you could
 require me to run 'cabal --dont-check-signatures' or similar, so this
 would still make a hostile-operated mirror less useful.

 OTOH, if I should suggest improving the security of Hackage, I would
 prioritize:

 a) email the maintainer whenever a new upload is accepted - preferably
   with a notice about whether the build works or fails.  Mabye also
   highlight the case when maintainer differs from uploader - if that
   doesn't give a ton of false positives.

 b) email the *previous* maintainer when a new upload is accepted and the
   maintainer field has changed.

 This way, somebody is likely to actually *notice* when some evil person
 uploads a trojan mtl or bytestring or whatever.  The downside is more
 mail, and the people who run Hackage have been wary about this.  So
 perhaps even this is on the wrong side of the cost/benefit fence.

 (People with admin privileges (staff or hackers) to hackage can of course
  still work around everything - crypto signatures or email-schemes.)

 -k

Also, perhaps put the signatures on a separate machine from the one
containing .tar.gz.  For a 3rd party to corrupt a package, they'd need
to hack 2 machines.

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


Re: [Haskell-cafe] Enhancing the security of hackage

2010-12-09 Thread Ivan Lazar Miljenovic
On 9 December 2010 23:04, Ketil Malde ke...@malde.org wrote:
 [snip]
 This way, somebody is likely to actually *notice* when some evil person
 uploads a trojan mtl or bytestring or whatever.  The downside is more
 mail, and the people who run Hackage have been wary about this.  So
 perhaps even this is on the wrong side of the cost/benefit fence.

Whilst we're wishfully thinking, why not register a package to an
individual or a group, and only allow them to upload it?  Possibly
linking this to a group on community.haskell.org or something.

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com

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


[Haskell-cafe] ICFP 2011: Call for papers

2010-12-09 Thread Wouter Swierstra
=

Call for Papers

   ICFP 2011: International Conference on Functional Programming

   Tokyo, Japan, Monday 19 -- Wednesday 21 September 2011

   http://www.icfpconference.org/icfp2011

=

Important Dates
~~~

Titles, abstracts  keywords due:  Thursday 17 March 2011 at 14:00 UTC
 Submissions due:  Thursday 24 March 2011 at 14:00 UTC
 Author response:  Tuesday  Wednesday 17-18 May
Notification:  Monday 30 May  2011
  Final copy due:  Friday 01 July  2011
  Conference:  Monday-Wednesday 19-21 September 2011

Scope
~

ICFP 2011 seeks original papers on the art and science of functional
programming.  Submissions are invited on all topics from principles to
practice, from foundations to features, and from abstraction to
application.  The scope includes all languages that encourage
functional programming, including both purely applicative and
imperative languages, as well as languages with objects, concurrency,
or parallelism.  Particular topics of interest include

* Language Design: type systems; concurrency and distribution;
 modules; components and composition; metaprogramming; relations to
 imperative, object-oriented, or logic programming; interoperability

* Implementation: abstract machines; virtual machines; interpretation;
 compilation; compile-time and run-time optimization; memory
 management; multi-threading; exploiting parallel hardware; interfaces
 to foreign functions, services, components, or low-level machine
 resources

* Software-Development Techniques: algorithms and data structures;
 design patterns; specification; verification; validation; proof
 assistants; debugging; testing; tracing; profiling

* Foundations: formal semantics; lambda calculus; rewriting; type
 theory; mathematical logic; monads; continuations; delimited
 continuations; global, delimited, or local effects

* Transformation and Analysis: abstract interpretation; partial
 evaluation; program transformation; program calculation; program
 proofs; normalization by evaluation

* Applications and Domain-Specific Languages: symbolic computing;
 formal-methods tools; artificial intelligence; systems programming;
 distributed-systems and web programming; hardware design; databases;
 XML processing; scientific and numerical computing; graphical user
 interfaces; multimedia programming; scripting; system
 administration; security; education

* Functional Pearls: elegant, instructive, and fun essays on
 functional programming

* Experience Reports: short papers that provide evidence that
 functional programming really works or describe obstacles that have
 kept it from working in a particular application

Abbreviated instructions for authors


* By 17 March 2011, 14:00 UTC, submit a title, an abstract of at most
 300 words, and keywords.

* By 24 March 2011, 14:00 UTC, submit a full paper of at most 12 pages
 (6 pages for a Functional Pearl and for an Experience Report),
 including bibliography and figures.

The deadlines will be strictly enforced and papers exceeding the page
limits will be summarily rejected.

* Authors have the option to attach supplementary material to a submission,
 on the understanding that reviewers may choose not to look at it.

* Each submission must adhere to SIGPLAN's republication policy, as
 explained on the web at
   http://www.acm.org/sigplan/republicationpolicy.htm

 In addition, authors of resubmitted (but previously rejected) papers
 have the option to attach an annotated copy of the reviews of their
 previous submission(s), explaining how they have addressed these
 previous reviews in the present submission.  If a reviewer
 identifies him/herself as a reviewer of this previous submission and
 wishes to see how his/her comments have been addressed, the program
 chair will communicate to this reviewer the annotated copy of
 his/her previous review.  Otherwise, no rewiewer will read the
 annotated copies of the previous reviews.

Overall, a submission will be evaluated according to its relevance,
correctness, significance, originality, and clarity.  It should
explain its contributions in both general and technical terms, clearly
identifying what has been accomplished, explaining why it is
significant, and comparing it with previous work.  The technical
content should be accessible to a broad audience.  Functional Pearls
and Experience Reports are separate categories of papers that need not
report original research results and must be marked as such at the
time of submission.  Detailed guidelines on both categories are on the
conference web site.

Proceedings will be published by ACM Press.  Authors of accepted
submissions are expected to transfer the copyright to the
ACM.  Presentations 

Re: [Haskell-cafe] [Haskell] ANNOUNCE: genprog-0.1

2010-12-09 Thread Alberto G. Corona
Hi Ketil,


2010/12/9 Ketil Malde ke...@malde.org

 Mitar mmi...@gmail.com writes:

  Neither Haskell nor any conventional language has [evolved to evolve]

  True.

 Well - thinking about it, there's no fundamental difference between
 genetic algorithms - where you have a genome in the form of a set of
 parameters and genetic programming - where the genome is a program of
 some sort, typically Lisp code, since the syntax tree is so accessible
 and malleable.

 In either case, you have an interpreter that interprets the genome, the
 difference is mainly in the expressive power of the language.  I haven't
 looked closely, but I suspect you might not want Turing-completeness in
 either case (Alberto?



 ).


I´m not sure. (answer at the bottom). There are some characteristics on DNA
code that are there just to evolve some parts of the code while maintaining
safe some others. There are sequences that are extraordinarily stable for
millions of years across species, while others change very often. Some
others are in the middle. This is not arbitrary. Let´s say that the stable
parts are the IF statements while the changing parts are the parameter
values. Doing so, the species explores the safe part of the fitness
landscape without wasting effort in experiments that have 99% chance to
fail.

Females will evolve whatever mechanism to avoid these experiments as soon as
possible.
However risky experiments shoud be taken from time to time, to explore new
zones of the fitness landscape.

Another  characteristic of evolution, is its multilevel nature. There are
selection of genes. Selection of gene replication alternatives, selection of
reproduction alternatives. procariotic, eucariotic, multicelular
(individual), social levels of  selection.

Not only that. During ovulation there is a selection of good eggs, as I
mentioned. And this selection is related with the stability of critical gene
sequences.  this test for stability is regulated by other supervisor genes
that  test with different degrees of accuracy the absence of mutations in
these protected sequences. This  internal checking for consistency can be
considered a level of selection, or autoselection if you like. . selective
checking has evolved as a metalevel. But you can alternatively consider this
consistency check  as a set of rules written in the genetic code by
selection itself .  Rules are a form ofselection mechanisms after all.

All of these Rules have evolved because the genetic code executes over
itself  using its own code as data: Some genes activate others. some others
check for absence of mutations and so on. That is, some metalevel selection
are carried out by the same code that is evolving. Moreover some rules are
different for each genera or specie son it is  not possible to extract (and
abstract) out certain chekings from the code that is checked.

If evolution is search for local maximums in a tree, the rules/metalevels
are heuristic rules that guide the strategy of exploration.



Another


 But yes, by designing the language to evolve, we can get a head start
 compared to nature.

 Yes.
What means what I said above for evolving programs? First that a simple
genetic algorithm operating on auto modifying code can generate any solution
if we wait a few billion of years.  But we can help  to do it faster by
studying the DNA code, learn their already evolved techniques and use them
to design languages,  assign rates of mutation for each statement, discover
rules, selection mechanism, species of programs (or design patterns)  that
acts as templates for each problem etc.

Species of programs means that the seed of the genetic algoritm must not be
turing comoplete I guess. It must be specific for each problem.

 -k
 --
 If I haven't seen further, it is by standing in the footprints of giants

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

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


Re: [Haskell-cafe] GHC 7.0.1 developer challenges

2010-12-09 Thread Simon Marlow

On 08/12/2010 16:34, Andrew Coppin wrote:

On 08/12/2010 03:29 PM, Brandon S Allbery KF8NH wrote:

Then build your CGIs restricted.  Restricting the runtime by default,
*especially* when setting runtime options at compile time is so much of a
pain, is just going to cause problems.  I'm already thinking that I may have
to skip ghc7.


With current versions of GHC, to set the default RTS options you need to
do some insanity with linking in a C stub or something absurd like that.

However, take a look at this:

http://www.haskell.org/ghc/docs/7.0-latest/html/users_guide/runtime-control.html#id3095435

It appears that with GHC 7, you can just say something like
|-with-rtsopts=-H128m -K1m| while compiling your program, and now that
will forever be the default RTS settings for your program.

I haven't actually tried this myself, however. In particular, I'm not
sure if you have to turn on the full RTS options before this will work...


Nice!  I didn't notice Ian had added that flag, and we totally forgot to 
mention it in the 7.0.1 release notes.


Cheers,
Simon

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


Re: [Haskell-cafe] GHC 7.0.1 developer challenges

2010-12-09 Thread Andrew Coppin

On 09/12/2010 12:48 PM, Simon Marlow wrote:

On 08/12/2010 16:34, Andrew Coppin wrote:

It appears that with GHC 7, you can just say something like
|-with-rtsopts=-H128m -K1m| while compiling your program, and now that
will forever be the default RTS settings for your program.
Nice!  I didn't notice Ian had added that flag, and we totally forgot 
to mention it in the 7.0.1 release notes.


Heh. It can't be very often that an outsider gets to tell one of the 
core product developers about one of their own product's new features... ;-)



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


Re: [Haskell-cafe] [Haskell] ANNOUNCE: genprog-0.1

2010-12-09 Thread Mitar
Hi!

On Thu, Dec 9, 2010 at 1:48 PM, Alberto G. Corona agocor...@gmail.com wrote:
 assign rates of mutation for each statement,

This could be assigned by evolution itself. If if will have high
probability of mutation then resulting programs will not survive. So
those probabilities can be assigned by evolution itself and be also
something which is passed on with generations (with again possibility
of mutations of those probabilities itself).

What would be interesting is to have an evolution algorithm which
would allow such protections to evolve during its run. So some kind of
protection which would lower the rate of mutation for some code part.

 Species of programs means that the seed of the genetic algoritm must not be
 turing comoplete I guess. It must be specific for each problem.

I do not see this as necessity. Just that those specimens which would
use this power too much would probably not survive. (If they would
remove protection for some sentences they have build before.)


Mitar

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


[Haskell-cafe] Rather off topic: An ab initio universe simulation?

2010-12-09 Thread Ketil Malde

In order to simulate nature, you need to have the mutation and selection
process itself be part of the programs (and not the interpreter).

How about you have a world consisiting of some memory, bombard this
world with cosmic radiation, and add some enzymatic activity in the
form of an interpreter that interprets a location of the world as a
simple language (that allows observation and modification of the world,
as well as forking new threads of execution) - which is randomly started
at random points.

After some time, you might have threads that reproduce themselves,
perhaps forming species, cooperation, pathogens, genders, and if you
wait four billion years, civilizations...

Life is really just core wars without the programmers :-)

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants

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


Re: [Haskell-cafe] ANN: hledger 0.13

2010-12-09 Thread Simon Michael

On Dec 9, 2010, at 3:35 AM, Peter Simons wrote:

you said that a dependency of one of those packages would require
process = 1.0.1.4. Now, what I don't understand is why you added
that restriction to hledger then?


Picture this common scenario, which I saw during installability  
testing - you install hledger to try it out. Cabal builds it with  
process 1.0.1.3. You get enthusiastic and later try to cabal install  
hledger-X, but this fails (can not install hledger-X because hledger  
requires process-1.0.1.3).


(In other, similar-seeming cases I have seen cabal rebuild the  
installed depender; I don't understand all of cabal's behaviour.)


I presume the user could work around this by

- ghc-pkg unregister hledger; cabal install hledger-X
- installing hledger the first time with --constraint process-1.0.1.4

but I figured a low-impact to make things just work was to bump  
hledger's process dependency.


Is it making sense ? I welcome further insights or better solutions.

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


Re: [Haskell-cafe] [Haskell] ANNOUNCE: genprog-0.1

2010-12-09 Thread Alberto G. Corona

 Hi!

 On Thu, Dec 9, 2010 at 1:48 PM, Alberto G. Corona agocor...@gmail.com
 wrote:
  assign rates of mutation for each statement,

 This could be assigned by evolution itself. If if will have high
 probability of mutation then resulting programs will not survive. So
 those probabilities can be assigned by evolution itself and be also
 something which is passed on with generations (with again possibility
 of mutations of those probabilities itself).


 As any part in a genetic algoritm, it is a trading of flexibility for huge
 gains of speed. take into accout that some of these tricks neded a
 subtantial fraction of the age of the universe to evolve using massively
 paralell hardware (ecosystems).



 What would be interesting is to have an evolution algorithm which
 would allow such protections to evolve during its run. So some kind of
 protection which would lower the rate of mutation for some code part.

  Species of programs means that the seed of the genetic algoritm must not
 be
  turing comoplete I guess. It must be specific for each problem.

 I do not see this as necessity. Just that those specimens which would
 use this power too much would probably not survive. (If they would
 remove protection for some sentences they have build before.)



The mutation weigths are something conventional for coventional languages.
 Another option is to design an automodifying evolving language from
scratch. That software DNA
I guess, should follow closely the techniques of the real DNA. Your idea
fits more here

In the conventional approach, the turing incomplete templates can have
pre-assigned mutation weights for each statement. These mutation rates can
evolve too.

However, nothing prevents from having an additional level for selecting the
appropriate template for each problem.



 Mitar


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


Re: [Haskell-cafe] Rather off topic: An ab initio universe simulation?

2010-12-09 Thread Michael Lesniak
Hi Ketil,

 In order to simulate nature, you need to have the mutation and selection
 process itself be part of the programs (and not the interpreter).
Hence the interpreter can itself be modified?

 How about you have a world consisiting of some memory, bombard this
 world with cosmic radiation, and add some enzymatic activity in the
 form of an interpreter that interprets a location of the world as a
 simple language (that allows observation and modification of the world,
 as well as forking new threads of execution) - which is randomly started
 at random points.
To be honest, I did not understand the location part...


 Life is really just core wars without the programmers :-)
I'll quote you if I have the opportunity.


- Michael

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


Re: [Haskell-cafe] Rather off topic: An ab initio universe simulation?

2010-12-09 Thread Tom Nielsen
You can do all sorts of fun things with computers. Assuming that you
are interested in modeling really real life, how will you estimate
parameters (e.g. mutation rates) based on real data? How will you
quantify whether this a good or a bad model? I think living in a
fact-free world is a bit pointless, but there are plenty of people who
got tenure that way... There's tons of this stuff in Artificial Life
and a book with that title by Stephen Levy which make many grand
claims.

Tom

On Thu, Dec 9, 2010 at 2:09 PM, Ketil Malde ke...@malde.org wrote:

 In order to simulate nature, you need to have the mutation and selection
 process itself be part of the programs (and not the interpreter).

 How about you have a world consisiting of some memory, bombard this
 world with cosmic radiation, and add some enzymatic activity in the
 form of an interpreter that interprets a location of the world as a
 simple language (that allows observation and modification of the world,
 as well as forking new threads of execution) - which is randomly started
 at random points.

 After some time, you might have threads that reproduce themselves,
 perhaps forming species, cooperation, pathogens, genders, and if you
 wait four billion years, civilizations...

 Life is really just core wars without the programmers :-)

 -k
 --
 If I haven't seen further, it is by standing in the footprints of giants

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


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


Re: [Haskell-cafe] ANN: hledger 0.13

2010-12-09 Thread Simon Michael

On Dec 9, 2010, at 7:34 AM, Peter Simons wrote:

I can tell it's doing more harm than good. The situation right now is
that it's impossible to install hledger on ArchLinux -- not because


Why ?

I haven't yet heard why depending on the higher process version is a  
problem.



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


Re: [Haskell-cafe] ANN: hledger 0.13

2010-12-09 Thread Simon Michael

On Dec 9, 2010, at 7:39 AM, Simon Michael wrote:

On Dec 9, 2010, at 7:34 AM, Peter Simons wrote:

that it's impossible to install hledger on ArchLinux -- not because


Why ?

I haven't yet heard why depending on the higher process version is a  
problem.



Oh, is it because you are avoiding use of cabal-install and hackage  
entirely ? If so, how did hledger-0.13 get into the Arch packaging  
system, and why couldn't the same be done for process-1.0.1.4 ? I  
don't know how Arch works.


Thanks for pursuing this and helping to flush out the issues. FWIW I'm  
still in process of re-testing cabal install of all five packages with  
process==1.0.1.3, that's currently stalled because cabal mysteriously  
insists on using the hledger from hackage.



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


Re: [Haskell-cafe] ANN: hledger 0.13

2010-12-09 Thread Peter Simons
Hi Simon,

  [Are you] avoiding use of cabal-install and hackage entirely?

yes, I'm trying to provide a package for hledger 0.13 that can be
installed using ArchLinux's native package manager. The current version
is available here: http://aur.archlinux.org/packages.php?ID=20762.


  How did hledger-0.13 get into the Arch packaging system [...].

It isn't, but I'm trying to get it in. :-)

Take care,
Peter


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


Re: [Haskell-cafe] Rather off topic: An ab initio universe simulation?

2010-12-09 Thread Alberto G. Corona
The good fact about evolutionary simulations is that all is theoretically
possible . The bad fact is that in practice is very hard to achieve results.

Biota.org has links to some artificial life projects.Some of them are naive,
but some others may be interesting.

http://www.biota.org/  http://www.biota.org/



2010/12/9 Tom Nielsen taniel...@gmail.com

 You can do all sorts of fun things with computers. Assuming that you
 are interested in modeling really real life, how will you estimate
 parameters (e.g. mutation rates) based on real data? How will you
 quantify whether this a good or a bad model? I think living in a
 fact-free world is a bit pointless, but there are plenty of people who
 got tenure that way... There's tons of this stuff in Artificial Life
 and a book with that title by Stephen Levy which make many grand
 claims.

 Tom

 On Thu, Dec 9, 2010 at 2:09 PM, Ketil Malde ke...@malde.org wrote:
 
  In order to simulate nature, you need to have the mutation and selection
  process itself be part of the programs (and not the interpreter).
 
  How about you have a world consisiting of some memory, bombard this
  world with cosmic radiation, and add some enzymatic activity in the
  form of an interpreter that interprets a location of the world as a
  simple language (that allows observation and modification of the world,
  as well as forking new threads of execution) - which is randomly started
  at random points.
 
  After some time, you might have threads that reproduce themselves,
  perhaps forming species, cooperation, pathogens, genders, and if you
  wait four billion years, civilizations...
 
  Life is really just core wars without the programmers :-)
 
  -k
  --
  If I haven't seen further, it is by standing in the footprints of giants
 
  ___
  Haskell-Cafe mailing list
  Haskell-Cafe@haskell.org
  http://www.haskell.org/mailman/listinfo/haskell-cafe
 

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

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


[Haskell-cafe] Monads in the 'hood

2010-12-09 Thread Greg Meredith
Dear Haskellians,

Keepin' it light. For your amusement this weekend: monads in the
hoodhttp://www.youtube.com/watch?v=rYANU61J5eY
.

Best wishes,

--greg

-- 
L.G. Meredith
Managing Partner
Biosimilarity LLC
1219 NW 83rd St
Seattle, WA 98117

+1 206.650.3740

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


Re: [Haskell-cafe] dot-ghci files

2010-12-09 Thread Albert Y. C. Lai
Perhaps ghc should also ignore all group-writable *.hs, *.lhs, *.c, *.o, 
*.hi files.


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


Re: [Haskell-cafe] dot-ghci files

2010-12-09 Thread Claus Reinke
Perhaps ghc should also ignore all group-writable *.hs, *.lhs, *.c, *.o, 
*.hi files.


dot-ghci files are *run* if you just start ghci (or ghc -e) in that 
directory

(even if you don't intend to compile, load, or run any Haskell code).

Claus



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


Re: [Haskell-cafe] dot-ghci files

2010-12-09 Thread Albert Y. C. Lai

On 10-12-09 01:57 PM, Claus Reinke wrote:

Perhaps ghc should also ignore all group-writable *.hs, *.lhs, *.c,
*.o, *.hi files.


dot-ghci files are *run* if you just start ghci (or ghc -e) in that
directory
(even if you don't intend to compile, load, or run any Haskell code).


Haskell developers don't just run ghci. They go ahead to run arbitrary 
Haskell code too.


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


[Haskell-cafe] Operator #

2010-12-09 Thread c8h10n4o2

What does # mean in this code ? (from Data.List)

findIndices p ls = loop 0# ls
 where
   loop _ [] = []
   loop n (x:xs) | p x   = I# n : loop (n +# 1#) xs
  | otherwise = loop (n +# 1#) xs

-- 
View this message in context: 
http://haskell.1045720.n5.nabble.com/Operator-tp3299360p3299360.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

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


[Haskell-cafe] A home-brew iteration-alike library: some extension quiestions

2010-12-09 Thread Permjacov Evgeniy
Hi. I Wrote a simple iteration library. It was not intensively tested,
so it MAY contatin bugs, but it is very unlikely. The library is
currently on github: https://github.com/permeakra/iteration

I'm not ready to upload it to hackage, as some testing and extension is
really needed. However, I'd like to know about possible flaws.

Current goal is addition of byte-stream (de)compression and IO functions
extenstion. After this package will be cabalized and uploaded to
hackage. So, while design is not frozen yet, I'm interested in criticism -)/


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


Re: [Haskell-cafe] A home-brew iteration-alike library: some extension quiestions

2010-12-09 Thread Antoine Latter
I only have some surface level questions/comments -

What existing packages is this similar to? How is it different from
any previous work in the area?

Also, likes looks like you don't need the 'Monad m' constraint on your
various Monad and Functor instances in Data.Iteration.Types, which I
think is one of the nicest properties of the continuation-based
approach to something like this.

It's a mater of taste which way to go, but I prefer importing modules
qualified rather than have type-suffixes on functions - so I would
rather use 'I.next' and 'A.next' instead of 'nextI' and 'nextA'. But
reasonable people can disagree on this.

Take care,
Antoine

On Thu, Dec 9, 2010 at 1:42 PM, Permjacov Evgeniy permea...@gmail.com wrote:
 Hi. I Wrote a simple iteration library. It was not intensively tested,
 so it MAY contatin bugs, but it is very unlikely. The library is
 currently on github: https://github.com/permeakra/iteration

 I'm not ready to upload it to hackage, as some testing and extension is
 really needed. However, I'd like to know about possible flaws.

 Current goal is addition of byte-stream (de)compression and IO functions
 extenstion. After this package will be cabalized and uploaded to
 hackage. So, while design is not frozen yet, I'm interested in criticism -)/


 ___
 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] A home-brew iteration-alike library: some extension quiestions

2010-12-09 Thread Permjacov Evgeniy


 Original Message 
Subject:Re: [Haskell-cafe] A home-brew iteration-alike library: some
extension quiestions
Date:   Thu, 09 Dec 2010 23:07:49 +0300
From:   Permjacov Evgeniy permea...@gmail.com
To: Antoine Latter aslat...@gmail.com



On 12/09/2010 10:54 PM, Antoine Latter wrote:
 I only have some surface level questions/comments -

 What existing packages is this similar to? How is it different from
 any previous work in the area?

Main idea was taken from Iteratees invented by Oleg Kiselev (there are
two packages on hackage implementing this ideas: data-iteraties and
enumerator packages)
The difference is, that I wished haskell-2010 compilant package for
left-foldable streams, including support for easy builing, transcoding,
merging and folding of streams relying on do-notation (see
Data.Iteration.Unicode.* for examples of transcoding streams: it is
quite clean and easily understandable) and ability to specify easily
monadic actions in stream processors.
 Also, likes looks like you don't need the 'Monad m' constraint on your
 various Monad and Functor instances in Data.Iteration.Types, which I
 think is one of the nicest properties of the continuation-based
 approach to something like this.
Errgh. That may be true, but I did not consider non-monadic context at
all, so I enforced this constrain mindlessly
 It's a mater of taste which way to go, but I prefer importing modules
 qualified rather than have type-suffixes on functions - so I would
 rather use 'I.next' and 'A.next' instead of 'nextI' and 'nextA'. But
 reasonable people can disagree on this.

 Take care,
 Antoine
Thanks!
 On Thu, Dec 9, 2010 at 1:42 PM, Permjacov Evgeniy permea...@gmail.com wrote:
 Hi. I Wrote a simple iteration library. It was not intensively tested,
 so it MAY contatin bugs, but it is very unlikely. The library is
 currently on github: https://github.com/permeakra/iteration

 I'm not ready to upload it to hackage, as some testing and extension is
 really needed. However, I'd like to know about possible flaws.

 Current goal is addition of byte-stream (de)compression and IO functions
 extenstion. After this package will be cabalized and uploaded to
 hackage. So, while design is not frozen yet, I'm interested in criticism -)/


 ___
 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] A home-brew iteration-alike library: some extension quiestions

2010-12-09 Thread Antoine Latter
Also, one thing that tripped me up is that your Stream type is
fundamentally different from the Stream types in the
iteratee/enumerator libraries - yours is more of a monadic list in the
inner monad, with explicit errors.

How does this change the operation of the Iterator type?

I hope I am not pestering you too much :-)

I think it is really fascinating how many different approaches people
have to the left-fold-enumerator idea, and it is hard for me to grasp
which differences are fundamental and what the differences mean.

Also, in what way are the other libraries not Haskell-2010 compliant?
I haven't experimented too much with this sort of thing, since Cabal
defaults to the Haskell '98 language, and that's how I install most
things.

Thanks for your response,
Antoine

On Thu, Dec 9, 2010 at 2:07 PM, Permjacov Evgeniy permea...@gmail.com wrote:
 On 12/09/2010 10:54 PM, Antoine Latter wrote:
 I only have some surface level questions/comments -

 What existing packages is this similar to? How is it different from
 any previous work in the area?

 Main idea was taken from Iteratees invented by Oleg Kiselev (there are
 two packages on hackage implementing this ideas: data-iteraties and
 enumerator packages)
 The difference is, that I wished haskell-2010 compilant package for
 left-foldable streams, including support for easy builing, transcoding,
 merging and folding of streams relying on do-notation (see
 Data.Iteration.Unicode.* for examples of transcoding streams: it is
 quite clean and easily understandable) and ability to specify easily
 monadic actions in stream processors.
 Also, likes looks like you don't need the 'Monad m' constraint on your
 various Monad and Functor instances in Data.Iteration.Types, which I
 think is one of the nicest properties of the continuation-based
 approach to something like this.
 Errgh. That may be true, but I did not consider non-monadic context at
 all, so I enforced this constrain mindlessly
 It's a mater of taste which way to go, but I prefer importing modules
 qualified rather than have type-suffixes on functions - so I would
 rather use 'I.next' and 'A.next' instead of 'nextI' and 'nextA'. But
 reasonable people can disagree on this.

 Take care,
 Antoine
 Thanks!
 On Thu, Dec 9, 2010 at 1:42 PM, Permjacov Evgeniy permea...@gmail.com 
 wrote:
 Hi. I Wrote a simple iteration library. It was not intensively tested,
 so it MAY contatin bugs, but it is very unlikely. The library is
 currently on github: https://github.com/permeakra/iteration

 I'm not ready to upload it to hackage, as some testing and extension is
 really needed. However, I'd like to know about possible flaws.

 Current goal is addition of byte-stream (de)compression and IO functions
 extenstion. After this package will be cabalized and uploaded to
 hackage. So, while design is not frozen yet, I'm interested in criticism -)/


 ___
 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] Operator #

2010-12-09 Thread Daniel Fischer
On Thu, Dec 9, 2010 at 8:31 PM, c8h10n4o2 asaferibei...@ymail.com wrote:


 What does # mean in this code ? (from Data.List)


It's a magic hash denoting here on the one hand unboxed machine ints (0#)
and on the other the constructor wrapping such a raw machine int to a
Haskell boxed Int (I#). GHC uses the magic hash to mark raw unboxed stuff
(which you'll rarely need to use). In the libraries, sometimes using the raw
machine data types (Int#, Word#, Double#, Float# and a few more) is needed
for better performance.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A home-brew iteration-alike library: some extension quiestions

2010-12-09 Thread Permjacov Evgeniy
On 12/09/2010 11:17 PM, Antoine Latter wrote:
 Also, one thing that tripped me up is that your Stream type is
 fundamentally different from the Stream types in the
 iteratee/enumerator libraries - yours is more of a monadic list in the
 inner monad, with explicit errors.

 How does this change the operation of the Iterator type?
The problem was that I wished Zippee. It means that external enumerator
must be suspended at some points so Zippee can process elements from
both left and right streams in desired order. It makes any other
approach I considered impossible to use.

 Also, in what way are the other libraries not Haskell-2010 compliant?
 I haven't experimented too much with this sort of thing, since Cabal
 defaults to the Haskell '98 language, and that's how I install most 
 things.
Haskell-2010 does not include functional dependencies (wich are
considered evil by many) and, as I recall, type families. This makes mtl
haskell-2010 and haskell-98 uncompilant -(. Functional dependencies and
type familes are tricky things, so it is better to avoid them.
 Thanks for your response,
 Antoine

 On Thu, Dec 9, 2010 at 2:07 PM, Permjacov Evgeniy permea...@gmail.com wrote:
 On 12/09/2010 10:54 PM, Antoine Latter wrote:
 I only have some surface level questions/comments -

 What existing packages is this similar to? How is it different from
 any previous work in the area?

 Main idea was taken from Iteratees invented by Oleg Kiselev (there are
 two packages on hackage implementing this ideas: data-iteraties and
 enumerator packages)
 The difference is, that I wished haskell-2010 compilant package for
 left-foldable streams, including support for easy builing, transcoding,
 merging and folding of streams relying on do-notation (see
 Data.Iteration.Unicode.* for examples of transcoding streams: it is
 quite clean and easily understandable) and ability to specify easily
 monadic actions in stream processors.
 Also, likes looks like you don't need the 'Monad m' constraint on your
 various Monad and Functor instances in Data.Iteration.Types, which I
 think is one of the nicest properties of the continuation-based
 approach to something like this.
 Errgh. That may be true, but I did not consider non-monadic context at
 all, so I enforced this constrain mindlessly
 It's a mater of taste which way to go, but I prefer importing modules
 qualified rather than have type-suffixes on functions - so I would
 rather use 'I.next' and 'A.next' instead of 'nextI' and 'nextA'. But
 reasonable people can disagree on this.

 Take care,
 Antoine
 Thanks!
 On Thu, Dec 9, 2010 at 1:42 PM, Permjacov Evgeniy permea...@gmail.com 
 wrote:
 Hi. I Wrote a simple iteration library. It was not intensively tested,
 so it MAY contatin bugs, but it is very unlikely. The library is
 currently on github: https://github.com/permeakra/iteration

 I'm not ready to upload it to hackage, as some testing and extension is
 really needed. However, I'd like to know about possible flaws.

 Current goal is addition of byte-stream (de)compression and IO functions
 extenstion. After this package will be cabalized and uploaded to
 hackage. So, while design is not frozen yet, I'm interested in criticism 
 -)/


 ___
 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] A home-brew iteration-alike library: some extension quiestions

2010-12-09 Thread Michael Snoyman
On Thu, Dec 9, 2010 at 10:32 PM, Permjacov Evgeniy permea...@gmail.com wrote:
 On 12/09/2010 11:17 PM, Antoine Latter wrote:
 Also, one thing that tripped me up is that your Stream type is
 fundamentally different from the Stream types in the
 iteratee/enumerator libraries - yours is more of a monadic list in the
 inner monad, with explicit errors.

 How does this change the operation of the Iterator type?
 The problem was that I wished Zippee. It means that external enumerator
 must be suspended at some points so Zippee can process elements from
 both left and right streams in desired order. It makes any other
 approach I considered impossible to use.

 Also, in what way are the other libraries not Haskell-2010 compliant?
 I haven't experimented too much with this sort of thing, since Cabal
 defaults to the Haskell '98 language, and that's how I install most
 things.
 Haskell-2010 does not include functional dependencies (wich are
 considered evil by many) and, as I recall, type families. This makes mtl
 haskell-2010 and haskell-98 uncompilant -(. Functional dependencies and
 type familes are tricky things, so it is better to avoid them.

For the record, enumerator (and I believe iteratee as well) uses
transformers, not mtl. transformers itself is Haskell98; all FunDep
code is separated out to monads-fd.

Michael

 Thanks for your response,
 Antoine

 On Thu, Dec 9, 2010 at 2:07 PM, Permjacov Evgeniy permea...@gmail.com 
 wrote:
 On 12/09/2010 10:54 PM, Antoine Latter wrote:
 I only have some surface level questions/comments -

 What existing packages is this similar to? How is it different from
 any previous work in the area?

 Main idea was taken from Iteratees invented by Oleg Kiselev (there are
 two packages on hackage implementing this ideas: data-iteraties and
 enumerator packages)
 The difference is, that I wished haskell-2010 compilant package for
 left-foldable streams, including support for easy builing, transcoding,
 merging and folding of streams relying on do-notation (see
 Data.Iteration.Unicode.* for examples of transcoding streams: it is
 quite clean and easily understandable) and ability to specify easily
 monadic actions in stream processors.
 Also, likes looks like you don't need the 'Monad m' constraint on your
 various Monad and Functor instances in Data.Iteration.Types, which I
 think is one of the nicest properties of the continuation-based
 approach to something like this.
 Errgh. That may be true, but I did not consider non-monadic context at
 all, so I enforced this constrain mindlessly
 It's a mater of taste which way to go, but I prefer importing modules
 qualified rather than have type-suffixes on functions - so I would
 rather use 'I.next' and 'A.next' instead of 'nextI' and 'nextA'. But
 reasonable people can disagree on this.

 Take care,
 Antoine
 Thanks!
 On Thu, Dec 9, 2010 at 1:42 PM, Permjacov Evgeniy permea...@gmail.com 
 wrote:
 Hi. I Wrote a simple iteration library. It was not intensively tested,
 so it MAY contatin bugs, but it is very unlikely. The library is
 currently on github: https://github.com/permeakra/iteration

 I'm not ready to upload it to hackage, as some testing and extension is
 really needed. However, I'd like to know about possible flaws.

 Current goal is addition of byte-stream (de)compression and IO functions
 extenstion. After this package will be cabalized and uploaded to
 hackage. So, while design is not frozen yet, I'm interested in criticism 
 -)/


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




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


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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Richard O'Keefe

On 10/12/2010, at 12:18 AM, Markus Läll wrote:

 My take on the issue is that we should make it possible to easily mirror 
 hackage (what the OP asked for), so that people could use it when they wanted 
 to, and have a list of the mirrors on the wiki. This way those who are 
 interested can use them. Like when the mirror is faster/closer to them or to 
 help out when hackage is temporarily down. Those who need the security can 
 choose not to use mirrors, or make their own (private), or develop a secure 
 scheme, when it doesn't exist yet.

Have I misunderstood something?
I thought X is a mirror of Y meant X would be a read-only replica of Y,
with some sort of protocol between X and Y to keep X up to date.
As long as the material from Y replicated at X is *supposed* to be
publicly available, I don't see a security problem here.  Only Y accepts
updates from outside, and it continues to do whatever authentication it
would do without a mirror.  The mirror X would *not* accept updates.


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


[Haskell-cafe] [ANNOUNCE] haskell-mpi-1.0.0

2010-12-09 Thread Dmitry Astapov
Dear Haskellers,

We are pleased to announce the release of haskell-mpi-1.0.0, a suite of
Haskell bindings to the C MPI library and convenience APIs on top of it.

About MPI
-

MPI, the Message Passing Interface, is a popular communications protocol for
distributed parallel computing (http://www.mpi-forum.org/).

MPI applications consist of independent computing processes which share
information by message passing. It supports both point-to-point and
collective communication operators, and manages much of the mundane aspects
of message delivery. There are several high-quality implementations of MPI
available, all of which conform to the standard API specification (the
latest version of which is 2.2). The MPI specification defines interfaces
for C, C++ and Fortran, and bindings are available for many other
programming languages.

About Haskell-MPI
-

As the name suggests, Haskell-MPI provides a Haskell interface to MPI, and
thus facilitates distributed parallel programming in Haskell. It is
implemented on top of the C API via Haskell's foreign function interface.
Haskell-MPI provides three different ways to access MPI's functionality:
   * A direct binding to the C interface (see
Control.Parallel.MPI.Internal).
   * A convenient interface for sending arbitrary serializable Haskell data
values as messages (see Control.Parallel.MPI.Simple).
   * A high-performance interface for working with (possibly mutable) arrays
of storable Haskell data types (see Control.Parallel.MPI.Fast).

We do not currently provide exhaustive coverage of all the functions and
types defined by MPI 2.2, although we do provide bindings to the most
commonly used parts. In future we plan to extend coverage based on the needs
of projects which use the library.

The package is available from http://hackage.haskell.org/package/haskell-mpi.
Examples and comprehensive testsuite are included in the source
distribution.

Code was tested on 32- and 64-bit platforms, with MPICH2 and OpenMPI. The
Fast API shows performance comparable to C, and the Simple API is generally
2-7 time slower due to (de)serialization overhead and necessity to issue
additional MPI requests behind the curtains in some cases.

Bernie Pope started this project as a rewrite of hMPI which was written by
Michael Weber and Hal Daume III. He was later joined by Dmitry Astapov,
working on the library as part of Well-Typed LLP's Parallel Haskell Project.

Development is happening on GitHub, in git://github.com/bjpop/haskell-mpi.
Please join in!

Sincerely yours,
Dmitry Astapov, Bernie Pope

-- 
Dmitry Astapov
Well-Typed LLP, http://www.well-typed.com/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Riad S. Wahby
Richard O'Keefe o...@cs.otago.ac.nz wrote:
 I thought X is a mirror of Y meant X would be a read-only replica of Y,
 with some sort of protocol between X and Y to keep X up to date.
 As long as the material from Y replicated at X is *supposed* to be
 publicly available, I don't see a security problem here.  Only Y accepts
 updates from outside, and it continues to do whatever authentication it
 would do without a mirror.  The mirror X would *not* accept updates.

At the very least, this assumes that you trust all the mirror operators.

Sure, I'm trustworthy, but how about those other guys? :)

-=rsw

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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Markus Läll
On Thu, Dec 9, 2010 at 11:04 PM, Richard O'Keefe o...@cs.otago.ac.nz wrote:


 On 10/12/2010, at 12:18 AM, Markus Läll wrote:

  My take on the issue is that we should make it possible to easily mirror
 hackage (what the OP asked for), so that people could use it when they
 wanted to, and have a list of the mirrors on the wiki. This way those who
 are interested can use them. Like when the mirror is faster/closer to them
 or to help out when hackage is temporarily down. Those who need the security
 can choose not to use mirrors, or make their own (private), or develop a
 secure scheme, when it doesn't exist yet.

 Have I misunderstood something?
 I thought X is a mirror of Y meant X would be a read-only replica of Y,
 with some sort of protocol between X and Y to keep X up to date.
 As long as the material from Y replicated at X is *supposed* to be
 publicly available, I don't see a security problem here.  Only Y accepts
 updates from outside, and it continues to do whatever authentication it
 would do without a mirror.  The mirror X would *not* accept updates.


Yes, that's what I think of mirrors too. I don't know if that was what you
meant, but yes those mirrors would be just passive copies of the real
hackage server (no updates from a user), and serve as a place to download
packages from until the original hackage comes back.

But for the security issue, ofcourse any host of a mirror could abuse that.
But I think for non-critical stuff I wouldn't mind using the mirror if it
has shown to be trustworthy. And for people  using Haskell a lot, if the
making of your own mirror is as simple as installing some package on your
webserver and running it, then this would be a great remedy against those
hours when something has happened to hackage..

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


Re: [Haskell-cafe] Rather off topic: An ab initio universe simulation?

2010-12-09 Thread Ketil Malde
Michael Lesniak mlesn...@uni-kassel.de writes:

 Hence the interpreter can itself be modified?

Well - the interpreter in nature is chemistry.  Living organisms are
just chemistry programs.

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants

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


Re: [Haskell-cafe] Rather off topic: An ab initio universe simulation?

2010-12-09 Thread Tom Nielsen
Have you read: Fontana  Buss : What would be conserved if 'the tape
were played twice'? in PNAS? It's quite fun - they model chemical
reaction as alpha-reduction in the lambda calculus and look at
evolution.

Tom

On Thu, Dec 9, 2010 at 10:15 PM, Ketil Malde ke...@malde.org wrote:
 Michael Lesniak mlesn...@uni-kassel.de writes:

 Hence the interpreter can itself be modified?

 Well - the interpreter in nature is chemistry.  Living organisms are
 just chemistry programs.

 -k
 --
 If I haven't seen further, it is by standing in the footprints of giants

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


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


[Haskell-cafe] ANN: Digestive functors 0.0.2.0

2010-12-09 Thread Jasper Van der Jeugt
Hello all,

I'm very glad to announce the 0.0.2.0 release of the digestive
functors library. The library provides a general API to input
consumption, and is an upgrade of formlets.

I've written an announcing blogpost and tutorial with more information here:

http://jaspervdj.be/posts/2010-12-09-digestive-functors-0.0.2.html

You can get it on hackage here:

http://hackage.haskell.org/package/digestive-functors

As always, all feedback is welcome.

Kindest regards,
Jasper Van der Jeugt

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


Re: [Haskell-cafe] ANNOUNCE: mime-mail 0.1.0

2010-12-09 Thread Maciej Piechotka
On Thu, 2010-12-09 at 11:53 +0200, Michael Snoyman wrote:
 On Thu, Dec 9, 2010 at 11:48 AM, Magnus Therning mag...@therning.org wrote:
  On Wed, Dec 8, 2010 at 19:11, Michael Snoyman mich...@snoyman.com wrote:
  Hi all (again),
 
  I'm happy to announce the second major release of the mime-mail[1]
  package. mime-mail is a package providing support for rendering
  multipart emails. This new release introduces:
 
  Very nice!  Are you working on a parser to accompany the renderer? ;-)
 
  /M
 
 
 I'm not currently, though that is definitely a direction the project
 could expand to. I've already written some multipart-parsing code in
 wai-extra, though that code probably wouldn't help here too much. The
 quoted-printable decoding is simple enough to write, and
 base64-decoding has already been solved. Is this a challenge anyone
 out there wants to undertake?
 
 Michael

Hmm. Probably no. I wanted to write a proper parser for MIME for nntp
package but I gave up in the middle of RFC and concentrated on more
interesting problems.

Regards


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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Duncan Coutts
On 9 December 2010 21:04, Richard O'Keefe o...@cs.otago.ac.nz wrote:

 On 10/12/2010, at 12:18 AM, Markus Läll wrote:

 My take on the issue is that we should make it possible to easily mirror 
 hackage (what the OP asked for), so that people could use it when they 
 wanted to, and have a list of the mirrors on the wiki. This way those who 
 are interested can use them. Like when the mirror is faster/closer to them 
 or to help out when hackage is temporarily down. Those who need the security 
 can choose not to use mirrors, or make their own (private), or develop a 
 secure scheme, when it doesn't exist yet.

 Have I misunderstood something?
 I thought X is a mirror of Y meant X would be a read-only replica of Y,
 with some sort of protocol between X and Y to keep X up to date.
 As long as the material from Y replicated at X is *supposed* to be
 publicly available, I don't see a security problem here.  Only Y accepts
 updates from outside, and it continues to do whatever authentication it
 would do without a mirror.  The mirror X would *not* accept updates.

That's certainly what we've been planning on, that anyone can run a
mirror, no permissions needed. The issue people have raised is what
about having public mirrors that are used automatically or
semi-automatically by clients.

The suggestion about DNS round robin is transparent to clients but
requires all the mirrors to be a master, or to have some forwarding
system. Any transparent system also needs trust.

My opinion is that at this stage it is not really worth doing anything
complicated. We do not yet have a bandwidth problem. Once there are
more (unpriviledged) public and private mirrors then temporary
downtime on the main server is less problematic. Eventually we'll get
a bandwidth problem but I think we've  got a fair bit of time to
prepare and in the mean time we can get simple unpriviledged mirroring
working. That is mostly an issue of specifications and tools. The spec
for package archives is not as clear or as good as we'd like. We've
been discussing it recently on the cabal-devel mailing list.

Duncan

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


Re: [Haskell-cafe] haskell2010 and state question.

2010-12-09 Thread Magicloud Magiclouds
On Wed, Dec 8, 2010 at 6:46 PM, Henk-Jan van Tuyl hjgt...@chello.nl wrote:
 On Wed, 08 Dec 2010 10:03:40 +0100, Magicloud Magiclouds
 magicloud.magiclo...@gmail.com wrote:

 Hi,
  Formerly, I had IORef and some state monad to do the task of keeping
 states.
  Now in haskell 2010, I cannot find anything about it. Do I have to
 use ghc base package for this function?

 These are not standard Haskell '98 or Haskell 2010. You can find IORef in
 the base package; the state monad is in both the mtl and the transformers
 package (mtl is deprecated). The state monad uses the multi-parameter type
 class extension and is therefore not in standard Haskell '98 or Haskell 2010
 code. IORef also uses non-standard code.

 Regards,
 Henk-Jan van Tuyl


 --
 http://Van.Tuyl.eu/
 http://members.chello.nl/hjgtuyl/tourdemonad.html
 --


First to notice that. So standard-wise, there is no way to do state thing?

-- 
竹密岂妨流水过
山高哪阻野云飞

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


Re: [Haskell-cafe] Offer to mirror Hackage

2010-12-09 Thread Richard O'Keefe

On 10/12/2010, at 10:50 AM, Riad S. Wahby wrote:

 Richard O'Keefe o...@cs.otago.ac.nz wrote:
 I thought X is a mirror of Y meant X would be a read-only replica of Y,
 with some sort of protocol between X and Y to keep X up to date.
 As long as the material from Y replicated at X is *supposed* to be
 publicly available, I don't see a security problem here.  Only Y accepts
 updates from outside, and it continues to do whatever authentication it
 would do without a mirror.  The mirror X would *not* accept updates.
 
 At the very least, this assumes that you trust all the mirror operators.
 
 Sure, I'm trustworthy, but how about those other guys? :)

See the words some sort of protocol between X and Y?

This means that Y has to be authenticated to X and X to Y and they
use some sort of encryption scheme that prevents man-in-the-middle
attacks.

Right now, of course, nothing whatever stops someone building a 'robot'
at X to visit Y periodically and update X; the missing piece is any
kind of accreditation at Y.



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


Re: [Haskell-cafe] haskell2010 and state question.

2010-12-09 Thread Thomas Schilling
On 10 December 2010 01:40, Magicloud Magiclouds
magicloud.magiclo...@gmail.com wrote:
 On Wed, Dec 8, 2010 at 6:46 PM, Henk-Jan van Tuyl hjgt...@chello.nl wrote:
 On Wed, 08 Dec 2010 10:03:40 +0100, Magicloud Magiclouds
 magicloud.magiclo...@gmail.com wrote:

 Hi,
  Formerly, I had IORef and some state monad to do the task of keeping
 states.
  Now in haskell 2010, I cannot find anything about it. Do I have to
 use ghc base package for this function?

 These are not standard Haskell '98 or Haskell 2010. You can find IORef in
 the base package; the state monad is in both the mtl and the transformers
 package (mtl is deprecated). The state monad uses the multi-parameter type
 class extension and is therefore not in standard Haskell '98 or Haskell 2010
 code. IORef also uses non-standard code.

 Regards,
 Henk-Jan van Tuyl


 --
 http://Van.Tuyl.eu/
 http://members.chello.nl/hjgtuyl/tourdemonad.html
 --


 First to notice that. So standard-wise, there is no way to do state thing?

It's not hard to create your own state monad.  You are right, though,
that there is no standard library support for this in the Haskell2010
standard.


-- 
Push the envelope. Watch it bend.

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


Re: [Haskell-cafe] ANN: Digestive functors 0.0.2.0

2010-12-09 Thread Robert Wills
Very nice.  I like the addition of the CLI interface.

I was inspired by this library and Chris Eidhof's Formlets to try to
port this idea to Scala.

https://github.com/wrwills/scormlets

It's not as elegant or as complete as this but it helped me to get my
head around this very
cool idea.

-Rob

On Thu, Dec 9, 2010 at 10:46 PM, Jasper Van der Jeugt
jasper...@gmail.com wrote:
 Hello all,

 I'm very glad to announce the 0.0.2.0 release of the digestive
 functors library. The library provides a general API to input
 consumption, and is an upgrade of formlets.

 I've written an announcing blogpost and tutorial with more information here:

 http://jaspervdj.be/posts/2010-12-09-digestive-functors-0.0.2.html

 You can get it on hackage here:

 http://hackage.haskell.org/package/digestive-functors

 As always, all feedback is welcome.

 Kindest regards,
 Jasper Van der Jeugt

 ___
 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] GHC 7.0.1 developer challenges

2010-12-09 Thread John D. Ramsdell
I found out how to compute a good memory limit for the GHC runtime on
Linux systems.  One opens /proc/meminfo, and sums the free memory with
the reclaimable memory.  The memory allocated to file buffers and the
disk cache are reclaimable, and can be added to the memory of a
growing GHC process.  Once you get beyond that memory size, thrashing
is in your futures.

I have enclosed a short lex program that computes the limit.  It's
basically what is done by the procpc program called free, except that
I printed only the number of interest to a GHC runtime.

John
/* Compute the free memory on a Linux system with /proc/meminfo */

%{
#include stdio.h
#include stdlib.h
static int mem_free = 0, buffers = 0, cached = 0;
%}

DIGITS  [0-9]+
SP  [ \t]+

%%

^MemFree:{SP}{DIGITS}   { mem_free = atoi(yytext + 8); }
^Buffers:{SP}{DIGITS}   { buffers = atoi(yytext + 8); }
^Cached:{SP}{DIGITS}{ cached = atoi(yytext + 7); }

.|\n{ }

%%

int main(void)
{
  const char meminfo[] = /proc/meminfo;
  yyin = fopen(meminfo, r);
  if (!yyin) {
fprintf(stderr, Cannot open %s\n, meminfo);
return 1;
  }
  int rc = yylex();
  if (rc) return rc;
  printf(%dm\n, (mem_free + buffers + cached)  10);
  return 0;
}
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A home-brew iteration-alike library: some extension quiestions

2010-12-09 Thread John Millikin
On Thu, Dec 9, 2010 at 12:43, Michael Snoyman mich...@snoyman.com wrote:
 For the record, enumerator (and I believe iteratee as well) uses
 transformers, not mtl. transformers itself is Haskell98; all FunDep
 code is separated out to monads-fd.

 Michael

iteratee also uses 'transformers', but requires several extensions;
see  
http://hackage.haskell.org/packages/archive/iteratee/0.6.0.1/doc/html/src/Data-Iteratee-Base.html


It seems silly to avoid extensions, though; every non-trivial package
on Hackage depends on them, either directly or via a dependency. For
example, though 'enumerator' requires no extensions itself, it depends
on both 'text' and 'bytestring', which require a ton of them.

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


[Haskell-cafe] Missing Functor instances in GHC 7?

2010-12-09 Thread Sebastian Fischer
Hello,

according to

http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Monad.html

Control.Monad exports 20 Functor instance declarations in base-4.3.0.0.
However:

bash# ghc-pkg list | grep base
base-4.3.0.0
bash# ghci --version
The Glorious Glasgow Haskell Compilation System, version 7.0.1
bash# ghci
Prelude import Control.Monad
Prelude Control.Monad :i Functor
class Functor f where
  fmap :: (a - b) - f a - f b
  (GHC.Base.$) :: a - f b - f a
-- Defined in GHC.Base
instance Functor Maybe -- Defined in Data.Maybe
instance Functor [] -- Defined in GHC.Base
instance Functor IO -- Defined in GHC.Base

There are only 3 instances instead of 20. Importing Control.Applicative
gives 3 more instances but for example the instance for ((-) r) is
still missing.

Is my installation broken? Or has anybody similar problems finding
Functor instances in GHC 7?

Sebastian


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


Re: [Haskell-cafe] Missing Functor instances in GHC 7?

2010-12-09 Thread Antoine Latter
Hi Sebastian,

I imagine that many of the instances are defined in the module that
defines the data type. For example, the STM instance is defined in the
same module as the STM type.

Are there any particular ones you're running into problems with?

Take care,
Antoine

On Thu, Dec 9, 2010 at 11:10 PM, Sebastian Fischer fisc...@nii.ac.jp wrote:
 Hello,

 according to

 http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Monad.html

 Control.Monad exports 20 Functor instance declarations in base-4.3.0.0.
 However:

    bash# ghc-pkg list | grep base
        base-4.3.0.0
    bash# ghci --version
    The Glorious Glasgow Haskell Compilation System, version 7.0.1
    bash# ghci
    Prelude import Control.Monad
    Prelude Control.Monad :i Functor
    class Functor f where
      fmap :: (a - b) - f a - f b
      (GHC.Base.$) :: a - f b - f a
            -- Defined in GHC.Base
    instance Functor Maybe -- Defined in Data.Maybe
    instance Functor [] -- Defined in GHC.Base
    instance Functor IO -- Defined in GHC.Base

 There are only 3 instances instead of 20. Importing Control.Applicative
 gives 3 more instances but for example the instance for ((-) r) is
 still missing.

 Is my installation broken? Or has anybody similar problems finding
 Functor instances in GHC 7?

 Sebastian


 ___
 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] Missing Functor instances in GHC 7?

2010-12-09 Thread Sebastian Fischer
Hi Antoine,

On Thu, 2010-12-09 at 23:20 -0600, Antoine Latter wrote:
 Are there any particular ones you're running into problems with?

Yes, I cannot find the instance for ((-) r).

Even if I import

Control.Monad 
Control.Monad.Reader
Control.Applicative 
Data.Functor 
Data.Function

I still get

ghci ((+) $ id * id) 21
interactive:1:1:
No instance for (Functor ((-) a))

Sebastian


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


Re: [Haskell-cafe] Missing Functor instances in GHC 7?

2010-12-09 Thread Sebastian Fischer
On Fri, 2010-12-10 at 14:35 +0900, Sebastian Fischer wrote:
 Yes, I cannot find the Functor instance for ((-) r).

As the Applicative instance for ((-) r) depends on the Functor instance
I only needed to go through the imports of Control.Applicative to find
that the Functor instance of ((-) r) is defined in
Control.Monad.Instances. If I import this module into GHCi, it finds the
instance.

Interestingly, if I import only Control.Applicative from within GHCi, it
does not find the instances defined in Control.Monad.Instances although
this module is imported in Control.Applicative. On the other hand, if I
write a file containing the line 'import Control.Applicative' and load
this file in GHCi then the instances from Control.Monad.Instances are
visible.

Apparently, importing a module in GHCi differs from importing it in a
Haskell file and loading this into GHCi.

Sebastian


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


[Haskell-cafe] haskell-2010 binary IO

2010-12-09 Thread Permjacov Evgeniy
Does haskell 2010 include binary IO? If no, what was the reason?

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