News

rss csv xml json

Avatar

The mono wiki has been updated with Gendarme 2.6 documentation. poupou — 3 months ago

Avatar

When you look at log files for too long you always get headaches and, sometime, surprises. I was surprised by the memory requirements of the simple LINQ query that Gendarme does on defects. It turns out that ordering on enums is really bad (not tested if this only affects Mono) but casting the value to an int removes the allocations (good hint ;-). Previous baseline falls to 77291KB (-685KB) poupou — about 1 year ago

Avatar

jbevain approved my Has{x} patch to Cecil. That will make it possible, once Gendarme rules are "fixed", to avoid the creation of (a lot of) empty collections. E.g. Custom attributes on fields are rare (about 2% on Mono System.Drawing.dll) but because Gendarme "touch" every CustomAttributes properties (not just on fields) all (100%) of them are created. poupou — about 1 year ago

Avatar

I started committing some Gendarme optimizations to HEAD tonight. They will soon be backported to the 2-2 branch. From last weekend profiling work I was able to reduce the memory required to analyze System.Drawing.dll (from Mono 2.0 profile) from 154207KB (first run) to 127015KB (21st run), a reduction of 26MB (17.6%). Timings soon on my "official" blog. poupou — about 1 year ago

Avatar

Late last night I uploaded the first preview (binaries and Win32 installer) for Gendarme 2.2. Documentation on Mono wiki has also been updated (and I need to look at automating this step). Benchmarking is next (while waiting for feedback) but I got quite a bit of patch to apply to HEAD first! poupou — about 1 year ago

Avatar

Mono 2-2 branch was made earlier today. Setup is complete and Gendarme builds and test ok from the branch. I'll be moving my build-n-test activities to Windows and, once ready (the Makefile/MD/VS integration is still untested on Windows), build a preview of the 2.2 win32 installer. poupou — about 1 year ago

Avatar

The Mono 2-2 branch delay disrupted my plans a bit - but it did give me some free evenings to watch more PDC videos. I liked TL51 (Contracts and Pex) quite a bit since they are different yet quite near what tools, like Gendarme, and libraries, like Cecil provides. I'm pretty sure you'll see those names mixed again :-) poupou — about 1 year ago

Avatar

I finally tested CheckParametersNullityInVisibleMethodsRule against Mono class libraries (mainly System.Security and System.Drawing) and felt confident enough (near zero false positives) to commit it in SVN in time for Gendarme 2.2. It's likely short-lived because Jesse is actively working on fixing NullDerefRule bugs and false positives - but will give users something useful *right now*. poupou — about 1 year ago

Avatar

While testing a (unrelated) patch I found a 64bits specific bug in Mono PrintingServicesUnix that Gendarme missed. So I extended Gendarme DoNotCastIntPtrToInt32Rule to cover the cases where Marshal.ReadInt32 (or ReadInt64) is used to read a pointer (i.e. casted back to [U]IntPtr) and renamed the rule to DoNotAssumeIntPtrSizeRule so it more accurately named with what it (now) does. poupou — about 1 year ago

Avatar

Time before the next Mono branch is getting short (November 3rd) so I started cleaning up the little bits I have lying around in Gendarme (and across 3 computers). That includes smaller rules like PreferEventsOverMethodsRule (committed tonight) and fixing defects found with rules still in development (and hopefully completed before the branch). poupou — about 1 year ago

Avatar

Finally committed the two rules I talked about two weeks ago: Gendarme.Rules.Correctness ReviewCastOnIntegerDivisionRule and ReviewCastOnIntegerMultiplicationRule. Both rules checks on cast around multiplication and division for common mistakes that returns unexpected values. They have been used to find a few bugs inside Mono class libraries. poupou — about 1 year ago

Avatar

Finally completed the documentation for Gendarme.Rules.Design. Looks like it got a few typos to fix but the results on the new Mono web site just looks AWESOME. Next on the list are the performance rules... or maybe I should decide myself and commit my two rules, since they are already documented on the web site (but they are not in Design ;-) poupou — about 1 year ago

Avatar

Rejoice! Mono 2.0 was released today!!! and so was Gendarme 2.0 :-) Gendarme Binaries and Win32 packages are available on Ohloh @ https://www.ohloh.net/projects/gendarme/download (note: identical to RC3 packages) while Linux packages (mono-tools) will soon be available from the Mono project (updated!) web site and/or from openSUSE build service. poupou — about 1 year ago

Avatar

Mono 2.0 has been released! jbevain — about 1 year ago

Avatar

I've been tuning two new Gendarme rules this weekend on Mono class library source code. A few more tweaks and it should land in SVN. poupou — about 1 year ago

