From: Andras V. <and...@ui...> - 2012-08-17 08:40:52
|
Dear Raimar, Thanks for your work on this. I merged into the master branch and updated the documentation. I also agree with what you did for the Mac OS support. I also merged into BlitzCVS_compatibility from raimar/BlitzCVS_cmake. As to the consistency checks for Composite at compile time, they come on three levels: * Composite itself only checks whether all the quantum numbers are addressed by an Act. So this is e.g. not allowed: composite::result_of::Make<Act<0,1>,Act<0,2>,Act<0,3>,Act<3,2,5,1> >::type because 4 is not addressed and hence the Composite object has no way to figure out what kind of Free object is there. * The instantiated slice iterators do some further checks for each Act individually: - RANK must be greater than or equal to the arity of Act - Act must not "contain" duplicated "elements" (Act<3,2,3,1> not allowed) - each element in Act must be smaller than RANK * Finally, tmptools::Vector checks for the non-negativity of each element (as it is supposed to be a non-negative compile-time vector) This is followed by a check at runtime, when the actual elements become available, whether the legs of the Act objects are consistent among each other. Cf. composite::FillFrees::Inner::operator() . Best regards, András On Thu, Aug 16, 2012 at 3:46 PM, Raimar Sandner <rai...@ui...> wrote: > I updated all the include guards to make them consistent (raimar/tccStaging) and documented the conventions used (raimar/Documentation). > The rules are: > > filename with path relative to project dir -> uppercase -> replace '.' and '/' with '_' -> append _INCLUDED > > With this convention in place fixing include guards can be easily automated in the future by parsing for lines which contain _INCLUDED and rewrite them. > > Actually, this does the job: > > for f in $(find * -name *.h -o -name *.tcc);\ > do \ > perl -pi -e "s[(\S*_INCLUDED)]{my \$newguard=uc(qq(${f}_INCLUDED));\$newguard=~ s|[./]|_|g; qq(\$newguard)}e" $f; \ > done > > This will scan every .h and .tcc file and replace any include guard which contains _INCLUDED by one that conforms to the rules above. > > > > On Tuesday 14 August 2012 11:38:26 Raimar Sandner wrote: >> Dear András, >> >> I removed MCWF.h and added explicit template instantiations for >> BinarySystem. The result is in raimar/tccStaging, and it compiles in >> release mode again. >> >> Best regards >> Raimar >> >> On Monday 13 August 2012 11:04:59 Andras Vukics wrote: >> > Dear Raimar, >> > >> > To me, everything you did here seems fine, I have only one small question: >> > * Why is there a separate MCWF.h, and if there is, why does >> > Evolution.h not include it ? EvolutionHigh.h used to pull in >> > everything needed to evolve on quantumtrajectories. >> > >> > Please check out the branch tccStaging where I have updated >> > utils/testsuite and corrected a few small problems. The testsuite can >> > be run simply with >> > bjam (release) >> > in the utils/testsuite folder. >> > >> > I made a small test, and compilation dependencies have indeed >> > decreased with this scheme: >> > >> > quantumdata/impl/StateVector.tcc: 51 targets depends on it (used to be >> > 58 targets) >> > elements/frees/impl/Mode.tcc: 32 targets (58 targets) >> > >> > utils/include/impl/Evolved.tcc: 50 targets (60 targets) >> > utils/include/impl/BlitzArraySliceIterator.tcc: 50 targets (54 targets) >> > >> > Thanks and best regards, >> > András >> > >> > >> > >> > On Sat, Aug 11, 2012 at 2:03 AM, Raimar Sandner >> > >> > <rai...@ui...> wrote: >> > > Dear András, >> > > >> > > I have pushed raimar/tcc_new (and removed raimar/tcc). Tcc_new is >> > > already >> > > branched from the latest r229 of master so that you don't need to merge >> > > with the binary and composite changesets again. >> > > >> > > I tried to stick to what we have discussed recently and also updated the >> > > code organization rationales accordingly (raimar/Documentation). >> > > >> > > Please note that I have also converted the pair >> > > BlitzArraySlieIterator.h/tcc to the new style by defining the macros in >> > > a >> > > separate file which is included in both headers. Now the tcc scheme is >> > > consistent across the framework, but if you don't like this approach >> > > just >> > > leave out the last commit when you merge. >> > > >> > > Furthermore I have added LazyDensityOperator.tcc, and converted some of >> > > the >> > > frees headers to Free_.h so that Free.h can bundle Free_.h (or >> > > impl/Free.tcc if present) together with ParsFree.h. However, I have not >> > > changed the interaction header files in the same way yet. Currently >> > > these >> > > are not used anywhere in the framework and Pars... headers are just >> > > included in the corresponding interaction header file, so script users >> > > have only to include this one header file anyway. >> > > >> > > Best regards >> > > Raimar >> > > >> > > >> > > PS: probably the testsuites are pretty much broken right now because of >> > > all >> > > these changes, but I could not start them to check. How do I run the >> > > tests >> > > with bjam again? >> > > >> > > ------------------------------------------------------------------------ >> > > -- >> > > ---- Live Security Virtual Conference >> > > Exclusive live event will cover all the ways today's security and >> > > threat landscape has changed and how IT managers can respond. >> > > Discussions >> > > will include endpoint security, mobile security and the latest in >> > > malware >> > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> > > _______________________________________________ >> > > Cppqed-support mailing list >> > > Cpp...@li... >> > > https://lists.sourceforge.net/lists/listinfo/cppqed-support > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Cppqed-support mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppqed-support |
From: Raimar S. <rai...@ui...> - 2012-08-17 10:26:50
|
Dear András, thanks for merging and for the explanation of the coompile-time checks. I will bring the boost-integration branch into shape with the new cmake build system. Best regards Raimar On Friday 17 August 2012 10:40:24 Andras Vukics wrote: > Dear Raimar, > > Thanks for your work on this. > I merged into the master branch and updated the documentation. > > I also agree with what you did for the Mac OS support. I also merged > into BlitzCVS_compatibility from raimar/BlitzCVS_cmake. > > As to the consistency checks for Composite at compile time, they come > on three levels: > > * Composite itself only checks whether all the quantum numbers are > addressed by an Act. So this is e.g. not allowed: > composite::result_of::Make<Act<0,1>,Act<0,2>,Act<0,3>,Act<3,2,5,1> >::type > because 4 is not addressed and hence the Composite object has no way > to figure out what kind of Free object is there. > > * The instantiated slice iterators do some further checks for each Act > individually: > - RANK must be greater than or equal to the arity of Act > - Act must not "contain" duplicated "elements" (Act<3,2,3,1> not allowed) > - each element in Act must be smaller than RANK > > * Finally, tmptools::Vector checks for the non-negativity of each > element (as it is supposed to be a non-negative compile-time vector) > > This is followed by a check at runtime, when the actual elements > become available, whether the legs of the Act objects are consistent > among each other. Cf. composite::FillFrees::Inner::operator() . > > Best regards, > András > > > > > > On Thu, Aug 16, 2012 at 3:46 PM, Raimar Sandner > > <rai...@ui...> wrote: > > I updated all the include guards to make them consistent > > (raimar/tccStaging) and documented the conventions used > > (raimar/Documentation). The rules are: > > > > filename with path relative to project dir -> uppercase -> replace '.' and > > '/' with '_' -> append _INCLUDED > > > > With this convention in place fixing include guards can be easily > > automated in the future by parsing for lines which contain _INCLUDED and > > rewrite them. > > > > Actually, this does the job: > > > > for f in $(find * -name *.h -o -name *.tcc);\ > > do \ > > > > perl -pi -e "s[(\S*_INCLUDED)]{my > > \$newguard=uc(qq(${f}_INCLUDED));\$newguard=~ s|[./]|_|g; > > qq(\$newguard)}e" $f; \> > > done > > > > This will scan every .h and .tcc file and replace any include guard which > > contains _INCLUDED by one that conforms to the rules above.> > > On Tuesday 14 August 2012 11:38:26 Raimar Sandner wrote: > >> Dear András, > >> > >> I removed MCWF.h and added explicit template instantiations for > >> BinarySystem. The result is in raimar/tccStaging, and it compiles in > >> release mode again. > >> > >> Best regards > >> Raimar > >> > >> On Monday 13 August 2012 11:04:59 Andras Vukics wrote: > >> > Dear Raimar, > >> > > >> > To me, everything you did here seems fine, I have only one small > >> > question: > >> > * Why is there a separate MCWF.h, and if there is, why does > >> > Evolution.h not include it ? EvolutionHigh.h used to pull in > >> > everything needed to evolve on quantumtrajectories. > >> > > >> > Please check out the branch tccStaging where I have updated > >> > utils/testsuite and corrected a few small problems. The testsuite can > >> > be run simply with > >> > bjam (release) > >> > in the utils/testsuite folder. > >> > > >> > I made a small test, and compilation dependencies have indeed > >> > decreased with this scheme: > >> > > >> > quantumdata/impl/StateVector.tcc: 51 targets depends on it (used to be > >> > 58 targets) > >> > elements/frees/impl/Mode.tcc: 32 targets (58 targets) > >> > > >> > utils/include/impl/Evolved.tcc: 50 targets (60 targets) > >> > utils/include/impl/BlitzArraySliceIterator.tcc: 50 targets (54 targets) > >> > > >> > Thanks and best regards, > >> > András > >> > > >> > > >> > > >> > On Sat, Aug 11, 2012 at 2:03 AM, Raimar Sandner > >> > > >> > <rai...@ui...> wrote: > >> > > Dear András, > >> > > > >> > > I have pushed raimar/tcc_new (and removed raimar/tcc). Tcc_new is > >> > > already > >> > > branched from the latest r229 of master so that you don't need to > >> > > merge > >> > > with the binary and composite changesets again. > >> > > > >> > > I tried to stick to what we have discussed recently and also updated > >> > > the > >> > > code organization rationales accordingly (raimar/Documentation). > >> > > > >> > > Please note that I have also converted the pair > >> > > BlitzArraySlieIterator.h/tcc to the new style by defining the macros > >> > > in > >> > > a > >> > > separate file which is included in both headers. Now the tcc scheme > >> > > is > >> > > consistent across the framework, but if you don't like this approach > >> > > just > >> > > leave out the last commit when you merge. > >> > > > >> > > Furthermore I have added LazyDensityOperator.tcc, and converted some > >> > > of > >> > > the > >> > > frees headers to Free_.h so that Free.h can bundle Free_.h (or > >> > > impl/Free.tcc if present) together with ParsFree.h. However, I have > >> > > not > >> > > changed the interaction header files in the same way yet. Currently > >> > > these > >> > > are not used anywhere in the framework and Pars... headers are just > >> > > included in the corresponding interaction header file, so script > >> > > users > >> > > have only to include this one header file anyway. > >> > > > >> > > Best regards > >> > > Raimar > >> > > > >> > > > >> > > PS: probably the testsuites are pretty much broken right now because > >> > > of > >> > > all > >> > > these changes, but I could not start them to check. How do I run the > >> > > tests > >> > > with bjam again? > >> > > > >> > > --------------------------------------------------------------------- > >> > > --- > >> > > -- > >> > > ---- Live Security Virtual Conference > >> > > Exclusive live event will cover all the ways today's security and > >> > > threat landscape has changed and how IT managers can respond. > >> > > Discussions > >> > > will include endpoint security, mobile security and the latest in > >> > > malware > >> > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > >> > > _______________________________________________ > >> > > Cppqed-support mailing list > >> > > Cpp...@li... > >> > > https://lists.sourceforge.net/lists/listinfo/cppqed-support > > > > -------------------------------------------------------------------------- > > ---- Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > Cppqed-support mailing list > > Cpp...@li... > > https://lists.sourceforge.net/lists/listinfo/cppqed-support |