[Haskell-cafe] ANNOUNCE: darcs 2.5

2010-10-30 Thread Reinier Lamers
Hi all,

The darcs team is proud to announce the release of darcs 2.5. Darcs 2.5 
contains many improvements over the 2.4 series. Most notable are the 
performance improvements in record and pull and the --bisect option for 
trackdown.

The easiest way to install darcs 2.5 is using the Haskell Platform [1]. If you 
have installed the Haskell Platform or cabal-install, you can install this 
beta release by doing:

  $ cabal update
  $ cabal install darcs

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.5.tar.gz and build it by hand as 
explained in the README file.

What's New
--

A list of important changes since darcs 2.4.4:

   * trackdown can now do binary search with the --bisect option
   * darcs always stores patch metadata encoded with UTF-8
   * diff now supports the --index option
   * amend-record now supports the --ask-deps option
   * apply now supports the --match option
   * amend-record has a new --keep-date option
   * inventory-changing commands (like record and pull) now operate in
 constant time with respect to the number of patches in the repository
   * the push, pull, send and fetch commands no longer change the default
 repository address by default
   * the --edit-description option is now on by default for the send command

Issues resolved since darcs 2.4.4:

   * 64:   store metadata as UTF-8
   * 121:  add --ask-deps support to amend-record
   * 643:  darcs send -o outputs remote repo email address
   * 1159: avoid bogus repository cache entries
   * 1176: caches interfere with --remote-repo flag
   * 1208: add trackdown --bisect
   * 1210: global cache gets recorded in _darcs/prefs/sources
   * 1232: darcs convert copies _darcs/prefs/prefs
   * 1250: check for newlines in setpref values
   * 1277: percolate repository format errors correctly
   * 1288: the main darcs code now compiles and runs with witnesses
   * 1290: support diff --index
   * 1337: don't show unrelated patches in darcs changes on untracked path
   * 1389: change predist pref to point people to use 'cabal sdist'
   * 1427: accept gzipped patch bundles in darcs apply
   * 1456: make dist write more portable archives
   * 1473: make annotate accept '.' as argument
   * 1503: prefer local caches to remote ones
   * 1713: shorter interactive prompts
   * 1716: allow mail header lines of all whitespace in test
   * 1719: do not back up files when no conflict markers are inserted
   * 1726: don't consider all files with _darcs prefix boring
   * 1739: make ColorPrinter handle characters  255
   * 1763: use correct filename encoding in conflictors
   * 1765: refuse to remove non-tracked directories recursively
   * 1769: add support for --match 'comment ...'
   * 1784: push and pull print remote address right away
   * 1815: work around Cabal sdist permissions issue
   * 1817: fix support for external merge tools
   * 1824: avoid PACKAGE_VERSION under Windows
   * 1825: do not omit important prims in unrecordedChanges w/ files
   * 1860: (un)applying move patches doesn't corrupt pristine
   * 1861: fix typo in --no-boring help
   * 1874: recognise network tests on cabal test command line
   * 1875: avoid accidentally setting default
   * 1879: notice unexpected commute failure on merge
   * 1887: add a missing newline to --list-options output
   * 1893: move fields of conditional builds within scope of condition
   * 1898: notify user when they can use set-default
   * 1913: sort changes in treeDiff

Reporting bugs
--

If you have an issue with darcs 2.5, you can report it via the web on 
http://bugs.darcs.net/ . You can also report bugs by email to b...@darcs.net.

Kind Regards,
the darcs release manager,
Reinier Lamers

[1]: You can download the Haskell platform from
 http://hackage.haskell.org/platform/


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


[Haskell-cafe] ANNOUNCE: darcs 2.5 release candidate 1

2010-10-15 Thread Reinier Lamers
The darcs team would like to announce the immediate availability of darcs 2.5
release candidate 1 (also known as darcs 2.4.99.1 due to Cabal restrictions). 
If no blocking issues are found in the coming week, we will finally releease 
darcs 2.5.

Important changes since darcs 2.4.4 are:

   * trackdown can now do binary search with the --bisect option
   * darcs always stores patch metadata encoded with UTF-8
   * diff now supports the --index option
   * amend-record now supports the --ask-deps option
   * apply now supports the --match option
   * amend-record has a new --keep-date option
   * inventory-changing commands (like record and pull) now operate in
 constant time with respect to the number of patches in the repository
   * the push, pull, send and fetch commands no longer set the default
 repository by default
   * the --edit-description option is now on by default for the send command

Changes since the last beta release are:
   * Fix a bug that let users add files outside the working copy directory
   * Fix excessive network usage when pulling from an old-fashioned repository
   * Make sure darcs builds on Windows with Haskell Platform 2010.2.0.0

If you have installed the Haskell Platform or cabal-install, you can install
this beta release by doing:

  $ cabal update
  $ cabal install darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.4.99.1.tar.gz and build it by hand as 
explained in the README file.

Kind Regards,
the darcs release manager,
Reinier Lamers  


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


[Haskell-cafe] ANNOUNCE: darcs 2.5 beta 5

2010-09-05 Thread Reinier Lamers
The darcs team would like to announce the immediate availability of darcs 2.5
beta 5 (also known as darcs 2.4.98.5 due to Cabal restrictions). Important 
changes since darcs 2.4.4 are:

   * trackdown can now do binary search with the --bisect option
   * darcs always stores patch metadata encoded with UTF-8
   * diff now supports the --index option
   * amend-record now supports the --ask-deps option
   * apply now supports the --match option
   * amend-record has a new --keep-date option
   * inventory-changing commands (like record and pull) now operate in
 constant time with respect to the number of patches in the repository
   * the push, pull, send and fetch commands no longer set the default
 repository by default
   * the --edit-description option is now on by default for the send command

Changes since the last beta release are:
   * document that GHC 6.10 is required to build darcs 2.5
   * the --index flag is now disabled for amend-record because it was broken
   * clean up documentation for trackdown
   * no longer require a specific version of the hashed-storage package

If you have installed the Haskell Platform or cabal-install, you can install
this beta release by doing:

  $ cabal update
  $ cabal install darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.4.98.5.tar.gz and build it by hand as 
