ghc.git
10 years agoSimplify timestamp restoration
Matthias Kilian [Sat, 11 Jul 2009 10:02:44 +0000 (10:02 +0000)] 
Simplify timestamp restoration

10 years agoFIX #3272
Manuel M T Chakravarty [Tue, 14 Jul 2009 05:45:59 +0000 (05:45 +0000)] 
FIX #3272

10 years agoFix warnings
Roman Leshchinskiy [Mon, 13 Jul 2009 09:20:32 +0000 (09:20 +0000)] 
Fix warnings

10 years agoSeparate length from data in DPH arrays
Roman Leshchinskiy [Mon, 13 Jul 2009 04:42:12 +0000 (04:42 +0000)] 
Separate length from data in DPH arrays

10 years agoStop using -fno-warn-unused-do-bind when compiling the libraries
Ian Lynagh [Thu, 9 Jul 2009 16:04:22 +0000 (16:04 +0000)] 
Stop using -fno-warn-unused-do-bind when compiling the libraries
They're now fixed to not generate those warnings

10 years agoRemove maybePrefixMatch, using stripPrefix instead
Ian Lynagh [Thu, 9 Jul 2009 16:04:12 +0000 (16:04 +0000)] 
Remove maybePrefixMatch, using stripPrefix instead
We already require GHC 6.8 to build, and that included stripPrefix
in Data.List.

10 years agoTFs: FIX #2203 (second half)
Manuel M T Chakravarty [Fri, 10 Jul 2009 06:48:34 +0000 (06:48 +0000)] 
TFs: FIX #2203 (second half)

10 years agoTFs: Fix should_compile/Simple8
Manuel M T Chakravarty [Fri, 10 Jul 2009 04:27:28 +0000 (04:27 +0000)] 
TFs: Fix should_compile/Simple8

10 years agoworkaround new Cygwin bash CRLF behaviour
Simon Marlow [Thu, 9 Jul 2009 13:28:50 +0000 (13:28 +0000)] 
workaround new Cygwin bash CRLF behaviour

10 years agoUse /usr/bin/test if it exists, and fix test syntax.
Simon Marlow [Thu, 9 Jul 2009 12:46:16 +0000 (12:46 +0000)] 
Use /usr/bin/test if it exists, and fix test syntax.
Should fix Solaris build failures

10 years agoAllow mixed case pragmas; #1817. Patch from squadette
Ian Lynagh [Thu, 9 Jul 2009 15:37:37 +0000 (15:37 +0000)] 
Allow mixed case pragmas; #1817. Patch from squadette
This patch allow you to use "Language CPP", or even "LaNgUaGe CPP",
if you wish, as the manual claims you can.

10 years agodon't create inplace/bin/ghc-<version>
Simon Marlow [Mon, 6 Jul 2009 09:20:31 +0000 (09:20 +0000)] 
don't create inplace/bin/ghc-<version>

10 years agoFix ignored-monadic-result warnings
Ian Lynagh [Tue, 7 Jul 2009 18:18:57 +0000 (18:18 +0000)] 
Fix ignored-monadic-result warnings

10 years agoFix an unused import warning
Ian Lynagh [Tue, 7 Jul 2009 14:47:06 +0000 (14:47 +0000)] 
Fix an unused import warning

10 years agoFix unused import warnings
Ian Lynagh [Tue, 7 Jul 2009 14:32:16 +0000 (14:32 +0000)] 
Fix unused import warnings

10 years agoFix unused import warnings
Ian Lynagh [Tue, 7 Jul 2009 13:35:37 +0000 (13:35 +0000)] 
Fix unused import warnings

10 years agoWhen exporting F(..), all the children of F are also exported
Ian Lynagh [Tue, 7 Jul 2009 13:34:27 +0000 (13:34 +0000)] 
When exporting F(..), all the children of F are also exported
This fixes the unused imports warning when
    Foo (F(x,y,z))
is imported and
    Foo (F(..))
is exported.

10 years agoRemove unused imports
Ian Lynagh [Tue, 7 Jul 2009 12:15:48 +0000 (12:15 +0000)] 
Remove unused imports

