Re: Random_seed initialization
The problem is that Y_random_seed drops all its arguments and left nothing on top of the stack so when you call it as a function (without storing the result in a variable) the interpreter "displays" the result (the topmost stack item) which is the function itself and thus re-execute random_seed without any argument this time which reset the seed to a default value as you correctly guessed.
The fix is easy: just discard:
at the last line of function Y_random_seed in std1.c (line number 1120). Then the result of calling random_seed will be its argument (whatever it is). Another possibility could be to push a boolean (scalar int) to indicate whether the call was successful or not.
I am not allowed to push changes into Yorick repository so I left Dave decides if it is worth fixing this bug...