explained in the README file.

Kind Regards,
the darcs release manager,
Reinier Lamers  


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


[Haskell-cafe] ANNOUNCE: darcs 2.5 beta 4

2010-08-23 Thread Reinier Lamers
The darcs team would like to announce the immediate availability of darcs 2.5
beta 4 (also known as darcs 2.4.98.4 due to Cabal restrictions). Important 
changes since darcs 2.4.4 are:

   * trackdown can now do binary search with the --bisect option
   * darcs always stores patch metadata encoded with UTF-8
   * diff now supports the --index option
   * amend-record now supports the --ask-deps option
   * apply now supports the --match option
   * amend-record has a new --keep-date option
   * inventory-changing commands (like record and pull) now operate in
 constant time with respect to the number of patches in the repository
   * the push, pull, send and fetch commands no longer set the default
 repository by default
   * the --edit-description option is now on by default for the send command

Changes since the last beta release are:
   * Fix issue 1898: warn users about changes to command line flag defaults
   * Fix issue 1913: sort changes in treeDiff (fixes failure in record)
   * Fix issue 1815: make the tarball with the right permissions

If you have installed the Haskell Platform or cabal-install, you can install
this beta release by doing:

  $ cabal update
  $ cabal install darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.4.98.4.tar.gz and build it by hand as 
explained in the README file.

Kind Regards,
the darcs release manager,
Reinier Lamers  


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


[Haskell-cafe] ANNOUNCE: darcs 2.5 beta 3

2010-08-15 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 2.5
beta 3 (also known as darcs 2.4.98.3 due to Cabal restrictions). Important 
changes since darcs 2.4.4 are:

   * trackdown can now do binary search with the --bisect option
   * darcs always stores patch metadata encoded with UTF-8
   * diff now supports the --index option
   * amend-record now supports the --ask-deps option
   * apply now supports the --match option
   * amend-record has a new --keep-date option
   * inventory-changing commands (like record and pull) now operate in
 constant time with respect to the number of patches in the repository
   * the push, pull, send and fetch commands no longer set the default
 repository by default
   * the --edit-description option is now on by default for the send command

You may notice that a line obliterate has a -o flag to save obliterated 
patch was removed from this list of changes since the darcs 2.5 beta 2 
announcement. We have postponed this feature because we discovered some 
problems with it, and we want to take the time to fix them adequately. On the 
other hand, a line diff now supports the --index option was added since the 
last beta :)

If you have installed the Haskell Platform or cabal-install, you can install
this beta release by doing:

  $ cabal update
  $ cabal install darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.4.98.3.tar.gz and build it by hand as 
explained in the README file. (You may notice that the Unix permissions in 
this tarball are weird - all files are 0600. That is because of Cabal bug 
#627: http://hackage.haskell.org/trac/hackage/ticket/627. It will be fixed in 
the final release.)

Kind Regards,
the darcs release manager,
Reinier Lamers  


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


[Haskell-cafe] ANNOUNCE: darcs 2.5 beta 2

2010-07-26 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 2.5
beta 2 (also known as darcs 2.4.98.2 due to Cabal restrictions). Important 
changes since darcs 2.4.4 are:

   * trackdown can now do binary search with the --bisect option
   * darcs always stores patch metadata encoded with UTF-8
   * obliterate has a -o flag to save obliterated patch
   * amend-record now supports --ask-deps
   * apply now supports --match
   * amend-record has a new --keep-date option
   * inventory-changing commands (like record and pull) now operate in
 constant time with respect to the number of patches in the repository
   * the push, pull, send and fetch commands no longer set the default
 repository by default
   * the --edit-description option is now on by default for the send command

If you have installed the Haskell Platform or cabal-install, you can install
this beta release by doing:

  $ cabal update
  $ cabal install darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.4.98.2.tar.gz and build it by hand as 
explained in the README file. 

Kind Regards,
the darcs release manager,
Reinier Lamers


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] darcs 2.5 beta 1 release

2010-07-12 Thread Reinier Lamers
Hi,

Op zondag 11 juli 2010 18:02 schreef Jason Dagit:
 On Sun, Jul 11, 2010 at 5:51 AM, Reinier Lamers 
tux_roc...@reinier.dewrote:
  If you have installed the Haskell Platform or cabal-install, you can
  install
  this beta release by doing:
 
   $ cabal update
   $ cabal install darcs-beta
 
 
 Did you forget to upload the 2.5 beta to hackage?  The latest version I see
 is in the 2.4 series.

I'm sorry. I intended to include a note explaining the relation between 
numerical (2.4.98.1) and beta/rc(2.5 beta 1) version names, but forgot to 
do so. This should be fixed for beta 2 :)

Reinier


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


[Haskell-cafe] darcs 2.5 beta 1 release

2010-07-11 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 2.5
beta 1. Important changes since darcs 2.4.4 are:

   * trackdown can now do binary search with the --bisect option
   * darcs always stores patch metadata encoded with UTF-8
   * obliterate has a -o flag to save obliterated patch
   * amend-record now supports --ask-deps
   * apply now supports --match
   * amend-record has a new --keep-date option
   * inventory-changing commands (like record and pull) now operate in
 constant time with respect to the number of patches in the repository

If you have installed the Haskell Platform or cabal-install, you can install
this beta release by doing:

  $ cabal update
  $ cabal install darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.4.98.1.tar.gz and build it by hand as 
explained in the README file. 

Kind Regards,
the darcs release manager,
Reinier Lamers


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


[Haskell-cafe] ANNOUNCE: darcs 2.4.1

2010-04-12 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 
2.4.1. This release fixes a number of issues that were found in darcs 2.4. The 
most important of these issues were that darcs did not work on Windows shares, 
and that darcs would not work if it was built with a wrong version of the mmap 
package.

The easiest way to install darcs is using the Haskell Platform [1]. If you 
have installed the Haskell Platform or cabal-install, you can install this 
release by doing:

  $ cabal update
  $ cabal install --reinstall darcs

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.4.1.tar.gz and build it by hand as 
explained in the README file.

