New Infrastructure - More Information

Debate general New Infrastructure - More Information

  • viernes, 20 de julio de 2012 8:52
     
     

    Hi Code Contracts team,

    I've read that the Code Contracts infrastructure is currently being changed which will fix a couple of issues people are currently encountering; since then I have been checking the forums every couple of hours to glean every piece of information I can about the new infrastructure (how it will affect current contracts and any further enhancements).

    Hence I am wondering, are there any blogs which detail any of the Code Contracts development/upcoming features? Any information at all about the new infrastructure, or some of the enhancements and bug fixes would be very much appreciated, I personally love using Code Contracts but very much believe teasers and sneak-peaks go a long way to growing and keeping the user base (e.g. A user will most likely keep using Code Contracts if a current bug/shortcoming is fixed in the next version, e.g. limited enumerable support).

    Thanks for taking the time to read this and thanks for the great work you're doing,

    Luke

Todas las respuestas

  • lunes, 23 de julio de 2012 17:38
     
     
    Funny... I was just thinking the same thing. My company is currently using Code Contracts in an experimental (read: not required for individual developers) fashion. I'd be willing to help with alpha/beta testing for the new infrastructure.
  • miércoles, 01 de agosto de 2012 17:15
    Propietario
     
     

    The new infrastructure is the publically-available Common Compiler Infrastructure (CCI). Actually, we've already been using it for some time: the reference assembly generator (ccrefgen), documentation generator (ccdocgen), and editor extensions all use that instead of the old infrastructure. I am currently trying to get the runtime rewriter (ccrewrite) moved over as well. That is more challenging because we are relying on CCI's decompiler to raise the IL to an easier to manipulate form and the decompiler is still under development.

    The idea for right now is have it just provide exactly the same functionality, but moving forward and adding features should be much (much!) easier than in the old code base. I have already found some bugs that were reported against the old rewriter that work perfectly in the new one.

    If you have any other questions, please feel free to ask!


    Mike Barnett

  • miércoles, 01 de agosto de 2012 18:48
     
     
    Thanks for the update. You've mentioned ccrefgen, ccdocgen and ccrewrite; how about the cccheck (the static checker)--how will it change with respect to CCI?
  • miércoles, 01 de agosto de 2012 18:51
    Propietario
     
     
    Sorry, I should have included cccheck: that will also move on top of CCI. Internally, we've been doing that for some time now, but there are still a few things to work out before we make the switch there.

    Mike Barnett

  • jueves, 02 de agosto de 2012 9:13
     
     

    Thanks for the response Mike, when you say we have already been using the new infrastructure (in terms of ccrefgen, ccdocgen and editor extensions), do you mean us as end-users, or yourselves as in the Code Contracts team? The new infrastructure sounds very promising, very much looking forward to it.

    Luke

  • viernes, 03 de agosto de 2012 0:05
    Propietario
     
     
    Oh, no, I mean that the published versions have been using that new infrastructure for a while now. So you've already been using it. The difference for the rewriter and the static checker is that they rely on the decompiler, which is what has been taking up all of the time.

    Mike Barnett

  • viernes, 03 de agosto de 2012 10:43
     
     
    Ah that makes sense, I hope I'm not wrong in saying the rewriter and the static checker are at the heart of Code Contracts so will gain the largest benefit from this change? Was Roslyn ever considered as a possiblity for runtime checking instead of using a rewriter?
  • viernes, 03 de agosto de 2012 17:27
    Propietario
     
     

    I think all of the tools have gained a lot: the new infrastructure is much more robust. We have several instances where we can use the new infrastructure but not the old one. But I agree: the biggest effect is on the rewriter and checker.

    Roslyn is definitely something we should consider. It came along a little too late for the existing code. We have some experiments using it now though.


    Mike Barnett