Avatar

Added new DoNotUseGetInterfaceToCheckAssignabilityRule to Gendarme BadPractice rules. The rule comes from a discussion between jb and robertj on Mono leading to a patch to Moonlight. Then continued documenting the Correctness rules. Refactored FloatingComparisonRule (now renamed AvoidFloatingPointEqualityRule) and DoNotCompareWithNaNRule to share the same (engine-enabled ;-) base class. poupou — about 1 year ago

Avatar

While engine-ing some Gendarme rule I simply could not resist and took some time to remove allocations from AvoidUnnecessarySpecializationRule. That cut another 2.5MB of memory to analyze all Mono 2.0 class libraries. Other smaller fixes were also backported to the 2.0 branch. poupou — about 1 year ago

Avatar

congrats to mono on their second-life rollout: http://blog.secondlife.com/2008/08/20/mono-launch/ jason — about 1 year ago

Avatar

At this stage much of Gendarme action is reflected into it's Mono 2.0 branch - but there are some differences (we're not HEAD-less ;-). The second part of Nestor GSoC work (the new rules) happens on HEAD (2.1 that will become Gendarme 2.2). This morning I also added a new rule AvoidExtensionMethodOnSystemObjectRule inside a new assembly, Gendarme.Rules.Design.Linq. More coming in Hack Week 3! poupou — about 1 year ago

Avatar

Mono 2.0 preview 2 was tagged earlier this morning. I'll start benchmarking Gendarme later tonight, then update the win32 installer for it's release later this week. Meanwhile the feedback-based enhancements will still continue to happen on both the 2.0 branch and SVN HEAD - probably until Hack Week 3 :) poupou — about 1 year ago

Avatar

Fixed a bunch of small issues in the last days (well nights ;-). The most important one is that I finally found out why the Gendarme Wizard did not report as much defects than the console runner.... it simply did not default to the same visibility check* (visible only instead of all). * This is a new option in the console runner (by Nestor) which is very useful to apply the rules to Mono. poupou — about 1 year ago

Avatar

Fixed some false positives from AvoidRepetitiveCastsRule that could happen with the return value of method calls. Made a few other commits to Gendarme, mostly self-test, and to Mono (for validating the rule changes :-) poupou — about 1 year ago

Avatar

latexer provided a patch to fix (i.e. ignore) all delegates in Gendarme AvoidUnusedParameterRule (bnc 414541). I also reduced the rule memory allocations by 86077KB (12%) over all Mono 2.0 assemblies, but I "limited" it to checking the first 64 parameters of each method (any method with more parameters has other issues IMHO ;-) poupou — about 1 year ago

Avatar

Fixed two issues in Gendarme AvoidUncalledPrivateCodeRule. First one is about (unreported) unused properties (bnc #410000). The second is another case with generics. I also found a bug in TreeView.Sort under Vista (MS code, not Mono) that leads the wizard into infinite recursion (sorting rules). The fix was much easier than finding the problem (since I wrongly blamed my async code). poupou — about 1 year ago

Avatar

after 6 months of hacking Mono, back to hacking Moonlight, managed code needs some serious love jbevain — about 1 year ago

Avatar

I'm slowly completing/cleaning up my incomplete rule set... Mono branch will happen soon. This time I added AvoidLargeNumberOfLocalVariablesRule and AvoidRefAndOutParametersRule to Gendarme. poupou — about 1 year ago

Avatar

Earlier today Zoltan, aka vargaz, made a nice commit to change a few Type.GetType(string), which requires reflection, into faster typeof(x). How many more are there in mono ? 84 tonight (hopefully less tomorrow) according to Gendarme new rule: AvoidTypeGetTypeForConstantStringsRule. poupou — about 1 year ago

Avatar

I just added DoNotRoundIntegersRule to Gendarme and a few instruction rocks to go along. Good news: no defect was found inside Mono class libraries. Bad news: it rains everyday poupou — about 1 year ago

Avatar

Still rainy :-( Anyway I committed ReviewUselessControlFlowRule for Gendarme. This is another rule to check for typos (like an extra ';' after a condition) and a great way to find empty code blocks (like forgotten TODO ;-). There are a bit over 100 of them inside Mono right now... poupou — about 1 year ago

Avatar

Just added ReviewDoubleAssignmentRule to Gendarme. This check for multiple assignment to the same variable or field like: x = x = 42; I also added the first rocks (a la Mono.Rocks) for Instruction. This should simplify a few existing, and upcoming, rules :-) poupou — about 1 year ago

Statistics

0 people follow tgiphil

tgiphil follows 1 people

tgiphil follows 3 projects