What's New
--

 * Important changes in Darcs 2.4.1

   * darcs works again on Windows network shares
   * missing documentation and test files have been added to the tarball
   * darcs will no longer give errors about a nonexistent file when compiled
 with the wrong mmap
   * moving files between directories can no longer break the directory index
   * darcs handles the case that someone uses 'remove -r' on an
 untracked directory
   * darcs ignores symlinks again, like all pre-2.4 releases

 * Bugs Fixed in Darcs 2.4.1

   * 1645: ignore symlinks
   * 1750: uncover help text for 'darcs show pristine'
   * 1753: restrict mmap to version used by hashed-storage
   * 1754: fix issue458.sh on systems with xattrs
   * 1756: moving files between directories breaks index
   * 1757: add test files to distribution tarball
   * 1765: refuse to remove non-tracked directories recursively
   * 1767: send CRC erros to standard error


Reporting bugs
--

If you have an issue with darcs 2.4.1, you can report it via the web on 
http://bugs.darcs.net/ . You can also report bugs by email to b...@darcs.net.


Kind Regards,
the darcs release manager,
Reinier Lamers

[1]: You can download the Haskell platform from
 http://hackage.haskell.org/platform/


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


[Haskell-cafe] darcs 2.4 release candidate 2

2010-02-18 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 2.4
release candidate 2. darcs 2.4 will contain many improvements and bugfixes 
compared to darcs 2.3.1. Highlights are the faster operation of record, revert 
and related commands, and the experimental interactive hunk editing. This beta 
is your chance to test-drive these improvements and make darcs even better.

