Sign in

Not a member? | Forgot your Password?


Search Comp.Arch.Embedded



Search tips

Free PDF Downloads

Advanced Linux Programming

What Every Programmer Should Know About Memory

Introduction to Embedded Systems

C++ Tutorial

Embedded Systems - Theory and Design Methodology

Recent Blogs on EmbeddedRelated

April is Oscilloscope Month: In Which We Discover Agilent Offers Us a Happy Deal and a Sad Name
posted by Jason Sachs


Little to no benefit from C based HLS
posted by Christopher Felton


Unit Tests for Embedded Code
posted by Stephen Friederichs


DSPRelated and EmbeddedRelated now on Facebook & I will be at EE Live!
posted by Stephane Boucher


Using a RTLSDR dongle to validate NRF905 configuration
posted by fabien le mentec


Introduction to Microcontrollers

Chapter 1: Beginnings

Chapter 2: Further Beginnings

Chapter 3: Hello World

Chapter 4: More On GPIO

Chapter 5: Interrupts

Chapter 6: More On Interrupts

Chapter 7: Timers

Chapter 8: Adding Some Real-World Hardware

Chapter 9: More Timers and Displays

Chapter 10: Buttons and Bouncing

Chapter 11: Button Matrix & Auto Repeating

Chapter 12: Driving WS2812 RGB LEDs

See Also

ElectronicsDSPFPGA

Find us on Facebook





Discussion Groups | Comp.Arch.Embedded | PC Lint vs. splint

There are 24 messages in this thread.

You are currently looking at messages 11 to 20.


So far in April, you have voted 0 times ou of a total of 0 votes by the community.
Please help us clean the archives from unuseful discussion threads by using the voting system! Details here.

Re: PC Lint vs. splint - Peter - 2004-11-23 20:59:00

"Dave Hansen" <i...@hotmail.com> wrote in message 
news:4...@News.individual.net...
> On 23 Nov 2004 23:06:10 GMT, Grant Edwards <g...@visi.com> wrote:
>
>>On 2004-11-23, Grant Edwards <g...@visi.com> wrote:
>>
>>>> Also see www.gimpel.com for more info.  Regards,
>>>
>>> Last time I checked the Unix versions were hideously
>>> expensive,
>>
>>Yup, still is.  A node locked copy ofr Windows is $240, a node
>>locked copy for Linux is $1000.   What a bunch of maroons...
>
> Maroons?  That's a bit harsh, though I have never understood their
> FlexeLint pricing, even if it is distributed in source form.
>
> Note, however, the Windoze version includes DOS and OS/2 binaries, and
> the Win32 version is a console app.  I have seen speculation it could
> run in DOSEMU or wine or something similar.  Never tried it myself,
> though.  They have a 30-day money back guarantee...
>
There is nothing to stop you from checking your Linux code on your Windows 
machine except that it's not quite so convenient. I copy it from the Linux 
machine to Windows to get the worst errors out then return it.

Regards,
Peter 



_____________________________
 Free pdf download: Advanced Linux Programming.

Re: PC Lint vs. splint - Grant Edwards - 2004-11-23 21:54:00

On 2004-11-24, Peter <m...@newprovidence.demon.co.uk> wrote:

> There is nothing to stop you from checking your Linux code on
> your Windows machine except that it's not quite so convenient.
> I copy it from the Linux machine to Windows to get the worst
> errors out then return it.

I would, but I really don't want to reward Gimple's
short-sightedness.

-- 
Grant Edwards                   grante             Yow!  The PINK SOCKS were
                                  at               ORIGINALLY from 1952!! But
                               visi.com            they went to MARS around
                                                   1953!!

_____________________________
 Free pdf download: Advanced Linux Programming.

Re: PC Lint vs. splint - Andy Sinclair - 2004-11-24 04:35:00

