rob_w changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information || Attention due to latest spam floods this channel will only allow registered users to send messages - check https://freenode.net/kb/answer/registration
pierpal has quit [Ping timeout: 264 seconds]
pierpal has joined #picolisp
orivej has quit [Ping timeout: 252 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
alexshendi has quit [Ping timeout: 252 seconds]
orivej has quit [Ping timeout: 252 seconds]
ubLIX has joined #picolisp
rob_w has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
alexshendi has joined #picolisp
mtsd has joined #picolisp
orivej has joined #picolisp
<razzy> hi
<mtsd> Hello razzy
<razzy> mtsd: never seen you before
<mtsd> Been away a bit over the summer, but I am usually here
DerGuteMoritz has quit [Ping timeout: 255 seconds]
DerGuteMoritz has joined #picolisp
<Regenaxer> Hi razzy, mtsd
<Regenaxer> mtsd: How was your presentation?
<mtsd> Hi Regenaxer!
<Nistur> mornin'
<Regenaxer> Hi Nistur
<Nistur> hello! :)
<mtsd> I had the initial meeting yesterday, it went well. Presentation is on september 13th, but I am going to write a prospect to the consultancy firm today
<mtsd> Prospect == "Enthusiastic paper declaring why Picolisp is an excellent choice" ;)
<Regenaxer> Ah, yes, in September. Good
<mtsd> That said, the meeting went well. Both my current employer and the possible future employer got along really well
<Regenaxer> Good to hear :)
<mtsd> First presentation the 13th, here. Second one in London a few days later. 16-17th september
<Regenaxer> ok
NB0X-Matt-CA has quit [Excess Flood]
NB0X-Matt-CA has joined #picolisp
<mtsd> Thank you for giving feedback about the questions I had, regarding technology choice etc
<Regenaxer> I'm happy to help
orivej has quit [Ping timeout: 244 seconds]
NB0X-Matt-CA has quit [Excess Flood]
<razzy> i think that picolisp is in state of small efficient comunity. before it grow larger and drown in management of so many choices to have.
NB0X-Matt-CA has joined #picolisp
<razzy> maybe too small :]
beneroth has joined #picolisp
<beneroth> hi all
<Regenaxer> Hi beneroth
<beneroth> Hi Regenaxer :)
<alexshendi> Hi folks!
<Regenaxer> Hi alexshendi
<beneroth> Ahoy alexshendi :)
<razzy> beneroth: hi :]
<Nistur> I'm getting quite excited. I get to have my first discussion with the startup advisor next Monday... I mean things will go slowly I'm sure, but it'll be my first official step... and if I get money, I will hopefully be able to lisp professionally! :P
<mtsd> Congratulations Nistur!
<Nistur> \o\
<Nistur> /o/
<Nistur> \o/
<beneroth> \o/
<beneroth> gz Nistur
ubLIX has quit [Quit: ubLIX]
<razzy> beneroth: want to talk?
alexshendi has quit [Ping timeout: 268 seconds]
rob_w has quit [Quit: Leaving]
<beneroth> razzy, if you like
<razzy> i kind of do like to talk. i do not know where is my place in world
<beneroth> can't you create yourself a place, a place which fulfills your basic needs?
<beneroth> Regenaxer, (print) outputs namespaced symbols like transients. I'd like to do some code-generating, but this makes it very hard to use namespaces
<beneroth> Regenaxer, example:
<beneroth> (symbols 'tgs 'pico)
<beneroth> (symbols 'pico)
<beneroth> (de goodbye (A) (prinl "Goodbye " A))
<beneroth> (de hello (A) (prinl "Hello " A))
<beneroth> (println '(hello "Fred"))
<beneroth> (println '(tgs~goodbye "Fred"))
<beneroth> output:
<beneroth> (hello "Fred") # all good
<beneroth> ("goodbye" "Fred") # not so good
<beneroth> How to fix?
<beneroth> I understand that technically a namespaces symbol is kinda a transient symbol, as its placed within a separate scope. I guess the writer checks for "separate scope" (not direct member of interned tree) to decide if its a transient or not.
<beneroth> maybe this check could be improved print namespaced symbols with their namespace-prefix instead of printing it like a transient?
<beneroth> s/could be improved/could be improved to
<razzy> what if i have oposing basic needs?
<Nistur> then you need two places.
<Nistur> Simple.
<Nistur> (actually... I was discussing this with a friend recently who was pretty much saying that she had... two opposing basic needs... so yeah...)
<razzy> Nistur: good advice if you need 2 woman/men in life,... my problem is more deep, imho. i need to understand and control physics around myself. and on other hand i need some mystery and universe to explore. sooo,.. build new universe?
<Nistur> 'control physics around myself'
<razzy> maybe is not so bad advice at all
mtsd has quit [Quit: Leaving]
<razzy> Nistur: too cold, too hot, etc
<Nistur> razzy: you sound like my wife :P
<razzy> Nistur: oooh, poor you :]
<Nistur> but regarding the mystery and understanding, I think that's pretty easy. For one thing, I think it's physically impossible to understand everything... especially at this point. So just making the effort to try and learn everything is enough for most people to keep them happy with that... alternatively do what the rest of us do, and lost half your life in fantasy world which either you can choose to fully
<Nistur> comprehend, or not :P
<razzy> create some heavilly encrypted mysteries :]
<razzy> way to go
<beneroth> biology is pretty mysterious while following the physical rules
<beneroth> knowledge is fractal, the more you know, the more border to the unknown you have, I find.
<razzy> beneroth: if knowledge synergies start to kick in,... it start to compress itself again
<razzy> beneroth: biology is encrypted
<razzy> in some sense of a word
<razzy> it takes really huge amount of work to reingeneer it
orivej has joined #picolisp
<beneroth> it's not encrypted. it's just a huge mess.
<razzy> beneroth: but the parts that needs to communicate, understand each other
<razzy> so it is not random mess
<razzy> what would you think about program, that seem from outside like a mess, but work reliably in wide enviroments?
<beneroth> I said nothing about random.
<beneroth> it looks like a mess, it should maybe be refactored.
<razzy> beneroth: you only gets snippets in assembler and processor instructions
<razzy> you would better look for some tooling to translate it
<Regenaxer> ret
<Regenaxer> beneroth, I see no general problem with the above printing
<Regenaxer> print should correspond with read, and there may be another symbol interned in the current search order with the same name
<Regenaxer> The trick is to do (symbols *MyOrder ... (print ...]
<Regenaxer> The printing environment must be the same as the reading one
<Regenaxer> This is even more critical with DB-I/O
<Regenaxer> I do that excessively in PilBox. All apps share the same process, but may have different DBs open
<beneroth> hm.
<beneroth> so namespacing is usable to isolate stuff. but not so feasible for grouping stuff while using it intermixed.
<Regenaxer> I think it is
<Regenaxer> It is you to control the search order
<Regenaxer> What do you mean with "grouping"?
<beneroth> the problem is, when printing the symbol I don't know to which namespace it belongs, so I can't switch symbols order to get it be printed as a namespaced symbol
<Regenaxer> you can find out the namespace with 'nsp'
<Regenaxer> In your case, simply set to *all* namespaces then
<beneroth> My use case is: (print 'tgs~foo) -> tgs~foo instead of "foo"
<Regenaxer> But I do not see the sense. You see the symbol as internal, but *which* one it is is not clear
<Regenaxer> How about 'import'ing them?
<beneroth> e.g. read picolisp source code, and print the resulting prg out again as-is
<beneroth> yes, importing solves my problem.
<Regenaxer> read souce, then print is the normal case
<beneroth> not working when the read source contains namespaced calls
<Regenaxer> ah, right
<Regenaxer> yes
<beneroth> aye, that's my point :)
<Regenaxer> The printer could be more intelligent, but it would be too expensive
<beneroth> now we are speaking about the same thing :)
<Regenaxer> needs to search all namespaces for every transient symbol
<Regenaxer> T
<Regenaxer> I thought about it
<Regenaxer> But rejected if for efficiency reasons
<beneroth> ok, so my guess was right (about how checking of a symbol being transient/internal works)
<Regenaxer> it is just a lookup
<Regenaxer> hmm
<beneroth> yeah, afaik internal symbols, internal namespaces symbols, and transient symbols all are the same data type symbol. so no tag for further differentiation, right?
<Regenaxer> right
<beneroth> if its in the intern tree, its internal symbol, else it must be transient.
<Regenaxer> If found, it is printed as internal
<Regenaxer> exactly
<Regenaxer> And the original namespace might be out of scope
<Regenaxer> So 'nsp' is also of limited use
<beneroth> external symbols are detected because of their special naming? or do they have another tag?
<Regenaxer> they have a tag bit
<Regenaxer> doc64/structures
<beneroth> yes, the reader "forgets" the namespace of the symbol its read.
<beneroth> ok
<beneroth> I see no easy fix.
<Regenaxer> yeah, there is no space in the symbol
<Regenaxer> T
<Regenaxer> And a symbol may be in many namespaces
<beneroth> true, but then - is it really the same symbol? :P
<beneroth> :D
<Regenaxer> yel
<Regenaxer> yes
<Regenaxer> ==
<beneroth> ah right
<Regenaxer> pointer equal
<beneroth> both is possible: one symbol in multiple namespaces, or multiple symbols in different namespaces with the same symbol name
<Regenaxer> yep
<Regenaxer> the ~ is like a read macro here
<beneroth> hierarchical database system concept mistake applies here
<Regenaxer> They are also not printed
<beneroth> yes, this is my initial issue
<Regenaxer> T
<beneroth> but there is no solution to it, because the namespace of a symbol is not stored, it could be brute forced by searching through all namespaces trees (as nsp does), but thats not really a solution
<beneroth> the other fix would be storing the namespace symbol upon reading - but thats overhead, and we have no good place to store that thing.
<beneroth> the ~ read macro cannot be patched, aye? :D
<beneroth> a global assoq list of symbols would be a way
<beneroth> silly though, I think
<Regenaxer> if it were 1:1, we could store it in a propert
<Regenaxer> y
<beneroth> more reasonable not to use namespaces in such a way then.
<Regenaxer> Not sure what is the best way
<Regenaxer> Namespaces are relatively new
orivej has quit [Ping timeout: 276 seconds]
<Regenaxer> Also without printing they must be used with care
<Regenaxer> I shot myself into the foot often
<beneroth> the fun bit is, that the ~read macro should not be used outside of (import) calls then, to have all parsed source be printable
<beneroth> read prg to be printable is a use-case-specific requirement
<Regenaxer> yes, I think that printing code is not the most frequent case
<beneroth> T
<Regenaxer> as with 'pp' or 'pretty'
<Regenaxer> interesting is that 'edit' does it well
<Regenaxer> I use 'edit' to browse runtime code
<Regenaxer> It handles transient symbols in general
<beneroth> I think a bit about it. for now I tend to say: if read code should be printable, do not use ~macro in that code (so import everything you use from other namespaces)
<Regenaxer> also before we had namespaces
<Regenaxer> yes, this rule is safe
<beneroth> being able to print all code is a nice feature in general.
<Regenaxer> true
<Regenaxer> so it is a flaw being limited by namespaces a little
<Regenaxer> But I see no good solution atm
<beneroth> especially in picolisp where not much happens during read parsing. I still find executable being equivalent to source code a great feature.
<beneroth> same
<beneroth> not worth the overhead to keep records of all ~ macro calls
<Regenaxer> Perhap
<Regenaxer> s
<Regenaxer> or, perhaps do it only in debug mode
<Regenaxer> hmm, but I think it is too much
<beneroth> another idea might be making the reader macros patchable
<Regenaxer> yeah, but they are rather deeply embedded in the core
<beneroth> then one could adapt it when needed, and when not needed, the default optimized asm implementation is used.
<beneroth> yes, would mean introduction of some "patched" flag on all those macro "functions"
<Regenaxer> 'load' throug a pipe is better then
<beneroth> pre-filtering. hm, yes.
<beneroth> more work though :P
<beneroth> but yes
<Regenaxer> (load "-foo ...")
<beneroth> T
<beneroth> I will build something like this anyway, at one point
<Regenaxer> great
<beneroth> because when I allow picolisp script written by user/admin to run in a specific context, the scripts need to be validated before anyway
<beneroth> I guess
<beneroth> thansk Regenaxer
<beneroth> so it is as I initially suspected :D
<Regenaxer> Yes. btw, scripts, a few days ago I tweeted something interesting
<beneroth> too bad it always takes so much time to establish a common view, communicating about this stuff is hard, not enough words to make accurate descriptions.
<Regenaxer> I found out that you can pass more than one file to a hashbang
<beneroth> might be a bash only thing?
<Regenaxer> #!/usr/bin/pil -load "@lib/math.l" "foo.l" "bar.l"
<Regenaxer> It is a Unix thing
<Regenaxer> the kernel has only a poor parser
<Regenaxer> I found out that all after the first blank is the *single* arg
<beneroth> is this not just multiple arguments to pil?
<Regenaxer> But in pil this works out nicely :)
<beneroth> ah
<Regenaxer> yeah
<Regenaxer> it is one arg, ie the 'load'
<Regenaxer> $ pil '-load "@lib/math.l" "foo.l" "bar.l"'
<Regenaxer> This is a very good thing
<beneroth> I think you didn't tweet so much non-technical stuff in the past. you become more political outspoken? :D
<Regenaxer> if you call that script with (load "script") then the whole first line is comment
<Regenaxer> hmm, yeah, I get upset by the stupidity of mankind ;)
<beneroth> I guess you read about the first "Gefährder" case under bavarias new law (it smells like a setup)
<beneroth> afaik our views are pretty similar
<Regenaxer> Is that "Gefaehrder"?
<beneroth> eh yes
<Regenaxer> yes, I think so
<beneroth> sorry
<Regenaxer> np :)
<beneroth> eventually I might not be able to visit you anymore within bavaria. who knows :P
<Regenaxer> yes, cause you are so dangerous :D
<Regenaxer> But if you present a cross at the border you are allowed
<beneroth> well eventually visiting CCC congress might be enough
<beneroth> ah okay
<beneroth> some bavarian judges want to imprison bavarian executive politicians for ignoring the law (about the diesel grenzwerte)
<Regenaxer> yes, cause they ignore their decisions
<razzy> bavaria sounds interesting from afar
<Regenaxer> all a bit crazy
<razzy> what do you tweet politically?
<Regenaxer> Mostly retweets or likes of articles
<razzy> hmm :]
<Nistur> Regenaxer: what is the device in your twitter display pic?
<beneroth> haha
<Regenaxer> Nistur, it is my historic Penti from the early 90s
<beneroth> Nistur, you know about penti? https://picolisp.com/wiki/?termuxpentipicolisp
<Nistur> ahhh yes I remember now
<razzy> whaaat? penti?
<razzy> what a soccery,... i like it
<Nistur> I keep playing with the idea of setting up a chording keyboard, but I would definitely want a physical keyboard. I cannot stand touchscreen really
<Regenaxer> For me the opposite
<Regenaxer> I hate mechanical keyboards
<Regenaxer> and the need for two hands all the time
<Regenaxer> What a waste
<Nistur> well, when I'm at home, I never use a mouse, so if I don't type with both hands, there's nothing to do for my other one :P
<Regenaxer> I hold the coffee cup, or the phone
<Nistur> but I like actual tactile buttons
<Nistur> sure, that's useful I guess :P
<razzy> i like adaptable buttons. i like emacs hydra
<razzy> and emacs command sequences
<razzy> most of the words and wentence syntax could be automatised
ubLIX has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
<beneroth> bbl
beneroth has quit [Quit: Farewell]
orivej has joined #picolisp
orivej has quit [Ping timeout: 272 seconds]
mtsd has joined #picolisp
mtsd has quit [Quit: Leaving]
freemint has joined #picolisp
ubLIX has quit [Quit: ubLIX]
<freemint> Guten Abend
yumaikas has joined #picolisp
orivej has joined #picolisp
orivej has quit [Ping timeout: 245 seconds]
orivej has joined #picolisp
freeemint has joined #picolisp
groovy2shoes has quit [Ping timeout: 265 seconds]
rudha has joined #picolisp
rudha has quit [Client Quit]
freemint has quit [Ping timeout: 268 seconds]
rudha has joined #picolisp
freeemint has quit [Ping timeout: 245 seconds]
freemint has joined #picolisp
<rudha> hallo
<Regenaxer> Hi rudha
rudha has quit [Client Quit]
<freemint> Hu Regenaxer mich grüßt du wohl nicht mehr?
<Regenaxer> Hi freemint! :)
<Regenaxer> Sorry :)
<Regenaxer> Was on phone (with rudha)
<freemint> okay na dann
<Regenaxer> :)
<freemint> I got a fun project *idea*
<freemint> I am just musing about the technical details and how i would implement it , if you want to hear it say so
<Regenaxer> Not at the moment, I'm busy
<freemint> offer stands ask me about "zones" then
orivej has quit [Ping timeout: 268 seconds]
<Regenaxer> OK, ready now
mtsd has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
<razzy> freemint: can i listen?
<freemint> oh
<freemint> razzy Regenaxer i noticed there is no way to try out PicoLisp online.
<freemint> My idea was that i use my Solaris server to create zones which serve a small picolisp root server.
<freemint> Zones allow for limiting, pooling, of CPU, RAM and Network resources.
<freemint> The idea is that i make a service when you can get credentials for a Zone with PicoLisp installed for a certain period with a certain ahrddrive space
<freemint> you would login via ssh or (maybe ) a website
<razzy> good one
<freemint> These zones could spawn very quickly and would not eat much resources on the server if i configure it properly.
<freemint> For networking : i do not want people to use my network so i might set something up that networking is only possibly over a reverse ssh, where the server gets the internet connection from the PC of the user
<razzy> freemint: i would just make it work and optimalise after people start using it
<freemint> if i just make it work, people will download CP over it and i go to prison
<razzy> CP?
<razzy> in our country people haras you first
<freemint> buzz word for evil stuff, also child pornography
<freemint> well as admin of a machine i am legally responsible for everything that happens on it
<Regenaxer> Good ideas, freemint
<razzy> yop, but it is unavoidable problem
<freemint> would a PicoLisp zone without internet access be interesting?
<razzy> if you allow interaction, you allow abuse
<freemint> Zones allow me limit the abuse on my machine, but they are no magic bullet against problems outside machine
<razzy> depends if potentional gain overweight potentional problems
<Regenaxer> Perhaps allow only *incoming* connections
<Regenaxer> only port 443
jibanes has quit [Ping timeout: 244 seconds]
<Regenaxer> To make GUI development possible
<razzy> freemint: i liked web repl
<freemint> Regenaxer even worse then people will host child pron as a service
<freemint> well there got to be a away
<razzy> freemint: i would solve that problem on monitoring side
<freemint> i can not expect myself to monitor anything
<freemint> mhh but no gui is bad too
jibanes has joined #picolisp
<razzy> if you catch CP sooner than autorities, you are ok
<Regenaxer> I think best to try out everything is PilBox
<Regenaxer> gui, db and all
<Regenaxer> and no harm, as it is the user's own device ;)
<freemint> I have not fully grasped how to develop +in+ Pilbox I've only made it load zips and that experience is just as bad as compiling
<Regenaxer> You can use the repl
<Regenaxer> but preparing Zips in Termux and uploading is more comfortable
<Regenaxer> I do both
<Regenaxer> it is just one line to zip a project and send it to PilBox
<Regenaxer> I edit in one window, then repeat the send in another
<freemint> ok ...
<Regenaxer> a round time of a few seconds
<freemint> then postpone that project with zones for a while
<Regenaxer> Nono, I did not want to discourage you
<Regenaxer> but true, security is hairy
<razzy> web repl is quite safe
<Regenaxer> Which repl do you mean?
<freemint> razzy that repl got to execute somewhere
<razzy> yes :]
<Regenaxer> I use the repl fun in @lib/form.l
<Regenaxer> it is dangerous
<razzy> but it is hard to reliably abuse web repl
<Regenaxer> but on PilBox I consider it safe
<freemint> and if i give an unmodified version of pil you get local bash execution
<Regenaxer> yes, anything
<freemint> why or how?
<Regenaxer> or just 'call'
<freemint> even worse
<Regenaxer> (call "rm" "-r" ...)
<razzy> yes, you would need to put it in sandbox
<Regenaxer> right
<Regenaxer> I don't know well
<freemint> yeah that would be zones, there is hardly any better
<Regenaxer> ok
<freemint> IMHO
<razzy> ok
<Regenaxer> is it SE-Linux based?
<Regenaxer> Android is, and it isolatel users pretty well
<Regenaxer> isolates
<freemint> No it is a Solaris technology and has been around since 2006 or so
<freemint> The idea is that the Solaris kernel works on different sets of data structures for each zone
<freemint> This means that assuming the kernel has no exploitable flaw each zone behaves as if it had its own kernel
<Regenaxer> ok
<freemint> This means each zone has their own set of process id's, and so
<freemint> The only side-channel between zone is networking
<freemint> oh and then there is the unique global zone which can access and manipulate all other zones
<freemint> it is for administration
<freemint> and as mighty as a hypervisor would be
<razzy> i like this solaris thing
<razzy> how much they pay you to administrate this
<freemint> i pay 32€ a month
<razzy> bad deal :]
<freemint> (well actually half since i am sharing it with my girlfriend
<freemint> Nah i learn the skills now and might get paid later
<freemint> Oh and the Solaris networking stuff is insanely clever
<razzy> networking?
orivej has joined #picolisp
<freemint> They have the chance to pass real standalone networking cards to zones or shared virtualize cards or both
<freemint> virtualized cards can be rate limited, connected to virtual switches which allow you dictate which zones can talk with which zones on a port by port basis
<freemint> and all virtual cables can be plugged in and out in real time to allow to connect to other thinhs
<razzy> sh
<razzy> ah
<freemint> i find that as powerful as i could hope for
<freemint> oh and Solaris got the best file system for anything server like - ZFS
<razzy> freemint: maybe you have limited hopes and imagination?
<razzy> but it is ok for most imaginable applications
<razzy> and i never seen better
<razzy> :]
<freemint> ofcourse my imagination is bounded
ubLIX has joined #picolisp
groovy2shoes has joined #picolisp
mtsd has quit [Quit: Leaving]
alexshendi has joined #picolisp
alexshendi has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
freeemint has joined #picolisp
freemint has quit [Ping timeout: 264 seconds]
freeemint has quit [Ping timeout: 240 seconds]
freemint has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
erkin has joined #picolisp
pierpal has quit [Ping timeout: 245 seconds]
alexshendi has joined #picolisp
freeemint has joined #picolisp
freemint has quit [Ping timeout: 240 seconds]
ubLIX has quit [Quit: ubLIX]