Compared to darcs 2.4 beta 3, the performance of darcs check and darcs 
repair has been brought up to the level of darcs 2.3.1.`

The easiest way to install darcs is using the Haskell Platform [1]. If you 
have installed the Haskell Platform or cabal-install, you can install this 
beta release by doing:

  $ cabal update
  $ cabal install --reinstall darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-beta-2.3.99.2.tar.gz , and build it by hand as 
explained in the README file.

Interactive hunk editing


To try out interactive hunk editing, press 'e' when you are prompted with a 
hunk patch by 'darcs record'. You will then be shown an editor screen in which 
you can edit the state you want to record between the last two ruler lines.

You can find more information about the hunk editing feature on 
http://wiki.darcs.net/HunkEditor .

Reporting bugs
--

If you have an issue with darcs 2.4 release candidate 2, you can report it via 
the web on http://bugs.darcs.net/ . You can also report bugs by email to 
b...@darcs.net.

What's New
--

A list of important changes since 2.3.1 is as follows (please let me know if 
there's something you miss!):
   * Use fast index-based diffing everywhere (Petr)
   * Interactive patch splitting (Ganesh)
   * An 'optimize --upgrade' option to convert  to hashed format in-place
 (Eric)
   * Hunk matching (Kamil Dworakowski, tat.wright)
   * Progress reporting is no longer deceptive (Roman)
   * A 'remove --recursive' option to remove a directory tree from revision
 control (Roman)
   * 'show files' accepts arguments to show a subset of tracked files (Luca)
   * A '--remote-darcs' flag for pushing to a host where darcs isn't called
 darcs
   * Many miscellaneous Windows improvements (Salvatore, Petr and others)
   * 'darcs send' now mentions the repository name in the email body (Joachim)
   * Handle files with boring names in the repository correctly (Petr)
   * Fix parsing of .authorspellings file (Tomáš)
   * Various sane new command-line option names (Florent)
   * Remove the '--checkpoint' option (Petr)
   * Use external libraries for all UTF-8 handling (Eric, Reinier)
   * Use the Haskell zlib package exclusively for compression (Petr)

A list of issues resolved since 2.3.1:
   *  183: do not sort changes --summary output
   *  223: add --remote-darcs flag to specify name of remote darcs executable
   *  291: provide (basic) interactive patch splitting
   *  540: darcs remove --recursive
   *  835: 'show files' with arguments
   * 1122: get --complete should not offer to create a lazy repository
   * 1216: list Match section in ToC
   * 1224: refuse to convert a repo that's already in darcs-2 format
   * 1300: logfile deleted on unsucessful record
   * 1308: push should warn about unpulled patches before patch-selection
   * 1336: sane error message on --last  (empty string to numbers parser)
   * 1362: mention repo name in mail send body
   * 1377: getProgname for local darcs instances
   * 1392: use parsec to parse .authorspelling
   * 1424: darcs get wrongly reports using lazy repository if you ctrl-c 
   old-fashioned get
   * 1447: different online help for send/apply --cc
   * 1488: fix crash in whatsnew when invoked in non-tracked directory
   * 1548: show contents requires at least one argument
   * 1554: allow opt-out of -threaded (fix ARM builds)
   * 1563: official thank-you page
   * 1578: don't put newlines in the Haskeline prompts
   * 1583: on darcs get, suggest upgrading source repo to hashed
   * 1584: provide optimize --upgrade command
   * 1588: add --skip-conflicts option
   * 1594: define PREPROCHTML in makefile
   * 1620: make amend leave a log file when it should
   * 1636: hunk matching
   * 1643: optimize --upgrade should do optimize
   * 1652: suggest cabal update before cabal install
   * 1659: make restrictBoring take recorded state into account
   * 1677: create correct hashes for empty directories in index
   * 1681: preserve log on amend failure
   * 1709: fix short version of progress reporting
   * 1712: correctly report number of patches to pull
   * 1720: fix cabal haddock problem
   * 1731: fix performance regression in check and repair
   * 1741: fix --list-options when option has multiple names

Kind Regards,
the darcs release manager,
Reinier Lamers

[1]: You can download the Haskell platform from
 http://hackage.haskell.org/platform/   


signature.asc
Description: This is a digitally signed message part

[Haskell-cafe] darcs 2.4 beta 3 release

2010-01-26 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 2.4
beta 3. darcs 2.4 will contain many improvements and bugfixes compared to
darcs 2.3.1. Highlights are the faster operation of record, revert and related 
commands, and the experimental interactive hunk editing. This beta 
is your chance to test-drive these improvements and make darcs even better.

Compared to darcs 2.4 beta 2, the interface of interactive hunk editing has 
become more user-friendly.

The easiest way to install darcs is using the Haskell Platform [1]. If you 
have installed the Haskell Platform or cabal-install, you can install this 
beta release by doing:

  $ cabal update
  $ cabal install --reinstall darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-beta-2.3.98.3.tar.gz , and build it by hand as 
explained in the README file.

Interactive hunk editing


To try out interactive hunk editing, press 'e' when you are prompted with a 
hunk patch by 'darcs record'. You will then be shown an editor screen in which 
you can edit the state you want to record between the last two ruler lines.

You can find more information about the hunk editing feature on 
http://wiki.darcs.net/HunkEditor .

Reporting bugs
--

If you have an issue with darcs 2.4 beta 3, you can report it via the web on 
http://bugs.darcs.net/ . You can also report bugs by email to b...@darcs.net.

What's New
--

A list of important changes since 2.3.1 is as follows (please let me know if 
there's something you miss!):
   * Use fast index-based diffing everywhere (Petr)
   * Interactive patch splitting (Ganesh)
   * An 'optimize --upgrade' option to convert  to hashed format in-place
 (Eric)
   * Hunk matching (Kamil Dworakowski, tat.wright)
   * Progress reporting is no longer deceptive (Roman)
   * A 'remove --recursive' option to remove a directory tree from revision
 control (Roman)
   * 'show files' accepts arguments to show a subset of tracked files (Luca)
   * A '--remote-darcs' flag for pushing to a host where darcs isn't called
 darcs
   * Many miscellaneous Windows improvements (Salvatore, Petr and others)
   * 'darcs send' now mentions the repository name in the email body (Joachim)
   * Handle files with boring names in the repository correctly (Petr)
   * Fix parsing of .authorspellings file (Tomáš)
   * Various sane new command-line option names (Florent)
   * Remove the '--checkpoint' option (Petr)
   * Use external libraries for all UTF-8 handling (Eric, Reinier)
   * Use the Haskell zlib package exclusively for compression (Petr)

A list of issues resolved since 2.3.1:
   *  183: do not sort changes --summary output
   *  223: add --remote-darcs flag to specify name of remote darcs executable
   *  291: provide (basic) interactive patch splitting
   *  540: darcs remove --recursive
   *  835: 'show files' with arguments
   * 1122: get --complete should not offer to create a lazy repository
   * 1216: list Match section in ToC
   * 1224: refuse to convert a repo that's already in darcs-2 format
   * 1300: logfile deleted on unsucessful record
   * 1308: push should warn about unpulled patches before patch-selection
   * 1336: sane error message on --last  (empty string to numbers parser)
   * 1362: mention repo name in mail send body
   * 1377: getProgname for local darcs instances
   * 1392: use parsec to parse .authorspelling
   * 1424: darcs get wrongly reports using lazy repository if you ctrl-c 
   old-fashioned get
   * 1447: different online help for send/apply --cc
   * 1488: fix crash in whatsnew when invoked in non-tracked directory
   * 1548: show contents requires at least one argument
   * 1554: allow opt-out of -threaded (fix ARM builds)
   * 1563: official thank-you page
   * 1578: don't put newlines in the Haskeline prompts
   * 1583: on darcs get, suggest upgrading source repo to hashed
   * 1584: provide optimize --upgrade command
   * 1588: add --skip-conflicts option
   * 1594: define PREPROCHTML in makefile
   * 1620: make amend leave a log file when it should
   * 1636: hunk matching
   * 1643: optimize --upgrade should do optimize
   * 1652: suggest cabal update before cabal install
   * 1659: make restrictBoring take recorded state into account
   * 1677: create correct hashes for empty directories in index
   * 1681: preserve log on amend failure
   * 1709: fix short version of progress reporting
   * 1712: correctly report number of patches to pull
   * 1720: fix cabal haddock problem
   * 1731: fix performance regression in check and repair

Kind Regards,
the darcs release manager,
Reinier Lamers

[1]: You can download the Haskell platform from
 http://hackage.haskell.org/platform/


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] darcs 2.4 beta 2 release

2010-01-20 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 2.4
beta 2. darcs 2.4 will contain many improvements and bugfixes compared to
darcs 2.3.1. Highlights are the fast index-based diffing which is now used by
all darcs commands, and the experimental interactive hunk editing. This beta 
is your chance to test-drive these improvements and make darcs even better.

The easiest way to install darcs is using the Haskell Platform [1]. If you 
have installed the Haskell Platform or cabal-install, you can install this 
beta release by doing:

  $ cabal update
  $ cabal install --reinstall darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.3.98.2.tar.gz , and build it by hand as 
explained in the README file.

Interactive hunk editing


The interactive hunk editing feature is included in this beta. However, be 
aware that we are not entirely sure that the user interface in this version is 
ready yet. You're welcome to try it out, but be prepared for a learning curve 
that's somewhat steeper than usual for darcs.

To try out interactive hunk editing, press 'e' when you are prompted with a 
hunk patch by 'darcs record'. You will then be shown an editor screen in which 
you can edit the contents of the hunk as darcs should consider them to have 
been before and after the hunk patch you edit. You can edit the state you want 
to record between the last two === lines.

You can find more information about the hunk editing feature on 
http://wiki.darcs.net/HunkEditor .

Reporting bugs
--

If you have an issue with darcs 2.4 beta 2, you can report it via the web on 
http://bugs.darcs.net/ . You can also report bugs by email to b...@darcs.net.

What's New
--

A list of important changes since 2.3.1 is as follows (please let me know if 
there's something you miss!):
   * Use fast index-based diffing everywhere (Petr)
   * Interactive patch splitting (Ganesh)
   * An 'optimize --upgrade' option to convert  to hashed format in-place
 (Eric)
   * Hunk matching (Kamil Dworakowski, tat.wright)
   * Progress reporting is no longer deceptive (Roman)
   * A 'remove --recursive' option to remove a directory tree from revision
 control (Roman)
   * 'show files' accepts arguments to show a subset of tracked files (Luca)
   * A '--remote-darcs' flag for pushing to a host where darcs isn't called
 darcs
   * Many miscellaneous Windows improvements (Salvatore, Petr and others)
   * 'darcs send' now mentions the repository name in the email body (Joachim)
   * Handle files with boring names in the repository correctly (Petr)
   * Fix parsing of .authorspellings file (Tomáš)
   * Various sane new command-line option names (Florent)
   * Remove the '--checkpoint' option (Petr)
   * Use external libraries for all UTF-8 handling (Eric, Reinier)
   * Use the Haskell zlib package exclusively for compression (Petr)

A list of issues resolved since 2.3.1:
   *  183: do not sort changes --summary output
   *  223: add --remote-darcs flag to specify name of remote darcs executable
   *  291: provide (basic) interactive patch splitting
   *  540: darcs remove --recursive
   *  835: 'show files' with arguments
   * 1122: get --complete should not offer to create a lazy repository
   * 1216: list Match section in ToC
   * 1224: refuse to convert a repo that's already in darcs-2 format
   * 1300: logfile deleted on unsucessful record
   * 1308: push should warn about unpulled patches *before* patch-selection
   * 1336: sane error message on --last  (empty string to numbers parser)
   * 1362: mention repo name in mail send body
   * 1377: getProgname for local darcs instances
   * 1392: use parsec to parse .authorspelling
   * 1424: darcs get wrongly reports using lazy repository if you ctrl-c 
   old-fashioned get
   * 1447: different online help for send/apply --cc
   * 1488: fix crash in whatsnew when invoked in non-tracked directory
   * 1548: show contents requires at least one argument
   * 1554: allow opt-out of -threaded (fix ARM builds)
   * 1563: official thank-you page
   * 1578: don't put newlines in the Haskeline prompts
   * 1583: on darcs get, suggest upgrading source repo to hashed
   * 1584: provide optimize --upgrade command
   * 1588: add --skip-conflicts option
   * 1594: define PREPROCHTML in makefile
   * 1620: make amend leave a log file when it should
   * 1636: hunk matching
   * 1643: optimize --upgrade should do optimize
   * 1652: suggest cabal update before cabal install
   * 1659: make restrictBoring take recorded state into account
   * 1677: create correct hashes for empty directories in index
   * 1681: preserve log on amend failure
   * 1709: fix short version of progress reporting
   * 1712: correctly report number of patches to pull
   * 1720: fix cabal haddock problem
   * 1731: fix performance regression in check and repair

Kind Regards,
the darcs release manager,
Reinier Lamers

[Haskell-cafe] darcs 2.4 beta 1 release

2010-01-05 Thread Reinier Lamers
Hi all,

The darcs team would like to announce the immediate availability of darcs 2.4
beta 1. darcs 2.4 will contain many improvements and bugfixes compared to
darcs 2.3.1. Highlights are the fast index-based diffing which is now used by
all darcs commands, and the interactive hunk-splitting in darcs record. This 
beta is your chance to test-drive these improvements and make darcs even 
better.

If you have installed the Haskell Platform or cabal-install, you can install
this beta release by doing:

  $ cabal update
  $ cabal install --reinstall darcs-beta

Alternatively, you can download the tarball from 
http://darcs.net/releases/darcs-2.3.98.1.tar.gz , and build it by hand as 
explained in the README file. 

A list of important changes since 2.3.1 is as follows (please let me know if 
there's something you miss!):

   * Use fast index-based diffing everywhere (Petr)
   * Interactive patch splitting (Ganesh)
   * An 'optimize --upgrade' option to convert  to hashed format in-place 
 (Eric)
   * Hunk matching (Kamil Dworakowski, tat.wright)
   * Progress reporting is no longer deceptive (Roman Plášil)
   * A 'remove --recursive' option to remove a directory tree from revision
 control (Roman Plášil)
   * A '--remote-darcs' flag for pushing to a host where darcs isn't called
 darcs
   * Many miscellaneous Windows improvements (Salvatore, Petr and others)
   * 'darcs send' now mentions the repository name in the email body (Joachim)
   * Handle files with boring names in the repository correctly (Petr)
   * Fix parsing of .authorspellings file (Tomáš Caitt)
   * Various sane new command-line option names (Florent)
   * Remove the '--checkpoint' option (Petr)
   * Use external libraries for all UTF-8 handling (Eric, Reinier)
   * Use the Haskell zlib package exclusively for compression (Petr)

Kind Regards,
the darcs release manager,
Reinier Lamers


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] What *not* to use Haskell for

2008-11-12 Thread Reinier Lamers
2008/11/11 Dave Tapley [EMAIL PROTECTED]:
 So I should clarify I'm not a troll and do see the Haskell light. But
 one thing I can never answer when preaching to others is what does
 Haskell not do well?

Let's say something controversial: I think that Haskell's type system
gets in your way when you're writing one-shot scripts that don't need
to conform to the highest correctness standards. Imagine typing a
command at the shell prompt and getting the sort of abstract error
message that Haskell compilers give every now and then, like:

 whyerror.lhs:36:25:
 Ambiguous type variable `a' in the constraint:
   `Arrow a' arising from use of `' at whyerror.lhs:36:25-27
 Possible cause: the monomorphism restriction applied to the
 following:
   liftA2' :: forall b a1 b1 c. (a1 - b1 - c) - a b a1 - a b
 b1 - a b c
 (bound at whyerror.lhs:36:1)
   unsplit' :: forall a1 b c. (a1 - b - c) - a (a1, b) c
 (bound at whyerror.lhs:34:1)
   split' :: forall b. a b (b, b) (bound at whyerror.lhs:33:1)
 Probable fix: give these definition(s) an explicit type signature
   or use -fno-monomorphism-restriction