JeanneP wrote:
>I'm trying to decide which static checker to recommend, and deciding 
>between PC Lint (which costs some cash) and splint (which costs setup 
>time).  Does anyone here have experience with both, and can comment 
>on their preference?
>
>Has anyone been so dissatisfied with splint that they switched to 
>PC Lint, and did PC Lint solve the problem(s) that caused the 
>dissatisfaction?
I have previously used splint and currently use PCLint.
Splint was good, but it did need a lot of setting up and had some
problems with unwanted warning that are hard to individually suppress
(such as the example you gave).
PCLint is better, especially for strong typing, and it is easier to
tailor to your needs.
I you have time to spare, I would try splint first.  If it is being
bought for your work, I would get PCLint.

>[snipped example]
>How does PC Lint handle these cases?
PCLint can be configured to ignore the assignment of constants when it
does its type checking (I use this setup to avoid this very problem).

Andy

_____________________________
 Free pdf download: What Every Programmer Should Know About Memory.

Re: PC Lint vs. splint - JeanneP - 2004-11-24 10:08:00

i...@hotmail.com (Dave Hansen) wrote in message news:<4...@News.individual.net>...
> On 23 Nov 2004 10:43:47 -0800, j...@harris.com (JeanneP) wrote:
> 
> >I'm trying to decide which static checker to recommend, and deciding 
> >between PC Lint (which costs some cash) and splint (which costs setup 
> >time).  Does anyone here have experience with both, and can comment 
> >on their preference
> 
> PC-lint is an awesome tool, and cheap.  Splint (lclint) is a good
> tool, and free.
> 
> If you want to lint C++, PC-lint will do a good job of this.  AFAIK,
> splint is C only.

Thank you everyone for your responses. It looks to me as though PC Lint
is what I'll recommend at work. The vast majority of the code is in C,
and there's a tiny percentage of C++. However, that may change.

I have another question for those who use either tool; how the speed of
a lint run compare to building your code? Is it faster? Slower? How
much?

I'm asking because we have code that's shared across multiple projects.
When you check in a file that is used by another project, that project
gets updated too. The advanages are that everyone gets to benefit from
the updates right away, but the downsides are that what works in one
project may break another. Maybe someone used a #defined value from a
non-shared file in a shared file, or something similar. Folks usually
don't bother building all of the other projects that share their file
before checking in code, due to looming deadlines on their own projects.
They usually get away with it, but it sure can be a headache when you
have to make sure updating your sandbox won't cause a break before you 
actually update it.  It's impractical to ask people to always check 
every affected build before checking in updates, because it would take 
several hours to build every flavor of every project, during which time 
there may have been more updates. Of course we have an automated builder 
so it doesn't get out of control. But, if lint is fast enough, people 
could lint the other projects before checking in their code.

Of course, I could always try it once we have it. But, knowing this
ahead of time could help make the argument to purchase.

Thanks again,
Jeanne

(not my real email address)

_____________________________
 Free pdf download: Advanced Linux Programming.

Re: PC Lint vs. splint - Dave Hansen - 2004-11-24 10:46:00

On 24 Nov 2004 07:08:44 -0800, j...@harris.com (JeanneP) wrote:

[...]
>
>I have another question for those who use either tool; how the speed of
>a lint run compare to building your code? Is it faster? Slower? How
>much?

Lint is _much_ faster.  It's often so quick that my knee-jerk reaction
is "Oops, what went wrong?... Oh, it's just done."

The current project I'm working on is fairly small.  About 6k of code
using avr-gcc.  Consisting of 7 .c and 7 .h files totaling about 112k
of code on the disk.  Building and linking the object files using make
takes about 3 seconds (2.77 according to the system clock) on my
system.  Linting everything with "make lint" takes less than a second
(0.36 seconds, identical to performing a make with an up-to-date
build).  Removing make from the equation and linting everything from
the command line takes even less time (0.16 seconds).  These are crude
timings, performed by running batch files that look something like:

   time < nul
   make
   time < nul

PC-lint has the ability to create "lint object" files so you only have
to lint what actually has changed.  But IME linting an entire project
takes so little time that it's not been worthwhile to use them.

Regards,

                               -Úve
-- 
Change is inevitable, progress is not.

_____________________________
 Free pdf download: What Every Programmer Should Know About Memory.

