On Fri, May 19, 2017 at 10:34 AM, Alex Shinn <xxxxxx@gmail.com> wrote:

Arithmetic is just (define fx+ +), which is
a builtin opcode (I think a wrapped primitive would be slower, and don't
want to add new opcodes).

I thought you might implement in C a quasi-unsafe operation that just ignores the fixnum bit(s) and ignores overflow and such problems (quasi because the result is always a fixnum, but may be the wrong fixnum).

Chicken with the numbers egg:

(* 61686018427387903 61686018427387903) => 3805164869424039937540927630737409

(fx* 61686018427387903 61686018427387903) => 4524554095277506561  ;wrong answer, but a fixnum

(fx* 'foo 'bar) => 4611445176959230848   ;extremely wrong, but still a fixnum

OK, but draft #5 on the site refers to fx=.

That will be fixed in the final draft.

-- 
John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
        Only do what only you can do.
        --Edsger W. Dijkstra's advice to a student in search of a thesis