HOME
Generic Build Support (GBS) - User Manual
Development
Contents
Description
Description
This section describes some basic development aspects of GBS.
Choice of Language
GBS is written in Perl.
I needed a language that will execute exactly the same on various computers (at that time Windows and
UNIX), without being depended on installed libraries.
When I started developing GBS in 2001 the best choice was Perl.
Should I start developing now I would probably chose Python.
Quality Assurance
perlcritic
Running perlcritic yields the following results for this release:
----
312 files.
5,591 subroutines/methods.
80,490 statements.
135,270 lines, consisting of:
14,806 blank lines.
32,794 comment lines.
68 data lines.
85,256 lines of Perl code.
2,346 lines of POD.
Average McCabe score of subroutines was 3.26.
0 violations.
Violations per file was 0.000.
Violations per statement was 0.000.
Violations per line of code was 0.000.
----
I do use function prototypes, but only with $ and @. Never with \.
Checks
A proprietary program is used to detect:
- Unused 'use' statements
- Missing 'use' statements
- Unused functions
- Missing functions
- Unused global variables
- Active (Uncommented) trace/debug statements
Help
Command help (--help) and
Help File All Commands are created directly from the code so there is
no mismatch.
Design Considerations
- It must be fast.
Hence command-line interface and no frills.
Some standard packages duplicated and reduced to cater only for Windows and Linux.
The Perl code is 'compiled' replacing comment-lines by blank lines, making the files smaller and
reducing disk I/O.
- Only dependent on plain Perl with standard packages.
No extra CPAN installs. No separately installs of any utilities (except of course your compiler-suite).
- Must run exactly the same on Windows and Linux
- Straight forward. No exceptions
- TBS
History
GBS is based on experiences with 'CCS', the Code Control System developed at Philips Medical Systems in
1985. Designed and developed by Randy Marques.
Used for over 15 years by a variety of small and large projects and still in use for maintenance projects
It was Written for VAX/VMS in DCL.
GBS development started in 2001 on WinXp
Now available for Windows 10 and Linux.
Written mainly in Perl to ensure exact same functionality on all platforms.
Only dependent on Perl. No special privileges required.
development.html
Copyright © Randy Marques of Randy Marques Consultancy - All rights reserved