You don't want to be bothered by such monstrosities (yes, they are,
even though many of you may not see it because of years of
conditioning) when you're just hacking up a simple script to make a
catalog of your MP3 collection / check for patterns in log files /
whatever.

Also, in my experience Haskell is not so good at data structures where
you can't do structural recursion easily, like graphs. In such cases
you want a language with easy pointers and destructive updates. You
can do those things in pure Haskell by using
the ST monad, but the code will be more verbose than in Java or C++,
and it will occasionally drive you insane with type messages like the
above (You thought you could use '$' freely instead of application?
Wrong!).

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


Re: [Haskell-cafe] More idiomatic use of strictness

2008-07-10 Thread Reinier Lamers
Hi all,

Op Thursday 10 July 2008 12:16:25 schreef Grzegorz Chrupala:
 Is there a less ugly way of avoiding laziness in the code pasted below then
 the use of seq in the last line?
You could replace the list dfs' with a strict list type, like:

data StrictList  a = Cons !a !(StrictList a) | Nil

Then you wouldn't have to make useless calls to sum and seq to force 
strictness. It would be more work though because you'd have to define your 
own higher order functions to work with the strict list.

Reinier


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] whhaskell on osx 10.5

2008-05-20 Thread Reinier Lamers
Op Tuesday 20 May 2008 23:23:57 schreef Marc Weber:
 On Tue, May 20, 2008 at 12:38:14PM -0700, Kirk Peterson wrote:
  I had a difficult time getting wxhaskell installed and working on a
  mac running os x 10.5. I did a quick write up of the process I got
  working here:
 
  http://necrobious.blogspot.com/2008/05/wxhaskell-go-go.html

 $ cd ../samples/wx
 $ ghc -package wx -o helloworld HelloWorld.hs
 $ /opt/local/bin/macosx-app -v helloworld
 $ open helloworld.app

 I've never used a Mac.. Why do you run macosx-app ?

 Doesn't
 $ ./helloworld
 work?
