summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReinhard Arlt <reinhard.arlt@t-online.de>2015-02-18 11:33:47 +0100
committerReinhard Arlt <reinhard.arlt@t-online.de>2015-02-18 11:33:47 +0100
commitf026f4e99c2ce82a3ed11cf9d231497d42fd21da (patch)
treed9917b4ca9e5fe232ac563c48d7a7fab9b2d1581
parentff3a9dcb20b5e24541dbbe8251005ff7acb7e269 (diff)
parentc1d95319cf000662e4e8b28c41d4e2e18a67752b (diff)
downloadgpsd-f026f4e99c2ce82a3ed11cf9d231497d42fd21da.tar.gz
Merge branch 'master' of git://git.sv.gnu.org/gpsd
-rw-r--r--www/hacking.html.in33
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>