[Haskell-cafe] Do you want to maintain bindings-DSL?

2013-09-13 Thread Maurício Antunes
Hi,

bindings-DSL[1] is a stable and reliable macro package for FFI. It just
got a new tutorial and its repository is now in git. If no one else
wants to maintain it, I'll still be looking at issue reports and fixing
possible problems, but I've not been actively using Haskell for some time,
and won't add anything new or make plans for future changes.

The original idea behind bindings-DSL was to build a wide set of community
maintained raw bindings to interesting C libraries, on which Haskell
programmers could safely depend when creating their own higher level
packages. Although that idea never really took off, bindings-DSL itself
got some popularity, probably because it makes instancing Storable easy.

If you want to take maintenance, you have some options. You could just
kill the bindings-* idea and add some flexibility to new macros, which
I always avoided to enforce consistency. Or you could keep the original
goal, and maybe add a mailing list and a web page where users could
request new libraries and discuss solutions to trick issues. A possible
plan for version 2 is to be independent of hsc2hs, and use a new syntax
instead of C macros.

Thanks. Best,
Maurício

[1]: http://bitbucket.org/mauricio/bindings-dsl
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] ANN: bindings-DSL 1.0.14

2011-09-01 Thread Maurício CA
FFI package bindings-DSL provides a language to describe foreign
interfaces on top of hsc2hs.

   http://bitbucket.org/mauricio/bindings-dsl
   http://hackage.haskell.org/package/bindings-DSL

New to this release is that you can get pointers to all declared fields
of a structure. Suppose you have the following struct in C:

   struct a {
  int b;
  struct {
 char c;
 float d;
  } e;
  struct a *f;
   };

You write this in your .hsc file:

   #starttype struct a
   #field b , CInt
   #field e.c , CChar
   #field e.d , CFloat
   #field f , Ptr a
   #stoptype

Besides the usual Storable instantiated Haskell version of struct a,
(named C'a), now you also get the following:

   p'a'b :: Ptr C'a - Ptr CInt
   p'a'e'c :: Ptr C'a - Ptr CChar
   p'a'e'd :: Ptr C'a - Ptr CFloat
   p'a'f :: Ptr C'a - Ptr (Ptr C'a)

Hope it's useful to you.

Best,
Maurício



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


Re: [Haskell-cafe] video for linux two (v4l2) bindings

2011-07-08 Thread Maurício Antunes
Hi, all,

I've added that 'extra-libraries' to .cabal, and also modules for fcntl.h
and sys/mman.h (mmap). Would you please test it and check if it solves
the problem before I upload it to hackage?

  
https://bitbucket.org/mauricio/bindings-dsl/downloads/bindings-posix-1.2.3.tar.gz

Just download from that link, unpack and do 'cabal install' inside the
new directory.

Best,
Maurício


2011/7/8, Claude Heiland-Allen cla...@goto10.org:
 Hi,

 On 05/07/11 10:19, Christopher Done wrote:
 [snip]
 /usr/bin/ld:
 /home/chris/.cabal/lib/bindings-posix-1.2.2/ghc-6.12.3/libHSbindings-posix-1.2.2.a(Signal.o):(.text+0x5dfb):
 error: undefined reference to 'pthread_kill'
 [snip]
 I guess on Claude's system it's linked to by default.  So for guys
 trying the examples with that error I'd recommend the following
 commandline:

cabal install v4l2-examples --ghc-option=-lpthread

 I think this could be a bug in bindings-posix (maintainer CC'd), I guess
 it could do with this in its .cabal file:

  Extra-libraries: pthread

 Can't really play about with the webcam right now but I'd had a small
 but cool project I've had in mind for a while that v4l is perfectly
 suited for, so I'll get back to you with my experiences. Thanks for
 releasing it, Claude. :-)

 Cool, look forward to seeing it!  Hopefully I'll soon find time to
 upload to Hackage a preliminary (feature-incomplete) release of the
 higher-level interface that I'm working on; until then:
 https://gitorious.org/hsv4l2/v4l2


 Claude
 --
 http://claudiusmaximus.goto10.org


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


Re: [Haskell-cafe] [Off-topic]Functional parsing theory

2010-10-09 Thread Maurício Antunes
After reading your message I found Why Attribute Grammars
Matter and a few other introductions, and it seems attribute
grammars are exactly what I'm trying to do. Do you know of
some place (mailing list etc.) where I can discuss attribute
grammars or ask for suggestions on design?

Thanks,

Maurício

2010/10/7, bieniusa bieni...@informatik.uni-freiburg.de:
 It's not entirely clear what you mean:

 Do you want to describe grammars or parsers functionally:

 In the first case, parser combinators are what you want (or some
 encoding of them). There are many variations on these: LL(k),
 context-free, dependent. Cyclicity (of what kind?) or empty productions
 are not necessarily a problem.

 If you already parsed the input to an abstract syntax tree, and want to
 act on this input in terms of your grammar, then attribute grammars are
 what you are looking for.

 - Arie

 Am 06.10.2010 17:43, schrieb Maurí­cio CA:
 Hi, all,

 I've been working in a tool that reads a grammar with associated
 actions and act on input based on that grammar. I would like to
 rewrite it in a functional style, but I've not been able to find a
 theory that would handle any possible grammar with cyclicity and
 empty productions, and flexibility is more important for this tool
 than performance.

 Do you have a suggestion on that? What I'm using now is this
 (non-functional) article on Earley method:

   http://www.springerlink.com/content/602270808666074p

 Thanks,

 Maurício

 ___
 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] Who takes care of Haskell mailing lists?

2009-05-27 Thread Maurício
Hi,

I would like to create a mailing list for Portuguese speaking
Haskell programmers. I tried checking haskell.org mailing lists
page, but the only contact e-mail I see is 'mail...@haskell.org',
and a message sent to that address is replied with an automatic
message saying I'm not authorized to use it.

Is there someone I could contact about that?

Thanks,
Maurício

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


Re: [Haskell-cafe] Haskell programmer s in São Carlos - SP - Brazil?

2009-05-26 Thread Maurício
Is there already any mailing list or group in Portuguese? I would
like that if it were a list for Portuguese speakers, no matter
they are from Portugal or Moçambique.

Maurício


 Hey, we have enough people for a São Paulo Haskell User Group.
 Anyone else interested?
 
 Best regards,
 Daniel Yokomizo
 
 2009/5/21 Fernando Henrique Sanches fernandohsanc...@gmail.com:
 São Caetano, SP, Brazil - right next to São Paulo. UFABC Student.

 Fernando Henrique Sanches


 2009/5/19 Maurí­cio briqueabra...@yahoo.com
 Anybody else around here?

 Best,
 Maurício

 ___
 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] Re: Haskell programmers in São Carlos - SP - Brazil?

2009-05-26 Thread Maurício
 I would as well, but what would we gain with it?  Wouldn't it rot
 because every message one of us wanted to post was general enough
 to just post on haskell-cafe?  Would it be able to attract
 Portuguese-speaking people that aren't fluent English speakers?
 
 I'm not being pessimistic, just a thought. :)

Of course, this was in my mind too. But I think we could have
more general discussion groups in Portuguese, now that there's
a standard ortography :)

I think it's worth a shot. At least there are many students
who do not speak good english, and even for those who use
english all time most of us will always be able to
write deeper thoughts in Portuguese than in English.

I'll check with the guys at:

http://haskell.org/mailman/listinfo

If it doesn't suceed, we'll just erase it.

Best,
Maurício

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


[Haskell-cafe] haddock could be a pretty-printer?

2009-05-22 Thread Maurício
Hi,

The new version of haddock makes use of GHC
parser. How much of effort would take to make
haddock generate pretty-print of the source
code itself, including haddock documentation
(although probably loosing other comments)?
Maybe even an html version that documentation
could point to?

Thanks,
Maurício

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


[Haskell-cafe] Re: haddock could be a pretty-printer?

2009-05-22 Thread Maurício
 The new version of haddock makes use of GHC parser. How much
 of effort would take to make haddock generate pretty-print
 of the source code itself, (...)

 (...) Is this what you want or is there some reason why you
 want the code to be pretty-printed?

I usually have to resort to braces or bad indenting to get
code to parse, but I like to give it good presentation before
publishing.

I used to pretty-print my code using haskell-src-exts with
great result, but that kills documentation.

Best,
Maurício

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


[Haskell-cafe] Re: Problem with haddock importing definition

2009-05-20 Thread Maurício
 When you say documentation disappears, do you mean that R is still
 listed, but its comments are not shown, or is R completely absent from
 the documentation?

 See http://trac.haskell.org/haddock/ticket/107

 He just needs to include B in the other-modules list, so that cabal will
 pass it to haddock (and setup sdist).

 I would still like to know the answer to my question though, since I
 think we can improve Haddock here.

R is completely absent from documentation.

I did include a working example with .cabal
file in that ticket, maybe that can help.

(Just to note, my problem was solved by
'other-modules'.)

Thanks,
Maurício

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


[Haskell-cafe] Problem with haddock importing definition

2009-05-15 Thread Maurício
Hi,

I have a situation like this: module A imports R (a newtype
declaration) from module B, and lists it in its (module A)
export list.

