Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
jberryman
GHC
Commits
98eb01d1
Commit
98eb01d1
authored
Nov 01, 1999
by
simonpj
Browse files
[project @ 1999-11-01 16:06:34 by simonpj]
Minor tweaks to intro, and description of RULES
parent
cfd47515
Changes
2
Hide whitespace changes
Inline
Side-by-side
ghc/docs/users_guide/glasgow_exts.vsgml
View file @
98eb01d1
%
% $Id: glasgow_exts.vsgml,v 1.1
7
1999/1
0/28 07:53:13
simonpj Exp $
% $Id: glasgow_exts.vsgml,v 1.1
8
1999/1
1/01 16:06:34
simonpj Exp $
%
% GHC Language Extensions.
%
...
...
@@ -2085,9 +2085,14 @@ This rule will cause the compiler to go into an infinite loop.
<item> GHC currently uses a very simple, syntactic, matching algorithm
for matching a rule LHS with an expression. It seeks a substitution
which makes the LHS and expression syntactically equal modulo: alpha
conversion, and (I think) eta conversion. But not beta conversion (that's
called higher-order matching).
which makes the LHS and expression syntactically equal modulo alpha
conversion. The pattern (rule), but not the expression, is eta-expanded if
necessary. (Eta-expanding the epression can lead to laziness bugs.)
But not beta conversion (that's called higher-order matching).
<p>
Matching is carried out on GHC's intermediate language, which includes
type abstractions and applications. So a rule only matches if the
types match too. See Section <ref name="Specialisation" id="rule-spec"> below.
<item> GHC keeps trying to apply the rules as it optimises the program.
For example, consider:
...
...
@@ -2184,6 +2189,7 @@ If you want to write your own good consumers or producers, look at the
Prelude definitions of the above functions to see how to do so.
<sect2>Specialisation
<label id="rule-spec">
<p>
Rewrite rules can be used to get the same effect as a feature
...
...
ghc/docs/users_guide/intro.vsgml
View file @
98eb01d1
...
...
@@ -3,8 +3,12 @@
<p>
This is a guide to using the Glasgow Haskell compilation (GHC) system.
It is a batch compiler for the Haskell~
1.4
language, with support for
It is a batch compiler for the Haskell~
98
language, with support for
various Glasgow-only extensions.
In this document, we assume that GHC has been installed at your site
as @ghc@. A separate document, ``Building and Installing the
Glasgow Functional Programming Tools Suite'',
describes how to install @ghc@.
Many people will use GHC very simply: compile some
modules---@ghc -c -O Foo.hs Bar.hs@; and link them---
...
...
@@ -17,8 +21,7 @@ ghc -c -O -fno-foldr-build -dcore-lint -fvia-C -ddump-simpl Foo.lhs
</verb></tscreen>
Stay tuned---all will be revealed!
In this document, we assume that GHC has been installed at your site
as @ghc@. The rest of this section provide some tutorial information
The rest of this section provide some tutorial information
on batch-style compilation; if you're familiar with these concepts
already, then feel free to skip to the next section.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment