ghc.git
11 years agoadd a note about SMP execution not being supported with profiling
Simon Marlow [Thu, 28 Feb 2008 11:22:09 +0000 (11:22 +0000)] 
add a note about SMP execution not being supported with profiling

11 years agoEnable -prof -threaded (#886)
Simon Marlow [Thu, 28 Feb 2008 11:16:31 +0000 (11:16 +0000)] 
Enable -prof -threaded (#886)
It turns out that -prof -threaded works (modulo some small changes),
because all the data structures used in profiling are only accessed by
one thread at a time, at long as we don't use +RTS -N2 or higher.  So
this patch enables the use of -prof -threaded, but an error is given
if you ask for more than one CPU with +RTS -N.

11 years agoWibble to error message (stmt of do block or comprehension)
simonpj@microsoft.com [Thu, 28 Feb 2008 08:31:04 +0000 (08:31 +0000)] 
Wibble to error message (stmt of do block or comprehension)

11 years agoMake explicit lists more fusable
Max Bolingbroke [Thu, 28 Feb 2008 08:30:50 +0000 (08:30 +0000)] 
Make explicit lists more fusable

11 years agoAdd comments explaining flags
simonpj@microsoft.com [Thu, 28 Feb 2008 08:29:35 +0000 (08:29 +0000)] 
Add comments explaining flags

11 years agoRemove GADT refinements, part 1
Manuel M T Chakravarty [Thu, 28 Feb 2008 04:53:51 +0000 (04:53 +0000)] 
Remove GADT refinements, part 1
- A while ago, I changed the type checker to use equality constraints together
  with implication constraints to track local type refinement due to GADT
  pattern matching.  This patch is the first of a number of surgical strikes
  to remove the resulting dead code of the previous GADT refinement machinery.

  Hurray to code simplification!

11 years agoEliminate SkolemOccurs skolems only after checkLoop reached a fixed point
Manuel M T Chakravarty [Thu, 28 Feb 2008 00:19:57 +0000 (00:19 +0000)] 
Eliminate SkolemOccurs skolems only after checkLoop reached a fixed point
- See test case indexed-types/should_fail/SkolemOccursLoop, which sends the
  type checker into an endless loop without this fix

11 years agoFix Trac #2126: re-order tests (easy)
simonpj@microsoft.com [Wed, 27 Feb 2008 16:32:02 +0000 (16:32 +0000)] 
Fix Trac #2126: re-order tests (easy)

11 years agoFix Trac #2111: improve error handling for 'rec' in do-notation
simonpj@microsoft.com [Tue, 26 Feb 2008 17:56:35 +0000 (17:56 +0000)] 
Fix Trac #2111: improve error handling for 'rec' in do-notation

We were not dealing correctly with all the combinations of
do notation
mdo notation
arrow notation
in combination with 'rec' Stmts.

I think this patch sorts it out.

11 years agoRemove gaw comment
simonpj@microsoft.com [Tue, 26 Feb 2008 17:53:05 +0000 (17:53 +0000)] 
Remove gaw comment

11 years agoFix Trac #1899; missing equality check in typechecker's constraint simplifier
simonpj@microsoft.com [Tue, 26 Feb 2008 17:47:43 +0000 (17:47 +0000)] 
Fix Trac #1899; missing equality check in typechecker's constraint simplifier

This patch fixes a missing equality check (uifying type variable b=b) in
the new constraint simplifier in TcTyFuns.  As it stands, we were making
'b' point to itself, which subsequently led to an infinite loop when
zonking.  Test is T1899.hs

11 years agoFIX #2122: file locking bug
Simon Marlow [Tue, 26 Feb 2008 10:46:50 +0000 (10:46 +0000)] 
FIX #2122: file locking bug
Second and subsequent readers weren't being inserted into the
fd->lock hash table, which meant that the file wasn't correctly
unlocked when the Handles were closed.

11 years agodocumentation improvements from Frederik Eaton
Simon Marlow [Tue, 26 Feb 2008 10:26:12 +0000 (10:26 +0000)] 
documentation improvements from Frederik Eaton

11 years agomarkup fix
Simon Marlow [Tue, 26 Feb 2008 10:25:58 +0000 (10:25 +0000)] 
markup fix

11 years agoMac installer: cross-compile for 10.4
Manuel M T Chakravarty [Mon, 25 Feb 2008 09:37:34 +0000 (09:37 +0000)] 
Mac installer: cross-compile for 10.4

11 years agoMake UniqFM non-strict again while we work out what we're doing.
Ian Lynagh [Mon, 25 Feb 2008 17:13:05 +0000 (17:13 +0000)] 
Make UniqFM non-strict again while we work out what we're doing.
This "fixes" the very-slow problem we have when compiling dictionaries.

11 years agoFix Trac #2082
simonpj@microsoft.com [Tue, 19 Feb 2008 17:34:10 +0000 (17:34 +0000)] 
Fix Trac #2082

11 years agoFix Trac #2114: error reporting for 'forall' without appropriate flags
simonpj@microsoft.com [Fri, 22 Feb 2008 18:26:46 +0000 (18:26 +0000)] 
Fix Trac #2114: error reporting for 'forall' without appropriate flags

11 years agoImprove error messages from type-checking data constructors
simonpj@microsoft.com [Fri, 22 Feb 2008 18:25:14 +0000 (18:25 +0000)] 
Improve error messages from type-checking data constructors

This addresses Trac #2112

11 years agoAdd type sigs and minor refactoring
simonpj@microsoft.com [Fri, 22 Feb 2008 18:23:05 +0000 (18:23 +0000)] 
Add type sigs and minor refactoring

11 years agoFIX #2073: Don't add empty lines to GHCI's history
Ian Lynagh [Sun, 24 Feb 2008 14:32:56 +0000 (14:32 +0000)] 
FIX #2073: Don't add empty lines to GHCI's history

11 years agoFIX #1977: Check to see if $(bindir) is in the path
Ian Lynagh [Sun, 24 Feb 2008 13:43:34 +0000 (13:43 +0000)] 
FIX #1977: Check to see if $(bindir) is in the path
Before telling the user to add it, when installing a bindist, check to
see if $(bindir) is already in the path.

11 years agoFix warnings in Simplify
Ian Lynagh [Fri, 22 Feb 2008 15:03:18 +0000 (15:03 +0000)] 
Fix warnings in Simplify

11 years agoWhitespace
Ian Lynagh [Fri, 22 Feb 2008 14:07:55 +0000 (14:07 +0000)] 
Whitespace

11 years agoAdd a comment
Ian Lynagh [Wed, 20 Feb 2008 20:58:44 +0000 (20:58 +0000)] 
Add a comment

11 years agoFix most of the warnings in StgLint
Ian Lynagh [Wed, 20 Feb 2008 17:18:58 +0000 (17:18 +0000)] 
Fix most of the warnings in StgLint

11 years agoWhitespace
Ian Lynagh [Wed, 20 Feb 2008 17:11:40 +0000 (17:11 +0000)] 
Whitespace

11 years agoCprAnalyse is warning-free
Ian Lynagh [Wed, 20 Feb 2008 17:08:43 +0000 (17:08 +0000)] 
CprAnalyse is warning-free

11 years agoWhitespace
Ian Lynagh [Wed, 20 Feb 2008 17:06:50 +0000 (17:06 +0000)] 
Whitespace

11 years agoFix #1984: missing context switches
Simon Marlow [Tue, 19 Feb 2008 10:22:12 +0000 (10:22 +0000)] 
Fix #1984: missing context switches

11 years agofix unregisterised stage 2 build
Simon Marlow [Tue, 19 Feb 2008 09:34:07 +0000 (09:34 +0000)] 
fix unregisterised stage 2 build

11 years agoMac OS X deployment target: piping opts through Makefiles
Manuel M T Chakravarty [Thu, 21 Feb 2008 22:44:49 +0000 (22:44 +0000)] 
Mac OS X deployment target: piping opts through Makefiles

11 years agoRewrite fixTvSubstEnv so it iteratively applies its substition
Ian Lynagh [Wed, 20 Feb 2008 15:37:52 +0000 (15:37 +0000)] 
Rewrite fixTvSubstEnv so it iteratively applies its substition
This fixes a stack overflow when using strict UniqFMs. It might be
possible to rewrite it more efficiently, or to avoid needing it in the
first place.

11 years agoTypo
Ian Lynagh [Tue, 19 Feb 2008 20:41:17 +0000 (20:41 +0000)] 
Typo

11 years agoMake some more modules use LazyUniqFM instead of UniqFM
Ian Lynagh [Thu, 7 Feb 2008 01:57:14 +0000 (01:57 +0000)] 
Make some more modules use LazyUniqFM instead of UniqFM
If these modules use UniqFM then we get a stack overflow when compiling
modules that use fundeps. I haven't tracked down the actual cause.

11 years agoAdd configure option --with-macos-deployment-target
Manuel M T Chakravarty [Tue, 19 Feb 2008 03:17:55 +0000 (03:17 +0000)] 
Add configure option --with-macos-deployment-target

11 years agoFix warning in SCCfinal
Ian Lynagh [Tue, 19 Feb 2008 02:04:29 +0000 (02:04 +0000)] 
Fix warning in SCCfinal

11 years agoWhitespace only
Ian Lynagh [Tue, 19 Feb 2008 01:52:59 +0000 (01:52 +0000)] 
Whitespace only

11 years agoFix warnings in UniqSupply
Ian Lynagh [Tue, 19 Feb 2008 01:32:33 +0000 (01:32 +0000)] 
Fix warnings in UniqSupply

11 years agoWhitespace only
Ian Lynagh [Tue, 19 Feb 2008 01:24:17 +0000 (01:24 +0000)] 
Whitespace only

11 years agoFix non-missing-signature warnings in MkId
Ian Lynagh [Tue, 19 Feb 2008 01:09:17 +0000 (01:09 +0000)] 
Fix non-missing-signature warnings in MkId

11 years agoWhitespace only
Ian Lynagh [Tue, 19 Feb 2008 00:50:42 +0000 (00:50 +0000)] 
Whitespace only

11 years agoWhitespace only
Ian Lynagh [Mon, 18 Feb 2008 23:45:59 +0000 (23:45 +0000)] 
Whitespace only

11 years agoMake literals in the syntax tree strict
Ian Lynagh [Mon, 18 Feb 2008 18:34:24 +0000 (18:34 +0000)] 
Make literals in the syntax tree strict

11 years agoMake the parser a bit stricter
Ian Lynagh [Mon, 18 Feb 2008 17:55:14 +0000 (17:55 +0000)] 
Make the parser a bit stricter

11 years agoseq what we actually want to seq, not the seq'ing function
Ian Lynagh [Wed, 13 Feb 2008 13:18:57 +0000 (13:18 +0000)] 
seq what we actually want to seq, not the seq'ing function

11 years agoattempt to fix #2098 (PPC pepple please test & fix)
Simon Marlow [Mon, 18 Feb 2008 11:57:48 +0000 (11:57 +0000)] 
attempt to fix #2098 (PPC pepple please test & fix)

11 years agoFIX #2023: substitute for $topdir in haddockInterfaces and haddockHTMLs
Simon Marlow [Sat, 9 Feb 2008 14:36:48 +0000 (14:36 +0000)] 
FIX #2023: substitute for $topdir in haddockInterfaces and haddockHTMLs

11 years agoAll installed Haskell prgms have an inplace and an installed version
Manuel M T Chakravarty [Mon, 18 Feb 2008 06:18:09 +0000 (06:18 +0000)] 
All installed Haskell prgms have an inplace and an installed version
- GHC installs a range of compiled Haskell programs in addition to the actual
  compiler.  To ensure that they all run on the platform targeted by the build
  (which may have different libraries installed than the build host), we need
  to make sure that all compiled Haskell code going into an install is build
  with the stage 1 compiler, not the bootstrap compiler.  Getting this right
  is especially important on the Mac to enable builds that work on Mac OS X
  versions that are older than the one performing the build.
- For all installed utils implemented in Haskell (i.e., ghc-pkg, hasktags,
  hsc2hs, runghc, hpc, and pwd) we compile two versions, an inplace version
  and a version for installation.  The former is build by the bootstrap
  compiler during the stage 1 build and the latter is build by the stage 1
  compiler during the stage 2 build.
- This is really very much as the setup for ghc itself, only that we don't use
  separate stage1/ and stage2/ build directories.  Instead, we clean before
  each build.  CAVEAT: This only works properly if invoked from the
  toplevel Makefile.
- Instead of UseStage1=YES (as used by the previous binary-dist-specific
  recompilation), we now use the same $(stage) variables as used for the
  compiler proper - to increase uniformity and to avoid extra conditionals for
  the install target.

11 years agoFix warnings in Pretty
Ian Lynagh [Mon, 18 Feb 2008 21:41:51 +0000 (21:41 +0000)] 
Fix warnings in Pretty

11 years agoFix warnings in FiniteMap
Ian Lynagh [Mon, 18 Feb 2008 20:04:08 +0000 (20:04 +0000)] 
Fix warnings in FiniteMap

11 years agoFix warnings in Binary
Ian Lynagh [Mon, 18 Feb 2008 19:36:45 +0000 (19:36 +0000)] 
Fix warnings in Binary

11 years agoFix warnings in StringBuffer
Ian Lynagh [Mon, 18 Feb 2008 19:18:46 +0000 (19:18 +0000)] 
Fix warnings in StringBuffer

11 years agoFix warnings in IOEnv
Ian Lynagh [Mon, 18 Feb 2008 19:08:49 +0000 (19:08 +0000)] 
Fix warnings in IOEnv

11 years agoFix warnings in FastString, and check for empty case in head/tail
Ian Lynagh [Mon, 18 Feb 2008 14:47:07 +0000 (14:47 +0000)] 
Fix warnings in FastString, and check for empty case in head/tail

11 years agoWhitespace only
Ian Lynagh [Mon, 18 Feb 2008 11:22:32 +0000 (11:22 +0000)] 
Whitespace only

11 years agoWhitespace only
Ian Lynagh [Mon, 18 Feb 2008 11:21:01 +0000 (11:21 +0000)] 
Whitespace only

11 years agoWhitespace only
Ian Lynagh [Mon, 18 Feb 2008 11:19:41 +0000 (11:19 +0000)] 
Whitespace only

11 years agoWhitespace only
Ian Lynagh [Mon, 18 Feb 2008 11:02:41 +0000 (11:02 +0000)] 
Whitespace only

11 years agoWhitespace only
Ian Lynagh [Mon, 18 Feb 2008 10:59:09 +0000 (10:59 +0000)] 
Whitespace only

11 years agoWhitespace only
Ian Lynagh [Mon, 18 Feb 2008 10:53:43 +0000 (10:53 +0000)] 
Whitespace only

11 years agoTweak whitespace
Ian Lynagh [Sun, 17 Feb 2008 17:51:33 +0000 (17:51 +0000)] 
Tweak whitespace

11 years agoFix typo
Ian Lynagh [Sun, 17 Feb 2008 17:50:21 +0000 (17:50 +0000)] 
Fix typo

11 years agoPrint better error message for reading External Core
Tim Chevalier [Sun, 17 Feb 2008 22:38:44 +0000 (22:38 +0000)] 
Print better error message for reading External Core

GHC panicked with a "Prelude.undefined" error message if you tried to
compile a .hcr file. Since support for reading ExternalCore simply does
not exist, I added an error message to say that.

Please merge to 6.8. Thanks.

11 years agoDocumentation only: update External Core section of user guide
Tim Chevalier [Sun, 17 Feb 2008 21:32:06 +0000 (21:32 +0000)] 
Documentation only: update External Core section of user guide

I updated the External Core section of the user guide, mostly to reflect
that the input path is broken and there are no firm plans to fix it.

11 years agoGenerate foo(void) rather than foo() in FFI stub files
Ian Lynagh [Sat, 16 Feb 2008 14:10:31 +0000 (14:10 +0000)] 
Generate foo(void) rather than foo() in FFI stub files
-Wstrict-prototypes warns about the latter.
Patch from pcc in trac #2100.

11 years agoMake hasktags -Wall clean
Ian Lynagh [Fri, 15 Feb 2008 16:03:09 +0000 (16:03 +0000)] 
Make hasktags -Wall clean

11 years agoWhitespace only
Ian Lynagh [Fri, 15 Feb 2008 15:51:22 +0000 (15:51 +0000)] 
Whitespace only

11 years agoFix building hasktags
Ian Lynagh [Fri, 15 Feb 2008 15:44:15 +0000 (15:44 +0000)] 
Fix building hasktags

11 years agoRevert an accidental comment change
Ian Lynagh [Fri, 15 Feb 2008 15:35:58 +0000 (15:35 +0000)] 
Revert an accidental comment change

11 years agofind module names, fix for get constructor names, find class names as well, sort...
marco-oweber@gmx.de [Tue, 12 Feb 2008 23:21:57 +0000 (23:21 +0000)] 
find module names, fix for get constructor names, find class names as well, sort ctag files

11 years agoadded TODO item and link to alternatives on wiki
marco-oweber@gmx.de [Tue, 12 Feb 2008 23:18:53 +0000 (23:18 +0000)] 
added TODO item and link to alternatives on wiki

11 years agoMake more arch-specific #if's exclusive with #else #error cases
Duncan Coutts [Thu, 7 Feb 2008 17:00:20 +0000 (17:00 +0000)] 
Make more arch-specific #if's exclusive with #else #error cases
So when the next person compiles the Sparc NCG it should fail more
obviously at compile time rather than panicing at runtime.
Plus one obvious fix for LocalReg gaining an extra param
Missing bits of Sparc NCG:
  * genSwitch for generating jump tables. This is the most tricky one.
  * ALLOCATABLE_REGS_INTEGER and ALLOCATABLE_REGS_DOUBLE just requires
    finding and verifying the values. The nearby comment describes how.
  * isRegRegMove and mkRegRegMoveInstr. Sparc uses Or for int move, check
    what this is supposed to do for single and double float types.
  * regDotColor. Probably just copy the ppc impl.

11 years agoDocument code a bit better
Ian Lynagh [Wed, 13 Feb 2008 16:11:06 +0000 (16:11 +0000)] 
Document code a bit better

11 years agoAdd a necessary [] error case
Ian Lynagh [Wed, 13 Feb 2008 15:42:32 +0000 (15:42 +0000)] 
Add a necessary [] error case

11 years ago\e -> f e ===> f
Ian Lynagh [Wed, 13 Feb 2008 15:38:35 +0000 (15:38 +0000)] 
\e -> f e   ===>    f

11 years agoFixed warnings in parser/Lexer.x
Twan van Laarhoven [Mon, 4 Feb 2008 02:11:31 +0000 (02:11 +0000)] 
Fixed warnings in parser/Lexer.x

The -w flag can not be removed, because alex also generates code with lots of warnings.

11 years agoMonadification and Fixed warnings in parser/RdrHsSyn, except for incomplete pattern...
Twan van Laarhoven [Mon, 4 Feb 2008 01:50:53 +0000 (01:50 +0000)] 
Monadification and Fixed warnings in parser/RdrHsSyn, except for incomplete pattern matches

11 years agoFixed warnings in vectorise/VectMonad
Twan van Laarhoven [Sun, 3 Feb 2008 22:39:32 +0000 (22:39 +0000)] 
Fixed warnings in vectorise/VectMonad

11 years agoFix typo in message
Roman Leshchinskiy [Tue, 12 Feb 2008 05:22:19 +0000 (05:22 +0000)] 
Fix typo in message

11 years agoRemove old code to get TMPDIR, use System.Directory.getTemporaryDirectory
Simon Marlow [Thu, 7 Feb 2008 14:39:15 +0000 (14:39 +0000)] 
Remove old code to get TMPDIR, use System.Directory.getTemporaryDirectory

11 years agoMac installer: Added XCODE_EXTRA_CONFIGURE_ARGS
Manuel M T Chakravarty [Mon, 11 Feb 2008 11:52:01 +0000 (11:52 +0000)] 
Mac installer: Added XCODE_EXTRA_CONFIGURE_ARGS

11 years agoMac installer: make Uninstaller a bit more robust
Manuel M T Chakravarty [Mon, 11 Feb 2008 09:11:19 +0000 (09:11 +0000)] 
Mac installer: make Uninstaller a bit more robust

11 years agoMac installer: add comprehensive licencing information
Manuel M T Chakravarty [Mon, 11 Feb 2008 06:14:50 +0000 (06:14 +0000)] 
Mac installer: add comprehensive licencing information

11 years agoForce -s on ar in xcode builds
Manuel M T Chakravarty [Mon, 11 Feb 2008 02:23:29 +0000 (02:23 +0000)] 
Force -s on ar in xcode builds

11 years agoFix warning (FIX validate)
Roman Leshchinskiy [Mon, 11 Feb 2008 04:02:11 +0000 (04:02 +0000)] 
Fix warning (FIX validate)

11 years agoSymbolic tags for simplifier phases
Roman Leshchinskiy [Mon, 11 Feb 2008 03:23:50 +0000 (03:23 +0000)] 
Symbolic tags for simplifier phases

Every simplifier phase can have an arbitrary number of tags and multiple
phases can share the same tags. The tags can be used as arguments to
-ddump-simpl-phases to specify which phases are to be dumped.
For instance, -ddump-simpl-phases=main will dump the output of phases 2, 1 and
0 of the initial simplifier run (they all share the "main" tag) while
-ddump-simpl-phases=main:0 will dump only the output of phase 0 of that run.

At the moment, the supported tags are:

  main                 The main, staged simplifier run (before strictness)
  post-worker-wrapper  After the w/w split
  post-liberate-case   After LiberateCase
  final                Final clean-up run

The names are somewhat arbitrary and will change in the future.

11 years agoAllow -ddump-simpl-phases to specify which phases to dump
Roman Leshchinskiy [Mon, 11 Feb 2008 02:06:30 +0000 (02:06 +0000)] 
Allow -ddump-simpl-phases to specify which phases to dump

We can now say -ddump-simpl-phases=1,2 to dump only these two phases and
nothing else.

11 years agoFixed warnings in parser/ParserCoreUtils
Twan van Laarhoven [Mon, 4 Feb 2008 02:22:26 +0000 (02:22 +0000)] 
Fixed warnings in parser/ParserCoreUtils

11 years agoFixed warnings in hsSyn/Convert, except for incomplete pattern matches
Twan van Laarhoven [Mon, 4 Feb 2008 00:05:10 +0000 (00:05 +0000)] 
Fixed warnings in hsSyn/Convert, except for incomplete pattern matches

11 years agoFixed warnings in types/Unify
Twan van Laarhoven [Sun, 3 Feb 2008 22:42:28 +0000 (22:42 +0000)] 
Fixed warnings in types/Unify

11 years agoFixed warnings in ndpFlatten/FlattenInfo
Twan van Laarhoven [Sun, 3 Feb 2008 22:41:59 +0000 (22:41 +0000)] 
Fixed warnings in ndpFlatten/FlattenInfo

11 years agoFixed warnings in vectorise/VectBuiltIn
Twan van Laarhoven [Sun, 3 Feb 2008 22:40:43 +0000 (22:40 +0000)] 
Fixed warnings in vectorise/VectBuiltIn

11 years agoFixed warnings in vectorise/VectCore
Twan van Laarhoven [Sun, 3 Feb 2008 22:40:03 +0000 (22:40 +0000)] 
Fixed warnings in vectorise/VectCore

11 years agoFixed warnings in deSugar/DsExpr, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:48:48 +0000 (21:48 +0000)] 
Fixed warnings in deSugar/DsExpr, except for incomplete pattern matches

11 years agoFixed warnings in deSugar/DsGRHSs, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:46:02 +0000 (21:46 +0000)] 
Fixed warnings in deSugar/DsGRHSs, except for incomplete pattern matches

11 years agoFixed warnings in deSugar/DsListComp, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:12:53 +0000 (21:12 +0000)] 
Fixed warnings in deSugar/DsListComp, except for incomplete pattern matches

11 years agoFixed warnings in deSugar/Check, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:08:14 +0000 (21:08 +0000)] 
Fixed warnings in deSugar/Check, except for incomplete pattern matches

11 years agoFixed warnings in deSugar/Match, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:05:33 +0000 (21:05 +0000)] 
Fixed warnings in deSugar/Match, except for incomplete pattern matches

11 years agoFixed warnings in deSugar/MatchCon, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:04:02 +0000 (21:04 +0000)] 
Fixed warnings in deSugar/MatchCon, except for incomplete pattern matches