Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/simplify/simplify.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/simplify/simplify.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4431, Thu Aug 18 23:21:27 2016 UTC revision 4432, Fri Aug 19 15:10:12 2016 UTC
# Line 40  Line 40 
40      fun error ({errStrm, gEnv}, msg) = Error.error (errStrm, msg)      fun error ({errStrm, gEnv}, msg) = Error.error (errStrm, msg)
41      fun warning ({errStrm, gEnv}, msg) = Error.warning (errStrm, msg)      fun warning ({errStrm, gEnv}, msg) = Error.warning (errStrm, msg)
42    
43      fun imageTyToString (dim, shp) = String.concat[    (* error message for when a nrrd image file is incompatible with the declared image type *)
44              "image(", Int.toString dim, ")[", String.concatWithMap "," Int.toString shp, "]"      fun badImageNrrd (cxt, nrrdFile, nrrdInfo, expectedDim, expectedShp) = let
45              val NrrdInfo.NrrdInfo{dim, nElems, ...} = nrrdInfo
46              val expectedNumElems = List.foldl (op * ) 1 expectedShp
47              val prefix = String.concat[
48                      "image file \"", nrrdFile, "\"  is incompatible with expected type image(",
49                      Int.toString expectedDim, ")[",
50                      String.concatWithMap "," Int.toString expectedShp, "]"
51            ]            ]
52              in
53                case (dim = expectedDim, nElems = expectedNumElems)
54                 of (false, true) => error (cxt, [
55                        prefix, "; its dimension is ", Int.toString dim
56                      ])
57                  | (true, false) => error (cxt, [
58                        prefix, "; it has ", Int.toString nElems, " sample per voxel"
59                      ])
60                  | _ =>  error (cxt, [
61                        prefix, ";  its dimension is ", Int.toString dim, " and it has ",
62                        Int.toString nElems, " sample per voxel"
63                      ])
64                (* end case *)
65              end
66    
67    (* convert a Types.ty to a SimpleTypes.ty *)    (* convert a Types.ty to a SimpleTypes.ty *)
68      fun cvtTy ty = (case ty      fun cvtTy ty = (case ty
# Line 402  Line 422 
422                            case NrrdInfo.getInfo (#errStrm cxt, nrrd)                            case NrrdInfo.getInfo (#errStrm cxt, nrrd)
423                             of SOME nrrdInfo => (case II.fromNrrd(nrrdInfo, dim, shape)                             of SOME nrrdInfo => (case II.fromNrrd(nrrdInfo, dim, shape)
424                                   of NONE => (                                   of NONE => (
425  (* FIXME: produce more informative error message (use imageTyToString) *)                                        badImageNrrd (cxt, nrrd, nrrdInfo, dim, shape);
                                       error (cxt, [  
                                           "nrrd file \"", nrrd, "\" does not have expected type"  
                                         ]);  
426                                        (stms, S.E_LoadImage(ty, nrrd, II.mkInfo(dim, shape))))                                        (stms, S.E_LoadImage(ty, nrrd, II.mkInfo(dim, shape))))
427                                    | SOME imgInfo =>                                    | SOME imgInfo =>
428                                        (stms, S.E_LoadImage(STy.T_Image imgInfo, nrrd, imgInfo))                                        (stms, S.E_LoadImage(STy.T_Image imgInfo, nrrd, imgInfo))
# Line 567  Line 584 
584            fun simplifyInputDcl ((x, NONE), desc) = let            fun simplifyInputDcl ((x, NONE), desc) = let
585                  val x' = cvtVar x                  val x' = cvtVar x
586                  val init = (case SimpleVar.typeOf x'                  val init = (case SimpleVar.typeOf x'
587                         of STy.T_Image info => S.Image info                         of STy.T_Image info => (
588                                warning(cxt, [
589                                    "assuming a sample type of ", RawTypes.toString(II.sampleTy info),
590                                    " for '", SimpleVar.nameOf x',
591                                    "'; specify a proxy-image file to override the default sample type"
592                                  ]);
593                                S.Image info)
594                          | _ => S.NoDefault                          | _ => S.NoDefault
595                        (* end case *))                        (* end case *))
596                  val inp = S.INP{                  val inp = S.INP{
# Line 590  Line 613 
613                                case NrrdInfo.getInfo (#errStrm cxt, nrrd)                                case NrrdInfo.getInfo (#errStrm cxt, nrrd)
614                                 of SOME nrrdInfo => (case II.fromNrrd(nrrdInfo, dim, shape)                                 of SOME nrrdInfo => (case II.fromNrrd(nrrdInfo, dim, shape)
615                                       of NONE => (                                       of NONE => (
616  (* FIXME: produce more informative error message *)                                            badImageNrrd (cxt, nrrd, nrrdInfo, dim, shape);
                                           error (cxt, [  
                                               "proxy input file \"", nrrd,  
                                               "\" does not have expected type"  
                                             ]);  
617                                            (cvtVar x, S.Image(II.mkInfo(dim, shape))))                                            (cvtVar x, S.Image(II.mkInfo(dim, shape))))
618                                        | SOME info =>                                        | SOME info =>
619                                            (newVarWithType(x, STy.T_Image info), S.Proxy(nrrd, info))                                            (newVarWithType(x, STy.T_Image info), S.Proxy(nrrd, info))

Legend:
Removed from v.4431  
changed lines
  Added in v.4432

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0