Documentation for R is included by haddock in documentation
for module A, as I want. However, if my package exposes only
module A, documentation for R desapears.

So: if my .cabal file lists A and B in 'exposed-modules',
documentation for R is included in A documentation. If I remove
B from 'exposed-modules', R documentation in A desapears.

Do you know what should I do?

Thanks,
Maurício

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


[Haskell-cafe] Re: List of exports of a module - are there alternatives?

2009-05-13 Thread Maurício
I would like a keyword we could add to a single declaration,
like:

hidden a :: Int - Int
a = (...)

The 200 names is not the best example. It's more a question of
proportion: if you export 5 declarations in a module with 20,
it's OK, but if you export 19 declarations in a module of 20
maintenance can be painfull to your eyes, going up and down
into your file to check if the list is correct.

Maurício

 I would like to see this too. Maybe just a private keyword that would
 make everything after it invisible to the outside (or until a public
 keyword appeared)?
 
 Are there propositions to alternatives to that (I could not
 find one)? Like, say, add a do export or do not export
 tag to declarations we want to (not) export?

 (I think something like that could be nice when we have modules
 with 200 declarations and just a few are (not) going to be
 exported.)

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


[Haskell-cafe] List of exports of a module - are there alternatives?

2009-05-12 Thread Maurício
Hi,

When we want to list which declarations are exported by a module
we do:

module Mod ( list of exports ) where ...

Are there propositions to alternatives to that (I could not
find one)? Like, say, add a do export or do not export
tag to declarations we want to (not) export?

(I think something like that could be nice when we have modules
with 200 declarations and just a few are (not) going to be
exported.)

Thanks,
Maurício


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


[Haskell-cafe] Re: When is it OK to create a new mailing list?

2009-05-04 Thread Maurício
 Would this not fit well in the wxHaskell mailing list? That list is not very
 high traffic and there is an obvious overlap in the target audience.

 This was my thought as well. Adding another list is considerable
 overhead, and keeping it on the wxHaskell list has the benefits of
 no-administration and possibly drawing in interested wxHaskellers (and
 I imagine many issues will turn out to be wxHaskell issues, so keeping
 them in the loop from the start is a good idea anyway).
 

Or: while your package has not get a user base big
enough to make a mailing list work well, maybe what
you need is just a bug-tracking system. The community
server provides that (as Duncan pointed earlier).

Best,
Maurício

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


[Haskell-cafe] Re: Help from C libraries experts

2009-04-30 Thread Maurício
 Do you understand very well a C library and would like
 Haskell to have a binding for it?  (...)

 Could you perhaps then summarise what design rules you're using? 

Yes. They are summarised at the main module documentation:

http://hackage.haskell.org/packages/archive/bindings/0.1/doc/html/Bindings.html

 For example, why did you pick the new 'Bindings' namespace?

The most important guideline is: users guide guidelines. If you
have a better sugestion for a base module name, please open a
ticket at development website, under 'Issues/Create new issue'
(you can do it as anonymous):

http://bitbucket.org/mauricio/bindings


 What are you doing that's different to having standalone
 small packages?

I'm trying to write canonical bindings libraries.

 One risk I see is that 'bindings' will depend on  a large number of C
 libraries (...)

Sure. I would like to have:

bindings-common
bindings-testsAndExamples
bindings-sqlite3
bindings-openusb
bindings-agar
etc.

But I thought I should not polute hackage before this package
get at least a few people understanding and agreeing with
the concept.

 Maybe this is a better discussion for librar...@?

OK. I'll repost there, with text updated after your thoughts.

Thanks,
Maurício

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


[Haskell-cafe] Re: Why do I need a 'do'?

2009-04-30 Thread Maurício
 import System.Random

 rollDice :: IO Int
 rollDice = getStdRandom (randomR (1,6))

 rollNDice :: Int - [IO Int]
 rollNDice 0 = []
 rollNDice n = rollDice : rollNDice (n-1)
 
 
 replicateM n rollDice
 
 http://www.haskell.org/haskellwiki/Avoiding_IO#State_monad

Or, if you want the original idea:

sequence (rollNDice 10)

Check the type of sequence at Control.Monad.

Maurício

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


[Haskell-cafe] Re: Help from C libraries experts

2009-04-30 Thread Maurício
 My goal is to have a place where one can find reliable and
 comprehensive low-level bindings to foreign libraries, so that
 writing higher level bindings becomes an easier task.

 (...) In your guidelines, you say:

 Code should be portable and easy to build. 

 Does your understanding of portable include Windows?

My thought on that was: anyone trying to wrap a library will
have to solve this kind of problem. So, if it is possible to
write such wrap, at least one solution exist, and 'bindings'
set will try to select the best one for general use. Sometimes,
this may be adding the C code itself, as is my current attempt
on sqlite3.  Sometimes the task can be delegated to pkg-config.