Re: PC Lint vs. splint - Dave Hansen - 2004-11-24 10:54:00

On 24 Nov 2004 01:14:01 GMT, Grant Edwards <g...@visi.com> wrote:

>On 2004-11-24, Dave Hansen <i...@hotmail.com> wrote:
>
[...]
>> though I have never understood their FlexeLint pricing, even
>> if it is distributed in source form.
>
>The fact that it's in obfuscated source files doesn't increase
>the value to the customer, so why should the price be higher?

Exactly my point.  Which is why I don't understand it.

[...]

>I'm also alergic to node-locked stuff.  I've been burned too
>many times when a motherboard, disk drive, or whatnot died and
>I had to cough up a pile of cash for the privledge of running a
>program I already paid for once.

I think you're reading too much into the phrase "non-floating," or
maybe "A single user on a computer workstation."  AFAIK, there is no
software licensing management for FlexeLint (there certainly is none
for PC-lint).

The only restriction of that type I see in the "workstation" license
is that it forbids you to access the program through a network.  If
your mobo, hard drive, or whatever failed, I expect you could replace
any part or all of the system and legally continue to use the program
under the terms of the license.  But, of course, IANAL.  You could ask
Gimpel if you have any questions.  IME, they're very reasonable to
deal with.

>
>> Note, however, the Windoze version includes DOS and OS/2
>> binaries, and the Win32 version is a console app.  I have seen
>> speculation it could run in DOSEMU or wine or something
>> similar.
>
>Probably so.  I'm sure it would run under Win4Lin, but it's a
>lot of hassle either way and exceeds my pain threshold.

In at least one sense you're right.  If you can't be bothered to run
lint, it won't do you any good.  But IMHO, the greater pain is trying
to work _without_ lint.

>Cranking up the warnings on gcc does a fair job.

Compilers are much better at this than they were when I began using
PC-lint.  But they still don't come close.

Regards,

                               -Úve
-- 
Change is inevitable, progress is not.

_____________________________
 Free pdf download: Introduction to Embedded Systems.

Re: PC Lint vs. splint - Grant Edwards - 2004-11-24 11:14:00

On 2004-11-24, Dave Hansen <i...@hotmail.com> wrote:

>>I'm also alergic to node-locked stuff.  I've been burned too
>>many times when a motherboard, disk drive, or whatnot died and
>>I had to cough up a pile of cash for the privledge of running a
>>program I already paid for once.
>
> I think you're reading too much into the phrase
> "non-floating," or maybe "A single user on a computer
> workstation." AFAIK, there is no software licensing management
> for FlexeLint (there certainly is none for PC-lint).
>
> The only restriction of that type I see in the "workstation"
> license is that it forbids you to access the program through a
> network.

That's ridiculous.  I can't ssh in from home and work?  I can't
work with an X window displayed on a different machine?

Bah.  Somebody should drag Gimpel into the 1990's.

> If your mobo, hard drive, or whatever failed, I expect you
> could replace any part or all of the system and legally
> continue to use the program under the terms of the license.
> But, of course, IANAL.  You could ask Gimpel if you have any
> questions.  IME, they're very reasonable to deal with.

Except for the pricing and license terms, apparently.

-- 
Grant Edwards                   grante             Yow!  I was in a HOT
                                  at               TUB! I was NORMAL! I was
                               visi.com            ITALIAN!! I enjoyed th'
                                                   EARTHQUAKE!

_____________________________
 Free pdf download: Introduction to Embedded Systems.

Re: PC Lint vs. splint - Rich Walker - 2004-11-24 11:41:00

i...@hotmail.com (Dave Hansen) writes:

[snip]
> I think you're reading too much into the phrase "non-floating," or
> maybe "A single user on a computer workstation."  AFAIK, there is no
> software licensing management for FlexeLint (there certainly is none
> for PC-lint).
>
> The only restriction of that type I see in the "workstation" license
> is that it forbids you to access the program through a network.  If
> your mobo, hard drive, or whatever failed, I expect you could replace
> any part or all of the system and legally continue to use the program
> under the terms of the license.  But, of course, IANAL.  You could ask
> Gimpel if you have any questions.  IME, they're very reasonable to
> deal with.

