01:29
libertas has quit [Ping timeout: 246 seconds]
01:53
libertas has joined #picolisp
04:20
<
tankf33der >
i could run rsa under profiler. never tried before.
04:21
<
tankf33der >
this is good way to try, right?
04:24
aw- has joined #picolisp
05:06
<
Regenaxer >
Good morning!
05:08
<
Regenaxer >
I found that the profile does not give good relative timings. I would do it manually, testing typical calls (with such big numbers) in separate loops
05:08
<
Regenaxer >
Really interesting why pil64 is so much slower. Looks likee something is wrong
05:22
<
Regenaxer >
Best is a dividing search. Pick parts of the program, e.g. _prim?
05:24
<
Regenaxer >
If still a big difference, look at **Mod or longRand etc.
05:24
<
Regenaxer >
I think in the end it is a single complex function like '/'
05:48
<
tankf33der >
i will try
06:01
orivej has joined #picolisp
06:09
<
tankf33der >
on server difference is 2x.
06:09
<
Regenaxer >
Another hardware?
06:11
<
tankf33der >
yea, not cheap laptop.
06:12
<
Regenaxer >
quite a big difference
06:17
<
tankf33der >
found this code is ~4x slower on pil64.
06:17
<
Regenaxer >
yeah, **Mod
06:18
<
Regenaxer >
getting closer
06:20
<
tankf33der >
checking loop itself, maybe all these check to T and NIL is slow in loop-do looping
06:20
<
Regenaxer >
good idea
06:22
rob_w has joined #picolisp
06:23
mtsd has joined #picolisp
06:27
mtsd has quit [Client Quit]
06:36
<
Regenaxer >
Still debugging DB in pil21, keeps crashing
06:44
<
tankf33der >
% is slower.
06:45
<
Regenaxer >
so division
06:49
<
Regenaxer >
I need to check what pil64 does
06:49
<
Regenaxer >
must be sub-optimal
06:50
<
Regenaxer >
thanks!
06:50
<
Regenaxer >
In any case good to know that pil21 is better! :)
06:53
michelp has quit [Ping timeout: 260 seconds]
06:53
<
Regenaxer >
Is it also a lot slower for small bignums?
06:53
<
Regenaxer >
i.e. numbers with more than 18 digits but not very big?
06:54
<
tankf33der >
for what operations ?
06:54
<
Regenaxer >
probably the same for /
06:55
<
tankf33der >
the same.
06:55
<
tankf33der >
proved.
06:55
<
Regenaxer >
So any bignum
06:55
<
Regenaxer >
bignum division
06:56
michelp has joined #picolisp
06:57
<
tankf33der >
for 18 digits % and / bench is the same.
06:58
<
tankf33der >
the only place i know where pil64 is faster than pil21 is fibo
06:58
<
Regenaxer >
for less than 18 pil64 is faster I presume?
06:58
<
tankf33der >
the same numbers.
06:58
<
tankf33der >
for 18 digits % and / bench is the same.
06:58
<
tankf33der >
not faster.
06:59
<
Regenaxer >
I think pil64 is faster for all Lisp interpreter operations
06:59
<
tankf33der >
in practical real tasks pil21 is faster or the same :)
06:59
<
tankf33der >
+- 5-20% is ok.
07:00
<
Regenaxer >
in praxis no problem at all
07:00
<
Regenaxer >
One small drawback is larger stack consumption
07:01
<
Regenaxer >
About double I estimate
07:01
<
Regenaxer >
other memory usage is exactly the same
07:02
<
Regenaxer >
Double stack usage for saved Lisp data, plus a little for function call overhead
07:02
<
Regenaxer >
But this may be optimized away by 'opt'
07:02
<
Regenaxer >
OK, first I must continue with DB
07:03
<
Regenaxer >
it is still messy
07:04
<
Regenaxer >
and at the same time I'm extending Vip to support the 'edit' functionality of old pil, to assist in DB inspections
07:04
<
Regenaxer >
both goes hand-in-hand
07:21
rob_w has quit [Quit: Leaving]
07:21
rob_w has joined #picolisp
08:02
rob_w has quit [Quit: Leaving]
08:02
rob_w has joined #picolisp
08:52
Blue_flame has quit [Quit: killed]
09:15
Blue_flame has joined #picolisp
09:19
Blue_flame has quit [Remote host closed the connection]
09:23
Blue_flame has joined #picolisp
09:57
aw- has quit [Quit: Leaving.]
10:14
mtsd has joined #picolisp
10:19
DKordic has quit []
10:51
<
Regenaxer >
Cool! DB reading work
10:53
<
Regenaxer >
DB can be browsed with (vi (list *DB))
10:53
<
Regenaxer >
or shortcuts like (v {1} {B7})
10:57
<
tankf33der >
i got issue
10:57
<
tankf33der >
in pil21
10:57
<
tankf33der >
]# pil21 inc-db.l
10:57
<
tankf33der >
[inc-db.l:15] !? (arg)
10:57
<
tankf33der >
NIL -- Small number expected
10:58
<
tankf33der >
arg without argument is not supported
10:58
<
tankf33der >
and i see calling arg in lib/db.l
10:59
<
Regenaxer >
yes, I know
10:59
<
Regenaxer >
trivial fix
11:00
<
Regenaxer >
I'm still at the raw db
11:00
<
Regenaxer >
lib/db.l not used yet
11:01
<
Regenaxer >
Must test borderline issues, like maintaining block chains
11:01
<
Regenaxer >
probably still many bugs
11:02
<
Regenaxer >
chains of used and unused blocks, this is noy visible on the Lisp level
11:02
<
Regenaxer >
tankf33der, I think you tested 'zap' already, right?
11:03
<
tankf33der >
only trivial case:
11:03
<
tankf33der >
(test "abc" (str? (zap 'abc)))
11:04
<
Regenaxer >
'zap' on externals is harder
11:04
<
Regenaxer >
commit etc, free list
11:04
<
Regenaxer >
I hope 'dbck' is correct
11:05
<
Regenaxer >
the difference of used plus unused blocks and free blocks must be the total size
11:29
orivej has quit [Quit: orivej]
11:30
orivej has joined #picolisp
11:40
orivej has quit [Ping timeout: 265 seconds]
12:49
rob_w has quit [Quit: Leaving]
12:52
<
tankf33der >
native on SPARC platform
12:53
<
Regenaxer >
byte order
12:54
<
Regenaxer >
you read a long as 8 bytes?
12:54
<
tankf33der >
first time on non x86 platform.
12:54
<
Regenaxer >
That's not portable
12:55
<
Regenaxer >
The result is correct
12:55
<
Regenaxer >
It has big endian then
12:55
<
Regenaxer >
The test must know the endianess
12:55
<
Regenaxer >
or find out :)
12:56
<
Regenaxer >
by reading a number
12:56
<
Regenaxer >
So it is the first pil on a sparc?
12:56
<
Regenaxer >
pil64 I mean
12:57
<
Regenaxer >
We had ppc64, which is also big endian I think
12:57
<
tankf33der >
this is pil21.
12:58
<
tankf33der >
==================
12:58
<
tankf33der >
$ pil21 +
12:58
<
tankf33der >
: (scl 6)
12:58
<
tankf33der >
-> atan2
12:58
<
tankf33der >
: (load "@lib/math.l")
12:58
<
tankf33der >
: (pow 2.0 3.0)
12:58
<
tankf33der >
!? (%@ "pow" 1000000 "Dbl1" "Dbl2")
12:58
<
tankf33der >
Bad ffi
12:58
<
tankf33der >
==================
12:59
<
tankf33der >
all works expect system specific parts - later, networking, io, native, ....
13:00
<
Regenaxer >
But native works, no?
13:00
<
tankf33der >
as showen here, works in general.
13:01
<
Regenaxer >
simple one
13:01
<
Regenaxer >
"Bad ffi" is from ffiPrep()
13:02
<
Regenaxer >
ffi lib function ffi_prep_cif()
13:02
<
Regenaxer >
hmm, but 'later' is not system specific
13:03
<
Regenaxer >
basically it is 'pipe'
13:03
<
tankf33der >
also doest not work.
13:04
<
tankf33der >
its ok, just for FYI.
13:04
<
Regenaxer >
I wonder what might be system dependent in 'pipe'
13:05
<
Regenaxer >
it is plain Unix
13:05
<
Regenaxer >
pipe + fork
13:05
<
Regenaxer >
Does it give problems at build time or at runtime?
13:06
<
Regenaxer >
So it works?
13:07
<
tankf33der >
just test fails.
13:07
<
tankf33der >
plio also fails.
13:08
<
tankf33der >
crashing, i would say.
13:08
<
Regenaxer >
Did it build right out of the box?
13:09
<
Regenaxer >
What was necessary to change?
13:09
<
Regenaxer >
Makefile?
13:12
<
tankf33der >
in general problem is to run llc without -relocation-model=pic
13:13
<
Regenaxer >
But we have it in Makefile
13:13
<
tankf33der >
i have to remove it.
13:14
<
tankf33der >
for solaris for picolisp binary.
13:14
<
Regenaxer >
or you mean "in general the solution is to run llc without"
13:14
<
Regenaxer >
and ASYNC
13:15
<
Regenaxer >
we had that issue also in pil64
13:37
<
Regenaxer >
The ASYNC issue could better be handled in the Kakefile
13:38
<
Regenaxer >
Define it as zero
13:39
mtsd has quit [Quit: Leaving]
14:45
jibanes has quit [Ping timeout: 272 seconds]
14:47
jibanes has joined #picolisp
15:40
<
beneroth >
Regenaxer, can you come into jitsi for a short test?
15:44
<
Regenaxer >
yes, I'm just starting up
17:43
orivej has joined #picolisp
19:02
orivej has quit [Ping timeout: 272 seconds]
19:02
orivej has joined #picolisp
19:08
<
tankf33der >
this pseudocode on top with nested loops makes me crazy, cant imagine how to reduce and implement.
19:32
<
Regenaxer >
Two nested loops?
19:32
<
Regenaxer >
Is the exit from the inner loop the problem?
19:34
<
Regenaxer >
"clean" way is (loop ... (T (loop ...
19:34
<
Regenaxer >
Simpler is perhaps (catch NIL (loop ... (loop ... (throw) ..
19:51
<
tankf33der >
maximum before was double nested, requires huge amount of energy.
20:38
viaken has quit [Quit: reboot]
20:39
viaken has joined #picolisp
21:14
orivej has quit [Ping timeout: 264 seconds]