Actually, that is the reason why my first post was a call for
help from libraries experts. This has to be solved on a per
library base.

Thanks,
Maurício

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


[Haskell-cafe] Help from C libraries experts

2009-04-29 Thread Maurício
Hi,

Do you understand very well a C library and would like Haskell
to have a binding for it?

I've been working on this package:

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bindings

My goal is to have a place where one can find reliable and
comprehensive low-level bindings to foreign libraries, so that
writing higher level bindings becomes an easier task.

If you are willing to help me with questions about your favorite
C library, like compile options I should be carefull about or
differences I may find between systems, I'll be glad to write
a low level binding to it.

Best,
Maurício

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


[Haskell-cafe] Re: Help from C libraries experts

2009-04-29 Thread Maurício
 Do you understand very well a C library and would like
 Haskell to have a binding for it?  (...)  If you are
 willing to help me with questions about your favorite C
 library, like compile options I should be carefull about
 or differences I may find between systems, I'll be glad to
 write a low level binding to it.

 I think bindings is an unfortunate choice of name for
 this package, as it doesn't tell us anything about what
 it contains.  (...)

It's not important what it contains, but how.  Well, it does
contain bindings, as many as possible. The important thing is
that any new binding can be added following strictly the same
guidelines used for others. 'Bindings.Sqlite3' is just an
example on how this will be done.

Suppose that 5 people want to write 5 different USB high-level
modules. The beneficts are:

- they all can use the low-level binding in this package for
OpenUSB (which is not available now, until some expert on
that library helps me do it). No need for testing, debugging,
checking for portability or proper initialization, as all that
has been taken into account.

- no need to read documentation. Guidelines in 'bindings'
ensures that the documentation for the original package (in
this case, the C documentation for OpenUSB) is valid for Haskell
binding. If you know OpenUSB in C, you can use Bindings.OpenUSB
almost without even looking at the documentation for that module.

- if a bug is discovered in Bindings.OpenUSB, it's solved there.
Those 5 high-level modules won't need to check for the same
error.

- those writing the high-level modules have no need to learn
about 'foreign import'.

- if high-level coders fell unsafe about the behavior of the
API, they can write an HUnit test that will be added to the
test code in 'bindings'. (This is stated in the documentation.
If you write a test and it does apply, it will be added to the
test code.) All five high level modules benefict from that.

 For example, the StandardC module would seem to duplicate the
 'cmath'  package: (...) While the Sqlite3 module duplicates:
 (...)sqlite

This package came from my need to use sqlite3. If 'sqlite'
existed before, it probably would not exist. But this is not
important.

What is important is: if 'sqlite', and all other many sqlite3
packages, removed their low-level (foreign import .* etc.)
and instead added 'bindings' as a dependency, they could all
count on Many eyes make all bugs shallow to the low level
code. And everybody could expend more time with the high level
stuff, which I'm sure everybody likes the most.

I would like this package to be a repository where we could find
any good portable C (and other languages, when FFI support that)
package. If that happens (and the maintainer will probably
have to be someone better than me) I think a new module space is
worthwhile. Maybe 'Foreign.Bindings.*' instead of 'Bindings.*'.

Sorry for the long post, but it took me a lot of time to get the
proper design for this package, specially for the guidelines.
If it doesn't work (i.e., nobody gets interested), it's dead
for good.

Best,
Maurício

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


[Haskell-cafe] What happened to Haskell original goals?

2007-01-10 Thread Maurício

  I remember reading avoid success at all costs
somewhere. I miss the old days when I could read
all messages in this list. Today, I can hardly
keep up with a few of the most interesting
threads.

  Good programming for all you guys in 2007. Thanks
for your support and comments, and for helping me
learning this really cool language.

  Maurício

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


[Haskell-cafe] Nice cygwin application to be used with ghci

2006-08-15 Thread Maurício

  Hi,

  I've just uploaded a package ('rlwrap') to cygwin that I like to use 
with ghci. You can use it like this:


rlwrap ghcii.sh

and then you will use ghci as if it were readline aware (i.e., you can 
press up arrow to get last typed lines etc.). 'rlwrap' is very stable 
and I never had unexpected results while using it.
  Since the issue of ghci integration with terminals has been raised 
here sometimes, I thought some guys here would be interested (actually, 
I found rlwrap looking for a better way to use ghci).


  Best,
  Maurício

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


[Haskell-cafe] Genetic programming Haskell

2006-08-15 Thread Maurício

  Hi,

  Does anyone know of a package for genetic programming for Haskell? I 
