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
<freemint> razzy the best and time proven system we have are humans.
ubLIX has quit [Quit: ubLIX]
<beneroth> humanity without humans is kinda pointless
shpx has quit [Excess Flood]
shpx has joined #picolisp
xkapastel has quit [Quit: Connection closed for inactivity]
DerGuteMoritz has quit [Ping timeout: 252 seconds]
DerGuteMoritz has joined #picolisp
mario-goulart has quit [Ping timeout: 264 seconds]
shpx has quit [Quit: Textual IRC Client: www.textualapp.com]
orivej has quit [Ping timeout: 244 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 250 seconds]
<Regenaxer> freemint: I think it is extremely underestimate the dangers of climate change. i believe it is the greatest current threat to our civilization, greater than anything else (though it would trigger all other threads like wars)
<Regenaxer> s/extremely underestimate/extremely dangerous to underestimate/
<razzy> i would not say climate change. i would say unstable ecosystem we live in. which include every non sustainable use of resources.
<Regenaxer> Sure, all eco systems. But climate change has the potential to kill humanity
<Regenaxer> Climate is a labile system
<Regenaxer> Note that the issue is not new to me. I'm aware of it since 1975
rob_w has joined #picolisp
<razzy> to say global warming caused by men will kill humanity is a stretch in several direction. to say disturbed planetary ecosystem will reduce quality of life to midle ages is pretty accurate to me.
<Regenaxer> ok
<Regenaxer> "several direction" is right
<razzy> and we are really trying to push the limits to the maximum :]
<razzy> which i am not ok with
<Regenaxer> Trying to find maximal stupidity
<razzy> well, impossible job imho :]
<Regenaxer> sigh
<razzy> i do not understand your sigh
<Regenaxer> I agreed that it is impossible
mario-goulart has joined #picolisp
<beneroth> razzy, what does it matter if the current accelerated (the speed is the main problem) climate change is human made or not - the environment our civilisation requires is at great danger! it's not about morale (as opponents want it to make), its about surviving as civilisation!
<Regenaxer> T
<beneroth> the point of "man-made" means only that as we caused it, we likely could also change it to the better.
<beneroth> if the current accelerated climate change would have been caused by big volcanic eruptions - then we also had to do something about it, no?
<Regenaxer> In any case we will need some geo-engineering in the long range
<Regenaxer> It is very dangerous too
<beneroth> yep
<Regenaxer> The safest is to reduce greenhouse gas production, and somehow reduce the gases already in the atmosphere (build up forests etc)
<beneroth> but yeah lets view the agreeing findings of 97% of all scientists working in that area as a mere opinion. and most findings are sourced from multiple separate sources, e.g. you can see the ice melting in the measurements of the earth gravity measurement satellites, as the local loss of mass is influencing the strength of local gravity field!
<beneroth> aye
<beneroth> settling on another planet is also not a feasible solution - we can't yet terraform another planet and we will not develop the necessary technologies quickly enough (if ever) - we will need to terraform earth (geo-engineering). on earth we have our tools, resources and the easiest (compared to space) logistics.
<Regenaxer> haha, yes
freemint2 has joined #picolisp
freemint has quit [Ping timeout: 268 seconds]
freemint2 has quit [Ping timeout: 250 seconds]
<beneroth> also the IPCC (the intergovernmental Panel on Climate Change at the UNO) which makes these reports the international politics about climate change is based on ... those guys are rather conservative, meaning careful about their conclusions. they mostly work with the more optimistic data models. in recent years the data got more accurate so their warnings get more specific and actually more pessimistic ("its worse than we thought"). but all in all this are c
<beneroth> areful (accuracy) optimists - it's likely that it they we're quite to optimistic in their models and outlooks.
<Regenaxer> yes, there are factors accelerating warming (decreasing albedo, freed methane ) and factors slowing it (more clouds), and it was not clear which factors are stronger
<beneroth> :)
<Regenaxer> :)
freemint has joined #picolisp
xkapastel has joined #picolisp
alexshendi has quit [Ping timeout: 252 seconds]
aw- has joined #picolisp
<freemint> Regenaxer climate change is scary, because: - it has an exponential characteristic, - it is an factor in many things that we do not want - factors contributing to it are going to get worse.
<freemint> Did i miss any mayor problem with climate change
<Regenaxer> No, correct
<freemint> climate change will be responsible for less than 6 million people per year around 2100?
<freemint> (out of a 12 Milliarden Population)
freemint has quit [Ping timeout: 245 seconds]
freemint has joined #picolisp
tankf33der has joined #picolisp
<tankf33der> morning
<tankf33der> Regenaxer:
<tankf33der> centos and openbsd crash too
<Regenaxer> Hi tankf33der!
<Regenaxer> Thanks for testing :)
<Regenaxer> Also such small RAM?
<tankf33der> traceAll output
<Regenaxer> hmm, I see, not very helpful
<Regenaxer> Is there swap space?
<tankf33der> yeap
<Regenaxer> On Android with 2 GiB it crashes too of course
<Regenaxer> and RAM size?
<Regenaxer> oh!!
<Regenaxer> hmm, no ;)
<tankf33der> now 4GB ram, and 4GB swap
<Regenaxer> Still a bit small
<Regenaxer> did you try the smaller numbers I sent by mail?
<Regenaxer> Smaller chunks make it a lot slower though
<tankf33der> this is not a memory issue
<tankf33der> even this crash
<tankf33der> :
<tankf33der> one (create) call.
<Regenaxer> This is not the issue
<Regenaxer> one call is enough
<Regenaxer> (gc ...), then fork
<Regenaxer> multiplies mem needs
<Regenaxer> try smaller chunks as I wrote
<Regenaxer> hundred thousand instead or a million or so
<tankf33der> added (gc 100 50) on top
<tankf33der> crash.
<Regenaxer> hmm
<tankf33der> one (create) call
<freemint> pil versoin?
<Regenaxer> Can you single-step to see where it crashes?
<tankf33der> freemint: latest.
<tankf33der> (create '(+Cls) 'key '(num str)
<tankf33der> (list 1 1 "a") )
<tankf33der> it crash here
<Regenaxer> oh, not the newest pil?
<Regenaxer> No, *where* in 'create'
<Regenaxer> 'create' is only in newest pil
<tankf33der> # pil +
<tankf33der> 18.12.11
<tankf33der> -> (18 12 11)
<tankf33der> : (version)
<tankf33der> : (== 1 1)
<tankf33der> -> T
<tankf33der> :
<tankf33der> latest pil
<Regenaxer> good
<Regenaxer> Does it get until 'later'
<Regenaxer> ?
<Regenaxer> ie to the forking?
<Regenaxer> After 'later' it is difficult to step, due to multi processes
<Regenaxer> Insert (msg 1) or so
<Regenaxer> On 2 G it crashes here in (gc)
<Regenaxer> cause here the copy-on-write happens
<Regenaxer> until then memory is shared by the processes
<Regenaxer> But with swap it should not crash, just slow down
<tankf33der> found
<Regenaxer> Cool, what is it?
<tankf33der> # pil ./create-test.l +
<tankf33der> Segmentation fault (core dumped)
<tankf33der> [root@archlinux tankfeeder]#
<tankf33der> starting
<tankf33der> so it crash before (msg 'while-lock)
<Regenaxer> oh!
<tankf33der> yes!
<Regenaxer> The 'lock'?
<Regenaxer> How can that be?
<Regenaxer> 'lock' works in the unit tests, right?
<Regenaxer> Any idea? If not, comment the 'lock' part, not needed here
<tankf33der> testing.
<Regenaxer> I have a new idea for 'create' to make it even faster
<Regenaxer> testing
<Regenaxer> also simpler and smaller
freemint has quit [Ping timeout: 250 seconds]
<tankf33der> comment while lock
<tankf33der> and got another error.
<tankf33der> does example needs (pool) call ?
<Regenaxer> oh!! hahaha
<Regenaxer> Did not think of that
<Regenaxer> This explains all!
<tankf33der> come on :)
<Regenaxer> (de main ()
<Regenaxer> (call "mkdir" "-p" (setq *Pool "db/create/"))
<Regenaxer> (push '*Bye '(call "rm" "-r" *Pool))
<Regenaxer> (push '*Fork '(del '(call "rm" "-r" *Pool) '*Bye))
<Regenaxer> (pool *Pool *Dbs) )
<tankf33der> add to (create) reference
<Regenaxer> I think this is known
<Regenaxer> It is not meant as a full program
<Regenaxer> as all ref examples
<Regenaxer> Only to explain the 'create' call itself
<Regenaxer> The above code in 'main' is highly app dependent
<Regenaxer> so should not be in these code fragments
rob_w has quit [Ping timeout: 272 seconds]
<tankf33der> now it hangs.
<tankf33der> somewhere.
<Regenaxer> disk trashing?
<tankf33der> no
<tankf33der> one create call
<tankf33der> @lib/test.l passed
<Regenaxer> good
rob_w has joined #picolisp
<Regenaxer> Start with small numbers
<Regenaxer> I recommend at least 8 GiB, no chance?
<tankf33der> no chance.
<Regenaxer> hmm
<tankf33der> is pool calls correct ?
<Regenaxer> did you remove the DB dir between tests?
<Regenaxer> see "rm" above
<Regenaxer> yes, pool looks good
<tankf33der> now remove dir.
<tankf33der> the same.
<tankf33der> should exit immediately, right ?
<Regenaxer> yeap
<Regenaxer> Can you track it down?
<Regenaxer> ah!
<Regenaxer> It will never stop of course
<Regenaxer> (list ...) is called again and again!
<tankf33der> thats why, generator. ok
<Regenaxer> yeah
<Regenaxer> (co ..) is the easiest
<tankf33der> testing.
<Regenaxer> or (out "a" (pr (1 1 "a"))) (in "a" (create ... (rd))
<tankf33der> no
<Regenaxer> or (setq L '((1 1 "a"))) (create ... (pop 'L))
<tankf33der> hang with co
<tankf33der> or, no
<tankf33der> exit
<tankf33der> works now.
<tankf33der> trying (for Key 1000000
<tankf33der> works.
<Regenaxer> Great!
<tankf33der> trying for Key 10M
<tankf33der> it eats 500MB, why i need 8GB machine ?
<Regenaxer> If you use the full (gc ...)
<Regenaxer> it is a lot faster
<tankf33der> sure. ok.
rgrau` has joined #picolisp
<tankf33der> pool dir increase 4MB/s
<Regenaxer> good
<Regenaxer> 10 Mio is a good chunk size
<Regenaxer> With 100 it gets slower
<Regenaxer> better call ten times with 10 Mio objects
<Regenaxer> 10 Mio take 5 to 6 minutes here
<tankf33der> while noise, but ok.
<Regenaxer> noise?
<tankf33der> i dont understand picodb and frustrating.
<Regenaxer> It is not so very complicated I think
<Regenaxer> You understood everything else of pil!
<tankf33der> eh.
<tankf33der> see you.
tankf33der has left #picolisp [#picolisp]
freemint has joined #picolisp
<razzy> what if i need very long list with same weird s-expression. ( (2 2) (2 2) (2 2) ... ) can i abuse (need ) ?
<razzy> Regenaxer: i would really use your touch :]
<Regenaxer> Not 'need' I would say. 'make'
<Regenaxer> (make (do 1000000 (link (2 2))))
<razzy> thx :]
<Regenaxer> 'need' works in this way only with atomic items
<Regenaxer> (need 'cnt ['num|sym]) -
<razzy> (2) is not atomic i guess
<Regenaxer> right
<Regenaxer> must go, bbl
<razzy> thx :]
<razzy> imho need could use the functionality with lists as it uses atomic :]
<razzy> maybe it would be more expensive?
freemint2 has joined #picolisp
freemint has quit [Ping timeout: 268 seconds]
<Regenaxer> ret
<Regenaxer> For 'need'? Nope
<Regenaxer> Look at the function signature
<razzy> signature?
<Regenaxer> T
<razzy> what do you mean?
<razzy> like commented mark of creator?
<Regenaxer> How 'need' is specified
<Regenaxer> Non-atomic arguments already have another meaning
<Regenaxer> (need 'cnt ['lst ['any]]) -> lst
<razzy> i know the specification do not allow it
<Regenaxer> Why do you ask then?
<razzy> imho it should be changed somewhen in future
<Regenaxer> No good idea
<Regenaxer> What is bad with 'make'?
<Regenaxer> The main purpose is the one in (need 'cnt ['lst ['any]])
<Regenaxer> So the atomic arg is just a convenience
<Regenaxer> If you blow up 'need', we don't need it
<razzy> hmm hmm, i will submit to your experience for now :]
<Regenaxer> If not, what would be your proposal? ;)
<Regenaxer> Just abandon the main purpose?
<Regenaxer> the one in (need 'cnt ['lst ['any]]) ?
<Regenaxer> What to do with these then:
<Regenaxer> : (who 'need)
<Regenaxer> -> (pad "status" "incNum" "form" align center (get> . +Chart) (T . +Chart) pico)
<Regenaxer> and probably many other use cases in existing applications
<Regenaxer> I think I don't even find a single use case which is *not* (need 'cnt 'lst)
<razzy> i would loosely suggest (need 'cnt 'lst 'lst) (i am not familiar what all parenthesis means in your description syntax) first 'lst wouls be infinite repetable structure. last 'lst would be start or finish of list
orivej has joined #picolisp
<razzy> if i want to test how big structure would be, i would use it quite often
<Regenaxer> (need 'cnt 'lst 'lst) is implied by (need 'cnt ['lst ['any]])
<Regenaxer> What is bad with 'make'?
<Regenaxer> for such tests?
<razzy> i do not understand. how could i not write (need something) and get ((2) (2) (2) ... )
<razzy> if it is implied
<Regenaxer> : (need 5 NIL (2))
<Regenaxer> -> ((2) (2) (2) (2) (2))
<razzy> you said something else before :]
<Regenaxer> I meant that an atomic *second* arg won't work
<razzy> hmm, my question was if i could abuse (need). which you said no i need to use make
<Regenaxer> Yeah, sorry, so you *can* use 'need'
<razzy> thx
<Regenaxer> But 'make' is the general case
<razzy> thx for explanation
<Regenaxer> :)
<razzy> my experiments with need failed before :;]
<Regenaxer> No worry :) Experimenting is always good
<razzy> not if cost is high
<razzy> why is need written in C?
<Regenaxer> It is written in asm
<razzy> i am sorry, i meant not in lisp
<Regenaxer> Well in Lisp you can write it directly and more flexibly with 'make'
<Regenaxer> The point of primitives is that they are primitive
<Regenaxer> and thus fast
freemint has joined #picolisp
freemint2 has quit [Ping timeout: 272 seconds]
freemint has quit [Ping timeout: 244 seconds]
<razzy> sorry for annoyace :]
rob_w has quit [Quit: Leaving]
freemint has joined #picolisp
<Regenaxer> No annoyance :)
freemint2 has joined #picolisp
freemint has quit [Ping timeout: 272 seconds]
freemint2 has quit [Ping timeout: 245 seconds]
freemint has joined #picolisp
ubLIX has joined #picolisp
freemint2 has joined #picolisp
freemint has quit [Ping timeout: 246 seconds]
freemint has joined #picolisp
<freemint> Regenaxer What was your insight?
<Regenaxer> Into what?
freemint2 has quit [Ping timeout: 260 seconds]
<freemint> into speeding up create
<freemint> ( i think that create is way to generic for a verb )
<Regenaxer> ah, no, was not good - I keep the current version
<Regenaxer> Yes, perhaps, especially iit has different meaning in SQL ;)
<Regenaxer> But what else to "create" explicitly in Lisp?
<freemint> some of my code?
<freemint> and i am nlt
<Regenaxer> that's "build" or "generate"
<Regenaxer> ok, away again
<freemint> on another note it may be worth thinking about standardizing some picolisp verbs (loosely).
<freemint> Like "init" or "go"
freemint2 has joined #picolisp
freemint has quit [Ping timeout: 268 seconds]
orivej has quit [Ping timeout: 240 seconds]
<Regenaxer> freemint2, indeed, quasi-standards
xificurC has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
xificurC has joined #picolisp
xificurC has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
DKordic has joined #picolisp
orivej has joined #picolisp
xkapastel has quit [Quit: Connection closed for inactivity]
alexshendi has joined #picolisp
ubLIX has quit [Quit: ubLIX]
<beneroth> hi all
freemint has joined #picolisp
<DKordic> Greetings beneroth, and everyone.
freemint2 has quit [Ping timeout: 250 seconds]
<freemint> Hi DKordic
<beneroth> Greetings DKordic ! How are you doing?
<beneroth> Guten Abend freemint :) Wie gehts?
<DKordic> beneroth: Schemeing as always :3 . You? How is Your progress on Module System?
<beneroth> razzy, the [square brackets] in the reference means a parameter is optional. same style is used in shell and man documentation in unix
<freemint> I could imagine a yearly released growing "Best practices for PicoLisp". It could serve multiple purposes and could have sections like best practices in PicoLisp for self learning and teaching picolisp tool.
* DKordic Schemes, DKordic lives.
<freemint> Guten Abend, ich bin etwas müde da ich einen Live-Stream aus Japan verfolgt habe. Hatte heute einlege Studentengedankendinge
<beneroth> DKordic, chicken, or which flavour? Doing good, a bit end-of-the-year-/end-of-project-stress. not much progress on the Module System front, though I stop/delay my attempts on a universal package manager for now. I've somewhat implemented a module system for my database/application framework.
<beneroth> freemint, ah thats why you were long up yesterday night? I worked long (well until early), so I'm a bit tired too. In good mood today, though :)
<freemint> Maybe yes. I did forget to make the WLAN out too.
<freemint> thats why my phone was at 15 precent but it was enough to come through the day if i do not use it all the time
<freemint> It was interesting but the more technical talks were not streamed ;( and my recording attempt fell flat
<DKordic> I use PicoLisp the most. Tryed to implement S-Expressions in Forth a few times and failed.
xkapastel has joined #picolisp
<beneroth> interesting
<DKordic> IMHO a Structural Editor, like Paredit, reveals that a refactorization of "read" is needed. Why wouldn't "read" be provided by yet another lib?
<beneroth> I'm using paredit (the one in emacs?)
<alexshendi> DKordic: Can you elaborate? How and why would you want to refractor "read"?
<beneroth> T, same question
<DKordic> I think that Paredit should import "apply" the "read" from the implementation, PicoLisp in this case. Don't You agree?
<DKordic> s/import/import and /
<beneroth> your point is that emacs paredit should be extended, and that for that purpose picolisp should be changed?
<beneroth> you can make your own custom "read" implementation, independent/separate of the built-in, would that not suffice?
<beneroth> I'm not sure if I understood correctly
<DKordic> Of course I would make my own. Well Lisp and it's Structural Editor. PicoLisp and Paredit is the closest I have found so far.
<freemint> DKordic i got some ideas how to redesign to the PicoLisp Reader.
<freemint> also the non modularity of the reader is a minor annoyance
<freemint> DKordic are you just thing about implementation changes or a revamp of PicoLisp test representation as a whole?
<DKordic> freemint: What do You have in mind?
<freemint> i am a little bit annoyed by the read macro. I find it very unlispy and it does not work with 'edit at all.
<freemint> But i am undecided what way to take:
<freemint> 1. Leave the reader as is mostly and just add comments and read macros into the sexpr structure
<DKordic> You mean read-macros are desugared to SExps, like "quote"?
<freemint> 2. Put everything into S-expr and provide an "add your own read time function that is triggered when the supplied condition is met" call back
<freemint> yes
<freemint> for example ((# comment 3 ()) 1 2 3) would be ( 1 2 3 )
<freemint> 3. Switch to general grammar based approach
<freemint> each varmint got it's tradeoff i am currently thinking 1 is best
<DKordic> freemint: I think we are about to reinvent "eval-when". Here is my prefered read-macro for comments: "[de nop [] NIL] ~[nop ... ~[! "What now? "]]".
<DKordic> Have You thought about "module" FEXPR?
freemint has quit [Ping timeout: 252 seconds]
ubLIX has joined #picolisp
orivej has quit [Ping timeout: 250 seconds]
freemint has joined #picolisp
<freemint> DKordic the problem with the nop read macro is that it leaves and nil lying around (de fun (N (# Number of servers) M (# ....)) would make problems but could be quiet nice to document all the short Parameters
<freemint> DKordic pointer to resources on eval when?
<DKordic> [>_ : '[car ~[nop ...] . cdr] -> (car. cdr)]
<freemint> how would >_ work?
<DKordic> I use it as a mark-up in this channel :3 . At one point I had it as my alternative to "test".
<freemint> no i mean in implementation?
<DKordic> Implementation of "eval-when"? In PicoLisp (undefined)?
<freemint> What is [>_ * ~(nop 2 3) 3] when it resolves to (>_ * nop 2 3 3) where do you know where to cut?
<DKordic> I don't understand You.
<freemint> [>_ * ~(nop 2 3) 3] resolves after read macro expansion to (>_ * NIL 3). here was my mistake in understanding i though it expands to (>_ * nop 2 3 3)
<DKordic> OK
<freemint> good night more opinions tomorrow or so
<DKordic> Good night.
freemint has quit [Ping timeout: 260 seconds]
orivej has joined #picolisp
ubLIX has quit [Quit: ubLIX]
<razzy> beneroth: thx for clarification
ubLIX has joined #picolisp