From f19981a9c98ec73766d3862293fe03c9692254b2 Mon Sep 17 00:00:00 2001
From: Rob Cameron <cameron@cs.sfu.ca>
Date: Mon, 5 Jul 2021 11:34:27 -0700
Subject: [PATCH] Attribute fixes to resolve stream-length mismatches

---
 lib/kernel/pipeline/compiler/config.h  | 2 +-
 lib/kernel/scan/scanmatchgen.cpp       | 4 ++--
 lib/kernel/streamutils/deletion.cpp    | 2 +-
 lib/kernel/streamutils/pdep_kernel.cpp | 4 ++--
 lib/kernel/util/linebreak_kernel.cpp   | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/lib/kernel/pipeline/compiler/config.h b/lib/kernel/pipeline/compiler/config.h
index 9cd2f8f2b..b138d5960 100644
--- a/lib/kernel/pipeline/compiler/config.h
+++ b/lib/kernel/pipeline/compiler/config.h
@@ -1,7 +1,7 @@
 #ifndef PIPELINE_KERNEL_COMPILER_CONFIG_H
 #define PIPELINE_KERNEL_COMPILER_CONFIG_H
 
-#define PRINT_DEBUG_MESSAGES
+//#define PRINT_DEBUG_MESSAGES
 
 // #define PRINT_DEBUG_MESSAGES_FOR_KERNEL_NUM 31,32,33,34,35,36
 
diff --git a/lib/kernel/scan/scanmatchgen.cpp b/lib/kernel/scan/scanmatchgen.cpp
index 7f7ef62c0..6bbf5277d 100755
--- a/lib/kernel/scan/scanmatchgen.cpp
+++ b/lib/kernel/scan/scanmatchgen.cpp
@@ -674,8 +674,8 @@ ScanBatchKernel::ScanBatchKernel(BuilderRef b, StreamSet * const Matches, Stream
     : MultiBlockKernel(b, "scanBatch" + std::to_string(strideBlocks),
 // inputs
 {Binding{"matchResult", Matches}
-,Binding{"lineBreak", LineBreakStream}
-,Binding{"InputStream", ByteStream, FixedRate(), { Deferred() }}},
+,Binding{"lineBreak", LineBreakStream, FixedRate(), ZeroExtended()}
+,Binding{"InputStream", ByteStream, FixedRate(), { ZeroExtended(), Deferred() }}},
 // outputs
 {},
 // input scalars
diff --git a/lib/kernel/streamutils/deletion.cpp b/lib/kernel/streamutils/deletion.cpp
index b89fb6e20..3eee69e6d 100755
--- a/lib/kernel/streamutils/deletion.cpp
+++ b/lib/kernel/streamutils/deletion.cpp
@@ -216,7 +216,7 @@ FieldCompressKernel::FieldCompressKernel(BuilderRef b,
     mMaskOp.operation = maskOp.operation;
     mMaskOp.bindings.push_back(std::make_pair("extractionMask", maskOp.bindings[0].second));
     // assert (streamutil::resultStreamCount(maskOp) == 1);
-    mInputStreamSets.push_back({"extractionMask", maskOp.bindings[0].first});
+    mInputStreamSets.push_back({"extractionMask", maskOp.bindings[0].first, FixedRate(), Principal()});
     // assert (streamutil::resultStreamCount(inputOps) == outputStreamSet->getNumElements());
     std::unordered_map<StreamSet *, std::string> inputBindings;
     std::tie(mInputOps, inputBindings) = streamutils::mapOperationsToStreamNames(inputOps);
diff --git a/lib/kernel/streamutils/pdep_kernel.cpp b/lib/kernel/streamutils/pdep_kernel.cpp
index da82fa506..2f6ebf8d8 100755
--- a/lib/kernel/streamutils/pdep_kernel.cpp
+++ b/lib/kernel/streamutils/pdep_kernel.cpp
@@ -47,8 +47,8 @@ StreamExpandKernel::StreamExpandKernel(BuilderRef b,
 + "_" + std::to_string(source->getNumElements())
 + ":" + std::to_string(expanded->getNumElements()),
 // input stream sets
-{Binding{"marker", mask, FixedRate()},
-Binding{"source", source, PopcountOf("marker"), BlockSize(b->getBitBlockWidth())}},
+{Binding{"marker", mask, FixedRate(), Principal()},
+    Binding{"source", source, PopcountOf("marker"), {ZeroExtended(), BlockSize(b->getBitBlockWidth())}}},
 // output stream set
 {Binding{"output", expanded}},
 // input scalar
diff --git a/lib/kernel/util/linebreak_kernel.cpp b/lib/kernel/util/linebreak_kernel.cpp
index acf25db63..2aa8f1cf1 100755
--- a/lib/kernel/util/linebreak_kernel.cpp
+++ b/lib/kernel/util/linebreak_kernel.cpp
@@ -345,7 +345,7 @@ void LineStartsKernel::generatePabloMethod() {
 
 LineSpansKernel::LineSpansKernel(BuilderRef b, StreamSet * LineStarts, StreamSet * LineEnds, StreamSet * LineSpans)
 : PabloKernel(b, "LineSpans",
-              {Binding{"LineStarts", LineStarts}, Binding{"LineEnds", LineEnds}},
+              {Binding{"LineStarts", LineStarts}, Binding{"LineEnds", LineEnds, FixedRate(), Principal()}},
               {Binding{"LineSpans", LineSpans}}) {}
 
 void LineSpansKernel::generatePabloMethod() {
-- 
GitLab