diff options
author | Reinhard Arlt <reinhard.arlt@t-online.de> | 2015-02-18 11:33:47 +0100 |
---|---|---|
committer | Reinhard Arlt <reinhard.arlt@t-online.de> | 2015-02-18 11:33:47 +0100 |
commit | f026f4e99c2ce82a3ed11cf9d231497d42fd21da (patch) | |
tree | d9917b4ca9e5fe232ac563c48d7a7fab9b2d1581 | |
parent | ff3a9dcb20b5e24541dbbe8251005ff7acb7e269 (diff) | |
parent | c1d95319cf000662e4e8b28c41d4e2e18a67752b (diff) | |
download | gpsd-f026f4e99c2ce82a3ed11cf9d231497d42fd21da.tar.gz |
Merge branch 'master' of git://git.sv.gnu.org/gpsd
-rw-r--r-- | www/hacking.html.in | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/www/hacking.html.in b/www/hacking.html.in index 1c23520a..bbe36258 100644 --- a/www/hacking.html.in +++ b/www/hacking.html.in @@ -169,6 +169,11 @@ designing for the less predictable laptop environment, we cover both. But it is not by accident that the source code can be built with support for only one single GPS type compiled in.</p> +<p>We have an important secondary interest in supporting network time +service. Using GPSD to monitor a GPS with pulse-per-second capability +is a perfectly servceable and unbeatably cheap way to provide Stratum +I time, and we expect this use case to increase.</p> + <p>While we will support survey-grade GPSes when and if we have that hardware for testing, our focus will probably remain on inexpensive and readily-available consumer-grade GPS hardware, especially GPS @@ -197,7 +202,7 @@ initializations required.</p> <p>Features (such as GPS type or serial-parameter switches) that would require the user to perform administrative actions to enable location service will be rejected. GPSes that cannot be autoconfigured will -not be supported. 99% of the GPS hardware on the market in 2005 is +not be supported. 99% of the GPS hardware on the market in 2015 is autoconfigurable, and the design direction of GPS chipsets is such that this percentage will rise rather than fall; we deliberately choose simplicity of interface and zero administration over 100% @@ -346,7 +351,7 @@ go through the following checklist:</p> include the test changes in your patch, and (c) <b>explain in detail why the regression broke</b> in your change comment.</li> -<li>Check that the patched code displays no warnings when you run '<code>make +<li>Check that the patched code displays no warnings when you run '<code>scons splint</code>' (see <a href="http://www.splint.org">the Splint website</a> for further description of this tool if you don't already know about it). Yes, tweaking your code to be splint-clean is @@ -445,10 +450,10 @@ admin space) is a crash landing.</p> <h2 id="statics">Don't create static variables in the libraries!</h2> <p>Don't create static variables in library or driver files; it makes -them non-reentrant<span class="strikeout"> and hard to light</span>. In practice, this means -you shouldn't declare a static in any file that doesn't have a main() -function of its own, and silly little test mains cordoned off by a -preprocessor conditional don't count.</p> +them non-reentrant<span class="strikeout"> and hard to light</span>. +In practice, this means you shouldn't declare a static in any file +that doesn't have a main() function of its own, and silly little test +mains cordoned off by a preprocessor conditional don't count.</p> <p>Instead, use the 'driver' union in gps_device_t and the gps_context_t storage area that's passed in common in a lot of the calls. @@ -494,6 +499,8 @@ arrays, type-generic math, or type complex. Think carefully before introducing these and don't do it without discussion on the development list first.</p> +<p>The one non-C99 feature we allow is anonymous unions.</p> + <p>Do not use GCC extensions, as the code should compile with any sane C99 compiler (specifically including clang). Do not use glibc-specific features, as <code>gpsd</code> is portable to multiple @@ -588,12 +595,6 @@ clients accept this switch to enable progress message from the libgps code; you can use it, for example, to watch what the client-side parser for the wire protocol is actually doing.</p> -<p>The parsing of GPGSV sentences in the NMEA driver has been a -persistent and nasty trouble spot, causing more buffer overruns and -weird secondary damage than all the rest of the gpsd put together. -Any time you get a bug report that seems to afflict NMEA devices -only, suspicion should focus here.</p> - <h2 id="profiling">Profiling</h2> <p>There is a timing policy flag in the WATCH command that will cause @@ -827,7 +828,7 @@ passed through, raw, to the GPS.</p> gpsd.c itself. It had to tolerate clients connecting and disconnecting at random times, and the GPS being unplugged and replugged, without leaking file descriptors; also arrange for the GPS -to be powered up when and only when clients are active.</p> +to be open when and only when clients are active.</p> <p>The special control socket is primarily there to be used by hotplug facilities like Linux udev. It is intended to be written @@ -878,8 +879,8 @@ settings.</p> zero-configuration as possible. Under most circumstances, it doesn't require either the GPS type or the serial-line parameters to connect to it to be specified. Presently, here's roughly how the autoconfig -works. (I say "roughly" because this sequemce may leave out -recently-added binary packet types.)</p> +works. (I say "roughly" because at any given time this sequence may +leave out recently-added binary packet types.)</p> <ol> <li>At each baud rate <code>gpsd</code> grabs packets until the @@ -1112,7 +1113,7 @@ examples of how to do this.</p> <h2 id="newdoc">Documentation</h2> <p>Once you have your JSON emitted by the daemon and parsed by libgps, -you must deascribe it on the gpsd_json(8) page. This is +you must describe it on the gpsd_json(8) page. This is <em>required</em>. The job isn't finished until the documentation is done.</p> |