The solution the book provides is:

: N-MAX ( -- n ) 0 BEGIN 1+ DUP 0< UNTIL 1- ;

All I can say is, on a 64-bit platform, which I'm on, this approach seems like a good way to set your cpu on fire lol.
1
0
1
The Solution I came up with (which I bet many, many readers before me came up with this same better solution, or maybe even one better?), is this:

: N-MAX 1 BEGIN 2* dup 0 < UNTIL 1 - . ;

That is, keep shifting bits left until overflow then subtract 1.
1
0
1
Which means that instead of making my cpu process 9223372036854775807 stack pops, 9223372036854775807 additions, and 9223372036854775807 stack pushes (ok, optimizing compiler might keep the 'stack' values in registers since there's only like 3, instead I do 64 shifts and a subtract. I wonder if
1
0
0