Comparación de un número de 64 bits con signo utilizando operaciones de 32 bits en Lua

Estoy usando Lua en Redis y quiero comparar dos números con signo de 64 bits, que se almacenan en dos cadenas de 8 bytes / caracteres.

¿Cómo puedo compararlos con las bibliotecas disponibles en Redis?http://redis.io/commands/EVAL#available-libraries

Me gustaría saber>/< y== cheques. Creo que esto probablemente implica extraer dos números de 32 bits para cada int de 64 bits, y hacer algunos cálculos inteligentes con ellos, pero no estoy seguro.

Tengo un código para hacer esto menos abstracto.a0, a1, b0, b1 son todos los números de 32 bits utilizados para representar los msb y lsb de dos int 64s con signo de 64 bits:

-- ...
local comp_int64s = function (a0, a1, b0, b1)
    local cmpres = 0
    -- TOOD: Real comparison
    return cmpres
end
local l, a0, a1, b0, b1
a0, l = bit.tobit(struct.unpack("I4", ARGV[1]))
a1, l = bit.tobit(struct.unpack("I4", ARGV[1], 5))
b0, l = bit.tobit(struct.unpack("I4", blob))
b1, l = bit.tobit(struct.unpack("I4", blob, 5))
print("Cmp result", comp_int64s(a0, a1, b0, b1))

EDITAR: código agregado

Respuestas a la pregunta(2)

Su respuesta a la pregunta