[clean out a lot of cruft thanks to getting rid of built in classes and types
John Meacham <john@repetae.net>**20100722112756
 Ignore-this: 2a22b5186a3266fcfa721df515c074a3
] hunk ./Makefile.am 154
-src/PrimitiveOperators.hs: utils/op_process.prl src/data/operators.txt src/data/primitives.txt src/data/PrimitiveOperators-in.hs
+src/PrimitiveOperators.hs: utils/op_process.prl src/data/primitives.txt src/data/PrimitiveOperators-in.hs
hunk ./src/DataConstructors.hs 284
-    f (dc,tc,rt,y,z) | z /= "void" = [typeCons,dataCons] where
+    f (dc,tc,rt) = [typeCons,dataCons] where
hunk ./src/DataConstructors.hs 299
-
hunk ./src/data/operators.txt 1
-
-
-
-# [int,float,char,ptr]
-# aaB, ==, Jhc.Order.Eq, ==
-# aaB, /=, Jhc.Order.Eq, !=
-# aaB, >=, Jhc.Order.Ord, >=
-# aaB, <=, Jhc.Order.Ord, <=
-# aaB, >, Jhc.Order.Ord, >
-# aaB, <, Jhc.Order.Ord, <
-
-
-#[int,float]
-#aaa, +, Jhc.Num.Num, +
-#aaa, -, Jhc.Num.Num, -
-#aaa, *, Jhc.Num.Num, *
-#aa, negate, Jhc.Num.Num, -
-# 1, abs, Jhc.Num.Num, abs
-# 1, signum, Jhc.Num.Num, abs
-
-#[int]
-#aaa, .&., Data.Bits.Bits, &
-#aaa, .|., Data.Bits.Bits, |
-#aaa, xor, Data.Bits.Bits, ^
-#aa, complement, Data.Bits.Bits, ~
-#aaa, quot, Jhc.Num.Integral, /
-#aaa, rem, Jhc.Num.Integral, %
-#aaa, div, Jhc.Num.Integral, /
-#aaa, mod, Jhc.Num.Integral, %
-#aIa, shiftL, Data.Bits.Bits, <<
-#aIa, shiftR, Data.Bits.Bits, >>
-
-
-# [float]
-# aaa, /, Jhc.Num.Fractional, /
-
rmfile ./src/data/operators.txt
hunk ./src/data/primitives.txt 3
-# limits.h, float.h, inttypes.h
+Jhc.Prim.Int, bits32
+Jhc.Basics.Integer, bits<max>
hunk ./src/data/primitives.txt 6
-# Jhc.Prim.Char, ubits32, char, UINT32_MAX, 0
-Jhc.Prim.Int, sbits32, int, INT_MAX, INT_MIN
-Jhc.Basics.Integer, sbits<max>, int, INTMAX_MAX, INTMAX_MIN
+Data.Int.Int8, bits8
+Data.Int.Int16, bits16
+Data.Int.Int32, bits32
+Data.Int.Int64, bits64
+Data.Int.IntMax, bits<max>
+Data.Int.IntPtr, bits<ptr>
hunk ./src/data/primitives.txt 13
-Data.Int.Int8, sbits8, int, INT8_MAX, INT8_MIN
-Data.Int.Int16, sbits16, int, INT16_MAX, INT16_MIN
-Data.Int.Int32, sbits32, int, INT32_MAX, INT32_MIN
-Data.Int.Int64, sbits64, int, INT64_MAX, INT64_MIN
-Data.Int.IntMax, sbits<max>, int, INTMAX_MAX, INTMAX_MIN
-Data.Int.IntPtr, sbits<ptr>, int, INTPTR_MAX, INTPTR_MIN
-
-Data.Word.Word, ubits32, int, UINT_MAX, 0
-Data.Word.Word8, ubits8, int, UINT8_MAX, 0
-Data.Word.Word16, ubits16, int, UINT16_MAX, 0
-Data.Word.Word32, ubits32, int, UINT32_MAX, 0
-Data.Word.Word64, ubits64, int, UINT64_MAX, 0
-Data.Word.WordMax, ubits<max>, int, UINTMAX_MAX, 0
-Data.Word.WordPtr, ubits<ptr>, int, UINTPTR_MAX, 0
-
-#Jhc.Float.Float, fbits<float>, float, FLT_MAX, FLT_MIN
-#Jhc.Float.Double, fbits<double>, float, DBL_MAX, DBL_MIN
-
-#Jhc.Addr.Addr, ubits<ptr>, ptr,UINTPTR_MAX, 0
-#Jhc.Addr.FunAddr, ubits<ptr>, ptr,UINTPTR_MAX,0
-
-Foreign.C.Types.CChar, sbits8, int, CHAR_MAX, CHAR_MIN
-Foreign.C.Types.CSChar, sbits8, int, CHAR_MAX, CHAR_MIN
-Foreign.C.Types.CUChar, sbits8, int, CHAR_MAX, CHAR_MIN
-Foreign.C.Types.CShort, sbits<short>, int, SHORT_MAX, SHORT_MIN
-Foreign.C.Types.CInt, sbits<int>, int, INT_MAX, INT_MIN
-Foreign.C.Types.CUInt, ubits<int>, int, UINT_MAX, 0
-Foreign.C.Types.CULong, ubits<ptr>, int, UINTPTR_MAX, 0
-Foreign.C.Types.CSize, ubits<size_t>, int, UINTPTR_MAX, 0
-Foreign.C.Types.CWchar, ubits<wchar_t>, int, 0x10FFFF, 0
-Foreign.C.Types.CWint, sbits<wchar_t>, int, 0x10FFFF, 0
-# not really right, need to find out actual minimum/maximum somehow
-Foreign.C.Types.CTime, ubits<time_t>, float, 0xffffffffff, 0
+Data.Word.Word, bits32
+Data.Word.Word8, bits8
+Data.Word.Word16, bits16
+Data.Word.Word32, bits32
+Data.Word.Word64, bits64
+Data.Word.WordMax, bits<max>
+Data.Word.WordPtr, bits<ptr>
hunk ./src/data/primitives.txt 21
+Foreign.C.Types.CChar, bits8
+Foreign.C.Types.CSChar, bits8
+Foreign.C.Types.CUChar, bits8
+Foreign.C.Types.CShort, bits<short>
+Foreign.C.Types.CInt, bits<int>
+Foreign.C.Types.CUInt, bits<int>
+Foreign.C.Types.CULong, bits<ptr>
+Foreign.C.Types.CSize, bits<size_t>
+Foreign.C.Types.CWchar, bits<wchar_t>
+Foreign.C.Types.CWint, bits<wchar_t>
+Foreign.C.Types.CTime, bits<time_t>
hunk ./utils/op_process.prl 7
-open OP, "<src/data/operators.txt";
-
-my @fl;
-my @in;
-
-my @add;
-my %stuff;
-
-my %oper_map = (
-    "-" => "Sub",
-    "+" => "Add",
-    "*" => "Mul",
-    "u-" => "Sub",
-    "u+" => "Add",
-    "u*" => "Mul",
-    "f*" => "FMul",
-    "f-" => "FSub",
-    "f+" => "FAdd",
-    "==" => "Eq",
-    "!=" => "NEq",
-    ">" => "Gt",
-    ">=" => "Gte",
-    "<" => "Lt",
-    "<=" => "Lte",
-    "u==" => "Eq",
-    "u!=" => "NEq",
-    "u>" => "UGt",
-    "u>=" => "UGte",
-    "u<" => "ULt",
-    "u<=" => "ULte",
-
-    "&" => "And",
-    "|" => "Or",
-    "^" => "Xor",
-    "<<" => "Shl",
-    ">>" => "Shra",
-    "u>>" => "Shr",
-    "/" => "Div",
-    "%" => "Mod",
-    "u/" => "UDiv",
-    "u%" => "UMod",
-    "u&" => "And",
-    "u|" => "Or",
-    "u^" => "Xor",
-    "u<<" => "Shl",
-
-
-    "f==" => "FEq",
-    "f!=" => "FNEq",
-    "f>" => "FGt",
-    "f>=" => "FGte",
-    "f<" => "FLt",
-    "f<=" => "FLte",
-
-    "_-" => "Neg",
-    "_~" => "Com",
-    "u_-" => "Neg",
-    "u_~" => "Com",
-    "f_-" => "FNeg"
-
-    );
-
-sub vtype {
-    ($_) = @_ if @_;
-    return 'u' if /^u/;
-    return ''  if /^s/;
-    return 'f' if /^f/;
-}
-
-while(<OP>) {
-    chomp;
-    next unless /\S/;
-    next if /^\s*#/;
-    if (/^\[([\w,\s]*)\]\s*$/) {
-        @add = split(/\s*,\s*/,$1);
-        next;
-    }
-    my @a = split /\s*,\s*/;
-    foreach my $y (@add) {
-        push @{$stuff{$y}}, \@a;
-    }
-}
-
hunk ./utils/op_process.prl 17
-#print Dumper(\@fl,\@in,\@ds);
-
-my @inst;
-my @meth;
-my @cmeth;
hunk ./utils/op_process.prl 18
-my %seen;
-
-sub const($$$@) {
-    my ($cn,$v,$t,$ct) = @_;
-    $ct ||= "int";
-    my $ctn = $ct;
-    $ctn =~ s/\W/_/g;
-
-    if ($v =~ /^\d/) {
-        return "prim_number $cn $v r_$ctn $t";
-    } else {
-        return "prim_const $cn \"$v\" r_$ctn \"$ct\" $t";
-    }
-}
-
-#print STDERR Dumper(\%stuff);
-
-my %tcon;
-sub tcon($) {
-    return $tcon{$_[0]}[0] if $tcon{$_[0]};
-    my $n = $_[0];
-    $n =~ s/\W/_/g;
-    $n = "t_" . $n;
-    my $x = $_[0];
-    $x =~ s/^.*\.//;
-    my $v = "$n = ELit litCons { litName = tc_$x, litType = eStar}";
-    $tcon{$_[0]} = [$n,$v];
-    return $n;
-}
hunk ./utils/op_process.prl 30
-my %dcon;
-sub dcon($) {
-    my $x = $_[0];
-    $x =~ s/^.*\.//;
-    return "dc_$x";
-}
-
-my %hsname;
-sub hsname($) {
-    return $hsname{$_[0]}[0] if $hsname{$_[0]};
-    my $n = $_[0];
-    $n =~ s/\W/_/g;
-    $n = "n_" . $n;
-    my $v = "$n = toClassName \"$_[0]\"";
-    $hsname{$_[0]} = [$n,$v];
-    return $n;
-}
-
-my %tycon;
-sub tycon($) {
-    return $tycon{$_[0]}[0] if $tycon{$_[0]};
-    my $n = $_[0];
-    $n =~ s/\W/_/g;
-    $n = "tc_" . $n;
-    my $x = $_[0];
-    $x =~ s/^.*\.//;
-    my $v = "$n = TCon (Tycon tc_$x kindStar)";
-    $tycon{$_[0]} = [$n,$v];
-    return $n;
-}
-
hunk ./utils/op_process.prl 31
-    #my @cs = ($d->[2] =~ /int/) ? @in : @fl;
-    my $vtype = vtype $d->[1];
-    #print STDERR "$d->[1] - '$vtype'\n";
-    my @cs = (); # @{$stuff{$d->[2]}};
-#    my $t = tcon($d->[0]);
-    $d->[1] =~ s/^[us]//;
-#    my $rtype = rtype($d->[1]);
-    #my $t =  "(ELit (LitCons (parseName TypeConstructor \"$d->[0]\") [] eStar) )";
-    #my $t =  "(ELit (LitCons $nn [] eStar) )";
-#    my $tycon = tycon($d->[0]);
-    my $cncons = dcon($d->[0]);
-#    my $prelude_bounded = hsname("Jhc.Enum.Bounded");
-#    my $foreign_storable = hsname("Foreign.Storable.Storable");
-#    my $c_num = hsname("Jhc.Num.Num");
-#    push @inst, "[] :=> IsIn $prelude_bounded $tycon" if $vtype ne 'f';
-#    push @inst, "[] :=> IsIn $foreign_storable $tycon";
-#    push @cmeth, "($foreign_storable, toInstName \"Foreign.Storable.sizeOf.$d->[0]\", ELam (v0 $t) \$ prim_sizeof \"$d->[1]\")";
-#    push @cmeth, "($foreign_storable, toInstName \"Foreign.Storable.poke.$d->[0]\", buildPoke $cncons $t \"$d->[1]\")";
-#    push @cmeth, "($foreign_storable, toInstName \"Foreign.Storable.peek.$d->[0]\", buildPeek $cncons $t \"$d->[1]\")";
-#    push @cmeth, "($prelude_bounded, toInstName \"Jhc.Enum.maxBound.$d->[0]\", " . "prim_${vtype}maxbound $cncons $t \"$d->[1]\")" if $vtype ne 'f';;
-#    push @cmeth, "($prelude_bounded, toInstName \"Jhc.Enum.minBound.$d->[0]\", " . "prim_${vtype}minbound $cncons $t \"$d->[1]\")" if $vtype ne 'f';;
-#    my $ivar = "v2_Int";
-#    my $ivart = "v2_Integer";
-#    my $tvar = "(v2 $t)";
-#    if ($d->[0] eq "Jhc.Prim.Int") {
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.fromInt.$d->[0]\", ELam $ivar (EVar $ivar))";
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.toInt.$d->[0]\", ELam $ivar (EVar $ivar))";
-#    } else {
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.fromInt.$d->[0]\", ELam $ivar (create_${vtype}integralCast_fromInt $cncons $rtype (EVar $ivar) $t))";
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.toInt.$d->[0]\", ELam $tvar (create_${vtype}integralCast_toInt $cncons $rtype (EVar $tvar)))" if $d->[2] =~ /int/ ;
-#    }
-#    if ($d->[0] eq "Jhc.Basics.Integer") {
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.fromInteger.$d->[0]\", ELam $ivart (EVar $ivart))";
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.toInteger.$d->[0]\", ELam $ivart (EVar $ivart))";
-#    } else {
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.fromInteger.$d->[0]\", ELam $ivart (create_${vtype}integralCast_fromInteger $cncons $rtype (EVar $ivart) $t))";
-#        push @cmeth, "($c_num, toInstName \"Jhc.Num.toInteger.$d->[0]\", ELam $tvar (create_${vtype}integralCast_toInteger $cncons $rtype (EVar $tvar)))" if $d->[2] =~ /int/ ;
-#    }
-#    push @cmeth, "($c_num, toInstName \"Jhc.Num.abs.$d->[0]\", ELam $tvar (build_${vtype}abs \"$d->[1]\" $cncons (EVar $tvar)  ))";
-#    push @cmeth, "($c_num, toInstName \"Jhc.Num.signum.$d->[0]\", ELam $tvar (build_${vtype}signum \"$d->[1]\" $cncons (EVar $tvar) ))";
-    #push @names, "(\"$d->[0]\", \"$d->[1]\", \"$d->[2]\")\n";
hunk ./utils/op_process.prl 33
-    push @names, "(dc_$sname, tc_$sname, " . rtype($d->[1]) . ", \"$d->[1]\", \"$d->[2]\")\n";
-#    foreach my $c (@cs) {
-#        my $tycon = tycon($d->[0]);
-#        my $nn = hsname($c->[2]);
-#        push @inst, "[] :=> IsIn $nn $tycon" unless $seen{$c->[2],$d->[0]}++;
-#        my $x = $c->[2];
-#        $x =~ s/^([\w.]+\.).*$/$1/;
-#        if ($c->[0] =~ /^a[aI][aIB]$/) {
-#            push @cmeth, "($nn,toInstName \"$x$c->[1].$d->[0]\", op_$c->[0]  Op." . $oper_map{$vtype . $c->[3]} ." \"$d->[1]\" $cncons $t)";
-#        } elsif ($c->[0] =~ /^a[aI]$/) {
-#            push @cmeth, "($nn,toInstName \"$x$c->[1].$d->[0]\", op_$c->[0]  Op." . $oper_map{$vtype . "_" . $c->[3]} ." \"$d->[1]\" $cncons $t)";
-#        } else {
-#            push @meth, "($nn,toInstName \"$x$c->[1].$d->[0]\", \"$c->[0]\", \"prim_op_$c->[0].$c->[3]\", \"$d->[0]\")";
-#        }
-#    }
+    push @names, "(dc_$sname, tc_$sname, " . rtype($d->[1]) . ")\n";
hunk ./utils/op_process.prl 38
-print "primitiveInsts = [\n   ", join("\n  ,",@inst), " ]\n\n";
-print "constantMethods = [\n   ", join("\n  ,",@cmeth), " ]\n\n";
-print "theMethods = [\n   ", join("\n  ,",@meth), " ]\n\n";
-#push @names, "(dc_Unit, tc_Unit, undefined,\"void\",\"void\")\n";
-#push @names, "(undefined, tc_World__, undefined,\"void\",\"void\")\n";
-#push @names, "(\"Jhc.IO.World__\",\"void\",\"void\")";
hunk ./utils/op_process.prl 39
-
-print join("\n",map { $_->[1] } values %tcon) . "\n\n";
-print join("\n",map { $_->[1] } values %tycon) . "\n\n";
-print join("\n",map { $_->[1] } values %hsname) . "\n\n";
-print join("\n",map { "{-# NOINLINE $_->[0] #-}" } values %hsname) . "\n\n";
-print join("\n",map { $_->[1] } values %dcon) . "\n\n";
hunk ./utils/op_process.prl 41
-print "\n\n";
-
-
-
-