It works, but it doesn't look right. The nice colory drop-like 
minimization/maximization buttons are missing, for example. At least, that's 
my experience using wxHaskell on the Mac (OS X 10.4).

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


Re: [Haskell] [Haskell-cafe] Help with polymorphic functions

2008-05-08 Thread Reinier Lamers
Op Thursday 08 May 2008 21:10:08 schreef Wei Yuan Cai:
 shift is defined as a - Int - a
It's not. It's defined as (Bits a) = a - Int - a or something along those 
lines. So there is a restriction that the type a must be a member of the Bits 
typeclass.

Because test is essentially just shift, its type must also be  (Bits a) 
= a - Int - a.

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


Re: [Haskell-cafe] Re: GADT rhymes with cat

2008-03-18 Thread Reinier Lamers


Op 17-mrt-2008, om 5:39 heeft Emir Pasalic het volgende geschreven:


And is the plural 'gatte'? :)
Not in Dutch, then it's 'gaten' (which is irregular, and the  
Afrikaners don't like irregularities, so they regularized it).


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


Re: [Haskell-cafe] haddock as a markdown preprocessor

2008-02-22 Thread Reinier Lamers


Op 22-feb-2008, om 1:54 heeft Conal Elliott het volgende geschreven:
The goal redesigning for composability is that we get more for  
less.  Haddock can focus on its speciality, namely hyperlinked  
Haskell code documentation, and pandoc on its, namely human- 
writable and -readable prose with modern features (images, friendly  
hyperlinks, smart quotes  dashes, footnotes, super- and  
subscripts, pretty math, bibliography-style link specs, etc).   
Haddock development can focus its resources on Haskell-specific  
functionality, and we library writers can still use a full-featured  
mark-up language.
While I like the idea of a very powerful authoring system, I doubt  
that we should mix the documentation code with the source code. It  
seems much clearer to me to separate such heavily-formatted  
documentation from the source into separate files.


Of course, the source code includes comments that specify what  
functions do, and so provide a bit of API documentation. But such  
comments should contain as little formatting as possible to keep them  
readable in a text editor.


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


Re: [Haskell-cafe] Best practice for embedding files in a GHC-compiled tool?

2008-02-08 Thread Reinier Lamers


Op 7-feb-2008, om 13:53 heeft Dave Bayer het volgende geschreven:


Under this extreme hypothesis, how do I embed a compressed tar file  
into a single file command line tool written in Haskell and  
compiled by GHC?
Hack up a shell script or a small Haskell program to automatically  
generate a Haskell file of the form:


 module TarFile where

 import Data.ByteString as B

 myTarFile = B.pack [tar file as list of Word8s here]

You could also do that using Template Haskell, as you already hinted,  
but this sounds less like rocket science :-)


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


Re: [Haskell-cafe] Simple network client

2008-01-31 Thread Reinier Lamers

Bayley, Alistair wrote:

More than one person has posted previously about the flaws and traps of lazy IO. A common 
position seems to be don't do lazy IO.
  
Still, when I was browsing the Haskell' wiki a few days ago, I couldn't 
find any proposal to remove lazy I/O or move it into some special 
System.IO.Lazy (or System.IO.UnsafeEvilFunctionsThatSacrificeBabies) ...


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


Re: [Haskell-cafe] Simple network client

2008-01-30 Thread Reinier Lamers

Timo B. Hübel wrote:

On Wednesday 30 January 2008 13:03:27 you wrote:
  

Just don't use hGetContents in any serious code, or any program longer
than 4 lines.



What else do you suggest? I just want to read something out of the socket 
without knowing it's length beforehand (my example here used ordinary 
Strings, but actually I want to do it with ByteStrings).


  
Either tell the receiving end how much it has to receive, or use a 
text-based protocol and getLine.


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


Re: [Haskell-cafe] Has character changed in GHC 6.8?

2008-01-23 Thread Reinier Lamers

Johan Tibell wrote:

What *does* matter to the programmer is what encodings putStr and
getLine use. AFAIK, they use lower 8 bits of unicode code point which
is almost functionally equivalent to latin-1.
  

Which is terrible! You should have to be explicit about what encoding
you expect. Python 3000 does it right.


Presumably there wasn't a sufficiently good answer available in time for
haskell98.
  

Will there be one for haskell prime ?



The I/O library needs an overhaul but I'm not sure how to do this in a
backwards compatible manner which probably would be required for
inclusion in Haskell'. One could, like Python 3000, break backwards
compatibility. I'm not sure about the implications of doing this.
Maybe introducing a new System.IO.Unicode module would be an option.

There are already some libraries that attempt to create a new string and
I/O library for Haskell, based on Unicode, with a separation of byte
semantics and character semantics. See for example Streams [1] or
CompactString [2].

Regards,
Reinier

[1]: http://haskell.org/haskellwiki/Library/Streams
[2]: http://twan.home.fmf.nl/compact-string/



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


Re: [Haskell-cafe] Has character changed in GHC 6.8?

2008-01-22 Thread Reinier Lamers

Ian Lynagh wrote:

On Tue, Jan 22, 2008 at 03:16:15PM +, Magnus Therning wrote:
  

On 1/22/08, Duncan Coutts [EMAIL PROTECTED] wrote:


On Tue, 2008-01-22 at 09:29 +, Magnus Therning wrote:
  

I vaguely remember that in GHC 6.6 code like this

  length $ map ord a string

being able able to generate a different answer than

  length a string


That seems unlikely.
  

Unlikely yes, yet I get the following in GHCi (ghc 6.6.1, the version
currently in Debian Sid):



map ord a
  

[97]


map ord ö
  

[195,182]



In 6.6.1:

Prelude Data.Char map ord ö
[195,182]
Prelude Data.Char length ö
2

there are actually 2 bytes there, but your terminal is showing them as
one character.
Still, that seems weird to me. A Haskell Char is a Unicode character. An 
ö is either one character (unicode point 0xF6) (which, in UTF-8, is 
coded as two bytes) or a combination of an o with an umlaut (Unicode 
point 776). But because the last character is not 776, the ö here 
should just be one character. I'd suspect that the two-character string 
comes from the terminal speaking UTF-8 to GHC expecting Latin-1. GHC 6.8 
expects UTF-8, so all is fine.


On my MacBook (OS X 10.4), 'ö' also immediately expands to \303\266 
when I type it in my terminal, even outside GHCi. That suggests that the 
terminal program doesn't handle Unicode and immediately escapes weird 
characters.


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


Re: [Haskell-cafe] Haskell-Support in Ohloh

2008-01-19 Thread Reinier Lamers


Op 17-jan-2008, om 1:21 heeft Joachim Breitner het volgende geschreven:


They explicitly write that they want haskell support, and the oldest
open bug report on their page is about this:

http://labs.ohloh.net/ohcount/ticket/205

So if anyone feels like programming some ruby (I guess they want it to
be in that language as well) and wants to give the haskell community a
chance for wider audience, give it a shot.
I used this rainy saturday to make a patch. It only took three lines  
of Ruby or so, and some more work getting ohcount to build on my  
machine and to make some unit tests. I submitted the patch to their  
trac, http://labs.ohloh.net/ohcount/ticket/205 .


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


Re: [Haskell-cafe] New to Haskell: The End

2007-12-18 Thread Reinier Lamers

Cristian Baboi wrote:

Haskell strengts as I see them:

- it is lazy with class
- it is strongly typed
- it has automatic memory management
- it has a standard library
- it has a compiler
- it is available on several platforms
- it has a community
- it is free

Is there anything you would like to add ? 
That list describes Java right on (apart from the lazy with class, 
which sounds Larry-Wall-ish though and might as well mean Perl :-)).


Higher-order functions, purity, pattern-matching, no-nonsense syntax, 
algebraic data types, ...


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


Re: [Haskell-cafe] Folding Integrals

2007-12-12 Thread Reinier Lamers

Mattias Bengtsson wrote:


I found myself writing this for an Euler-problem:

 


digits :: Int - [Int]
digits i | i  10= [i]
| otherwise = i `mod` 10 : digits ( i `div` 10 )
   



And i realised it was quite some time ago (before this function) i had
actually written any explicitly recursive function. 

Back in my Introduction to Functional Programming course, Daan Leijen 
demonstrated how to print integers in Haskell using function 
composition. Something along the lines of:


printint :: Int - [Char]
printint = map chr . map (+0x30) . reverse . map (`mod` 10) . takeWhile 
(0) . iterate (`div`10)


You can easily translate a number to a list of digits without explicit 
recursion.


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


Re: [Haskell-cafe] New slogan for haskell.org

2007-12-12 Thread Reinier Lamers

Andrew Coppin wrote:

Yeah, we should probably set up a seperate list for this stuff... 


Perhaps you can use 
http://haskell.org/haskellwiki/?title=Talk:FrontpageDraftaction=edit ? 
That page is also a better place to fight your edit wars than the front 
page is.


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


[Haskell-cafe] Re: C Preprocessor

2007-12-06 Thread Reinier Lamers

Bernd Brassel wrote:


Is it already a known problem that the preprocessor cannot cope with the
whole set of possible string declarations?


Yes, it is:

http://hackage.haskell.org/trac/hackage/ticket/146

I ran into it lately. I was totally unaware of what caused GHC's parse 
error on a valid line until someone on the IRC channel pointed it out. 
According to the ticket, cpphs (a Haskell-oriented CPP replacement) does 
get it right.


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


Re: [Haskell-cafe] Re: Array copying

2007-12-03 Thread Reinier Lamers

ChrisK wrote:


For GHC 6.6 I created

 


foreign import ccall unsafe memcpy
   memcpy :: MutableByteArray# RealWorld - MutableByteArray# RealWorld - Int# 
- IO ()
   



 