tried some links from Haskell wiki and some I found on google, and found 
many interesting papers, but none of them pointed to downloadable code. 
Does anyone know where can I find a good implementation (even an 
experimental one)?


  Thanks,
  Maurício

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


[Haskell-cafe] Opening a file that another process is writing

2006-07-20 Thread Maurício

  Hi,

  I want to open for reading a log file that another process is locking 
for write. I know it's possible, since 'cat' and 'vim' can read that 
file (but not edit it, of course). How can I do that in Haskell? 
'openFile' says permission denied.


  Thanks,
  Maurício

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


[Haskell-cafe] Re: Small syntax question

2006-07-12 Thread Maurício
  That's very good for us begginers. It would be great if this could be 
in the main Haskell site.


Doaitse Swierstra wrote:
Jeroen Fokker has made Haskell syntax diagrams, which are part of 
lecture notes for first-year students. Maybe they are helpful to others 
too,


 Doaitse

http://abaris.zoo.cs.uu.nl:8080/wiki/pub/FP/CourseLiterature/haskellsyntax-main.pdf 




On Jul 11, 2006, at 4:30 PM, Thiago Arrais wrote:


By the way, you can find the syntax specification here

http://haskell.org/onlinereport/syntax-iso.html

Regards,

Thiago Arrais
--Mergulhando no Caos - http://thiagoarrais.blogspot.com
Pensamentos, idéias e devaneios sobre desenvolvimento de software e
tecnologia em geral
___
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] Small syntax question

2006-07-11 Thread Maurício

  Hi,

  I can do this:

(let a=3 in a) + (let b=4 in b)

but not this:

(a where a=3) + (b where b=3)

  Why?

  Thanks,
  Maurício

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


[Haskell-cafe] Re: Efficient way to edit a file

2006-06-19 Thread Maurício

David Roundy wrote:

On Fri, Jun 02, 2006 at 12:34:51PM +1000, Donald Bruce Stewart wrote:


dons:


briqueabraque:


 Hi,

 I need to edit big text files (5 to 500 Mb). But I just need to 
change one or two small lines, and save it. What is the best way to do 
that in Haskell, without creating copies of the whole files?




Thinking further, since you want to avoid copying on the disk, you need
to be able to keep the edited version in memory. So the strict
bytestring would be best, for example:



dons is right here, but I'd add that it's hard to safely edit a big
file without creating a copy, if you want your program to leave the
file in a consistent state even if it crashes (power failure, kill,
file server failure).  dons' suggestion could leave you with a deleted
file (if power goes down at the beginning of a write).  If you aren't
changing the size of the file, opening it ReadWrite will allow you to
modify it reasonably safeily.  If you *are* changing its size, then
doing something explicit would probably be the way to go (and I'd
probably actually use mmap and memmove to make the change, if you do
need to modify the file size).  But then, I'm thinking posix (as I
generally do), which may not be the case for you.  And perhaps you
don't need to be careful.  I've found that if bad things can happen,
they do.  But that's largely because darcs has lots of users...


  I like very much the idea of memory mapping the file. In some 
situations, random access to the file would help a lot. Can I do that on 
Windows?
  Also: safety is not a concern. I can delete those big files as much 
as I need, they are only temporary data.


  Maurício

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


[Haskell-cafe] Efficient way to edit a file

2006-06-01 Thread Maurício

  Hi,

  I need to edit big text files (5 to 500 Mb). But I just need to 
change one or two small lines, and save it. What is the best way to do 
that in Haskell, without creating copies of the whole files?


  Thanks,
  Maurício

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


[Haskell-cafe] Re: Unexpected results with simple IO

2006-02-20 Thread Maurício
  I'm also using GHC 6.4.1 and rxvt v2.7.10. The problem does occur in 
compiled code, but everything is OK in ghci!

  hFlush stdout did solve the problem, as expected.
  I've just started using rxvt. If you have tips on how to make ghci 
work well with rxvt, please share them with me (for instance, how to set 
the top arrow to repeat the last line, instead of moving the cursor one 
live above. I don't understand very well how those applications handle 
keyboard).


  Best,
  Maurício

Emil Axelsson wrote:

What version of GHC are you using?
Your code works for me in rxvt in Cygwin, with GHC 6.4.1. But I remember 
having that same problem earlier (in some earlier GHC version, so it may 
be fixed by now).


The solution was to run hFlush after each putStr, like so:

  import System.IO (hFlush, stdout)

  do putStr ...
 hHlush stdout
 ...

If I remember correctly, the problem only occurred in GHCi and Hugs -- 
not when compiling the code.


/ Emil



Maurício skrev:

  You're right... I was running the example in rxvt, in cygwin. Now I 
