| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The first phase of this tidyup is focussed on the header files, and in
particular making sure we are exposinng publicly exactly what we need
to, and no more.
- Rts.h now includes everything that the RTS exposes publicly,
rather than a random subset of it.
- Most of the public header files have moved into subdirectories, and
many of them have been renamed. But clients should not need to
include any of the other headers directly, just #include the main
public headers: Rts.h, HsFFI.h, RtsAPI.h.
- All the headers needed for via-C compilation have moved into the
stg subdirectory, which is self-contained. Most of the headers for
the rest of the RTS APIs have moved into the rts subdirectory.
- I left MachDeps.h where it is, because it is so widely used in
Haskell code.
- I left a deprecated stub for RtsFlags.h in place. The flag
structures are now exposed by Rts.h.
- Various internal APIs are no longer exposed by public header files.
- Various bits of dead code and declarations have been removed
- More gcc warnings are turned on, and the RTS code is more
warning-clean.
- More source files #include "PosixSource.h", and hence only use
standard POSIX (1003.1c-1995) interfaces.
There is a lot more tidying up still to do, this is just the first
pass. I also intend to standardise the names for external RTS APIs
(e.g use the rts_ prefix consistently), and declare the internal APIs
as hidden for shared libraries.
|
|
|
|
| |
Rather than indirecting through an integer package
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
My previous patch didn't completely solve the problem.
I believe I got it right this time.
|
|
|
|
|
| |
Fix a bug in :print affecting data types with unboxed components
|
|
|
|
|
| |
My Windows build has started complaining about lacking final newlines,
I'm not entirely sure why.
|
|
|
|
|
|
|
|
|
|
|
| |
types
The problem is that calls to boxyUnify would panic if the types involved
contained type functions.
It looks like one should wrap these calls with getLIE, although I don't
really know what I am doing here
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Ticket #1995: Unsoundness with newtypes
- Ticket #2475: "Can't unify" error when stopped at an exception
In addition this patch adds the following:
- Unfailingness: RTTI cannot panic anymore.
In case of failure, it recovers gracefully by returning the "I know nothing" type
- A -ddump-rtti flag
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Switching to boxyUnify should be enough to fix this.
|
|
|
|
|
|
| |
- TcGadt RIP
- The non-side effecting unification code is now in types/Unify.lhs
along with the refinement code needed for GADT record selectors.
|
|
|
|
| |
Modules that need it import it themselves instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This means that an unregisterised build on a platform not directly
supported by GHC can now have full FFI support using libffi.
Also in this commit:
- use PrimRep rather than CgRep to describe FFI args in the byte
code generator. No functional changes, but PrimRep is more correct.
- change TyCon.sizeofPrimRep to primRepSizeW, which is more useful
|
|
|
|
|
| |
Work around various problems caused by some of the monadification patches
not being applied.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Suspensions in the Term datatype used for RTTI
always get assigned a Type, so there is no reason
to juggle around with a (Maybe Type) anymore.
|
|
|
|
|
|
|
| |
This comes as result of the short discussion linked below.
http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prelude Data.IORef> :p l
l = (_t4::Maybe Integer) : (_t5::[Maybe Integer])
Prelude Data.IORef> p <- newIORef l
Prelude Data.IORef> :p p
p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) :
(_t7::[Maybe Integer]))})
Prelude Data.IORef> :sp p
p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)})
I used braces to denote the contents of a reference.
Perhaps there is a more appropriate notation?
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turns out the newtype handling code in :print
was slipping non mutable Tyvars in the types reconstructed.
The error message eventually produced was rather obscure:
[src/Tp.hs:75:28-64] *MainTp> :p x
*** Exception: No match in record selector Var.tcTyVarDetails
[src/Tp.hs:75:28-64] *MainTp>
Due to non mutable tyvars, unifyType was failing.
A well placed assertion in the unifyType code would have made
my life much easier.
Which reminds me I should install a -ddump-* system in the
RTTI subsystem, or future hackers will run away in swearing.
MERGE TO STABLE
|
|
|
|
|
|
|
| |
This helps to get pretty printing right,
nested newtypes were not being shown correctly by :print
|
| |
|
|
|
|
|
| |
The term pretty printer used by :print shouldn't output
the contents of TypeRep values, e.g. inside Dynamic values
|
|
|
|
|
| |
The term pretty printer used by :print shouldn't output
the contents of TypeRep values, e.g. inside Dynamic values
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Older GHCs can't parse OPTIONS_GHC.
This also changes the URL referenced for the -w options from
WorkingConventions#Warnings to CodingStyle#Warnings for the compiler
modules.
|
| |
|