ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #picolisp
patrixl has quit [Read error: Connection reset by peer]
orivej has quit [Remote host closed the connection]
orivej has joined #picolisp
patrixl has joined #picolisp
_whitelogger has joined #picolisp
aw- has joined #picolisp
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #picolisp
jibanes has quit [Ping timeout: 256 seconds]
jibanes has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
Regenaxer has joined #picolisp
orivej has joined #picolisp
orivej has quit [Quit: orivej]
orivej has joined #picolisp
rob_w has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
razzy has joined #picolisp
<tankf33der> i gonna reimplement this one.
<beneroth> yeah
<beneroth> funny that it claims that lib/rsa.l is in the standard picolisp distro
<Regenaxer> there used to be @lib/rsa.l in the distro
<Regenaxer> not sure if still there
<Regenaxer> hmm, no, removed
<beneroth> why?
<Regenaxer> Not efficient
<beneroth> ah yes, I have it in an older copy with stamp 10sep17abu
<Regenaxer> I used it in the early 2000 years in prodcction
<Regenaxer> yeah
<beneroth> so with more computing power, it's not practical anymore, yeah? :P
<Regenaxer> In fact, I wrote it first for 8kLisp in the 1980s
<Regenaxer> right
<beneroth> maybe you could have move it into opt/ or misc/
<Regenaxer> it has only use as a demo
<beneroth> ah okay
mtsd has joined #picolisp
anjaa has left #picolisp [#picolisp]
<tankf33der> http://ix.io/2w0Y
<tankf33der> enough for pil21 testing.
<Regenaxer> yes, good. Passes?
<tankf33der> sure. :)
<Regenaxer> perfect :)
<tankf33der> testing bigint math for java 8 and 14 over Picolisp.
<Regenaxer> using Ersatz?
<tankf33der> no, via pipe.
<tankf33der> like all before.
<beneroth> Regenaxer, I guess it is alright to use (+Aux) merely to give sort order to an index, even when not planning to use (aux) on that index, aye?
<beneroth> Regenaxer, could I combine +Hook2 and +Aux (the +Aux to influence the global index) ? or better keep separate in two properties? e.g. ((+Hook2 +Aux +Ref +Link) (aux-arg) NIL (link-arg) hook2)
<beneroth> I understand that the +Hook2 argument comes always last in the parameter list?
<Regenaxer> tankf33der, ok
<Regenaxer> beneroth, yes, just for search order is fine
<Regenaxer> I find a use case here with +Aux
<Regenaxer> (rel shop (+Hook +Aux +Ref +Link)
<Regenaxer> (id)
<Regenaxer> NIL (+Shop) )
<Regenaxer> oops
<Regenaxer> +Hook
<Regenaxer> :)
<Regenaxer> +Hook2 does not especially appear in the last position
<Regenaxer> Like all others, from left to right
<Regenaxer> I find:
<Regenaxer> (rel ts (+Hook2 +Ref +Bag)
<Regenaxer> shop
<Regenaxer> ((+Date))
<Regenaxer> ((+Time)) )
<Regenaxer> In the example in the ref
<beneroth> the example in ref for +Hook2 looked so to me: (rel nm (+Hook2 +IdxFold +String) 3 shop) # Global and shop-local index
<Regenaxer> (rel nm (+Hook2 +IdxFold +String) 3 shop)
<Regenaxer> it is last because the rest is NIL
<Regenaxer> :)
<Regenaxer> Same example
<beneroth> but the 3 belongs to +IdxFold, no?
<beneroth> why not 3 shop
<beneroth> eh
<beneroth> why not: shop 3)
<Regenaxer> Ah, hmm
<Regenaxer> +Hoo2 does not take any
<Regenaxer> Is the example wrong perhaps?
<Regenaxer> and 'shop' is ignorid
<Regenaxer> ed
<Regenaxer> it is taken from an old project, obsolete meanwhile
<beneroth> I think the example is wrong
<Regenaxer> yeah
<beneroth> thanks for your help
<Regenaxer> I have not used +Hook2 recently
<Regenaxer> Can you check a little? Then I fix the example
<beneroth> yeah will
<Regenaxer> but it indeed seems wrong
<Regenaxer> ok, thanks!!
<Regenaxer> Good that you found that
<beneroth> my first use of +Hook2
<Regenaxer> :)
<Regenaxer> I used it very seldom
<beneroth> yeah. special case
<beneroth> but good one
<beneroth> to have
<beneroth> afk a while
<Regenaxer> ok :)
<Regenaxer> hmm, no, the example is right!
<Regenaxer> the hook is passed in the index class initializer as normal
<Regenaxer> So 'shop' is needed here
<Regenaxer> Sorry the confusion!
mtsd has quit [Quit: mtsd]
<tankf33der> jDK 8,11,14 - OK
<Regenaxer> :)
<tankf33der> pil21 ok too.
<Regenaxer> good news
<tankf33der> next: rosettacode.org/wiki/Lah_numbers
<Regenaxer> tough
rob_w has quit [Quit: Leaving]
<tankf33der> done.
<Regenaxer> wow, fast
<tankf33der> http://ix.io/2w1B
<tankf33der> now tab usage which i need to think about :)
<Regenaxer> Looks good
<Regenaxer> What if 'fact' would be non-recursive?
<Regenaxer> Doesn't look nice
<Regenaxer> well, (apply * (range 1 N)) looks nice, but is expensive
<Regenaxer> a loop cannot made nice I think
<tankf33der> recursion is ok here in general. let it be.
<Regenaxer> yeah
<beneroth> Regenaxer, so IdxFold takes both arguments, the Hook and the 3 ?
<beneroth> and +Hook/+Hook2 takes no arguments. this way around, eh?
<Regenaxer> yep
<beneroth> thx
<Regenaxer> +Hook2 uses the value from +IdxFold
<Regenaxer> and +Hook too
<Regenaxer> well, +Hook is a different beast
<Regenaxer> It is a prefix to a +Link or +Joint
<Regenaxer> i.e. another object
<Regenaxer> and +Hook2 is a prefix for an index class
<beneroth> +Hook +Joint is good?
<beneroth> T
<Regenaxer> yes
<beneroth> ah yes, because +Hook is only preparing it, not having any direct effect
<Regenaxer> T
<beneroth> thank you :)
<beneroth> I think (+Hook +Joint) is a bit redundant
<beneroth> might be useful in some cases, though
<Regenaxer> I would not say redundant, they address different issues. But not so often used here
<beneroth> T
<Regenaxer> In fact I find only a single case
<Regenaxer> afp
<tankf33der> http://ix.io/2w1R
<tankf33der> full solution.
razzy has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
<Regenaxer> ret
<beneroth> ret :)
orivej has quit [Ping timeout: 258 seconds]
<beneroth> Regenaxer, just FYI: tomorrow I will not participate (not because of PilCon, but schedule conflict)
<Regenaxer> oh, a pity!
<beneroth> :) in two weeks I will be in again
<Regenaxer> good :)
<beneroth> maybe I can even prepare something until then, lets see...
<Regenaxer> You know most of pil anyway, so not much for you new at PilCon
<beneroth> true, though often discussions are interesting.
<Regenaxer> T
<beneroth> as long as it is on topic. if there are no topics, I would just finish it earlier. better a short and good pilcon than a long boring on-sided one, I think.
<beneroth> that is kinda the point of a regular meeting, I'd say
<beneroth> hm
<beneroth> I still plan on doing documentation on ht lib.
<beneroth> but I guess the main use of ht is for http servers, not so much more. though can serve to explain pil shared libs mechanic.
<beneroth> oh
<beneroth> Regenaxer, you should to talk on httpGate
<beneroth> but maybe not tomorrow, I want to be there for that one
<Regenaxer> Interestong
<Regenaxer> ing
<beneroth> but this is a topic which regularly spawns questions on the ML, so might be a good topic for pilcon, especially if you announce it on ML before pilcon
<Regenaxer> I'm writing ht for pil21 these days
<beneroth> I mean just recently we had a question about httpGate
<beneroth> hehe nice :)
<Regenaxer> long time that I did not look at it
<Regenaxer> yes, httpGate
<beneroth> any changes you are planning to make? or just implementation for pil21 ?
<beneroth> @ht
<Regenaxer> No changes at the moment
<beneroth> I see no need for any changes afaik
<Regenaxer> great
<beneroth> the chunk output is a nice one :)
<Regenaxer> It just worked, so ok ;)
<Regenaxer> T
<beneroth> just how software should be!
<beneroth> just working.
<Regenaxer> I have Prin and Fmt so far
<Regenaxer> Fmt was today
<Regenaxer> Next is Pack
<beneroth> if your software needs updates (which are not new features), then you didn't do it perfectly...
<beneroth> nice
<Regenaxer> right
<Regenaxer> What troubles me more is PilBox
<Regenaxer> Fredrik helped me
<beneroth> easier in (I keep forgetting the name for your llvm dsl.. pilsource?) than in pilAsm ?
<beneroth> ok
<beneroth> yeah you know I thought for a while that this might escalate into an issue...
<Regenaxer> hmm, no good name yet
<beneroth> you know now what to do?
<Regenaxer> just "pilSrc" ?
<beneroth> yeah
<beneroth> or pilLLVM
<beneroth> too many L's
<Regenaxer> Yes, first step, but I need more tips
<beneroth> xD
<Regenaxer> :)
<beneroth> ok
<beneroth> so.. pilbox can survive this EEE move?
<Regenaxer> I think it will, but a lot of work I'm afraid
<Regenaxer> But I need it
<Regenaxer> so no other way
<beneroth> yeah I know
<beneroth> a bummer
<Regenaxer> T
<beneroth> I haven't had time yet to even boot my new pinephone
<Regenaxer> oh
<Regenaxer> but you have it already?
<beneroth> will have to play a bit around with it, and with the librem 5 phone (other linux phone, even more FOSS/user control focused) which I maybe receive in November or so
<beneroth> yeah it arrived
<beneroth> ordered like 2 weeks ago
<Regenaxer> keep us up to date!
<beneroth> current order opportunity is already for a newer version
<beneroth> I try, insofar as I am up to date in this things ^^
<Regenaxer> good
<beneroth> maybe early next year or spring we could meet IRL, I could come to Bavaria or so.. then I can show you this devices
<beneroth> dunno, lets see
orivej has joined #picolisp
<Regenaxer> great!
<beneroth> :)
<beneroth> btw. Regenaxer did you ever think about optimizing (+Ref +Bool), (+Key +Bool) ?
<beneroth> not done to keep index structures all the same way?
<beneroth> or not worth it?
<Regenaxer> (+Key +Bool) makes no sense, right?
<Regenaxer> +Ref could be optimized
<beneroth> partially... it makes sense that only a single object may have the Bool on T
<beneroth> it makes sense to declare that, I mean
<beneroth> but not as index, really
<Regenaxer> ok
<beneroth> or well, could be a single property instead of a tree root node
<Regenaxer> T
<beneroth> there is worth in keeping those structures uniform, then they need no special handling in access and gc functions
<beneroth> Regenaxer, I have a ((+Aux +Ref +Link) (a b c)) relation
<beneroth> can I use (iter) on this relation to update the properties a, b, c ?
<beneroth> (they're all NIL previously)
<Regenaxer> I would not use iter or scan
<beneroth> or will this change my iter structure during iteration, eh?
<Regenaxer> as the update change the index while it is iterated
<Regenaxer> not sure what happens
<beneroth> ok, so (mapc '((This)) (collect ..)) better, right?
<beneroth> ok
<beneroth> good :)
<Regenaxer> yes
<beneroth> glad I asked :)
<Regenaxer> On the safe side :)
<beneroth> T
<beneroth> and am I right in my assumption that (mapc) is a bit faster than (for) ?
<beneroth> (no loop cancel conditions, etc)
<Regenaxer> No, for should be faster
<Regenaxer> No function call overhead
<Regenaxer> unless you mapc an SUBR
<Regenaxer> (mapc print List
<Regenaxer> )
<beneroth> oh okay
<beneroth> good to know!
<Regenaxer> :)
<beneroth> Regenaxer, do you have an example for select/3 involving a +Hook in the generator clause?
<beneroth> just if you have one lying around, no need to craft one, I think
<Regenaxer> I think I surely have
<Regenaxer> also in gui
<Regenaxer> Not much difference
<Regenaxer> just an additional arg
<beneroth> ok
<beneroth> good, no need to search one
<beneroth> thanks :)
<Regenaxer> Can't search atm
<beneroth> np
<beneroth> don't
<beneroth> else I will ask again
<Regenaxer> We are sitting with the neighbors :)
<beneroth> good, enjoy!
<tankf33der> optimize today's function.
<tankf33der> now 4x faster.
<tankf33der> http://ix.io/2w3K
<Regenaxer> wow, 4 times?
<tankf33der> benchmark code included.
<tankf33der> scroll list to integer.
<tankf33der> was suspicious all day long.
<beneroth> wow
<tankf33der> will replace.
<Regenaxer> Sorry, still with neighbors, consumed lots of wine, beer, schnaps
<beneroth> nothing to say sorry for :)
<Regenaxer> :)
<beneroth> Regenaxer still here, by chance?
<beneroth> ok nvm :)
* beneroth wonders about bool/3
aw- has quit [Quit: Leaving.]