tried in Windows command shell and it works.


  Thanks,
  Maurício

Cale Gibbard wrote:


That doesn't happen for me at all, it works just fine. Maybe it's
something wrong with your terminal? You could possibly try playing
with the buffering settings on stdout, using hSetBuffering in
System.IO.

 - Cale

On 17/02/06, Maurício [EMAIL PROTECTED] wrote:


  Dear Haskell users,

  I have a problem using IO. The small test program below asks the user
to guess from a list of random numbers between 1 and 10. Everything
works well excepts for one problem: all the messages (Guess a
number..., Right... and Wrong...) are printed after the program
finishes, i.e., I have to use it blind. I'm afraid I misunderstand
something important about lazyness or monads... What am I doing wrong?

  Thanks,
  Maurício

module Main where
import Random

main = do
   r_gen - getStdGen --random generator
   let r_list = (randomRs (1,10) r_gen) --random list
   guess_loop (r_list)

guess_loop (r:r_others) = do
   putStrLn Guess a number between 1 and 10:
   n - readLn
   if n==r
  then do
 putStrLn Right! :)
 return ()
  else do
 putStrLn Wrong... :(
 guess_loop r_others

___
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] Re: Unexpected results with simple IO

2006-02-17 Thread Maurício
  You're right... I was running the example in rxvt, in cygwin. Now I 
tried in Windows command shell and it works.


  Thanks,
  Maurício

Cale Gibbard wrote:

That doesn't happen for me at all, it works just fine. Maybe it's
something wrong with your terminal? You could possibly try playing
with the buffering settings on stdout, using hSetBuffering in
System.IO.

 - Cale

On 17/02/06, Maurício [EMAIL PROTECTED] wrote:


  Dear Haskell users,

  I have a problem using IO. The small test program below asks the user
to guess from a list of random numbers between 1 and 10. Everything
works well excepts for one problem: all the messages (Guess a
number..., Right... and Wrong...) are printed after the program
finishes, i.e., I have to use it blind. I'm afraid I misunderstand
something important about lazyness or monads... What am I doing wrong?

  Thanks,
  Maurício

module Main where
import Random

main = do
   r_gen - getStdGen --random generator
   let r_list = (randomRs (1,10) r_gen) --random list
   guess_loop (r_list)

guess_loop (r:r_others) = do
   putStrLn Guess a number between 1 and 10:
   n - readLn
   if n==r
  then do
 putStrLn Right! :)
 return ()
  else do
 putStrLn Wrong... :(
 guess_loop r_others

___
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] Layout processing

2006-02-15 Thread Maurício

  Hi,

  Is it possible to ask GHC or other Haskell compiler to generate a 
Haskell source file just after the processing of layout? I.e., I would 
like to see this:


main = do
a - some_function

  Transformed into this:

