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
aw- has joined #picolisp
aw- has quit [Quit: Leaving.]
casaca has quit [Remote host closed the connection]
casaca has joined #picolisp
orivej has joined #picolisp
<Regenaxer> Hmm - I added balance, ssl and httpGate
<Regenaxer> But now I get a strange error during make
<Regenaxer> It works fine after 'make clean'
<tankf33der> released?
<Regenaxer> But at the next 'make' it complains "../lib/sysdefs: file not recognized: file format not recognized"
<Regenaxer> yes
<Regenaxer> It seems it tries to *link* lib/sysdefs
<Regenaxer> "clang-10: error: linker command failed with exit code 1"
<Regenaxer> I *hate* Makefiles
<Regenaxer> ../lib/sysdefs is there after first build
<Regenaxer> Why does it mess with it?
<tankf33der> checking, have the same error here
<Regenaxer> thanks
<Regenaxer> What changed basically is thi "all:" target
<Regenaxer> to sub-targets
<Regenaxer> What's wrong with that?
<Regenaxer> I don't understand why it looks *into* sysdefs and then tries to link it
<tankf33der> clang picolisp.s ../lib/sysdefs ../bin/picolisp ../lib/ext.so ../lib/ht.so -o picolisp
<tankf33der> ../lib/sysdefs: file not recognized: file format not recognized
<tankf33der> make: *** [<builtin>: picolisp] Error 1
<tankf33der> clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
aw- has joined #picolisp
<Regenaxer> exactly
orivej has quit [Ping timeout: 272 seconds]
<tankf33der> at the same time this is correct:
<tankf33der> clang -w -o ../bin/ssl ssl.c -lssl -lcrypto
<tankf33der> clang -w -o ../bin/httpGate httpGate.c -lssl -lcrypto
<tankf33der> $ make gate
<Regenaxer> Why does it *link* sysdefs?
<Regenaxer> it is the target
<Regenaxer> I don't understand
rob_w has joined #picolisp
<Regenaxer> Before it was
<Regenaxer> all: $(LIB)/sysdefs $(BIN)/picolis ...
<Regenaxer> now it is
<Regenaxer> all: picolisp tools gate
<Regenaxer> These are dependencies, not link rules, right?
<tankf33der> googling. all these unknown to me.
<Regenaxer> :)
<Regenaxer> When building PilBox and Penti, I don't use Makefiles any more. Just a simple shell script. We should kick out the Makefile
<Regenaxer> The whole build takes only a few seconds anyway
<tankf33der> fixed.
<Regenaxer> o
<tankf33der> works now, checking patch.
<Regenaxer> What is the reason?
<Regenaxer> I want to understand
<aw-> Regenaxer: hi
<Regenaxer> Hi aw-
<aw-> what do you mean kick out the Makefile?
<Regenaxer> abandon it
<Regenaxer> have a 10-line shell script instead
<Regenaxer> much clearer
<Regenaxer> and more flexible
<Regenaxer> tankf33der, can you explain why we get the above error?
<aw-> hmm.. i don't know if "more flexible" is a good argument against makefiles.. if you use that flexibility then you'll just end up re-creating a half-baked Make
<Regenaxer> I thought at least I understand how makefiles work, even if I dont like them
<tankf33der> http://ix.io/2zXE
<tankf33der> this is a patch
<Regenaxer> aw-, no, a script is a full language
<tankf33der> steps to test:
<tankf33der> apply a patch
<tankf33der> make clean
<tankf33der> make
<tankf33der> make clean
<Regenaxer> conditions etc
<tankf33der> rm ../bin/ssl
<tankf33der> make
<tankf33der> ====
<tankf33der> all works.
<aw-> Makefiles have conditions
<aw-> if you write a shell script, it will need to accept arguments
<aw-> to mimic 'make clean' etc
<tankf33der> The .PHONY rule keeps make from doing something with a file named clean.
<Regenaxer> or several scripts
<aw-> exactly
<aw-> ugh
<aw-> Make is fine
<aw-> i don't think it's a good idea to replace it with a shell script
<Regenaxer> But these dependencies make it all very unreada
<aw-> yeah.. maybe that can/should be cleaned up
<Regenaxer> A script is a lot shorter
<Regenaxer> Make is needed for speed only
<Regenaxer> to avoid building things which are ready already
<Regenaxer> thats why it is so messy
<aw-> ok so if i already compiled pil21 with ./customscript.sh;
<aw-> and then 2 weeks later i re-run ./customscript.sh
<aw-> will it rebuild it again?
<Regenaxer> the script simply builds, yes
<aw-> the answer is yes, unless you write conditions for that
<Regenaxer> It does what you tell it to do
<aw-> but it's already built, why build again?
<Regenaxer> it is a second
<aw-> Make handles all that custom logic you dont need to code again in a shell script
<Regenaxer> as I say, it is for speed
<tankf33der> does patch is ok ?
<Regenaxer> if build takes a night
<Regenaxer> I want to *understand*
<Regenaxer> reading the link
<aw-> i see
<Regenaxer> "file targets"
<Regenaxer> why is sysdefs not a "file targets"?
<Regenaxer> aw-, can you explain?
<aw-> no idea, i wasn't following the discussion
<Regenaxer> tankf33der, I dont like it
<aw-> just jumped in to defend make ;)
<Regenaxer> why is 'picolisp' PHONY?
<Regenaxer> by definition it is *not*
<Regenaxer> 'clean' is phony
<tankf33der> because picolisp is deps of all
<tankf33der> as goal.
<Regenaxer> hmm
<Regenaxer> why not also 'clean' then?
<Regenaxer> 'clean' must be declared also PHONY
<Regenaxer> I *hate* it
<Regenaxer> such a mess
<Regenaxer> And what has that to do with trying to link sysdefs?
<Regenaxer> It makes no sense at all to me
<Regenaxer> aw-, please defend 'make' and explain ;)
<Regenaxer> Phony or not, "picolisp: $(LIB)/sysdefs .." says this target depends on the FILE sysdefs
<Regenaxer> and the file *is* there! So why does it try to link it???
<tankf33der> its not
<tankf33der> remove .SILENT and show the log
<tankf33der> remove .SILENT and see the log
<tankf33der> and add .PHONY
<Regenaxer> No, I understand *that*
<Regenaxer> But is there a file which conflics?
<tankf33der> i think no
<Regenaxer> I understand if there is a file with the name of a target
<Regenaxer> but do we have such one?
<Regenaxer> OK, I remove the sub-targets
<Regenaxer> Works now without PHONY
<Regenaxer> Released
<tankf33der> let me check again
emacsomancer has quit [Ping timeout: 256 seconds]
<tankf33der> all fine, let it be.
<Regenaxer> Thanks for the help!
emacsomancer has joined #picolisp
<Regenaxer> Still, I'd like to *understand*
<Regenaxer> there is no file "picolisp", or "gate" or "tools", right?
<tankf33der> right
<Regenaxer> What exactly goes on?
<Regenaxer> And why does it try to *link* sysdefs?
<Regenaxer> Anyway, I'll test real applications now
<Regenaxer> and then switch locally (non-production) to pil21
<tankf33der> my ISSUE.md file is empty now, except one record.
<tankf33der> I've switched to pil21 everywhere in several weeks ago.
<Regenaxer> Cool! :)
<Regenaxer> What is "Raw list of appended"?
rob_w_ has joined #picolisp
<Regenaxer> Which is this one record?
<Regenaxer> BTW, I found and fixed one error yesterday: The sign was lost when reading a bignum in PLIO format
<Regenaxer> It happened in lib/test, with (pipe (pr -1152921504606846976) (rd))
<Regenaxer> Was probably also in your list
rob_w has quit [Ping timeout: 256 seconds]
<tankf33der> nope
<Regenaxer> ah, ok, fixed anyway
<tankf33der> i dont have special cases for plio.
<Regenaxer> yes, that's where I looked
<Regenaxer> "Raw list of appended"
<tankf33der> i just appended new items to list without sorting.
<tankf33der> now its empty.
rob_w has joined #picolisp
<tankf33der> all fixed and works.
<Regenaxer> Good news :)
<tankf33der> and no known issues for pil21.
<Regenaxer> Let's see, there must be more
<tankf33der> you will find them because you have the biggest code base.
rob_w_ has quit [Ping timeout: 240 seconds]
<Regenaxer> I hope so
<Regenaxer> But probably you have the more diverse code base, with all those tasks
<Regenaxer> My apps are all similar
<Regenaxer> Lets see how to port PilBox to pil21
<Regenaxer> Have not looked at that yet
<Regenaxer> toolchains in NDK
<Regenaxer> supports llvm I believe
<Regenaxer> Since a while startpage.com ceased to work with w3m
<Regenaxer> What do you all use?
<Regenaxer> I used duckduckgo before that
<Regenaxer> any better idea?
rob_w_ has joined #picolisp
rob_w has quit [Ping timeout: 264 seconds]
rob_w_ has quit [Quit: Leaving]
rob_w has joined #picolisp
<tankf33der> Regenaxer: start use month digit in (version)
<tankf33der> testing llvm versions: 10 and 9 ok
<tankf33der> 11 ok
<Regenaxer> Better keep the real date in version, as in pil64
<Regenaxer> So until January there is only test
<tankf33der> what is the problem now to return this list from version? (21 10 0)
<Regenaxer> Then the version on first of January is *smaller*
<Regenaxer> Could be (21 -3 0) ;n
<tankf33der> ok
<tankf33der> i thought (20 10 0) :)
<Regenaxer> This conflicts with pil64
<tankf33der> ok
<Regenaxer> I thought I stop pil64 end of this year
<Regenaxer> hopefully ;)
<Regenaxer> I see no reason to continue pil64, right?
<tankf33der> i would not.
<Regenaxer> ... at least I PilBox is ported
<Regenaxer> s/I/if
<tankf33der> since no community you are free to kill any branch you want :)
<Regenaxer> true :)
<Regenaxer> anybody can continue if she likes
<aw-> but native is so much slower in pil21
<aw-> that's a pretty bad tradeoff if you kill pil64
<Regenaxer> It is indeed slower, but this diff is small in comparison to execution time of 'native' in general
<aw-> at least until processing power catches up to current pil64 speeds
<Regenaxer> We tested with a minimal call
<aw-> right
<aw-> Regenaxer: unrelated question
<Regenaxer> and you are right, pil21 is all a little bit slower
<aw-> in (native) how do I read 8 bytes as big integer?
<Regenaxer> It does that automatically
<aw-> with (rd 8) i can do it easily, but now i'm using (native "@" "read" ...)
<Regenaxer> ah
<aw-> err sorry not 8 bytes
<aw-> 16 bytes
<Regenaxer> 'read'
<aw-> how do i convert them to a big integer?
<Regenaxer> There is no way
<aw-> series of bytes
<Regenaxer> 'native' is a C interface
<Regenaxer> and C has no concept of 16 byte numbers
<aw-> i know
<aw-> thats why i ask you
<Regenaxer> yeah
<Regenaxer> you could read two 8-byte numbers
<Regenaxer> shift and or
<Regenaxer> hmm, wait
<Regenaxer> in pil21 there is 'plio' now
<Regenaxer> if the number is plio ;)
<aw-> if I have a list, ex: (1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0) - how do i convert that to integer?
<aw-> assuming each element is a value between 0-255
<Regenaxer> you can loop 16 times with shift and OR
<Regenaxer> (let N 0 (do 16 (setq N (| (>> -8 N) (++ Lst]
<Regenaxer> or with 'sum'
<aw-> should give: 1339612589501985528160868052938784768
<aw-> loop 16 times... yeah that would work
<aw-> how does (rd) do it?
<aw-> (rd 16)
<Regenaxer> if you read 8-bytes numbers, no loop is needed
<Regenaxer> 'rd' does the same
<Regenaxer> shift and or
<aw-> i see
<aw-> ok thanks
<Regenaxer> :)
<Regenaxer> But 'rd' does it on a lower level
<Regenaxer> it does not shift the whole (big) number
<Regenaxer> it does it word by word, then links
<Regenaxer> like all bignum operations in pil
<Regenaxer> So a 16-loop is very expensive
<Regenaxer> creates garbage on each iteration
<Regenaxer> better two 8-byte-numbers combined
<aw-> right
<Regenaxer> less garbage
<aw-> makes sense
_whitelogger has joined #picolisp
orivej has joined #picolisp
Blue_flame has quit [Quit: killed]
Blue_flame has joined #picolisp
casaca has quit [*.net *.split]
casaca has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
<Regenaxer> Has anybody an opinion about ScreeGo?
<Regenaxer> A VidConf especially suitable for code screen sharing
orivej has joined #picolisp
<tankf33der> Regenaxer: all these sharing technics unknown to me
<Regenaxer> to me too
<beneroth> screego is new to me
<beneroth> I don't see any red flags after reading the website and having a short look on the github
<Regenaxer> I wonder how it feels like
<beneroth> I might make a test installation
<Regenaxer> Just sharing text screens can be done with tmux and SSH
<Regenaxer> Cool!
<beneroth> well its via browser, therefore WebRTC
<beneroth> (which still is in polishing phase, I would say)
<Regenaxer> yes
<beneroth> and this is only for screensharing, no sound
<Regenaxer> Could be used togiher with Jitsi
<beneroth> T
<beneroth> I still have hopes for big blue button (which is primarily made for school teaching), but installation seems to be a bit more of a tricky endeavor
<Regenaxer> I see
<beneroth> also they lost a lot of my trust recently, it came out their microphone "mute" functionality does only mute on server-side, not on client side. and had a bug which even allowed recording of the "muted" mic stream...
<beneroth> pretty a big conceptual blunder, I think
<Regenaxer> yes
<beneroth> I cannot understand how this is not an obviously bad idea before writing even a single line of code...
<Regenaxer> :)
<beneroth> but then the security WTF of today is an IoT sex toy which defaults to locking-in their users when the server is not reachable. and the server had very obvious security flaws, so all user data was easily obtainable...
<beneroth> (locking-in in the way that a electrical saw or so is needed to ..unlock ones private parts)
<Regenaxer> Sex tool locking-in??
<Regenaxer> oha
<Regenaxer> haha
<beneroth> we live in cyberpunk madness world. plagues. hacked sex gadgets. corrupt politicians and international corporations with more powers than many governments.
<Regenaxer> sigh
<beneroth> so next obvious step should be arcologies: mostly-self-sustaining enclosed building-complexes forming walled cities...
<beneroth> *g*
<Blukunfando> It’s not an obviously bad idea if you plan on exploiting it.
<beneroth> Blukunfando, I don't think the Big Blue Button developers had such plans. They're very close to german CCC/hacker communities and are basically trying to make a well-usable SaaS-Software selling to schools....
<beneroth> like the Zoom use of facebook api (which streams user data to facebook whenever you use the library) was surely not intended spying, just laziness/cost-cutting
<beneroth> but the Zoom connections being insecure and running over chinese servers unless you pay extra for routing-configuration.... that is on purpose
<beneroth> all in all, we probably should stop to differentiate between purpose/evil/lazyness/cost-cutting and incompetence and just treat it all as bad intentions/evil
<beneroth> only way to maybe get some change
<Regenaxer> agreed
<beneroth> but as the government regulations / laws are decades behind, or not enforced (even when applicable), and often only made worse... not much hope
<beneroth> another feature of cyberpunk stories is that for hackers most infrastructure and stuff is quite easily hackable. and in most cases not by some clever scheme, but by buying/stealing some "cyber weapon" to break things open.
<beneroth> which all seemed pretty unrealistic in the 90s when most of this novels were written.. but now they seem more practical by the week...
<beneroth> just find some flaw in the docker base images and you're good...
<Blukunfando> I see.
<beneroth> what is your work environment? you see computer competence there?
<beneroth> I'm not talking about exact knowledge.. but what I find, is utter and complete misconceptions about the very basic concepts and ways thing work
<beneroth> it's just all magic
<beneroth> and even worse: no will, no desire, not even a flick of interest to understand the stuff at least in abstract ways. by people who make the decisions, not just the ground workers busy with other stuff...
<beneroth> even when they have to face the consequences quite directly.
rob_w has quit [Quit: Leaving]