Re: [Chicken-users] Is Android not unix?

2018-11-19 Thread Thomas Chust
On Mon, 19 Nov 2018 13:19:10 +0300 Kristian Lein-Mathisen 
 wrote:

> [...]
> I was trying tweetnacl on Termux on Android 9 and ran into this problem:
> 
> u0_a191@localhost ~/p/chicken-5.0.0>
> csi -R tweetnacl -p '(make-symmetric-sign-key)'
> 
> Error: (read-u8vector) bad argument type - not a port: #f
> 
> 
> This happens because tweetnacl creates its current-entropy-port using
> cond-expand with unix, windows or else, the latter which is yielding the #f
> error above.
> [...]

Hello,

interesting, I would have thought that Android would qualify as a
unixoid system since it has a Linux kernel! If there is some other
feature identifier I should use that would indicate the system likely
supports /dev/random, please let me know so I can adapt the tweetnacl
code.

Anyway, as a workaround to get tweetnacl running, you can simply do

  (current-entropy-port (open-input-file "/dev/random"))

by hand.

I hope that helps :-)

Ciao,
Thomas


-- 
Time only waits for black holes.


pgpURM2wMZJF9.pgp
Description: PGP signature
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Is Android not unix?

2018-11-19 Thread Kristian Lein-Mathisen
Hi guys,

I was trying tweetnacl on Termux on Android 9 and ran into this problem:

u0_a191@localhost ~/p/chicken-5.0.0>
csi -R tweetnacl -p '(make-symmetric-sign-key)'

Error: (read-u8vector) bad argument type - not a port: #f


This happens because tweetnacl creates its current-entropy-port using
cond-expand with unix, windows or else, the latter which is yielding the #f
error above.

I found this surprising as I'd expect Android to be unix. As I'm sure you
know, it isn't:

csi -p '(cond-expand (unix 1))'

Error: during expansion of (cond-expand ...) - no matching clause in
`cond-expand' form: unix
u0_a191@localhost ~/p/chicken-5.0.0>
csi -p '(cond-expand ((or android unix) 1))'
1

But tweetnacl isn't much use without current-entropy-port, and I hove its
/dev/random requirement:

u0_a191@localhost ~/p/chicken-5.0.0>
dd if=/dev/random bs=1 count=12 ^/dev/null |xxd -p
44ca8634752db3243ac222f0

So, my questions:

1. Is Android non-unix intentionally?
2. Could tweetnacl cond-expand with (or unix android) so it works
out-of-the-box on Android?


Thanks in advance,
K.
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users