So I actually have to be physically logged-in to that very machine with
my keyboard, mouse and monitor connected to it? I can't use an
X-Terminal with it? If /usr is mounted from a remote machine, I can't
use it? What kind of maroon thinks up these things...

>
>>
>>> Note, however, the Windoze version includes DOS and OS/2
>>> binaries, and the Win32 version is a console app.  I have seen
>>> speculation it could run in DOSEMU or wine or something
>>> similar.
>>
>>Probably so.  I'm sure it would run under Win4Lin, but it's a
>>lot of hassle either way and exceeds my pain threshold.
>
> In at least one sense you're right.  If you can't be bothered to run
> lint, it won't do you any good.  But IMHO, the greater pain is trying
> to work _without_ lint.
>
>>Cranking up the warnings on gcc does a fair job.
>
> Compilers are much better at this than they were when I began using
> PC-lint.  But they still don't come close.

CFLAGS :=  -D__USE_GNU=1 -D__USE_MISC=1 -D__USE_BSD=1 -D_GNU_SOURCE=1 -O -Wall -W -DNDEBUG
CFLAGS +=  -Wcast-align -Wpointer-arith -Wbad-function-cast -Wsign-compare
CFLAGS +=  -Wno-unused -Wundef  -Wmissing-noreturn -Wmissing-format-attribute 

does pretty well for me.

Mind you, I have a .splintrc in every directory as well - typical
contents:

-I/usr/src/linux/include/ -I/usr/src/rtai/include/ -I/usr/lib/gcc-lib/i386-linux/3.2.3/include/ -I/usr/include 

-realcompare
-predboolint 
-boolops
-exportlocal
-fcnuse
-exitarg
-booltype bool
-fullinitblock
+charindex 
+charint
-formattype
-castfcnptr
-shiftimplementation

-Dsizeof(x)=(size_t)(sizeof(x))
-D_GNU_SOURCE=1
-D__GNUC__=3
-D__GNUC_MINOR__=2
-D__STDC__
-D__signed__-D__const__=const
-D__inline__=inline
-D__attribute__(x)-D__const=const
-D__restrict-DKERNEL
-D__builtin_va_list=int

(Running splint against kernel sources is ... interesting)

cheers, Rich.

-- 
rich walker         |  Shadow Robot Company | r...@shadow.org.uk
technical director     251 Liverpool Road   |
need a Hand?           London  N1 1LX       | +UK 20 7700 2487
www.shadow.org.uk/products/newhand.shtml

_____________________________
 Free pdf download: What Every Programmer Should Know About Memory.

Re: PC Lint vs. splint - Dave Hansen - 2004-11-24 11:55:00

On 24 Nov 2004 16:14:42 GMT, Grant Edwards <g...@visi.com> wrote:

>On 2004-11-24, Dave Hansen <i...@hotmail.com> wrote:
>
[...]
>> The only restriction of that type I see in the "workstation"
>> license is that it forbids you to access the program through a
>> network.
>
>That's ridiculous.  I can't ssh in from home and work?  I can't
>work with an X window displayed on a different machine?

Again, IANAL, but I believe you can.  You are still the only user, and
you are running the program on that one workstation, and that
workstation isn't accessing the program over a network.  The license
doesn't say you are limited to a single keyboard or display.  As long
as you don't try to run the software on your local machine...  

>
>Bah.  Somebody should drag Gimpel into the 1990's.

Well, they do have floating licenses, with the cost delta for
additional simultaneous users at or below the cost for a single
workstation license.  Of course, those have an even higher entry
point, and are limited to a LAN...

None of which explains why the cost of licensing FlexeLint is so much
greater than PC-lint.  My best guess is that support costs might be
higher because of the distribution method.

But even at 4x the cost, that just means it takes a month to pay for
itself rather than a week.

Regards,

                               -Úve
-- 
Change is inevitable, progress is not.

_____________________________
 Free pdf download: What Every Programmer Should Know About Memory.

