  We examine the performance of the single-mode GKP code and its concatenation
with the toric code for a noise model of Gaussian shifts, or displacement
errors. We show how one can optimize the tracking of errors in repeated noisy
error correction for the GKP code. We do this by examining the
maximum-likelihood problem for this setting and its mapping onto a 1D Euclidean
path-integral modeling a particle in a random cosine potential. We demonstrate
the efficiency of a minimum-energy decoding strategy as a proxy for the path
integral evaluation. In the second part of this paper, we analyze and
numerically assess the concatenation of the GKP code with the toric code. When
toric code measurements and GKP error correction measurements are perfect, we
find that by using GKP error information the toric code threshold improves from
$10\%$ to $14\%$. When only the GKP error correction measurements are perfect
we observe a threshold at $6\%$. In the more realistic setting when all error
information is noisy, we show how to represent the maximum likelihood decoding
problem for the toric-GKP code as a 3D compact QED model in the presence of a
quenched random gauge field, an extension of the random-plaquette gauge model
for the toric code. We present a new decoder for this problem which shows the
existence of a noise threshold at shift-error standard deviation $\sigma_0
\approx 0.243$ for toric code measurements, data errors and GKP ancilla errors.
If the errors only come from having imperfect GKP states, this corresponds to
states with just 4 photons or more. Our last result is a no-go result for
linear oscillator codes, encoding oscillators into oscillators. For the
Gaussian displacement error model, we prove that encoding corresponds to
squeezing the shift errors. This shows that linear oscillator codes are useless
for quantum information protection against Gaussian shift errors.
