erkin has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 244 seconds]
alexshendi has quit [Ping timeout: 252 seconds]
Nistur has quit [Ping timeout: 246 seconds]
Nistur has joined #picolisp
Fwirt has joined #picolisp
Fwirt has quit [Read error: Connection reset by peer]
mtsd has joined #picolisp
<mtsd>
Good morning!
<Regenaxer>
Good morning mtsd!
<mtsd>
Hello Regenaxer
<Regenaxer>
:)
<beneroth>
Good morning mtsd, Regenaxer :)
<mtsd>
Morning beneroth!
<Regenaxer>
Hi beneroth!
<Nistur>
mornin'
<beneroth>
Hi Nistur
<razzy>
hi
<beneroth>
Hey razzy :)
<Nistur>
o7
<Regenaxer>
Hi Nistur, razzy
<razzy>
o7?
<beneroth>
tiny head and a salut
<beneroth>
apt-get install sl
<beneroth>
sl -alh
<beneroth>
\o/
<Regenaxer>
uh? What is 'sl' good for? :)
<Regenaxer>
"Correct you if you type `sl' by mistake" ?
<Regenaxer>
So sl corrects itself?
<Nistur>
razzy: it's a salute
<razzy>
Nistur: woa, i was expecting right hand
<beneroth>
Regenaxer, it shows an ASCII train when you mistype ls
<razzy>
but 7 is ok :]
<beneroth>
known bug: when you mistype sl as ls, it shows the current directory
<beneroth>
Regenaxer, no other functional use beside making people smile ;-)
<beneroth>
similar to 'apt-get moo'
<Regenaxer>
sick ;)
<beneroth>
you spelled slick wrong :P
<Nistur>
there's a similar thing you can get which, if you type in something it doesn't recognise, or something that isn't installed, it'd do `sudo rm -rf /`
<Regenaxer>
hmm, moo not found
<Regenaxer>
neither Debian nor Termux
<Regenaxer>
nevermind :)
<beneroth>
it's a easter egg of apt-get, not a separate package
<beneroth>
sounds like a pretty crowley-eske approach to teaching...
<beneroth>
Nistur, there was a space invader game implementation which randomly deleted a system file whenever you got hit by an enemy
<beneroth>
was for windows though, afaik
<Nistur>
there's also this http://psdoom.sourceforge.net/ which is fun :P but I'm sure there was one where it showed the filesystem as enemies, and if you shot them, it would delete them
orivej has joined #picolisp
<beneroth>
lol xD
<razzy>
well, it is way to up the stakes,.. permadeath at its best
ubLIX has joined #picolisp
<Nistur>
'hurt me plenty'
<Nistur>
... which I've just found out is a gay sex game
<Nistur>
I MEANT the skill level on Doom, which was obviously more relevant to our current conversation
<Nistur>
I would have gone for 'Ultra-Violence' or 'Nightmare!', but, despite them being higher skill levels, they don't seem as relevant from a system maintenance perspective
<Nistur>
maybe Nightmare!, but that was more ambiguous
<beneroth>
looks a lot like Google wanting to make even more people use their search website as address bar instead of using browsers properly (most non-IT users do already...)
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #picolisp
<Nistur>
beneroth: urgh.
<beneroth>
they even claim safety / anti-phishing reasons, but that is imho complete bs, as that URL meddling just allows more ways to make a site appear like another one
<Nistur>
yup
orivej has quit [Ping timeout: 264 seconds]
<freemint>
morning
<beneroth>
hi freemint
<freemint>
what are you up to recently?
<razzy>
beneroth: T , google is preparing to setup global goverment
<beneroth>
razzy, would not say that, they just want to keep and extend their domination of the internet
libertas has joined #picolisp
<razzy>
beneroth: control communication and coordination and you are doing goverment job
<razzy>
you might as well dismiss goverment at that point
<razzy>
:]
orivej has joined #picolisp
freeemint has joined #picolisp
freemint has quit [Ping timeout: 252 seconds]
mtsd has quit [Quit: Leaving]
_whitelogger has joined #picolisp
ubLIX has quit [Quit: ubLIX]
freeemint has quit [Ping timeout: 246 seconds]
freemint has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
_whitelogger has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
alexshendi has joined #picolisp
erkin has joined #picolisp
freemint has quit [Ping timeout: 252 seconds]
freemint has joined #picolisp
alexshendi has quit [Ping timeout: 245 seconds]
ubLIX has joined #picolisp
alexshendi has joined #picolisp
orivej has quit [Ping timeout: 244 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #picolisp
ubLIX has quit [Quit: ubLIX]
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
orivej has joined #picolisp
ubLIX has joined #picolisp
grp has joined #picolisp
<grp>
*yawn*
<grp>
-_-
<grp>
Regenaxer: ping
<grp>
got fix
<grp>
trivial stuff but still...
<Regenaxer>
Hi grp!
<grp>
src64/mkAsm: /usr/bin/picolisp shouldn't be hardcoded. I know... it's where it should be, but that's only for LSB-compliant distros
<grp>
it better if it's which picolisp >/dev/null
<grp>
and no absolute path for 'pil' either
<grp>
what's with that you may ask... well... I was revising nixos packaging and had to patch that to build correctly
<Regenaxer>
(?) src64/mkAsm has #!/bin/sh
<grp>
no no, the following lines
<Regenaxer>
ah, ok, I see what you mean
<Regenaxer>
yes
<grp>
the first three should be:
<grp>
if which picolisp >/dev/null
<grp>
then
<grp>
pil mkAsm.l "$@"
<grp>
<grp>
and done
<Regenaxer>
hmm, but there may be many
<grp>
many what
<grp>
pil binaries?
<Regenaxer>
it assumes you have a global install from the distro
<Regenaxer>
Thin it tests a local one
<grp>
yeah, and it holds as long as you have /usr/bin in $PATH
<Regenaxer>
yep
<Regenaxer>
no
<Regenaxer>
not in path
<grp>
and in non-LSB distros, $PATH can be stuff like /root/bin:/run/wrappers/bin:/etc/profiles/per-user/root/bin:/root/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin
<Regenaxer>
it calls it absolutely
<Regenaxer>
PATH is not used at all
<grp>
and picolisp is in /nix/store/5nga2bx6jh4f1nq6fg6zr3dr4wj70cdf-picolisp-18.6
<Regenaxer>
well, then change the script
<Regenaxer>
this version is intended for a Linux distro installation
<grp>
I did... but I believe there shouldn't be a hardcoded path. So long as it's in $PATH, should work
<grp>
actually, that's the only way to make it work in nixos, since /nix/store paths are humongous and go over the hashbang length limit
<Regenaxer>
I think the current way is the best
<Regenaxer>
thought about it many times
<grp>
hmm, right... you can't (load ..) that
<Regenaxer>
unix is stupid here
<Regenaxer>
an ancient limitation in hash bangs
<grp>
indeed, hashbang being limited to 128 bytes is idiotic
<grp>
same happens in BSDs
<Regenaxer>
I did not know this limit
<Regenaxer>
I meant the absolute path and the *single* arg
<Regenaxer>
128 might be all right
<Regenaxer>
(I edit in 80 columns usually ;)
<Regenaxer>
Concerning PATH, I have not a single setup where it points to some 'pil' or 'picolisp' except for the global insalls (eg /usr/bin)
<Regenaxer>
install
<Regenaxer>
s
<grp>
yeah... problem is, nixos implements packages as closures, so scripts and stuff deppend on specific package builds, so the shebang for bin/pil is /nix/store/5nga2bx6jh4f1nq6fg6zr3dr4wj70cdf-picolisp-18.6/bin/pil /nix/store/5nga2bx6jh4f1nq6fg6zr3dr4wj70cdf-picolisp-18.6/lib/picolisp/lib.l
<grp>
which goes over the limit and gets truncated
<grp>
so it must be restructured using /bin/sh + exec
<Regenaxer>
oh, I see
<Regenaxer>
Or set a symbolic link
<grp>
in nixos, you could have scripts depending on different picolisp arch (64 / 32) living in the same system with no conflict
<grp>
anyway, I'm not trying to sell nixos
<grp>
just that I stumbled with that problem
<Regenaxer>
I understand
<grp>
and thought... "this shouldn't be hardcodded...."
<Regenaxer>
Well, in case of mkAsm it does not matter much
<grp>
but yes, the (load ...) case breaks with this approach
<grp>
right
<Regenaxer>
it uses normally ../pil mkAsm.l "$@"
<grp>
and it shouldn't matter for anything else to be honest, since hashbangs can just call pil which is just ok
<grp>
and it loads the lib.l
<grp>
so it's all right
<Regenaxer>
yes
<Regenaxer>
for the initial build, it is best to download the pre-built *.s files
<Regenaxer>
after that ../pil is used
freeemint has joined #picolisp
<grp>
I missed those, where are they?
<Regenaxer>
They are listed in INSTALL
<grp>
(I made 2 derivations, one for pil32 to bootstrap, and the standard 64bit)
<Regenaxer>
good, pil32 does not need anything
<Regenaxer>
and then it can build pil64
<grp>
yes, but it pulls a lot of 32bit runtime so I'll rewrite the definitions later to use the .s files
freemint has quit [Ping timeout: 240 seconds]
<Regenaxer>
Which definitions do you mean here?
<grp>
nixos package/derivation definitions
<Regenaxer>
ah
<Regenaxer>
src64 will simply use the .s files and not call mkAsm
<Regenaxer>
src64/Makefile I mean
freemint has joined #picolisp
<grp>
good, so it's a secondary package and done
freeemint has quit [Ping timeout: 252 seconds]
<grp>
(meaning, just need to unpack it into src64 and make)
<grp>
that simplifies things
<Regenaxer>
yeah
<grp>
when I installed picolisp in nixos I found it to be outdated and quite broken
<grp>
so I'm revising everything
<Regenaxer>
cool
<grp>
aaaanyway~ ¯\_(-_-)_/¯
<Regenaxer>
:)
<grp>
Regenaxer: what's the current practice for modules (if any)
<grp>
I've sees some repos out there that include a module.l
<grp>
but have yet to find the source that actually uses it for anything
<grp>
<Regenaxer>
Hmm, not sure if there is a special practice
<grp>
since I'm trying to distribute some trivial sources using nixos package management (so I can just define a script with it's picolisp library/modules dependencies and they get installed, no missing stuff)
<grp>
so I was checking if there was some current practice to handle such case
<grp>
plan B is implementing my own
<grp>
I was thinking of including a definition for (loadlib ...) in pil script
<grp>
<grp>
nixos systems are immutable, so the only way to put stuff anywhere other than /home is through definitions. So it's not like I can just go around copying .l files into /usr/lib/picolisp/
<grp>
and since they'll get installed into /nix/store/<hella-long-hash>/
<Regenaxer>
I have not thought about the issue, always load stuff relative
<grp>
patching scripts/libs so they use the right paths will be a pain in the ass
<grp>
so I'm planning on riding on top of nix and define a (loadlib ..) of sorts
<Regenaxer>
As I said, I make massive use of symbolic links
<Regenaxer>
I have apps running in web and on PilBox
<Regenaxer>
all with symbolic links
<grp>
yeah, I mostly know how you do things... keeping pil folders everywhere, each one with it's stuff
<grp>
but I was trying to do a more general system-wide approach
<Regenaxer>
yes, good
<grp>
where I can distribute... say... a logging set of fuctions into a "log.l" file
<grp>
then load it from everywhere
<Regenaxer>
How about (chdir xxx (load ... ?
<Regenaxer>
Problem is that debug pathes are wrong then
<Regenaxer>
(vi 'foo) etc
<grp>
problem is I don't know what dir that would be... since it's a path like that long abomination I showed you earlier
<grp>
anything that goes into the system, symlinked into a standard dir or not, is stored in /nix/store/<hash>/
<Regenaxer>
If you don't know it, it can't be loaded
<grp>
such hash is determined at build time based on parameters and the definition contents itself, so it's unique and the same between equivalent definitions and dependencies versions
<grp>
but I can keep an env var with the libs paths, so I can load them, but need to abstract that into something practical
<Regenaxer>
ok
* grp
sigh
<grp>
I guess you are thinking: what's the point in doing things in such a complicated/roundabout way
<Regenaxer>
Well (chdir (sys "MYPATH") .. would work
<grp>
btw, do those .tgz containing the prebuilt .s change often?
freeemint has quit [Ping timeout: 244 seconds]
<Regenaxer>
Yes, automatically with every release of a new .tgz
<grp>
'cause I need to specify the sha256 hash for everything the definition needs to download, so if they change often, the bootstrap will fail unless the definition is updated
<Regenaxer>
always in sync
<grp>
oh.. damn
<Regenaxer>
nasty
<grp>
hmm... well... it's not like the asm sources need the latest pil version anyway
<grp>
so I can just include a working version in the definition and that should do the trick
<grp>
(in the definition's dir)
<Regenaxer>
right, if it is not toooo old
freemint has quit [Ping timeout: 244 seconds]
<grp>
well, it makes sense to need a hash, it's a security measure. That way there can be no tampering
<Regenaxer>
T
freemint has joined #picolisp
freemint has quit [Ping timeout: 240 seconds]
freemint has joined #picolisp
<grp>
iirc it's not possible to bootstrap using miniPicolisp right?
<Regenaxer>
correct
<Regenaxer>
I don't remember why though
<Regenaxer>
I/O perhaps
<grp>
maybe... maybe if I search through logs from around 2012...
<grp>
or just compile it and throw it some asm.l
<grp>
and see what happens
<grp>
<Regenaxer>
Why mini if you have pil32 already?
<grp>
it's just a matter of not pulling 32bit build and runtime stuff (it's ~100MiB download, not that I care but sometimes it's bothersome)
<Regenaxer>
At least mini compiled in 64 bits is needed for large constants
<Regenaxer>
ok, but mini also uses libc
<grp>
but native arch
<Regenaxer>
true
<Regenaxer>
What if you copy the .s files temporarily to make the hashes automatically?
<grp>
I have kickass bandwidth so I couldn't care less about downloading at this point, but still... if I can minimize the download size, I should
<grp>
the cleanest option would be having .s .tgz files for every source version available, so any definition is as long-lived as the sources for that version are available.
<Regenaxer>
hmm, the .s files are overwritten with each new release
<Regenaxer>
The releases persist forever
<Regenaxer>
The problem is only the checksums then?
<grp>
I can avoid them if I just make the definition run a script where I wget the file but it's most probably not going to be accepted in upstream
<grp>
(security concerns)
<Regenaxer>
I see
<grp>
nevermind, I'll deal with it later
<Regenaxer>
I stop for today
<Regenaxer>
Good luck! :)
<freemint>
Good Luck
<Regenaxer>
afp
<freemint>
grp would it help if the thing you download would be signed by let's say Regenaxer's private key?
<grp>
I guess that'd be good enough, so long Regenaxer minds doing such signing