-
Notifications
You must be signed in to change notification settings - Fork 647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using FastExpressionCompiler to compile the pipeline expression tree #5071
Conversation
@@ -3,4 +3,4 @@ | |||
context2 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Stage1).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), | |||
context3 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Behavior2).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), | |||
context4 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Stage2).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), | |||
context5 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Terminator).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task])), | |||
context5 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Terminator).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Int32]])), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change should not be relevant since Task<TResult>
is always assignable to Task
.
*/ | ||
|
||
// ReSharper disable CoVariantArrayConversion | ||
namespace FastExpressionCompiler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added as source. V1.5
@danielmarbach we talked about this in our sync and we like the idea. There's a PlatDev issue to drive out some of the questions that we have. This is likely going to be something that gets included in v7.1 or later. We don't see a reason that it would have to wait until v8 though. |
Discussed on the core sync and marked as WIP until we have the results from the performance tests available |
@andreasohlund what are the expectations from these tests? |
We just figured that we wanted to know how much faster the new pipeline is since there is no rush with this one? (will go into 7.1) |
683545e
to
8e09b1e
Compare
Rebased and added FastExpressionCompiler v1.8 |
@danielmarbach seems like the added sources add quite a lot of public APIs. It doesn't seem that we want those classes to be exposed to users? I guess we can just make all the classes private? |
I did that for the main class but forgot to redo it for the others when I updated. Will fix |
8e09b1e
to
ba19dff
Compare
Done. Sorry for the inconvenience |
ba19dff
to
91dda2b
Compare
it's not clearly visible what version of FastExpressionCompiler we're using here. Should we check for updates and also make a note which version was used? Also, we should probably add it to this list: https://github.com/Particular/NServiceBus#licensing ? |
91dda2b
to
52d9a41
Compare
@timbussmann have a look. I added a multiline comment with the version and an additional hint was was changed |
*/ | ||
|
||
/* | ||
v1.10.1 from https://github.com/dadhi/FastExpressionCompiler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@danielmarbach latest version I see on that repo is 1.7.1. Where did you take that version number from?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@danielmarbach thanks, didn't see that. I was just looking at the releases and branches and didn't find this version there.
As @timbussmann mentioned, we should go ahead and update https://github.com/Particular/NServiceBus#licensing as part of this PR. |
@bording done |
@danielmarbach One last thing. Since it doesn't look like the FastExpressionCompiler repo tags releases, can you include the commit hash of the file as well so we can correlate back to a specific version? |
7b66292
to
7d53ded
Compare
@bording done |
Would address #5070