Re: PC Lint vs. splint - Dave Hansen - 2004-11-24 12:40:00

On Wed, 24 Nov 2004 16:41:31 +0000, Rich Walker <r...@shadow.org.uk>
wrote:

>i...@hotmail.com (Dave Hansen) writes:
[...]
>> The only restriction of that type I see in the "workstation" license
>> is that it forbids you to access the program through a network.  If
>> your mobo, hard drive, or whatever failed, I expect you could replace
>> any part or all of the system and legally continue to use the program
>> under the terms of the license.  But, of course, IANAL.  You could ask
>> Gimpel if you have any questions.  IME, they're very reasonable to
>> deal with.
>
>So I actually have to be physically logged-in to that very machine with
>my keyboard, mouse and monitor connected to it?

It doesn't say that.

>     I can't use an
>X-Terminal with it? 

It doesn't say that either.


>     If /usr is mounted from a remote machine, I can't
>use it? 

If FlexeLint is installed under /usr, I believe it does say that.

>     What kind of maroon thinks up these things...

Just an average Joe (or above-average Jim) trying to make a living, I
guess.  I expect the FlexeLint licensing policies are costing Gimpel
customers.  I'm beginning to think it's not costing him any profits,
however...

[...]

>>>Cranking up the warnings on gcc does a fair job.
>>
>> Compilers are much better at this than they were when I began using
>> PC-lint.  But they still don't come close.
>
>CFLAGS :=  -D__USE_GNU=1 -D__USE_MISC=1 -D__USE_BSD=1 -D_GNU_SOURCE=1 -O -Wall -W -DNDEBUG
>CFLAGS +=  -Wcast-align -Wpointer-arith -Wbad-function-cast -Wsign-compare
>CFLAGS +=  -Wno-unused -Wundef  -Wmissing-noreturn -Wmissing-format-attribute 
>
>does pretty well for me.

Probably fair, as Grant said.

>
>Mind you, I have a .splintrc in every directory as well - typical
>contents:

[...]

I don't know much about splint, so this didn't mean much to me.  The
project.lnt file for the project I'm current working on looks like
this:

--- begin included file ---
// Compiler definitions
//
c:\lint\lnt\co-gnu3.lnt         // 2.95.3 and later
-si2                            // Change int and ptr sizes for AVR
-sp2

//c:\lint\lnt\au-misra.lnt        // MISRA checking

// Header file locations
//
-i"C:\WinAVR\avr\include"
-i"C:\WinAVR\lib\gcc\avr\3.4.1\include"

// Project definitions
//
-d__AVR_ATmega16__          // Compiler does this from MCU definition
-dOSC_FREQ000000         // Make file derives this from HZ
-dDBUG=0
-dHIGH_CAP=0
-dDISABLE_VBATT_TEST=0

// Error reporting suspension
//
// Some GNU macros return a value from bracketed expressions.
//
-emacro(155,__LPM*)

// Interrupt vectors must be extern but aren't referenced
//
-esym(714,__vector_*)
-esym(765,__vector_*)

// Global macros in header files might not all be used
// Global typedefs might not all be used
//
-esym(755,EE_*,IO_*,ADC_*,ADCSR_*)
-esym(756,S8,U8,S16,U16,S32,U32)

--- end included file ---

The options probably do what you expect.  The -esym options disable a
message for particular symbols, and -emacro disables the message
during the invocation of the specified macros.  

For example, I have a header file that defines typedefs for S8, U8,
etc.  Nowhere in this project do I have a signed 32-bit integer.
Without the last line in the file shown above, I'd get a message 756
(global typedef not referenced) message for S32.  

I don't have the MISRA checking options enabled (yet -- they're
commented out).  We're at the prototype stage at this point.

>(Running splint against kernel sources is ... interesting)

The subtitle of Chapter 14 (Living with Lint) of the PC-lint/FlexeLint
manual is "Don't Kill the Messenger."

Regards,

                               -Úve
-- 
Change is inevitable, progress is not.

_____________________________
 Free pdf download: Introduction to Embedded Systems.

| | 2 | |