10 years agoMajor patch to fix reporting of unused imports
simonpj@microsoft.com [Mon, 6 Jul 2009 11:25:03 +0000 (11:25 +0000)] 
Major patch to fix reporting of unused imports

This patch, joint work between and Ian and Simon, fixes Trac #1074
by reporting unused import declarations much more accuratly than
before.  The specification is described at

http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/UnusedImports

The implementation is both easier to understand than before, and shorter
too.

Also fixed are #1148, #2267

Also fixed is -ddump-minimal imports, which now works properly, fixing
Trac #1792.

10 years agoTrim unused imports detected by new unused-import code
simonpj@microsoft.com [Mon, 6 Jul 2009 11:22:01 +0000 (11:22 +0000)] 
Trim unused imports detected by new unused-import code

10 years agoAvoid unnecessary recompilation after ./configure (helps #3228)
Simon Marlow [Tue, 7 Jul 2009 08:50:40 +0000 (08:50 +0000)] 
Avoid unnecessary recompilation after ./configure (helps #3228)
We cache the old versions of files generated by configure, so that if
configure touches the file without changing it, we can detect that and
restore the timestamp.

10 years agocheck for tabs in compiler/ghc.cabal.in (#3344)
Simon Marlow [Tue, 7 Jul 2009 08:18:45 +0000 (08:18 +0000)] 
check for tabs in compiler/ghc.cabal.in (#3344)

10 years agoremove tabs
Simon Marlow [Tue, 7 Jul 2009 08:18:23 +0000 (08:18 +0000)] 
remove tabs

10 years agofix cleaning of libraries (now 'make clean' in libraries/* works again)
Simon Marlow [Fri, 3 Jul 2009 11:46:38 +0000 (11:46 +0000)] 
fix cleaning of libraries (now 'make clean' in libraries/* works again)

10 years agoFIX #2677
Manuel M T Chakravarty [Tue, 7 Jul 2009 05:54:42 +0000 (05:54 +0000)] 
FIX #2677

10 years agoUpdate driver/Makefile for the new build system
Ian Lynagh [Sun, 5 Jul 2009 20:40:41 +0000 (20:40 +0000)] 
Update driver/Makefile for the new build system

10 years agoFix generational GC bug (#3348)
Simon Marlow [Mon, 6 Jul 2009 11:22:27 +0000 (11:22 +0000)] 
Fix generational GC bug (#3348)

10 years agoWindows fixes to build system: use the 'find' and 'sort' found by configure
simonpj@microsoft.com [Mon, 6 Jul 2009 10:34:13 +0000 (10:34 +0000)] 
Windows fixes to build system: use the 'find' and 'sort' found by configure

The build system should use 'find' and 'sort' that are discovered by
configure, not the ones in your path.  On Windows the ones in your path
might well be the non-Unixy Windows versions.

This patch fixes the ones I tripped over. There may be more.

10 years agoFollow Cabal changes
Ian Lynagh [Sun, 5 Jul 2009 18:04:14 +0000 (18:04 +0000)] 
Follow Cabal changes

10 years agoUpdate TODO list
Ian Lynagh [Sun, 5 Jul 2009 16:50:09 +0000 (16:50 +0000)] 
Update TODO list

10 years agoMake -fext-core a dynamic flag (it was a static flag)
Ian Lynagh [Sun, 5 Jul 2009 13:24:20 +0000 (13:24 +0000)] 
Make -fext-core a dynamic flag (it was a static flag)

10 years agoUpdate a few points about shared libs in other sections
Duncan Coutts [Sat, 4 Jul 2009 21:22:12 +0000 (21:22 +0000)] 
Update a few points about shared libs in other sections
And add links to the new shared libs section.

10 years agoDocument -dynload flag. Also add it and -shared to the flags reference.
Duncan Coutts [Sat, 4 Jul 2009 21:21:19 +0000 (21:21 +0000)] 
Document -dynload flag. Also add it and -shared to the flags reference.

10 years agoAdd new section on using shared libs
Duncan Coutts [Sat, 4 Jul 2009 21:20:03 +0000 (21:20 +0000)] 
Add new section on using shared libs

10 years agoDocument foreign import prim in the user guide
Duncan Coutts [Sat, 4 Jul 2009 18:05:47 +0000 (18:05 +0000)] 
Document foreign import prim in the user guide
Basically just stat that it exists and refer to the ghc dev wiki
for the details, because we don't really want people using it.

10 years agoFor now, use -fno-warn-unused-do-bind when building the libraries
Ian Lynagh [Sat, 4 Jul 2009 21:06:54 +0000 (21:06 +0000)] 
For now, use -fno-warn-unused-do-bind when building the libraries

10 years agoMake changes to -fwarn-unused-do-bind and -fwarn-wrong-do-bind suggested by SPJ
Max Bolingbroke [Thu, 2 Jul 2009 15:09:43 +0000 (15:09 +0000)] 
Make changes to -fwarn-unused-do-bind and -fwarn-wrong-do-bind suggested by SPJ

10 years agoSupport for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263
Max Bolingbroke [Wed, 1 Jul 2009 20:03:44 +0000 (20:03 +0000)] 
Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263

10 years agoImproved infrastructure for fast-rebuilding of parts of the tree
Simon Marlow [Fri, 3 Jul 2009 07:45:27 +0000 (07:45 +0000)] 
Improved infrastructure for fast-rebuilding of parts of the tree

e.g.

  cd compiler
  make FAST=YES stage1/build/HscTypes.o

builds just the specified .o file, without rebuilding dependencies,
and omitting some of the makefile phases.  FAST=YES works anywhere, to
omit depenencies and phases.  'make fast' is shorthand for 'make
all FAST=YES'.

10 years agoFix Trac #3342: missed zonking in TcHsSyn
simonpj@microsoft.com [Thu, 2 Jul 2009 12:43:31 +0000 (12:43 +0000)] 
Fix Trac #3342: missed zonking in TcHsSyn

The type in a ViewPat wasn't being zonked.  Easily fixed.

10 years agoType synonym families may be nullary
Manuel M T Chakravarty [Thu, 2 Jul 2009 08:48:26 +0000 (08:48 +0000)] 
Type synonym families may be nullary

10 years agoNew syntax for GADT-style record declarations, and associated refactoring
simonpj@microsoft.com [Thu, 2 Jul 2009 09:46:57 +0000 (09:46 +0000)] 
New syntax for GADT-style record declarations, and associated refactoring

The main purpose of this patch is to fix Trac #3306, by fleshing out the
syntax for GADT-style record declraations so that you have a context in
the type.  The new form is
   data T a where
     MkT :: forall a. Eq a => { x,y :: !a } -> T a
See discussion on the Trac ticket.

The old form is still allowed, but give a deprecation warning.

When we remove the old form we'll also get rid of the one reduce/reduce
error in the grammar. Hurrah!

While I was at it, I failed as usual to resist the temptation to do lots of
refactoring.  The parsing of data/type declarations is now much simpler and
more uniform.  Less code, less chance of errors, and more functionality.
Took longer than I planned, though.

ConDecl has record syntax, but it was not being used consistently, so I
pushed that through the compiler.

10 years agoWhite space only
simonpj@microsoft.com [Thu, 2 Jul 2009 09:46:27 +0000 (09:46 +0000)] 
White space only

10 years agoComments only
simonpj@microsoft.com [Thu, 2 Jul 2009 09:45:31 +0000 (09:45 +0000)] 
Comments only

10 years agoLook through Notes when matching
simonpj@microsoft.com [Thu, 2 Jul 2009 09:44:44 +0000 (09:44 +0000)] 
Look through Notes when matching

10 years agoFIX #3197
Manuel M T Chakravarty [Thu, 2 Jul 2009 07:09:05 +0000 (07:09 +0000)] 
FIX #3197

10 years agoFix #2197 (properly this time)
Simon Marlow [Wed, 1 Jul 2009 12:23:54 +0000 (12:23 +0000)] 
Fix #2197 (properly this time)

$ ./inplace/bin/ghc-stage2 --interactive
GHCi, version 6.11.20090701: http://www.haskell.org/ghc/  :? for help
ghc-stage2: GHCi cannot be used when compiled with -prof
[1]    32473 exit 1     ./inplace/bin/ghc-stage2 --interactive

10 years agomake GhcProfiled work, and add a "prof" flavour to build.mk
Simon Marlow [Wed, 1 Jul 2009 11:42:11 +0000 (11:42 +0000)] 
make GhcProfiled work, and add a "prof" flavour to build.mk

Building a profiled GHC is as simple as adding

GhcLibWays += p
GhcProfiled = YES

to your build.mk and saying 'make'.  Then you have a profiled
inplace/bin/ghc-stage2.

10 years agoremove unnecessary $(RM)s
Simon Marlow [Wed, 1 Jul 2009 11:06:09 +0000 (11:06 +0000)] 
remove unnecessary $(RM)s

10 years ago'make html' in a library builds the Haddock docs
Simon Marlow [Tue, 30 Jun 2009 11:11:37 +0000 (11:11 +0000)] 
'make html' in a library builds the Haddock docs

10 years agofix GC bug introduced with the C finalizer support
Simon Marlow [Tue, 30 Jun 2009 08:08:34 +0000 (08:08 +0000)] 
fix GC bug introduced with the C finalizer support

10 years agoAdd a configure test for whether or not __mingw_vfprintf exists
Ian Lynagh [Sat, 27 Jun 2009 15:05:01 +0000 (15:05 +0000)] 
Add a configure test for whether or not __mingw_vfprintf exists

10 years agoFix #3319, and do various tidyups at the same time
Simon Marlow [Fri, 26 Jun 2009 09:54:21 +0000 (09:54 +0000)] 
Fix #3319, and do various tidyups at the same time
 - converting a THSyn FFI declaration to HsDecl was broken; fixed
 - pretty-printing of FFI declarations was variously bogus; fixed
 - there was an unused "library" field in CImport; removed

10 years agorename cache variable to keep recent autoconfs happy
Ross Paterson [Fri, 26 Jun 2009 13:14:10 +0000 (13:14 +0000)] 
rename cache variable to keep recent autoconfs happy

10 years agoAdd buildinfo files to the bindist 2009-06-25
Ian Lynagh [Thu, 25 Jun 2009 13:22:20 +0000 (13:22 +0000)] 
Add buildinfo files to the bindist

10 years agoFix Trac #3323: naughty record selectors again
simonpj@microsoft.com [Thu, 25 Jun 2009 07:23:40 +0000 (07:23 +0000)] 
Fix Trac #3323: naughty record selectors again

I boobed when I decoupled record selectors from their data types.
The most straightforward and robust fix means attaching the TyCon
of a record selector to its IfaceIdInfo, so

   you'll need to rebuild all .hi files

That said, the fix is easy.

10 years agopropagate the result of atomically properly (fixes #3049)
Simon Marlow [Wed, 24 Jun 2009 14:15:30 +0000 (14:15 +0000)] 
propagate the result of atomically properly (fixes #3049)

10 years agoMake C and CMM objects way-dependent
Ian Lynagh [Wed, 24 Jun 2009 13:45:31 +0000 (13:45 +0000)] 
Make C and CMM objects way-dependent
In particular, in the integer-gmp package the C and CMM code depends
on the size of STG structures, which vary between ways.

10 years agoadd debug_p and thr_debug_p to $(ALL_WAYS)
Simon Marlow [Wed, 24 Jun 2009 11:02:55 +0000 (11:02 +0000)] 
add debug_p and thr_debug_p to $(ALL_WAYS)

10 years agoFix buffering problem when GHCi is using the new IO library
Simon Marlow [Tue, 23 Jun 2009 14:26:23 +0000 (14:26 +0000)] 
Fix buffering problem when GHCi is using the new IO library
Behind the scenes, the new IO library always does buffering for read
Handles regardless of NoBuffering.  Normally this isn't visible, but
it causes a problem in GHCi where there are two stdin Handles.

This should fix those ghci test failures that sprung up in full
testsuite runs recently.

10 years agoOptimise the %.hi : %.o rule
Simon Marlow [Tue, 23 Jun 2009 12:49:01 +0000 (12:49 +0000)] 
Optimise the %.hi : %.o rule
Previously this rule had a sanity check for the existence of the .o
file.  However, the sanity check is expensive, especially on Windows,
because it requires spawning a shell.  So now we use an empty command
here.

This change reduced the time to do 'make' in an up-to-date tree on
Windows from 33s to 16s for me.  (the actual saving depends on how
much rebuilding you've been doing, and how many .hi files are older
than their .o files).

The comments in this file now describe various versions of the rule
that don't work.

10 years agofix comment
Simon Marlow [Mon, 22 Jun 2009 14:52:49 +0000 (14:52 +0000)] 
fix comment

10 years agoAdd boot-pkgs and packages to the source dists
Ian Lynagh [Tue, 23 Jun 2009 22:45:16 +0000 (22:45 +0000)] 
Add boot-pkgs and packages to the source dists

10 years agoFix the GHCi debugger so that it can recognise Integers again
Ian Lynagh [Tue, 23 Jun 2009 00:19:46 +0000 (00:19 +0000)] 
Fix the GHCi debugger so that it can recognise Integers again

10 years agoFollow Integer changes
Ian Lynagh [Mon, 22 Jun 2009 22:44:23 +0000 (22:44 +0000)] 
Follow Integer changes

10 years agoAdd the integer package
Ian Lynagh [Mon, 22 Jun 2009 22:17:16 +0000 (22:17 +0000)] 
Add the integer package
integer-gmp's Integer is now wrapped by an Integer type in integer.

10 years agofollow change in System.Posix.Internals.c_open
Simon Marlow [Mon, 22 Jun 2009 14:07:24 +0000 (14:07 +0000)] 
follow change in System.Posix.Internals.c_open

10 years agofix 'make 1'
Simon Marlow [Wed, 17 Jun 2009 14:06:57 +0000 (14:06 +0000)] 
fix 'make 1'

10 years agoremove unused cruft
Simon Marlow [Wed, 3 Jun 2009 14:33:48 +0000 (14:33 +0000)] 
remove unused cruft

10 years agoAdd a couple more symbols to the Linker.c table
Ian Lynagh [Mon, 22 Jun 2009 14:44:43 +0000 (14:44 +0000)] 
Add a couple more symbols to the Linker.c table
Fixes ghci loading gmp on Windows

10 years agomakefile tweak
Ian Lynagh [Wed, 17 Jun 2009 12:17:11 +0000 (12:17 +0000)] 
makefile tweak

10 years agoAdd an _EXTRA_OBJS variable when linking packages
Ian Lynagh [Tue, 16 Jun 2009 23:17:50 +0000 (23:17 +0000)] 
Add an _EXTRA_OBJS variable when linking packages

10 years agoRemove more GMP bits
Ian Lynagh [Tue, 16 Jun 2009 17:37:12 +0000 (17:37 +0000)] 
Remove more GMP bits

10 years agoAdd a #endif back that was accidentally removed from package.conf.in
Ian Lynagh [Tue, 16 Jun 2009 17:04:17 +0000 (17:04 +0000)] 
Add a #endif back that was accidentally removed from package.conf.in

10 years agoMake sure we aren't passing -Werror in the CFLAGS for configure scripts
Ian Lynagh [Mon, 15 Jun 2009 21:47:58 +0000 (21:47 +0000)] 
Make sure we aren't passing -Werror in the CFLAGS for configure scripts
When configure tests for a feature it may not generate warning-free C
code, and thus may think that the feature doesn't exist if -Werror is
on.

10 years agoPass CFLAGS and LDFLAGS to configure scripts
Ian Lynagh [Mon, 15 Jun 2009 20:16:04 +0000 (20:16 +0000)] 
Pass CFLAGS and LDFLAGS to configure scripts

10 years ago.cmm rules need to depend on $$($1_$2_HC_DEP), not $$($1_$2_HC)
Ian Lynagh [Mon, 15 Jun 2009 13:33:57 +0000 (13:33 +0000)] 
.cmm rules need to depend on $$($1_$2_HC_DEP), not $$($1_$2_HC)

10 years agoMove gmp into libraries/integer-gmp
Ian Lynagh [Sun, 14 Jun 2009 18:31:50 +0000 (18:31 +0000)] 
Move gmp into libraries/integer-gmp

10 years agoStop building the rts against gmp
Duncan Coutts [Sat, 13 Jun 2009 19:19:56 +0000 (19:19 +0000)] 
Stop building the rts against gmp
Nothing from gmp is used in the rts anymore.

10 years agoRemove the implementation of gmp primops from the rts
Duncan Coutts [Sat, 13 Jun 2009 19:18:51 +0000 (19:18 +0000)] 
Remove the implementation of gmp primops from the rts

10 years agoStop setting the gmp memory functions in the rts
Duncan Coutts [Sat, 13 Jun 2009 16:58:41 +0000 (16:58 +0000)] 
Stop setting the gmp memory functions in the rts
and remove the implementations of stg(Alloc|Realloc|Dealloc)ForGMP

10 years agoRemove the gmp/Integer primops from the compiler
Duncan Coutts [Sat, 13 Jun 2009 14:24:10 +0000 (14:24 +0000)] 
Remove the gmp/Integer primops from the compiler
The implementations are still in the rts.

10 years agoPut the CMM objects in the GHCi library too
Ian Lynagh [Thu, 11 Jun 2009 16:20:38 +0000 (16:20 +0000)] 
Put the CMM objects in the GHCi library too

10 years agoAdd rules for building .cmm files in libraries
Ian Lynagh [Thu, 11 Jun 2009 13:40:57 +0000 (13:40 +0000)] 
Add rules for building .cmm files in libraries

10 years agoExports a few rts things we need for cmm code in external packages
Duncan Coutts [Sat, 13 Jun 2009 17:06:22 +0000 (17:06 +0000)] 
Exports a few rts things we need for cmm code in external packages
In particular we need alloc_blocks and alloc_blocks_lim for MAYBE_GC.
The gmp cmm primops also use stg_ARR_WORDS_info.

10 years agoAdd and export rts_unsafeGetMyCapability from rts
Duncan Coutts [Fri, 12 Jun 2009 11:41:56 +0000 (11:41 +0000)] 
Add and export rts_unsafeGetMyCapability from rts
We need this, or something equivalent, to be able to implement
stgAllocForGMP outside of the rts. That's because we want to use
allocateLocal which allocates from the given capability without
having to take any locks. In the gmp primops we're basically in
an unsafe foreign call, that is a context where we hold a current
capability. So it's safe for us to use allocateLocal. We just
need a way to get the current capability. The method to get the
current capability varies depends on whether we're using the
threaded rts or not. When stgAllocForGMP is built inside the rts
that's ok because we can do it conditionally on THREADED_RTS.
Outside the rts we need a single api we can call without knowing
if we're talking to a threaded rts or not, hence this addition.

10 years agoRequire GHCForeignImportPrim for "foreign import prim"
Duncan Coutts [Thu, 11 Jun 2009 20:26:47 +0000 (20:26 +0000)] 
Require GHCForeignImportPrim for "foreign import prim"
In practise currently you also need UnliftedFFITypes, however
the restriction to just unlifted types may be lifted in future.

10 years agoAdd missing StgPrimCallOp case in repCCallConv
Duncan Coutts [Thu, 11 Jun 2009 16:59:05 +0000 (16:59 +0000)] 
Add missing StgPrimCallOp case in repCCallConv
We don't handle "foreign import prim" in TH stuff.

10 years agoAdd missing StgPrimCallOp case to isSimpleOp
Ian Lynagh [Thu, 11 Jun 2009 12:27:27 +0000 (12:27 +0000)] 
Add missing StgPrimCallOp case to isSimpleOp

10 years agoReverse the safe/unsafe requirement on foreign import prim
Duncan Coutts [Thu, 11 Jun 2009 11:52:43 +0000 (11:52 +0000)] 
Reverse the safe/unsafe requirement on foreign import prim
The safe/unsafe annotation doesn't currently mean anything for prim.
Just in case we decide it means something later it's better to stick
to using one or the other consistently. We decided that using safe
is the better one to require (and it's also the default).

10 years agoAdd PrimCall to the STG layer and update Core -> STG translation
Duncan Coutts [Tue, 9 Jun 2009 15:11:55 +0000 (15:11 +0000)] 
Add PrimCall to the STG layer and update Core -> STG translation
It adds a third case to StgOp which already hold StgPrimOp and StgFCallOp.
The code generation for the new StgPrimCallOp case is almost exactly the
same as for out-of-line primops. They now share the tailCallPrim function.
In the Core -> STG translation we map foreign calls using the "prim"
calling convention to the StgPrimCallOp case. This is because in Core we
represent prim calls using the ForeignCall stuff. At the STG level however
the prim calls are really much more like primops than foreign calls.

10 years agoDesugaring for "foreign import prim"
Duncan Coutts [Tue, 9 Jun 2009 10:59:45 +0000 (10:59 +0000)] 
Desugaring for "foreign import prim"
Unlike normal foreign imports which desugar into a separate worker and
wrapper, we use just a single wrapper decleration. The representation
in Core of the call is currently as a foreign call. This means the
args are all treated as fully strict. This is ok at the moment because
we restrict the types for foreign import prim to be of unboxed types,
however in future we may want to make prim imports be the normal cmm
calling convention for Haskell functions, in which case we would not
be able to assume all args are strict. At that point it may make more
sense to represent cmm/prim calls distinct from foreign calls, and
more like the we the existing PrimOp calls are handled.

10 years agoTypechecking for "foreign import prim"
Duncan Coutts [Tue, 9 Jun 2009 10:48:26 +0000 (10:48 +0000)] 
Typechecking for "foreign import prim"
The main restriction is that all args and results must be unboxed types.
In particular we allow unboxed tuple results (which is a primary
motivation for the whole feature). The normal rules apply about
"void rep" result types like State#. We only allow "prim" calling
convention for import, not export. The other forms of import, "dynamic",
"wrapper" and data label are banned as a conseqence of checking that the
imported name is a valid C string. We currently require prim imports to
be marked unsafe, though this is essentially arbitrary as the safety
information is unused.

10 years agoLexing and parsing for "foreign import prim"
Duncan Coutts [Tue, 9 Jun 2009 10:45:36 +0000 (10:45 +0000)] 
Lexing and parsing for "foreign import prim"
We only allow simple function label imports, not the normal complicated
business with "wrapper" "dynamic" or data label "&var" imports.

10 years agoAdd new FFI calling convention "prim"
Duncan Coutts [Tue, 9 Jun 2009 10:44:03 +0000 (10:44 +0000)] 
Add new FFI calling convention "prim"
First in a series of patches to add the feature.
This patch just adds PrimCallConv to the CCallConv type.

10 years agoThe IO type has moved to GHC.Types in ghc-prim
Ian Lynagh [Sat, 20 Jun 2009 15:51:54 +0000 (15:51 +0000)] 
The IO type has moved to GHC.Types in ghc-prim

10 years agoFix the way in the +RTS --info output
Ian Lynagh [Sat, 20 Jun 2009 14:26:00 +0000 (14:26 +0000)] 
Fix the way in the +RTS --info output

10 years agoSet DELETE_ON_ERROR in ghc.mk
Ian Lynagh [Wed, 17 Jun 2009 12:18:06 +0000 (12:18 +0000)] 
Set DELETE_ON_ERROR in ghc.mk

10 years agoFix the ghci wrapper
Ian Lynagh [Tue, 16 Jun 2009 18:25:01 +0000 (18:25 +0000)] 
Fix the ghci wrapper
The ${1+"$@"} was being evaluated by make, rather than being escaped.

10 years agoFix #3132: a case of bogus code generation
Simon Marlow [Thu, 18 Jun 2009 09:07:18 +0000 (09:07 +0000)] 
Fix #3132: a case of bogus code generation