main = do {a - some_function;

  I thought that would be usefull to understand better how layout works.

  Thanks,
  Maurício

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


[Haskell-cafe] Small syntax question

2006-02-13 Thread Maurício

  Hi,

  This is valid code:

module Main where
main = do
let a = 3
return ()


  Why isn't this one?

module Main where
main = do {
let a = 3;
return ();
};

  Thanks for your help,
  Maurício

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


[Haskell-cafe] Re: Haskell code for this example of flow control

2006-02-03 Thread Maurício

Kurt Hutchinson wrote:

On 2/2/06, Maurício [EMAIL PROTECTED] wrote:


  I understand those examples, but I really would like to know how to
do that with monads. I would like to ask the same question, but now with
this code:

double a = 1000;
double b = 0;
while (a != b) {
a /= 2;
cout  a; // Prints a
cin  b; // User gives a number, stored in b
};



An idiomatic approach:
example :: Double - Double - IO ()
example a b
| a == b= return ()
| otherwise = do
let a' = a / 2
print a'
b' - readLn
example a' b'

main = example 1000 0


  Thanks! Robert's, Chris' and yours examples solved many of my 
questions. I understand I can insert modifications in IORefs (as used by 
Robert and Chris) inside the loop above:


| otherwise = do
 let a' = a / 2
 ...
 modifyIORef some_ioref some_function
 ...
 example a' b'

  I wonder if I could write a generic while based on your example:

while :: (a - IO a) - (a - Bool) - IO ()

  I'll probably learn something trying that.

  Best,
  Maurício

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


[Haskell-cafe] Re: Haskell code for this example of flow control

2006-02-02 Thread Maurício

Donald Bruce Stewart wrote:

briqueabraque:


 Hi,

 I would like to know what options I have in Haskell to do something 
similar to this C++ code:


double a = 1000;
while (a1) a/=2;

 I'm able to do that with lists, but I would like to know how to do 
that with monads and variables with state.



You'll get good code using a normal recusive loop:

main = print (loop 1000)
where
loop a | a = 1= a 
   | otherwise = loop (a/2)


All such control structures may be implemented using recursion.

-- Don


  I understand those examples, but I really would like to know how to 
do that with monads. I would like to ask the same question, but now with 
this code:


double a = 1000;
double b = 0;
while (a != b) {
a /= 2;
cout  a; // Prints a
cin  b; // User gives a number, stored in b
};

  Best,
  Maurício


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


[Haskell-cafe] Re: Can I use Haskell for web programming

2006-01-23 Thread Maurício
  I think it would be interesting to ask some professional site to 
install hsp, before I go to the cgi solution. If I want to do that, what 
should I ask them to install to get a full working environment, with 
access to SQL and other stuff?


  Maurício

Niklas Broberg wrote:

hsp can be run in two different modes. Running the full-blown version
with runtime system will probably be hard on a professional site, you
would have to convince them to install hsp. But if you can do without
the fancier bits, in particular application-scoped data, you can run
hsp pages as ordinary cgi scripts. Look in the HSPR.CGI.RunCGI module.

/Niklas

On 1/21/06, Maurício [EMAIL PROTECTED] wrote:


  They both look cool. Do you think I'll be able to find someone to
host professional sites using those libraries?

  [],
  Maurício

Sebastian Sylvan wrote:


On 1/21/06, Maurício [EMAIL PROTECTED] wrote:



 Hi,

 Can I use Haskell to do what people do with, say, PHP? More and more
I have the need for that, and I've been looking into Ruby on Rails. Do
you thing Haskell could be a choice? Of course, I don't need something
exactly like PHP (for instance, I don't care if I can't insert code in
the middle of xhtml pages. If I have to generate everything from Haskell
code, I would probably like it. Also, CGI can be a choice). But I need
reasonable efficiency and to be able to find someone to host my site.
 What solutions do you suggest me?




Take a look at WASH and HSP...

http://www.informatik.uni-freiburg.de/~thiemann/WASH/
http://www.cs.chalmers.se/~d00nibro/hsp/

--
Sebastian Sylvan
+46(0)736-818655
UIN: 44640862


___
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] Can I use Haskell for web programming

2006-01-21 Thread Maurício

  Hi,

  Can I use Haskell to do what people do with, say, PHP? More and more 
I have the need for that, and I've been looking into Ruby on Rails. Do 
you thing Haskell could be a choice? Of course, I don't need something 
exactly like PHP (for instance, I don't care if I can't insert code in 
the middle of xhtml pages. If I have to generate everything from Haskell 
code, I would probably like it. Also, CGI can be a choice). But I need 
reasonable efficiency and to be able to find someone to host my site.

  What solutions do you suggest me?

  Thanks,
  Maurício

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


[Haskell-cafe] Re: Can I use Haskell for web programming

2006-01-21 Thread Maurício
  They both look cool. Do you think I'll be able to find someone to 
host professional sites using those libraries?


  [],
  Maurício

Sebastian Sylvan wrote:

On 1/21/06, Maurício [EMAIL PROTECTED] wrote:


  Hi,

  Can I use Haskell to do what people do with, say, PHP? More and more
I have the need for that, and I've been looking into Ruby on Rails. Do
you thing Haskell could be a choice? Of course, I don't need something
exactly like PHP (for instance, I don't care if I can't insert code in
the middle of xhtml pages. If I have to generate everything from Haskell
code, I would probably like it. Also, CGI can be a choice). But I need
reasonable efficiency and to be able to find someone to host my site.
  What solutions do you suggest me?




Take a look at WASH and HSP...

http://www.informatik.uni-freiburg.de/~thiemann/WASH/
http://www.cs.chalmers.se/~d00nibro/hsp/

--
Sebastian Sylvan
+46(0)736-818655
UIN: 44640862


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


[Haskell-cafe] Re: Can I use Haskell for web programming

2006-01-21 Thread Maurício
  Interesting. It's hosted on Haskell site. Do you think I would be 
able to do what you have done in a professional hosting service computer?


  Best,
  Maurício

Neil Mitchell wrote:

Hi,



  Can I use Haskell to do what people do with, say, PHP?



I wrote Hoogle (http://haskell.org/hoogle) using Haskell, without
using any libraries - just directly as a console program. It's open
source so you can download it and see how its done, if you want. Of
course the web handling bit is more low level than WASH and HSP.

Thanks

Neil

On 21/01/06, Maurício [EMAIL PROTECTED] wrote:


  Hi,



and more


I have the need for that, and I've been looking into Ruby on Rails. Do
you thing Haskell could be a choice? Of course, I don't need something
exactly like PHP (for instance, I don't care if I can't insert code in
the middle of xhtml pages. If I have to generate everything from Haskell
code, I would probably like it. Also, CGI can be a choice). But I need
reasonable efficiency and to be able to find someone to host my site.
  What solutions do you suggest me?

  Thanks,
  Maurício

___
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] (**) over integers

