http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IfStatementBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/IfStatementBlock.java b/src/main/java/org/apache/sysml/parser/IfStatementBlock.java index 00295d1..aa9c7b5 100644 --- a/src/main/java/org/apache/sysml/parser/IfStatementBlock.java +++ b/src/main/java/org/apache/sysml/parser/IfStatementBlock.java @@ -19,14 +19,12 @@ package org.apache.sysml.parser; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map.Entry; import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.hops.Hop; -import org.apache.sysml.hops.HopsException; import org.apache.sysml.hops.recompile.Recompiler; import org.apache.sysml.lops.Lop; import org.apache.sysml.parser.Expression.DataType; @@ -40,8 +38,7 @@ public class IfStatementBlock extends StatementBlock @Override public VariableSet validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional) - throws LanguageException, ParseException, IOException - { + { if (_statements.size() > 1){ raiseValidateError("IfStatementBlock should only have 1 statement (IfStatement)", conditional); } @@ -287,8 +284,7 @@ public class IfStatementBlock extends StatementBlock @Override public VariableSet initializeforwardLV(VariableSet activeInPassed) - throws LanguageException - { + { IfStatement ifstmt = (IfStatement)_statements.get(0); if (_statements.size() > 1){ LOG.error(ifstmt.printErrorLocation() + "IfStatementBlock should have only 1 statement (if statement)"); @@ -421,8 +417,7 @@ public class IfStatementBlock extends StatementBlock @Override public VariableSet initializebackwardLV(VariableSet loPassed) - throws LanguageException - { + { IfStatement ifstmt = (IfStatement)_statements.get(0); if (_statements.size() > 1){ LOG.error(ifstmt.printErrorLocation() + "IfStatementBlock should have only 1 statement (if statement)"); @@ -468,7 +463,7 @@ public class IfStatementBlock extends StatementBlock } @Override - public VariableSet analyze(VariableSet loPassed) throws LanguageException{ + public VariableSet analyze(VariableSet loPassed) { VariableSet predVars = ((IfStatement)_statements.get(0)).getConditionalPredicate().variablesRead(); predVars.addVariables(((IfStatement)_statements.get(0)).getConditionalPredicate().variablesUpdated()); @@ -515,7 +510,7 @@ public class IfStatementBlock extends StatementBlock // materialized hops recompilation flags //// - public boolean updatePredicateRecompilationFlag() throws HopsException { + public boolean updatePredicateRecompilationFlag() { return (_requiresPredicateRecompile = ConfigurationManager.isDynamicRecompilation() && Recompiler.requiresRecompilation(getPredicateHops()));
http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ImportStatement.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/ImportStatement.java b/src/main/java/org/apache/sysml/parser/ImportStatement.java index 6b892d1..4f2c475 100644 --- a/src/main/java/org/apache/sysml/parser/ImportStatement.java +++ b/src/main/java/org/apache/sysml/parser/ImportStatement.java @@ -75,7 +75,7 @@ public class ImportStatement extends Statement @Override - public Statement rewriteStatement(String prefix) throws LanguageException{ + public Statement rewriteStatement(String prefix) { LOG.error(this.printErrorLocation() + "rewriting for inlining not supported for ImportStatement"); throw new LanguageException(this.printErrorLocation() + "rewriting for inlining not supported for ImportStatement"); } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java b/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java index 09dafc2..97e94c5 100644 --- a/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java +++ b/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java @@ -72,8 +72,7 @@ public class IndexedIdentifier extends DataIdentifier } public IndexPair calculateIndexedDimensions(HashMap<String,DataIdentifier> ids, HashMap<String, ConstIdentifier> currConstVars, boolean conditional) - throws LanguageException - { + { // stores the updated row / col dimension info long updatedRowDim = -1, updatedColDim = -1; @@ -528,7 +527,7 @@ public class IndexedIdentifier extends DataIdentifier @Override - public Expression rewriteExpression(String prefix) throws LanguageException { + public Expression rewriteExpression(String prefix) { IndexedIdentifier newIndexedIdentifier = new IndexedIdentifier(this.getName(), this._rowLowerEqualsUpper, this._colLowerEqualsUpper); newIndexedIdentifier.setParseInfo(this); @@ -549,7 +548,7 @@ public class IndexedIdentifier extends DataIdentifier return newIndexedIdentifier; } - public void setIndices(ArrayList<ArrayList<Expression>> passed) throws LanguageException { + public void setIndices(ArrayList<ArrayList<Expression>> passed) { if (passed.size() != 2) raiseValidateError("matrix indices must be specified for 2 dimensions"); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IntIdentifier.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/IntIdentifier.java b/src/main/java/org/apache/sysml/parser/IntIdentifier.java index 1e384bc..3833ce0 100644 --- a/src/main/java/org/apache/sysml/parser/IntIdentifier.java +++ b/src/main/java/org/apache/sysml/parser/IntIdentifier.java @@ -26,7 +26,7 @@ public class IntIdentifier extends ConstIdentifier private long _val; @Override - public Expression rewriteExpression(String prefix) throws LanguageException{ + public Expression rewriteExpression(String prefix) { return this; } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IterablePredicate.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/IterablePredicate.java b/src/main/java/org/apache/sysml/parser/IterablePredicate.java index ea49073..cf859c3 100644 --- a/src/main/java/org/apache/sysml/parser/IterablePredicate.java +++ b/src/main/java/org/apache/sysml/parser/IterablePredicate.java @@ -61,7 +61,7 @@ public class IterablePredicate extends Expression } @Override - public Expression rewriteExpression(String prefix) throws LanguageException { + public Expression rewriteExpression(String prefix) { //DataIdentifier newIterVar = (DataIdentifier)_iterVar.rewriteExpression(prefix); //return new IterablePredicate(newIterVar, _from, _to, _increment); LOG.error(this.printErrorLocation() + "rewriteExpression not supported for IterablePredicate"); @@ -70,7 +70,6 @@ public class IterablePredicate extends Expression @Override public void validateExpression(HashMap<String, DataIdentifier> ids, HashMap<String, ConstIdentifier> constVars, boolean conditional) - throws LanguageException { //recursive validate if (_iterVar instanceof FunctionCallIdentifier @@ -185,9 +184,7 @@ public class IterablePredicate extends Expression return sb.toString(); } - private void checkNumericScalarOutput( Expression expr ) - throws LanguageException - { + private void checkNumericScalarOutput( Expression expr ) { if( expr == null || expr.getOutput() == null ) return; http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java b/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java index 0417edb..e851907 100644 --- a/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java +++ b/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java @@ -85,9 +85,9 @@ public abstract class LiveVariableAnalysis _read = vars; } - public abstract VariableSet initializeforwardLV(VariableSet activeIn) throws LanguageException; - public abstract VariableSet initializebackwardLV(VariableSet loPassed) throws LanguageException; - public abstract VariableSet analyze(VariableSet loPassed) throws LanguageException; + public abstract VariableSet initializeforwardLV(VariableSet activeIn); + public abstract VariableSet initializebackwardLV(VariableSet loPassed); + public abstract VariableSet analyze(VariableSet loPassed); public void updateLiveVariablesOut(VariableSet liveOut){ updateLiveVariables(_liveOut,liveOut); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java b/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java index 4010a65..b01dd2e 100644 --- a/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java +++ b/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java @@ -33,8 +33,7 @@ public class MultiAssignmentStatement extends Statement // rewrites statement to support function inlining (creates deep copy) @Override - public Statement rewriteStatement(String prefix) throws LanguageException{ - + public Statement rewriteStatement(String prefix) { ArrayList<DataIdentifier> newTargetList = new ArrayList<>(); // rewrite targetList (deep copy) http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/OutputStatement.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/OutputStatement.java b/src/main/java/org/apache/sysml/parser/OutputStatement.java index af02f8f..43b1edd 100644 --- a/src/main/java/org/apache/sysml/parser/OutputStatement.java +++ b/src/main/java/org/apache/sysml/parser/OutputStatement.java @@ -70,27 +70,20 @@ public class OutputStatement extends Statement return false; } - public void addExprParam(String name, Expression value, boolean fromMTDFile) - throws LanguageException - { + public void addExprParam(String name, Expression value, boolean fromMTDFile) { if( _paramsExpr.getVarParam(name) != null ) raiseValidateError("attempted to add IOStatement parameter " + name + " more than once", false); - if( !OutputStatement.isValidParamName(name) ) raiseValidateError("attempted to add invalid write statement parameter: " + name, false); - _paramsExpr.addVarParam(name, value); } // rewrites statement to support function inlining (create deep copy) @Override - public Statement rewriteStatement(String prefix) throws LanguageException{ - + public Statement rewriteStatement(String prefix) { OutputStatement newStatement = new OutputStatement(null, Expression.DataOp.WRITE, this); - // rewrite outputStatement variable name (creates deep copy) newStatement._id = (DataIdentifier)this._id.rewriteExpression(prefix); - // rewrite parameter expressions (creates deep copy) DataOp op = _paramsExpr.getOpCode(); HashMap<String,Expression> newExprParams = new HashMap<>(); @@ -102,10 +95,11 @@ public class OutputStatement extends Statement newStatement.setExprParams(newParamerizedExpr); return newStatement; } - + public void setExprParams(DataExpression newParamerizedExpr) { _paramsExpr = newParamerizedExpr; } + public Expression getExprParam(String key){ return _paramsExpr.getVarParam(key); } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java b/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java index d209c36..dee1384 100644 --- a/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java +++ b/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java @@ -19,7 +19,6 @@ package org.apache.sysml.parser; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -175,8 +174,7 @@ public class ParForStatementBlock extends ForStatementBlock @Override public VariableSet validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional) - throws LanguageException, ParseException, IOException - { + { LOG.trace("PARFOR("+_ID+"): validating ParForStatementBlock."); //create parent variable set via cloning @@ -419,10 +417,8 @@ public class ParForStatementBlock extends ForStatementBlock * @param asb list of statement blocks * @param C set of candidates * @param sCount statement count - * @throws LanguageException if LanguageException occurs */ private void rDetermineCandidates(ArrayList<StatementBlock> asb, HashSet<Candidate> C, Integer sCount) - throws LanguageException { for(StatementBlock sb : asb ) // foreach statementblock in parforbody for( Statement s : sb._statements ) // foreach statement in statement block @@ -476,10 +472,8 @@ public class ParForStatementBlock extends ForStatementBlock * @param var variables * @param asb list of statement blocks * @param C list of partition formats - * @throws LanguageException if LanguageException occurs */ private void rDeterminePartitioningCandidates(String var, ArrayList<StatementBlock> asb, List<PartitionFormat> C) - throws LanguageException { for(StatementBlock sb : asb ) // foreach statementblock in parforbody for( Statement s : sb._statements ) // foreach statement in statement block @@ -600,7 +594,6 @@ public class ParForStatementBlock extends ForStatementBlock } private void rConsolidateResultVars(ArrayList<StatementBlock> asb, ArrayList<ResultVar> vars) - throws LanguageException { for(StatementBlock sb : asb ) // foreach statementblock in parforbody { @@ -633,12 +626,10 @@ public class ParForStatementBlock extends ForStatementBlock * @param asb list of statement blocks * @param sCount statement count * @param dep array of boolean potential output dependencies - * @throws LanguageException if LanguageException occurs */ private void rCheckCandidates(Candidate c, DataType cdt, ArrayList<StatementBlock> asb, Integer sCount, boolean[] dep) - throws LanguageException - { + { // check candidate only (output dependency if scalar or constant matrix subscript) if( cdt == DataType.SCALAR || cdt == DataType.OBJECT ) //dat2 checked for other candidate @@ -865,7 +856,7 @@ public class ParForStatementBlock extends ForStatementBlock return ret; } - private void rDetermineBounds( ArrayList<StatementBlock> sbs, boolean flag ) throws LanguageException { + private void rDetermineBounds( ArrayList<StatementBlock> sbs, boolean flag ) { for( StatementBlock sb : sbs ) rDetermineBounds(sb, flag); } @@ -875,10 +866,8 @@ public class ParForStatementBlock extends ForStatementBlock * * @param sb statement block * @param flag indicates that method is already in subtree of THIS. - * @throws LanguageException if LanguageException occurs */ private void rDetermineBounds( StatementBlock sb, boolean flag ) - throws LanguageException { // catch all known for/ parfor bounds // (all unknown bounds are assumed to be +-infinity) @@ -1000,10 +989,8 @@ public class ParForStatementBlock extends ForStatementBlock * @param dat1 data identifier 1 * @param dat2 data identifier 2 * @return true if "anti or data dependency" - * @throws LanguageException if LanguageException occurs */ private boolean runBanerjeeGCDTest(DataIdentifier dat1, DataIdentifier dat2) - throws LanguageException { /* The GCD (greatest common denominator) and the Banerjee test are two commonly used tests * for determining loop-carried dependencies. Both rely on (1) linear index expressions of the @@ -1151,10 +1138,8 @@ public class ParForStatementBlock extends ForStatementBlock * * @param dat1 data identifier * @return true if dependency - * @throws LanguageException if LanguageException occurs */ private boolean runConstantCheck(DataIdentifier dat1) - throws LanguageException { LOG.trace("PARFOR: runConstantCheck."); @@ -1201,10 +1186,8 @@ public class ParForStatementBlock extends ForStatementBlock * @param dat1 data identifier 1 * @param dat2 data identifier 2 * @return true if equal data identifiers - * @throws LanguageException if LanguageException occurs */ private boolean runEqualsCheck(DataIdentifier dat1, DataIdentifier dat2) - throws LanguageException { LOG.trace("PARFOR: runEqualsCheck."); @@ -1272,10 +1255,8 @@ public class ParForStatementBlock extends ForStatementBlock * * @param dat data identifier * @return linear function - * @throws LanguageException if LanguageException occurs */ private LinearFunction getLinearFunction(DataIdentifier dat) - throws LanguageException { /* Notes: * - Currently, this function supports 2dim matrix subscripts with arbitrary linear functions @@ -1463,7 +1444,6 @@ public class ParForStatementBlock extends ForStatementBlock } private LinearFunction getRowLinearFunction(DataIdentifier dat) - throws LanguageException { //NOTE: would require separate function cache, not realized due to inexpensive operations @@ -1501,7 +1481,6 @@ public class ParForStatementBlock extends ForStatementBlock } private LinearFunction getColLinearFunction(DataIdentifier dat) - throws LanguageException { //NOTE: would require separate function cache, not realized due to inexpensive operations @@ -1538,8 +1517,7 @@ public class ParForStatementBlock extends ForStatementBlock return out; } - private LinearFunction getLinearFunction(Expression expr, boolean ignoreMinWithConstant) - throws LanguageException { + private LinearFunction getLinearFunction(Expression expr, boolean ignoreMinWithConstant) { if( expr instanceof IntIdentifier ) return new LinearFunction(((IntIdentifier)expr).getValue(), 0, null); else if( expr instanceof BinaryExpression ) @@ -1611,10 +1589,8 @@ public class ParForStatementBlock extends ForStatementBlock * robustness purposes. * * @param f1 linear function - * @throws LanguageException if LanguageException occurs */ private void verifyFunction(LinearFunction f1) - throws LanguageException { //check for required form of linear functions if( f1 == null || f1._b.length != f1._vars.length ) { @@ -1687,10 +1663,8 @@ public class ParForStatementBlock extends ForStatementBlock * * @param be binary expression * @return linear function - * @throws LanguageException if LanguageException occurs */ private LinearFunction rParseBinaryExpression(BinaryExpression be) - throws LanguageException { LinearFunction ret = null; Expression l = be.getLeft(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java b/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java index dbb2a1e..e80b46f 100644 --- a/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java +++ b/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java @@ -144,7 +144,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } @Override - public Expression rewriteExpression(String prefix) throws LanguageException { + public Expression rewriteExpression(String prefix) { HashMap<String,Expression> newVarParams = new HashMap<>(); for (String key : _varParams.keySet()){ Expression newExpr = _varParams.get(key).rewriteExpression(prefix); @@ -181,8 +181,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier */ @Override public void validateExpression(HashMap<String, DataIdentifier> ids, HashMap<String, ConstIdentifier> constVars, boolean conditional) - throws LanguageException - { + { // validate all input parameters for ( String s : getVarParams().keySet() ) { Expression paramExpr = getVarParam(s); @@ -264,7 +263,6 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier @Override public void validateExpression(MultiAssignmentStatement stmt, HashMap<String, DataIdentifier> ids, HashMap<String, ConstIdentifier> constVars, boolean conditional) - throws LanguageException { // validate all input parameters for ( String s : getVarParams().keySet() ) { @@ -296,7 +294,6 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier // example: A = transformapply(target=X, meta=M, spec=s) private void validateTransformApply(DataIdentifier output, boolean conditional) - throws LanguageException { //validate data / metadata (recode maps) checkDataType("transformapply", TF_FN_PARAM_DATA, DataType.FRAME, conditional); @@ -313,7 +310,6 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } private void validateTransformDecode(DataIdentifier output, boolean conditional) - throws LanguageException { //validate data / metadata (recode maps) checkDataType("transformdecode", TF_FN_PARAM_DATA, DataType.MATRIX, conditional); @@ -330,7 +326,6 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } private void validateTransformColmap(DataIdentifier output, boolean conditional) - throws LanguageException { //validate data / metadata (recode maps) Expression exprTarget = getVarParam(Statement.GAGG_TARGET); @@ -347,7 +342,6 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } private void validateTransformMeta(DataIdentifier output, boolean conditional) - throws LanguageException { //validate specification checkDataValueType("transformmeta", TF_FN_PARAM_SPEC, DataType.SCALAR, ValueType.STRING, conditional); @@ -363,7 +357,6 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } private void validateTransformEncode(DataIdentifier output1, DataIdentifier output2, boolean conditional) - throws LanguageException { //validate data / metadata (recode maps) checkDataType("transformencode", TF_FN_PARAM_DATA, DataType.FRAME, conditional); @@ -381,7 +374,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier output2.setDimensions(-1, -1); } - private void validateTransformSpec(String pname, boolean conditional) throws LanguageException { + private void validateTransformSpec(String pname, boolean conditional) { Expression data = getVarParam(pname); if( data instanceof StringIdentifier ) { try { @@ -395,7 +388,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } } - private void validateReplace(DataIdentifier output, boolean conditional) throws LanguageException { + private void validateReplace(DataIdentifier output, boolean conditional) { //check existence and correctness of arguments Expression target = getVarParam("target"); if( target==null ) { @@ -427,7 +420,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier output.setDimensions(target.getOutput().getDim1(), target.getOutput().getDim2()); } - private void validateOrder(DataIdentifier output, boolean conditional) throws LanguageException { + private void validateOrder(DataIdentifier output, boolean conditional) { //check existence and correctness of arguments Expression target = getVarParam("target"); //[MANDATORY] TARGET if( target==null ) { @@ -478,7 +471,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } - private void validateRemoveEmpty(DataIdentifier output, boolean conditional) throws LanguageException { + private void validateRemoveEmpty(DataIdentifier output, boolean conditional) { //check for invalid parameters Set<String> valid = UtilFunctions.asSet("target", "margin", "select", "empty.return"); @@ -525,7 +518,6 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier } private void validateGroupedAgg(DataIdentifier output, boolean conditional) - throws LanguageException { //check existing target and groups if (getVarParam(Statement.GAGG_TARGET) == null || getVarParam(Statement.GAGG_GROUPS) == null){ @@ -630,7 +622,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier output.setDimensions(outputDim1, outputDim2); } - private void validateDistributionFunctions(DataIdentifier output, boolean conditional) throws LanguageException { + private void validateDistributionFunctions(DataIdentifier output, boolean conditional) { // CDF and INVCDF expects one unnamed parameter, it must be renamed as "quantile" // (i.e., we must compute P(X <= x) where x is called as "quantile" ) @@ -712,9 +704,7 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier output.setDimensions(0, 0); } - private void validateCastAsString(DataIdentifier output, boolean conditional) - throws LanguageException - { + private void validateCastAsString(DataIdentifier output, boolean conditional) { HashMap<String, Expression> varParams = getVarParams(); // replace parameter name for matrix argument @@ -737,21 +727,18 @@ public class ParameterizedBuiltinFunctionExpression extends DataIdentifier output.setDimensions(0, 0); } - private void checkDataType( String fname, String pname, DataType dt, boolean conditional ) - throws LanguageException - { + private void checkDataType( String fname, String pname, DataType dt, boolean conditional ) { Expression data = getVarParam(pname); - if( data==null ) + if( data==null ) raiseValidateError("Named parameter '" + pname + "' missing. Please specify the input.", conditional, LanguageErrorCodes.INVALID_PARAMETERS); else if( data.getOutput().getDataType() != dt ) raiseValidateError("Input to "+fname+"::"+pname+" must be of type '"+dt.toString()+"'. It is of type '"+data.getOutput().getDataType()+"'.", conditional, LanguageErrorCodes.INVALID_PARAMETERS); } private void checkDataValueType( String fname, String pname, DataType dt, ValueType vt, boolean conditional ) - throws LanguageException { Expression data = getVarParam(pname); - if( data==null ) + if( data==null ) raiseValidateError("Named parameter '" + pname + "' missing. Please specify the input.", conditional, LanguageErrorCodes.INVALID_PARAMETERS); else if( data.getOutput().getDataType() != dt || data.getOutput().getValueType() != vt ) raiseValidateError("Input to "+fname+"::"+pname+" must be of type '"+dt.toString()+"', '"+vt.toString()+"'. " http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ParserWrapper.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/ParserWrapper.java b/src/main/java/org/apache/sysml/parser/ParserWrapper.java index 71e405b..0f43971 100644 --- a/src/main/java/org/apache/sysml/parser/ParserWrapper.java +++ b/src/main/java/org/apache/sysml/parser/ParserWrapper.java @@ -45,8 +45,7 @@ public abstract class ParserWrapper { protected boolean atLeastOneWarning = false; protected List<ParseIssue> parseIssues; - public abstract DMLProgram parse(String fileName, String dmlScript, Map<String, String> argVals) - throws ParseException; + public abstract DMLProgram parse(String fileName, String dmlScript, Map<String, String> argVals); /** * Custom wrapper to convert statement into statement blocks. Called by doParse and in DmlSyntacticValidator for for, parfor, while, ... http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/PathStatement.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/PathStatement.java b/src/main/java/org/apache/sysml/parser/PathStatement.java index 6fe61af..9bb2666 100644 --- a/src/main/java/org/apache/sysml/parser/PathStatement.java +++ b/src/main/java/org/apache/sysml/parser/PathStatement.java @@ -35,7 +35,7 @@ public class PathStatement extends Statement } @Override - public Statement rewriteStatement(String prefix) throws LanguageException{ + public Statement rewriteStatement(String prefix) { return this; } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/PrintStatement.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/PrintStatement.java b/src/main/java/org/apache/sysml/parser/PrintStatement.java index 4740586..62ebf4a 100644 --- a/src/main/java/org/apache/sysml/parser/PrintStatement.java +++ b/src/main/java/org/apache/sysml/parser/PrintStatement.java @@ -42,7 +42,7 @@ public class PrintStatement extends Statement protected PRINTTYPE _type; // print, printf, or stop protected List<Expression> expressions; - private static PRINTTYPE getPrintType(String type, List<Expression> expressions) throws LanguageException { + private static PRINTTYPE getPrintType(String type, List<Expression> expressions) { if(type.equalsIgnoreCase("print")) { if ((expressions == null) || (expressions.size() == 1)) { return PRINTTYPE.PRINT; @@ -60,22 +60,19 @@ public class PrintStatement extends Statement throw new LanguageException("Unknown statement type: " + type); } - public PrintStatement(ParserRuleContext ctx, String type, String filename) - throws LanguageException { + public PrintStatement(ParserRuleContext ctx, String type, String filename) { this(getPrintType(type, null), null); setCtxValues(ctx); setFilename(filename); } - public PrintStatement(ParserRuleContext ctx, String type, List<Expression> expressions, String filename) - throws LanguageException { + public PrintStatement(ParserRuleContext ctx, String type, List<Expression> expressions, String filename) { this(getPrintType(type, expressions), expressions); setCtxValues(ctx); setFilename(filename); } - public PrintStatement(PRINTTYPE type, List<Expression> expressions) - throws LanguageException { + public PrintStatement(PRINTTYPE type, List<Expression> expressions) { _type = type; if (expressions == null) { this.expressions = new ArrayList<>(); @@ -85,7 +82,7 @@ public class PrintStatement extends Statement } @Override - public Statement rewriteStatement(String prefix) throws LanguageException{ + public Statement rewriteStatement(String prefix) { List<Expression> newExpressions = new ArrayList<>(); for (Expression oldExpression : expressions) { Expression newExpression = oldExpression.rewriteExpression(prefix); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/RelationalExpression.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/RelationalExpression.java b/src/main/java/org/apache/sysml/parser/RelationalExpression.java index af6424e..ca074cf 100644 --- a/src/main/java/org/apache/sysml/parser/RelationalExpression.java +++ b/src/main/java/org/apache/sysml/parser/RelationalExpression.java @@ -47,7 +47,7 @@ public class RelationalExpression extends Expression } @Override - public Expression rewriteExpression(String prefix) throws LanguageException { + public Expression rewriteExpression(String prefix) { RelationalExpression newExpr = new RelationalExpression(this._opcode, this); newExpr.setLeft(_left.rewriteExpression(prefix)); newExpr.setRight(_right.rewriteExpression(prefix)); @@ -90,16 +90,15 @@ public class RelationalExpression extends Expression */ @Override public void validateExpression(HashMap<String,DataIdentifier> ids, HashMap<String, ConstIdentifier> constVars, boolean conditional) - throws LanguageException - { + { //check for functions calls in expression if (_left instanceof FunctionCallIdentifier){ raiseValidateError("user-defined function calls not supported in relational expressions", - false, LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION); - } + false, LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION); + } if (_right instanceof FunctionCallIdentifier){ raiseValidateError("user-defined function calls not supported in relational expressions", - false, LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION); + false, LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION); } // handle <NUMERIC> == <BOOLEAN> --> convert <BOOLEAN> to numeric value @@ -165,10 +164,8 @@ public class RelationalExpression extends Expression * @param expr1 expression 1 * @param expr2 expression 2 * @param allowsMV ? - * @throws LanguageException */ private void checkMatchingDimensions(Expression expr1, Expression expr2, boolean allowsMV) - throws LanguageException { if (expr1 != null && expr2 != null) { http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/Statement.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/Statement.java b/src/main/java/org/apache/sysml/parser/Statement.java index 0b3aac2..4a54df4 100644 --- a/src/main/java/org/apache/sysml/parser/Statement.java +++ b/src/main/java/org/apache/sysml/parser/Statement.java @@ -67,10 +67,10 @@ public abstract class Statement implements ParseInfo public abstract VariableSet variablesRead(); public abstract VariableSet variablesUpdated(); - public abstract void initializeforwardLV(VariableSet activeIn) throws LanguageException; - public abstract VariableSet initializebackwardLV(VariableSet lo) throws LanguageException; + public abstract void initializeforwardLV(VariableSet activeIn); + public abstract VariableSet initializebackwardLV(VariableSet lo); - public abstract Statement rewriteStatement(String prefix) throws LanguageException; + public abstract Statement rewriteStatement(String prefix); // Used only insider python parser to allow for ignoring newline logic private boolean isEmptyNewLineStatement = false; @@ -176,11 +176,11 @@ public abstract class Statement implements ParseInfo } } - public void raiseValidateError(String msg, boolean conditional) throws LanguageException { + public void raiseValidateError(String msg, boolean conditional) { raiseValidateError(msg, conditional, null); } - public void raiseValidateError(String msg, boolean conditional, String errorCode) throws LanguageException { + public void raiseValidateError(String msg, boolean conditional, String errorCode) { if (conditional) {// warning if conditional String fullMsg = this.printWarningLocation() + msg; LOG.warn(fullMsg); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/StatementBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/StatementBlock.java b/src/main/java/org/apache/sysml/parser/StatementBlock.java index 04e4a34..1f0e81c 100644 --- a/src/main/java/org/apache/sysml/parser/StatementBlock.java +++ b/src/main/java/org/apache/sysml/parser/StatementBlock.java @@ -19,7 +19,6 @@ package org.apache.sysml.parser; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -30,7 +29,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.sysml.api.DMLScript; import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.hops.Hop; -import org.apache.sysml.hops.HopsException; import org.apache.sysml.hops.recompile.Recompiler; import org.apache.sysml.hops.rewrite.RewriteSplitDagDataDependentOperators; import org.apache.sysml.lops.Lop; @@ -167,7 +165,7 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo return ( stmt instanceof PrintStatement && (((PrintStatement)stmt).getType() == PRINTTYPE.STOP || ((PrintStatement)stmt).getType() == PRINTTYPE.ASSERT) ); } - public boolean isMergeableFunctionCallBlock(DMLProgram dmlProg) throws LanguageException{ + public boolean isMergeableFunctionCallBlock(DMLProgram dmlProg) { // if (DMLScript.ENABLE_DEBUG_MODE && !DMLScript.ENABLE_DEBUG_OPTIMIZER) if (DMLScript.ENABLE_DEBUG_MODE) @@ -221,7 +219,7 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo return true; } - public boolean isRewritableFunctionCall(Statement stmt, DMLProgram dmlProg) throws LanguageException{ + public boolean isRewritableFunctionCall(Statement stmt, DMLProgram dmlProg) { // for regular stmt, check if this is a function call stmt block if (stmt instanceof AssignmentStatement || stmt instanceof MultiAssignmentStatement){ @@ -303,7 +301,7 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo return ret; } - public static ArrayList<StatementBlock> mergeFunctionCalls(ArrayList<StatementBlock> body, DMLProgram dmlProg) throws LanguageException + public static ArrayList<StatementBlock> mergeFunctionCalls(ArrayList<StatementBlock> body, DMLProgram dmlProg) { for(int i = 0; i <body.size(); i++){ @@ -573,7 +571,7 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo return ret; } - public ArrayList<Statement> rewriteFunctionCallStatements (DMLProgram dmlProg, ArrayList<Statement> statements) throws LanguageException { + public ArrayList<Statement> rewriteFunctionCallStatements (DMLProgram dmlProg, ArrayList<Statement> statements) { ArrayList<Statement> newStatements = new ArrayList<>(); for (Statement current : statements){ @@ -713,7 +711,6 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo } public VariableSet validate(DMLProgram dmlProg, VariableSet ids, HashMap<String, ConstIdentifier> constVars, boolean conditional) - throws LanguageException, ParseException, IOException { _constVarsIn.putAll(constVars); _statements = rewriteFunctionCallStatements(dmlProg, _statements); @@ -782,7 +779,6 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo private void validateAssignmentStatement(Statement current, DMLProgram dmlProg, VariableSet ids, HashMap<String, ConstIdentifier> currConstVars, boolean conditional) - throws LanguageException, IOException, ParseException { AssignmentStatement as = (AssignmentStatement)current; DataIdentifier target = as.getTarget(); @@ -899,7 +895,6 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo private void validateMultiAssignmentStatement(Statement current, DMLProgram dmlProg, VariableSet ids, HashMap<String, ConstIdentifier> currConstVars, boolean conditional) - throws LanguageException, IOException { MultiAssignmentStatement mas = (MultiAssignmentStatement) current; ArrayList<DataIdentifier> targetList = mas.getTargetList(); @@ -956,7 +951,6 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo } public void setStatementFormatType(OutputStatement s, boolean conditionalValidate) - throws LanguageException, ParseException { //case of specified format parameter if (s.getExprParam(DataExpression.FORMAT_TYPE)!= null ) @@ -988,7 +982,6 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo } public void setStatementFormatType(AssignmentStatement s, boolean conditionalValidate) - throws LanguageException, ParseException { if (!(s.getSource() instanceof DataExpression)) @@ -1034,7 +1027,7 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo * */ @Override - public VariableSet initializeforwardLV(VariableSet activeIn) throws LanguageException { + public VariableSet initializeforwardLV(VariableSet activeIn) { for (Statement s : _statements){ s.initializeforwardLV(activeIn); @@ -1081,15 +1074,11 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo } @Override - public VariableSet initializebackwardLV(VariableSet loPassed) - throws LanguageException - { + public VariableSet initializebackwardLV(VariableSet loPassed) { int numStatements = _statements.size(); VariableSet lo = new VariableSet(loPassed); - for (int i = numStatements-1; i>=0; i--){ + for (int i = numStatements-1; i>=0; i--) lo = _statements.get(i).initializebackwardLV(lo); - } - return new VariableSet(lo); } @@ -1102,8 +1091,7 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo } @Override - public VariableSet analyze(VariableSet loPassed) - throws LanguageException { + public VariableSet analyze(VariableSet loPassed) { VariableSet candidateLO = new VariableSet(); candidateLO.addVariables(loPassed); //candidateLO.addVariables(_gen); @@ -1133,14 +1121,11 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo /////////////////////////////////////////////////////////////// // validate error handling (consistent for all expressions) - public void raiseValidateError( String msg, boolean conditional ) - throws LanguageException - { + public void raiseValidateError( String msg, boolean conditional ) { raiseValidateError(msg, conditional, null); } public void raiseValidateError( String msg, boolean conditional, String errorCode ) - throws LanguageException { if( conditional ) //warning if conditional { @@ -1218,7 +1203,7 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo // materialized hops recompilation / updateinplace flags //// - public boolean updateRecompilationFlag() throws HopsException { + public boolean updateRecompilationFlag() { return (_requiresRecompile = ConfigurationManager.isDynamicRecompilation() && Recompiler.requiresRecompilation(getHops())); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/StringIdentifier.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/StringIdentifier.java b/src/main/java/org/apache/sysml/parser/StringIdentifier.java index aaaade27..f4aaeed 100644 --- a/src/main/java/org/apache/sysml/parser/StringIdentifier.java +++ b/src/main/java/org/apache/sysml/parser/StringIdentifier.java @@ -26,7 +26,7 @@ public class StringIdentifier extends ConstIdentifier private String _val; @Override - public Expression rewriteExpression(String prefix) throws LanguageException { + public Expression rewriteExpression(String prefix) { return this; } @@ -69,9 +69,7 @@ public class StringIdentifier extends ConstIdentifier } @Override - public long getLongValue() - throws LanguageException - { + public long getLongValue() { throw new LanguageException("Unsupported string-to-long conversion."); } } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/WhileStatement.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/WhileStatement.java b/src/main/java/org/apache/sysml/parser/WhileStatement.java index d70b1ab..f10dce4 100644 --- a/src/main/java/org/apache/sysml/parser/WhileStatement.java +++ b/src/main/java/org/apache/sysml/parser/WhileStatement.java @@ -29,7 +29,7 @@ public class WhileStatement extends Statement private ArrayList<StatementBlock> _body; @Override - public Statement rewriteStatement(String prefix) throws LanguageException{ + public Statement rewriteStatement(String prefix) { LOG.error(this.printErrorLocation() + "should not call rewriteStatement for WhileStatement"); throw new LanguageException(this.printErrorLocation() + "should not call rewriteStatement for WhileStatement"); } @@ -82,14 +82,12 @@ public class WhileStatement extends Statement } @Override - public void initializeforwardLV(VariableSet activeIn) throws LanguageException{ - LOG.error(this.printErrorLocation() + "should never call initializeforwardLV for WhileStatement"); + public void initializeforwardLV(VariableSet activeIn) { throw new LanguageException(this.printErrorLocation() + "should never call initializeforwardLV for WhileStatement"); } @Override - public VariableSet initializebackwardLV(VariableSet lo) throws LanguageException{ - LOG.error(this.printErrorLocation() + "should never call initializeforwardLV for WhileStatement"); + public VariableSet initializebackwardLV(VariableSet lo) { throw new LanguageException(this.printErrorLocation() + "should never call initializeforwardLV for WhileStatement"); } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java b/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java index d34353a..58f1c9f 100644 --- a/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java +++ b/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java @@ -19,13 +19,11 @@ package org.apache.sysml.parser; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.hops.Hop; -import org.apache.sysml.hops.HopsException; import org.apache.sysml.hops.recompile.Recompiler; import org.apache.sysml.lops.Lop; @@ -39,8 +37,7 @@ public class WhileStatementBlock extends StatementBlock @Override public VariableSet validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional) - throws LanguageException, ParseException, IOException - { + { if (_statements.size() > 1){ raiseValidateError("WhileStatementBlock should have only 1 statement (while statement)", conditional); } @@ -165,7 +162,7 @@ public class WhileStatementBlock extends StatementBlock } @Override - public VariableSet initializeforwardLV(VariableSet activeInPassed) throws LanguageException { + public VariableSet initializeforwardLV(VariableSet activeInPassed) { WhileStatement wstmt = (WhileStatement)_statements.get(0); if (_statements.size() > 1){ @@ -224,7 +221,7 @@ public class WhileStatementBlock extends StatementBlock } @Override - public VariableSet initializebackwardLV(VariableSet loPassed) throws LanguageException{ + public VariableSet initializebackwardLV(VariableSet loPassed) { WhileStatement wstmt = (WhileStatement)_statements.get(0); @@ -260,7 +257,7 @@ public class WhileStatementBlock extends StatementBlock } @Override - public VariableSet analyze(VariableSet loPassed) throws LanguageException{ + public VariableSet analyze(VariableSet loPassed) { VariableSet predVars = new VariableSet(); predVars.addVariables(((WhileStatement)_statements.get(0)).getConditionalPredicate().variablesRead()); predVars.addVariables(((WhileStatement)_statements.get(0)).getConditionalPredicate().variablesUpdated()); @@ -313,7 +310,7 @@ public class WhileStatementBlock extends StatementBlock // materialized hops recompilation flags //// - public boolean updatePredicateRecompilationFlag() throws HopsException { + public boolean updatePredicateRecompilationFlag() { return (_requiresPredicateRecompile = ConfigurationManager.isDynamicRecompilation() && Recompiler.requiresRecompilation(getPredicateHops())); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java b/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java index 8714968..b44d448 100644 --- a/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java +++ b/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java @@ -81,10 +81,9 @@ public class DMLParserWrapper extends ParserWrapper * @param dmlScript script file contents * @param argVals script arguments * @return dml program, or null if error - * @throws ParseException if ParseException occurs */ @Override - public DMLProgram parse(String fileName, String dmlScript, Map<String,String> argVals) throws ParseException { + public DMLProgram parse(String fileName, String dmlScript, Map<String,String> argVals) { DMLProgram prog = doParse(fileName, dmlScript, null, argVals); return prog; @@ -97,9 +96,8 @@ public class DMLParserWrapper extends ParserWrapper * @param sourceNamespace namespace from source statement * @param argVals script arguments * @return dml program, or null if at least one error - * @throws ParseException if ParseException occurs */ - public DMLProgram doParse(String fileName, String dmlScript, String sourceNamespace, Map<String,String> argVals) throws ParseException { + public DMLProgram doParse(String fileName, String dmlScript, String sourceNamespace, Map<String,String> argVals) { DMLProgram dmlPgm = null; ANTLRInputStream in; http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java b/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java index 8a81b46..7d96577 100644 --- a/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java +++ b/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java @@ -64,10 +64,9 @@ public class PyDMLParserWrapper extends ParserWrapper * @param dmlScript script file contents * @param argVals script arguments * @return dml program, or null if error - * @throws ParseException if ParseException occurs */ @Override - public DMLProgram parse(String fileName, String dmlScript, Map<String,String> argVals) throws ParseException { + public DMLProgram parse(String fileName, String dmlScript, Map<String,String> argVals) { DMLProgram prog = doParse(fileName, dmlScript, null, argVals); return prog; @@ -80,9 +79,8 @@ public class PyDMLParserWrapper extends ParserWrapper * @param sourceNamespace namespace from source statement * @param argVals script arguments * @return dml program, or null if at least one error - * @throws ParseException if ParseException occurs */ - public DMLProgram doParse(String fileName, String dmlScript, String sourceNamespace, Map<String,String> argVals) throws ParseException { + public DMLProgram doParse(String fileName, String dmlScript, String sourceNamespace, Map<String,String> argVals) { DMLProgram dmlPgm = null; ANTLRInputStream in; http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java b/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java index 7348266..fdc4732 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java @@ -54,7 +54,6 @@ import org.apache.sysml.parser.ParForStatementBlock.ResultVar; import org.apache.sysml.parser.StatementBlock; import org.apache.sysml.parser.VariableSet; import org.apache.sysml.runtime.DMLRuntimeException; -import org.apache.sysml.runtime.controlprogram.caching.CacheException; import org.apache.sysml.runtime.controlprogram.caching.MatrixObject; import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; import org.apache.sysml.runtime.controlprogram.context.SparkExecutionContext; @@ -1301,7 +1300,6 @@ public class ParForProgramBlock extends ForProgramBlock } private void exportMatricesToHDFS(ExecutionContext ec, String... blacklistNames) - throws CacheException { ParForStatementBlock sb = (ParForStatementBlock)getStatementBlock(); Set<String> blacklist = UtilFunctions.asSet(blacklistNames); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java deleted file mode 100644 index 64a3925..0000000 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.sysml.runtime.controlprogram.caching; - -import org.apache.sysml.runtime.DMLRuntimeException; - -public class CacheException extends DMLRuntimeException -{ - - - private static final long serialVersionUID = 1L; - - public CacheException () - { - super ("Cache Exception"); - } - - public CacheException (String message) - { - super (message); - } - - public CacheException (Exception cause) - { - super (cause); - } - - public CacheException (String message, Exception cause) - { - super (message, cause); - } - -} http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java index cdc0f03..b3791e1 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java @@ -308,7 +308,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data } public abstract void refreshMetaData() - throws CacheException; + throws DMLRuntimeException; public RDDObject getRDDHandle() { return _rddHandle; @@ -369,17 +369,16 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * Out-Status: READ(+1). * * @return cacheable data - * @throws CacheException if CacheException occurs + * @throws DMLRuntimeException if CacheException occurs */ public synchronized T acquireRead() - throws CacheException { if( LOG.isTraceEnabled() ) LOG.trace("Acquire read "+hashCode()); long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0; if ( !isAvailableToRead() ) - throw new CacheException ("MatrixObject not available to read."); + throw new DMLRuntimeException("MatrixObject not available to read."); //get object from cache if( _data == null ) @@ -391,7 +390,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data GPUObject gObj = kv.getValue(); if (gObj != null && copiedFromGPU && gObj.isDirty()) { LOG.error("Inconsistent internal state - A copy of this CacheableData was dirty on more than 1 GPU"); - throw new CacheException("Internal Error : Inconsistent internal state, A copy of this CacheableData was dirty on more than 1 GPU"); + throw new DMLRuntimeException("Internal Error : Inconsistent internal state, A copy of this CacheableData was dirty on more than 1 GPU"); } else if (gObj != null){ copiedFromGPU = gObj.acquireHostRead(null); if( _data == null ) @@ -412,7 +411,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data { //check filename if( _hdfsFileName == null ) - throw new CacheException("Cannot read matrix for empty filename."); + throw new DMLRuntimeException("Cannot read matrix for empty filename."); //read cacheable data from hdfs _data = readBlobFromHDFS( _hdfsFileName ); @@ -434,7 +433,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data setDirty(false); } catch (IOException e) { - throw new CacheException("Reading of " + _hdfsFileName + " ("+hashCode()+") failed.", e); + throw new DMLRuntimeException("Reading of " + _hdfsFileName + " ("+hashCode()+") failed.", e); } _isAcquireFromEmpty = true; @@ -446,7 +445,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data } //cache status maintenance - acquire( false, _data==null ); + acquire( false, _data==null ); updateStatusPinned(true); if( DMLScript.STATISTICS ){ @@ -466,17 +465,16 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * Out-Status: MODIFY. * * @return cacheable data - * @throws CacheException if CacheException occurs + * @throws DMLRuntimeException if CacheException occurs */ public synchronized T acquireModify() - throws CacheException { if( LOG.isTraceEnabled() ) LOG.trace("Acquire modify "+hashCode()); long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0; if ( !isAvailableToModify() ) - throw new CacheException("MatrixObject not available to modify."); + throw new DMLRuntimeException("MatrixObject not available to modify."); //get object from cache if( _data == null ) @@ -487,16 +485,14 @@ public abstract class CacheableData<T extends CacheBlock> extends Data { //check filename if( _hdfsFileName == null ) - throw new CacheException("Cannot read matrix for empty filename."); + throw new DMLRuntimeException("Cannot read matrix for empty filename."); //load data - try - { + try { _data = readBlobFromHDFS( _hdfsFileName ); } - catch (IOException e) - { - throw new CacheException("Reading of " + _hdfsFileName + " ("+hashCode()+") failed.", e); + catch (IOException e) { + throw new DMLRuntimeException("Reading of " + _hdfsFileName + " ("+hashCode()+") failed.", e); } } @@ -514,7 +510,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data return _data; } - public T acquireModify(T newData) throws DMLRuntimeException { + public T acquireModify(T newData) { return acquireModify(newData, null); } @@ -532,14 +528,13 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * @throws DMLRuntimeException if error occurs */ public synchronized T acquireModify(T newData, String opcode) - throws DMLRuntimeException { if( LOG.isTraceEnabled() ) LOG.trace("Acquire modify newdata "+hashCode()); long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0; if (! isAvailableToModify ()) - throw new CacheException ("CacheableData not available to modify."); + throw new DMLRuntimeException("CacheableData not available to modify."); //clear old data clearData(); @@ -552,7 +547,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data //set references to new data if (newData == null) - throw new CacheException("acquireModify with empty cache block."); + throw new DMLRuntimeException("acquireModify with empty cache block."); _data = newData; updateStatusPinned(true); @@ -573,7 +568,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data return _data; } - public void release() throws CacheException { + public void release() throws DMLRuntimeException { release(null); } @@ -587,10 +582,9 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * In-Status: READ, MODIFY; * Out-Status: READ(-1), EVICTABLE, EMPTY. * - * @throws CacheException if CacheException occurs + * @throws DMLRuntimeException if CacheException occurs */ public synchronized void release(String opcode) - throws CacheException { if( LOG.isTraceEnabled() ) LOG.trace("Release "+hashCode()); @@ -633,14 +627,14 @@ public abstract class CacheableData<T extends CacheBlock> extends Data } } catch (Exception e) { - throw new CacheException("Eviction to local path " + filePath + " ("+hashCode()+") failed.", e); + throw new DMLRuntimeException("Eviction to local path " + filePath + " ("+hashCode()+") failed.", e); } _requiresLocalWrite = false; } //create cache createCache(); - _data = null; + _data = null; } else if( LOG.isTraceEnabled() ){ LOG.trace("Var "+hashCode()+" not subject to caching, state="+getStatusAsString()); @@ -663,7 +657,6 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * @throws DMLRuntimeException if error occurs */ public synchronized void clearData() - throws DMLRuntimeException { if( LOG.isTraceEnabled() ) LOG.trace("Clear data "+hashCode()); @@ -672,7 +665,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data if( !isCleanupEnabled() ) return; // do nothing if( !isAvailableToModify() ) - throw new CacheException ("CacheableData (" + getDebugName() + ") not available to " + throw new DMLRuntimeException("CacheableData (" + getDebugName() + ") not available to " + "modify. Status = " + getStatusAsString() + "."); // clear existing WB / FS representation (but prevent unnecessary probes) @@ -699,7 +692,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data setEmpty(); } - public synchronized void exportData() throws CacheException { + public synchronized void exportData() { exportData( -1 ); } @@ -710,30 +703,22 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * Out-Status: EMPTY, EVICTABLE, EVICTED, READ. * * @param replication ? - * @throws CacheException if CacheException occurs + * @throws DMLRuntimeException if CacheException occurs */ - public synchronized void exportData( int replication ) - throws CacheException - { + public synchronized void exportData( int replication ) { exportData(_hdfsFileName, null, replication, null); _hdfsFileExists = true; } - public synchronized void exportData(String fName, String outputFormat) - throws CacheException - { + public synchronized void exportData(String fName, String outputFormat) { exportData(fName, outputFormat, -1, null); } - public synchronized void exportData(String fName, String outputFormat, FileFormatProperties formatProperties) - throws CacheException - { + public synchronized void exportData(String fName, String outputFormat, FileFormatProperties formatProperties) { exportData(fName, outputFormat, -1, formatProperties); } - public synchronized void exportData (String fName, String outputFormat, int replication, FileFormatProperties formatProperties) - throws CacheException - { + public synchronized void exportData (String fName, String outputFormat, int replication, FileFormatProperties formatProperties) { exportData(fName, outputFormat, replication, formatProperties, null); } @@ -753,36 +738,33 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * @param replication ? * @param formatProperties file format properties * @param opcode instruction opcode if available - * @throws CacheException if CacheException occurs + * @throws DMLRuntimeException if CacheException occurs */ - public synchronized void exportData (String fName, String outputFormat, int replication, FileFormatProperties formatProperties, String opcode) - throws CacheException - { + public synchronized void exportData (String fName, String outputFormat, int replication, FileFormatProperties formatProperties, String opcode) { if( LOG.isTraceEnabled() ) LOG.trace("Export data "+hashCode()+" "+fName); long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0; //prevent concurrent modifications if ( !isAvailableToRead() ) - throw new CacheException ("MatrixObject not available to read."); + throw new DMLRuntimeException("MatrixObject not available to read."); LOG.trace("Exporting " + this.getDebugName() + " to " + fName + " in format " + outputFormat); //TODO remove - boolean copiedFromGPU = false; - for (Map.Entry<GPUContext, GPUObject> kv : _gpuObjects.entrySet()) { - GPUObject gObj = kv.getValue(); - if (gObj != null && copiedFromGPU && gObj.isDirty()) { - LOG.error("Inconsistent internal state - A copy of this CacheableData was dirty on more than 1 GPU"); - throw new CacheException("Internal Error : Inconsistent internal state, A copy of this CacheableData was dirty on more than 1 GPU"); - } else if (gObj != null){ - copiedFromGPU = gObj.acquireHostRead(null); - if( _data == null ) - getCache(); - } - } + boolean copiedFromGPU = false; + for (Map.Entry<GPUContext, GPUObject> kv : _gpuObjects.entrySet()) { + GPUObject gObj = kv.getValue(); + if (gObj != null && copiedFromGPU && gObj.isDirty()) { + throw new DMLRuntimeException("Internal Error : Inconsistent internal state, A copy of this CacheableData was dirty on more than 1 GPU"); + } else if (gObj != null){ + copiedFromGPU = gObj.acquireHostRead(null); + if( _data == null ) + getCache(); + } + } - //check for persistent or transient writes + //check for persistent or transient writes boolean pWrite = !fName.equals(_hdfsFileName); if( !pWrite ) setHDFSFileExists(true); @@ -792,14 +774,14 @@ public abstract class CacheableData<T extends CacheBlock> extends Data new Path(_hdfsFileName), new Path(fName)); //actual export (note: no direct transfer of local copy in order to ensure blocking (and hence, parallelism)) - if( isDirty() || !eqScheme || - (pWrite && !isEqualOutputFormat(outputFormat)) ) - { + if( isDirty() || !eqScheme || + (pWrite && !isEqualOutputFormat(outputFormat)) ) + { // CASE 1: dirty in-mem matrix or pWrite w/ different format (write matrix to fname; load into memory if evicted) - // a) get the matrix + // a) get the matrix if( isEmpty(true) ) { - //read data from HDFS if required (never read before), this applies only to pWrite w/ different output formats + //read data from HDFS if required (never read before), this applies only to pWrite w/ different output formats //note: for large rdd outputs, we compile dedicated writespinstructions (no need to handle this here) try { @@ -811,7 +793,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data } catch (IOException e) { - throw new CacheException("Reading of " + _hdfsFileName + " ("+hashCode()+") failed.", e); + throw new DMLRuntimeException("Reading of " + _hdfsFileName + " ("+hashCode()+") failed.", e); } } //get object from cache @@ -820,19 +802,16 @@ public abstract class CacheableData<T extends CacheBlock> extends Data acquire( false, _data==null ); //incl. read matrix if evicted // b) write the matrix - try - { + try { writeMetaData( fName, outputFormat, formatProperties ); writeBlobToHDFS( fName, outputFormat, replication, formatProperties ); if ( !pWrite ) setDirty(false); } - catch (Exception e) - { - throw new CacheException ("Export to " + fName + " failed.", e); + catch (Exception e) { + throw new DMLRuntimeException("Export to " + fName + " failed.", e); } - finally - { + finally { release(opcode); } } @@ -850,7 +829,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data writeMetaData( fName, outputFormat, formatProperties ); } catch (Exception e) { - throw new CacheException ("Export to " + fName + " failed.", e); + throw new DMLRuntimeException("Export to " + fName + " failed.", e); } } else if( getRDDHandle()!=null && getRDDHandle().isPending() @@ -868,7 +847,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data getRDDHandle().setPending(false); } catch (Exception e) { - throw new CacheException ("Export to " + fName + " failed.", e); + throw new DMLRuntimeException("Export to " + fName + " failed.", e); } } else @@ -902,11 +881,9 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * Low-level cache I/O method that physically restores the data blob to * main memory. Must be defined by a subclass, never called by users. * - * @throws CacheException if CacheException occurs + * @throws DMLRuntimeException if CacheException occurs */ - protected void restoreBlobIntoMemory() - throws CacheException - { + protected void restoreBlobIntoMemory() { String cacheFilePathAndName = getCacheFilePathAndName(); long begin = LOG.isTraceEnabled() ? System.currentTimeMillis() : 0; @@ -915,22 +892,22 @@ public abstract class CacheableData<T extends CacheBlock> extends Data (_hdfsFileName == null ? "null" : _hdfsFileName) + ", Restore from path: " + cacheFilePathAndName); if (_data != null) - throw new CacheException (cacheFilePathAndName + " : Cannot restore on top of existing in-memory data."); + throw new DMLRuntimeException(cacheFilePathAndName + " : Cannot restore on top of existing in-memory data."); try { _data = readBlobFromCache(cacheFilePathAndName); } catch (IOException e) { - throw new CacheException (cacheFilePathAndName + " : Restore failed.", e); + throw new DMLRuntimeException(cacheFilePathAndName + " : Restore failed.", e); } //check for success - if (_data == null) - throw new CacheException (cacheFilePathAndName + " : Restore failed."); - - if( LOG.isTraceEnabled() ) - LOG.trace("Restoring matrix - COMPLETED ... " + (System.currentTimeMillis()-begin) + " msec."); - } + if (_data == null) + throw new DMLRuntimeException (cacheFilePathAndName + " : Restore failed."); + + if( LOG.isTraceEnabled() ) + LOG.trace("Restoring matrix - COMPLETED ... " + (System.currentTimeMillis()-begin) + " msec."); + } protected abstract T readBlobFromCache(String fname) throws IOException; @@ -989,22 +966,22 @@ public abstract class CacheableData<T extends CacheBlock> extends Data throws IOException; protected abstract void writeBlobToHDFS(String fname, String ofmt, int rep, FileFormatProperties fprop) - throws IOException, DMLRuntimeException; + throws IOException; protected abstract void writeBlobFromRDDtoHDFS(RDDObject rdd, String fname, String ofmt) - throws IOException, DMLRuntimeException; + throws IOException; protected void writeMetaData (String filePathAndName, String outputFormat, FileFormatProperties formatProperties) - throws DMLRuntimeException, IOException + throws IOException { MetaDataFormat iimd = (MetaDataFormat) _metaData; if (iimd == null) throw new DMLRuntimeException("Unexpected error while writing mtd file (" + filePathAndName + ") -- metadata is null."); - // Write the matrix to HDFS in requested format + // Write the matrix to HDFS in requested format OutputInfo oinfo = (outputFormat != null ? OutputInfo.stringToOutputInfo (outputFormat) - : InputInfo.getMatchingOutputInfo (iimd.getInputInfo ())); + : InputInfo.getMatchingOutputInfo (iimd.getInputInfo ())); if ( oinfo != OutputInfo.MatrixMarketOutputInfo ) { // Get the dimension information from the metadata stored within MatrixObject @@ -1020,7 +997,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data //write the actual meta data file MapReduceTool.writeMetaDataFile (filePathAndName + ".mtd", valueType, - getSchema(), dataType, mc, oinfo, formatProperties); + getSchema(), dataType, mc, oinfo, formatProperties); } } @@ -1079,11 +1056,8 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * @param isModify : <code>true</code> for the exclusive "modify" lock, * <code>false</code> for a shared "read" lock. * @param restore true if restore - * @throws CacheException if CacheException occurs */ - protected void acquire (boolean isModify, boolean restore) - throws CacheException - { + protected void acquire (boolean isModify, boolean restore) { switch ( _cacheStatus ) { case CACHED: @@ -1098,12 +1072,12 @@ public abstract class CacheableData<T extends CacheBlock> extends Data break; case READ: if (isModify) - throw new CacheException ("READ-MODIFY not allowed."); + throw new DMLRuntimeException("READ-MODIFY not allowed."); else addOneRead(); break; case MODIFY: - throw new CacheException ("MODIFY-MODIFY not allowed."); + throw new DMLRuntimeException("MODIFY-MODIFY not allowed."); } if( LOG.isTraceEnabled() ) @@ -1122,17 +1096,15 @@ public abstract class CacheableData<T extends CacheBlock> extends Data * the lock count. * * @param cacheNoWrite ? - * @throws CacheException if CacheException occurs */ protected void release(boolean cacheNoWrite) - throws CacheException { switch ( _cacheStatus ) { case EMPTY: case CACHED: - case CACHED_NOWRITE: - throw new CacheException("Redundant release."); + case CACHED_NOWRITE: + throw new DMLRuntimeException("Redundant release."); case READ: removeOneRead( isBlobPresent(), cacheNoWrite ); break; @@ -1141,7 +1113,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data setCached(); else setEmpty(); - break; + break; } if( LOG.isTraceEnabled() ) @@ -1160,7 +1132,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data public String getStatusAsString() { return _cacheStatus.toString(); } - + public boolean isCached(boolean inclCachedNoWrite) { if( inclCachedNoWrite ) return (_cacheStatus == CacheStatus.CACHED || _cacheStatus == CacheStatus.CACHED_NOWRITE); @@ -1371,9 +1343,7 @@ public abstract class CacheableData<T extends CacheBlock> extends Data _activeFlag = true; } - public synchronized boolean moveData(String fName, String outputFormat) - throws CacheException - { + public synchronized boolean moveData(String fName, String outputFormat) { boolean ret = false; try @@ -1396,11 +1366,10 @@ public abstract class CacheableData<T extends CacheBlock> extends Data MapReduceTool.renameFileOnHDFS( _hdfsFileName, fName ); writeMetaData( fName, outputFormat, null ); ret = true; - } + } } - catch (Exception e) - { - throw new CacheException ("Move to " + fName + " failed.", e); + catch (Exception e) { + throw new DMLRuntimeException("Move to " + fName + " failed.", e); } return ret; http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java index 28510cd..a37ac69 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java @@ -133,10 +133,10 @@ public class FrameObject extends CacheableData<FrameBlock> @Override public void refreshMetaData() - throws CacheException + throws DMLRuntimeException { if ( _data == null || _metaData ==null ) //refresh only for existing data - throw new CacheException("Cannot refresh meta data because there is no data or meta data. "); + throw new DMLRuntimeException("Cannot refresh meta data because there is no data or meta data. "); //update matrix characteristics MatrixCharacteristics mc = _metaData.getMatrixCharacteristics(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java index 8bf8efd..6aefbb3 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java @@ -140,15 +140,11 @@ public class MatrixObject extends CacheableData<MatrixBlock> /** * Make the matrix metadata consistent with the in-memory matrix data - * - * @throws CacheException if CacheException occurs */ @Override - public void refreshMetaData() - throws CacheException - { + public void refreshMetaData() { if ( _data == null || _metaData ==null ) //refresh only for existing data - throw new CacheException("Cannot refresh meta data because there is no data or meta data. "); + throw new DMLRuntimeException("Cannot refresh meta data because there is no data or meta data. "); //we need to throw an exception, otherwise input/output format cannot be inferred MatrixCharacteristics mc = _metaData.getMatrixCharacteristics(); @@ -233,17 +229,17 @@ public class MatrixObject extends CacheableData<MatrixBlock> * * @param pred index range * @return matrix block - * @throws CacheException if CacheException occurs + * @throws DMLRuntimeException if CacheException occurs */ public synchronized MatrixBlock readMatrixPartition( IndexRange pred ) - throws CacheException + throws DMLRuntimeException { if( LOG.isTraceEnabled() ) LOG.trace("Acquire partition "+hashCode()+" "+pred); long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0; if ( !_partitioned ) - throw new CacheException ("MatrixObject not available to indexed read."); + throw new DMLRuntimeException("MatrixObject not available to indexed read."); //return static partition of set from outside of the program if( _partitionInMemory != null ) @@ -302,7 +298,7 @@ public class MatrixObject extends CacheableData<MatrixBlock> cols = _partitionSize; break; default: - throw new CacheException("Unsupported partition format: "+_partitionFormat); + throw new DMLRuntimeException("Unsupported partition format: "+_partitionFormat); } @@ -338,9 +334,8 @@ public class MatrixObject extends CacheableData<MatrixBlock> //NOTE: currently no special treatment of non-existing partitions necessary // because empty blocks are written anyway } - catch(Exception ex) - { - throw new CacheException(ex); + catch(Exception ex) { + throw new DMLRuntimeException(ex); } if( DMLScript.STATISTICS ){ @@ -352,10 +347,10 @@ public class MatrixObject extends CacheableData<MatrixBlock> } public String getPartitionFileName( IndexRange pred, int brlen, int bclen ) - throws CacheException + throws DMLRuntimeException { if ( !_partitioned ) - throw new CacheException ("MatrixObject not available to indexed read."); + throw new DMLRuntimeException("MatrixObject not available to indexed read."); StringBuilder sb = new StringBuilder(); sb.append(_hdfsFileName); @@ -387,7 +382,7 @@ public class MatrixObject extends CacheableData<MatrixBlock> sb.append((pred.colStart-1)/_partitionSize+1); break; default: - throw new CacheException ("MatrixObject not available to indexed read."); + throw new DMLRuntimeException("MatrixObject not available to indexed read."); } return sb.toString(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java index 0768328..b2bd267 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java @@ -42,7 +42,6 @@ import org.apache.hadoop.mapred.Reporter; import org.apache.hadoop.mapred.TextInputFormat; import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.runtime.DMLRuntimeException; -import org.apache.sysml.runtime.controlprogram.caching.CacheException; import org.apache.sysml.runtime.controlprogram.caching.MatrixObject; import org.apache.sysml.runtime.controlprogram.parfor.util.Cell; import org.apache.sysml.runtime.controlprogram.parfor.util.IDSequence; @@ -976,7 +975,7 @@ public class ResultMergeLocalFile extends ResultMerge } private static void copyAllFiles( String fnameNew, ArrayList<MatrixObject> inMO ) - throws CacheException, IOException + throws DMLRuntimeException, IOException { JobConf job = new JobConf(ConfigurationManager.getCachedJobConf()); Path path = new Path( fnameNew ); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java index 28368c7..fc42996 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java @@ -50,7 +50,6 @@ public class OptTreePlanChecker { public static void checkProgramCorrectness( ProgramBlock pb, StatementBlock sb, Set<String> fnStack ) - throws HopsException, DMLRuntimeException { Program prog = pb.getProgram(); DMLProgram dprog = sb.getDMLProg(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java index 3bb0c93..71295b4 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java @@ -19,7 +19,6 @@ package org.apache.sysml.runtime.controlprogram.parfor.opt; -import java.io.IOException; import java.util.ArrayList; import org.apache.sysml.conf.ConfigurationManager; @@ -33,7 +32,6 @@ import org.apache.sysml.hops.codegen.SpoofCompiler.IntegrationType; import org.apache.sysml.hops.recompile.Recompiler; import org.apache.sysml.lops.Lop; import org.apache.sysml.lops.LopProperties; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.parser.DMLProgram; import org.apache.sysml.parser.DMLTranslator; import org.apache.sysml.parser.ForStatement; @@ -60,7 +58,6 @@ import org.apache.sysml.runtime.instructions.cp.ScalarObject; public class ProgramRecompiler { public static ArrayList<ProgramBlock> generatePartitialRuntimeProgram(Program rtprog, ArrayList<StatementBlock> sbs) - throws LopsException, DMLRuntimeException, IOException, HopsException { ArrayList<ProgramBlock> ret = new ArrayList<>(); DMLConfig config = ConfigurationManager.getDMLConfig(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java index ffad8ff..ba5fad0 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java @@ -19,7 +19,6 @@ package org.apache.sysml.runtime.instructions.cp; -import org.apache.sysml.hops.HopsException; import org.apache.sysml.hops.LiteralOp; import org.apache.sysml.parser.Expression.ValueType; import org.apache.sysml.runtime.util.UtilFunctions; @@ -66,7 +65,7 @@ public abstract class ScalarObjectFactory } } - public static ScalarObject createScalarObject(ValueType vt, LiteralOp lit) throws HopsException { + public static ScalarObject createScalarObject(ValueType vt, LiteralOp lit) { switch( vt ) { case DOUBLE: return new DoubleObject(lit.getDoubleValue()); case INT: return new IntObject(lit.getLongValue()); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java index 14eadeb..f656216 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java @@ -43,7 +43,6 @@ import org.apache.hadoop.mapred.Reporter; import org.apache.hadoop.mapred.TextInputFormat; import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.runtime.DMLRuntimeException; -import org.apache.sysml.runtime.controlprogram.caching.CacheException; import org.apache.sysml.runtime.controlprogram.caching.MatrixObject; import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; import org.apache.sysml.runtime.controlprogram.parfor.util.Cell; @@ -224,13 +223,8 @@ public class ParameterizedBuiltinCPFileInstruction extends ParameterizedBuiltinC if( rows==0 || cols ==0 ){ rows = Math.max(rows, 1); cols = Math.max(cols, 1); - try { - moNew.acquireModify(new MatrixBlock((int)rows, (int) cols, true)); - moNew.release(); - } - catch (CacheException e) { - throw new DMLRuntimeException(e); - } + moNew.acquireModify(new MatrixBlock((int)rows, (int) cols, true)); + moNew.release(); } //create deep copy of metadata obj