{-# INLINE copySTU #-}
copySTU :: (Show i,Ix i,MArray (STUArray s) e (ST s)) = STUArray s i e - 
STUArray s i e - ST s ()
copySTU (STUArray _ _ msource) (STUArray _ _ mdest) =
-- do b1 - getBounds s1
--  b2 - getBounds s2
--  when (b1/=b2) (error (\n\nWTF copySTU: ++show (b1,b2)))
 ST $ \s1# -
   case sizeofMutableByteArray# msourceof { n# -
   case unsafeCoerce# memcpy mdest msource n# s1# of { (# s2#, () #) -
   (# s2#, () #) }}
   



To allow efficient copying of STUArrays.
 

How does this guarantee that it doesn't overflow the buffer of the 
destination array?


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


Re: [Haskell-cafe] Strings and utf-8

2007-11-29 Thread Reinier Lamers

Bulat Ziganshin wrote:


Hello Andrew,

Thursday, November 29, 2007, 1:11:38 AM, you wrote:

 


IMHO, someone should make a full proposal by implementing an alternative
System.IO library that deals with all these encoding issues and
implements H98 IO in terms of that.
 



 


We need two seperate interfaces. One for text-mode I/O, one for raw
binary I/O.
   



 


When doing text-mode I/O, the programmer needs to be able to explicitly
specify exactly which character encoding is required. (Presumably 
default to the current 8-bit truncation encoding?)
   



http://haskell.org/haskellwiki/Library/Streams already exists
 

Which would mean that we have streams to do character I/O, ByteString to 
do binary I/O, and System.IO to do, eh, something in between.


That seems rather unfortunate to me. While the truncate to 8 bits 
semantics may be nice to keep old code working, it really isn't all that 
intuitive. When I do 'putStr u\776', I want a u with an umlaut to 
appear, not to get it printed as if it were u\8.


The strange thing is that Hugs at the moment _does_ print a u-umlaut, 
while ghci prints u\8, which is a u followed by a backspace, so I see 
nothing.


Reinier

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


Re: [Haskell-cafe] Re: Strings and utf-8

2007-11-29 Thread Reinier Lamers

Thomas Hartman wrote:



A translation of

http://www.ahinea.com/en/tech/perl-unicode-struggle.html

from perl to haskell would be a very useful piece of documentation, I 
think. 


Perl encodes both Unicode and binary data as the same (dynamic) data 
type. Haskell - at least in theory - has two different types for them, 
namely [Char] for characters and [Word8] or ByteString for sequences of 
bytes. I think the Haskell approach is better, because the programmer in 
most cases knows whether he wants to treat his data as characters or as 
bytes. Perl does it the Perlish We guess at what the coder means way, 
which leads to a lot of frustration when Perl guesses wrong.


The problems of the Haskeller trying to use Unicode, I think, will be 
different from those of the Perl hacker trying to use Unicode: the 
Haskeller will have to search for third-party modules to do what he 
wants, and finding those modules is the problem. The Perl hacker has all 
the Unicode support built in, but has to fight Perl occasionally to keep 
it from doing byte operations on his Unicode data.


I had a colleague here go all but insane last week trying to use 'split' 
on a Unicode string in Perl on Windows. split would break the string in 
the middle of a UTF-8 wide character, crashing UTF-8 processing later on.


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


Re: [Haskell-cafe] return in Monad class necessary?

2007-11-27 Thread Reinier Lamers

Chris Eidhof wrote:


On 26 nov 2007, at 19:48, Henning Thielemann wrote:


I wonder whether it is a typical mistake of beginners
to write 'return' within a do-block (that is, not at the end)
and if it is possible to avoid this mistake by clever typing.
In a proper monad 'return' can be fused with subsequent actions,
and thus it is not necessary within a sequence of actions.
However, although sensible, 'return' is also not required at the end  
of a block.

Has someone already thought about a replacement for monads?


I also made that mistake in the beginning, I used return instead of  
lets. I don't think it's a big problem, most users will find out once  
they've got some more experience, and it doesn't really do any harm.


It might be possible for the compiler to emit a warning when a return is 
used in the middle of a do block as the top level operator on a line. 
OTOH, that still wouldn't catch something like when (x == 0) (return 
()) which doesn't do what an imperative programmer expects.


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


Re: [Haskell-cafe] Standalone PNG module?

2007-11-07 Thread Reinier Lamers

Peter Verswyvelen wrote:


I would like to load 32-bit images (RGB+alpha) for use with GLUT/OpenGL.

 

I know GTK2HS has support for loading images, but does a standalone 
Haskell (wrapper) module exists for loading images?


See the message PNG files by Tim Newsham, sent to haskell-cafe on the 
30th of october.


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


Re: [Haskell-cafe] Re: Why can't Haskell be faster?

2007-10-31 Thread Reinier Lamers

Paulo J. Matos wrote:


So the slowness of Haskell (compared to Clean) is consequence of
 its type system. OK, I'll stop, I did not write Clean nor Haskell
 optimizers or stuff like that :-D

   



type system? Why is that? Shouldn't type system in fact speed up the
generated code, since it will know all types at compile time?
 

Yes, but apparently the Clean type system gives more information to the 
compiler than the Haskell system does. The Haskell type system doesn't 
say that a certain value can be updated in-place or that a certain value 
should not be boxed (not counting the GHC extension for unboxed types).


Reinier

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


[Haskell-cafe] Re: [Haskell] reading from stdin

2007-10-05 Thread Reinier Lamers

Axel Simon wrote:


a) is the behaviour I want, but unfortunately for platform d)
b) must be due to ghci and Hugs having different opinions on whether
stdin should be line buffered or unbuffered
c) this is weird
d) this is broken

You can probably unify the behaviors of platforms a, b and c by calling 
hSetBuffering on stdin to turn off  buffering.


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


Re: [Haskell-cafe] haskell and reflection

2007-09-11 Thread Reinier Lamers


Op 11-sep-2007, om 18:43 heeft Greg Meredith het volgende geschreven:
Thanks for these comments. i wouldn't judge Haskell solely on the  
basis of whether it embraced reflection as an organizing  
computational principle or as a toolbox for programmers. Clearly,  
you can get very far without it. And, it may be that higher-order  
functional gives you enough of the 'programs that build programs'  
capability that 80% of the practical benefits of reflection are  
covered -- without having to take on the extra level of complexity  
that reflection adds to typing. i was really just seeking information.
Template Haskell [1] is a system that lets you write programs that  
get executed at *compile time*, and that produce parts of the Haskell  
program to be compiled by manipulating a representation of the  
program as structured data. It's a form of reflection restricted to  
compile time, if you'd ask me.


Regards,
Reinier

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