2005-06-14 Thread Maurício

  Hi,

  I'm trying to do this:

let f n = mod (n**5) 12

but I see that I can't because ** only operates on floats. Is there an 
equivalent operator that works on integers? How should I do that?


  Thanks,
  Maurício

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


[Haskell-cafe] Re: Visual Hashell Studio.NET 2005

2005-06-06 Thread Maurício

Brian Smith wrote:

Hi,

When will VHS support the Visual Studio.NET 2005 Beta? I'd like to
volunteer to test VHS.NET 2005 when it is available. (Also, MS is
giving away the VS.NET 2005 beta for free, and VS.NET 2003 costs a
whopping $15.00 from my school's bookstore).

Thanks,
Brian


  Can we use Haskell with mono?

  [...],
  Maurício

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



[Haskell-cafe] Corba and Haskell

2005-03-04 Thread Maurício
  Hi,
  Have you guys used any Corba library for Haskell? Which one would you 
recommend (if there are more than one)?

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


[Haskell-cafe] Re: Browser-like UI

2005-03-01 Thread Maurício

  I've seen some options for GUI programming in Haskell libraries page, 
but what I really would like is to define my user interface using HTML 
(or, maybe, SVG). What are the options to do that in Haskell? I've read 
that Gtk2Hs has a mozilla rendering engine, but unfortunatly that won't 
build on my 64Mb computer. What else can I use? How does that work, can 
I handle HTML events with Haskell code?

If there are no pre-built packages of gtk2hs for your system you can still build
from source in a reasonably straigtforward way. Basically we provide pre-built
versions of the problematic files that take so much memory to create in an
ordinary build. The remainer of the build does not require very much memory.
See this FAQ:
http://gtk2hs.sourceforge.net/archives/2005/02/18/building-on-machines-with-less-ram/
If there are no versions of these pre-built files that are appropriate for your
platform please ask on the gtk2hs mailing list and we'll see what we can do.
  I did read that FAQ, but it says that I should build with:
$ ./configure --disable-gnome --disable-mozilla
  Doesn't that means that the mozilla interface should be disabled?
  Maurício
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Browser-like UI

2005-02-28 Thread Maurício
  Hi,
  I've seen some options for GUI programming in Haskell libraries page, 
but what I really would like is to define my user interface using HTML 
(or, maybe, SVG). What are the options to do that in Haskell? I've read 
that Gtk2Hs has a mozilla rendering engine, but unfortunatly that won't 
build on my 64Mb computer. What else can I use? How does that work, can 
I handle HTML events with Haskell code?

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


[Haskell-cafe] Re: Begginer question

2005-01-06 Thread Maurício
Ketil Malde wrote:
Maurício [EMAIL PROTECTED] writes:
  (...)
Couldn't match `Float' against `Complex Float'
Expected type: Float
Inferred type: Complex Float
In the second argument of `(+)', namely `sqr_delta'
In the definition of `x1': x1 = (b + sqr_delta)

The error message says it all, really.
 (...)
Note that Haskell doesn't automatically convert arguments for you --
this is a feature.  

-kzm
  When I type this:
*
import Complex;
a = 3 :+ 4;
*
and load it into ghci, a + 4 gives me 7.0 :+ 4.0, although a + 
(4::Float) gives me that error again. Why Haskell converts 4 to 
Complex but not a Float?

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


[Haskell-cafe] Begginer question

2005-01-05 Thread Maurício
  Hi,
  When compiling this:

import Complex;
complex_root :: (Float, Float, Float) - (Complex Float, Complex Float)
complex_root (a,b,c) = (x1,x2) where {	
	delta = b * b - 4 * a * c :: Float;
	sqr_delta = if delta = 0 then (sqrt delta) :+ 0 else 0 :+ (sqrt delta) 
:: (Complex Float);
	x1 = (b + sqr_delta)/(2 * a);
	x2 = (b - sqr_delta)/(2 * a);
}
***

  I get this error message:
**
Couldn't match `Float' against `Complex Float'
Expected type: Float
Inferred type: Complex Float
In the second argument of `(+)', namely `sqr_delta'
In the definition of `x1': x1 = (b + sqr_delta)
***
  Can you help me finding what is wrong? Shouldn't b be converted to 
Complex Float and be summed to sqr_delta?

  Thanks for your help,
  Maurício
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe