ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Picolisp latest found at http://www.software-lab.de/down.html | check also http://www.picolisp.com for more information
alexshendi has quit [Ping timeout: 252 seconds]
DerGuteMoritz has quit [Ping timeout: 264 seconds]
DerGuteMoritz has joined #picolisp
alexshendi has joined #picolisp
abel-normand has joined #picolisp
mtsd has joined #picolisp
<C-Keen> beneroth: lol
<beneroth> hi C-Keen :)
<beneroth> copy & paste coding on a new level :)
<C-Keen> oh just do a google search or github search for RSA PRIVATE KEY
<beneroth> oh I know. but that is a separate issue, that is the people uploading their keys into repos.
<mtsd> Morning everyone
<beneroth> This one is about copying code from a website including the private key which was just there as an example
<C-Keen> well here they printed the repo code, so it is not much different :)
<beneroth> Morning mtsd :)
<mtsd> Hello beneroth! How are things?
<beneroth> good. just way too much to do. but the right things (mostly payed pil programming).
<beneroth> how are things for you?
<mtsd> Congratulations! Great to hear!
<mtsd> Well, things are messy here, but getting better
<beneroth> I know the feeling, hehe
<beneroth> I wish you a steep curve :)
<beneroth> mine is pretty slow
roundsf has quit [Ping timeout: 240 seconds]
<mtsd> haha, a lot of things broke down over the summer. Moved across the country in june when I got a new job. Then lost the job (terrible employer..) in september.
<beneroth> oh noez. yeah, that is more messy than my road.
<mtsd> Wouldn't wish this on anyone, no
<clacke[m]> So, more like got rid of the job
<beneroth> yeah, I guess the employer sold himself too good to you
<beneroth> saw this happening to close friends
<mtsd> Yes, that is what happened
<beneroth> you have a new plan already?
<mtsd> Yes. I got a new job in Stockholm, so we are moving back.
<Regenaxer> Hi mtsd! Sorry to hear that!
<Regenaxer> Is it a good job?
<mtsd> Hi Regenaxer! Thanks. Yes, things have been really chaotic the last couple of months.
<Regenaxer> :(
<mtsd> It is a good enough job ;)
<mtsd> My life is usually a lot more peaceful than this, haha
<Regenaxer> good :)
<mtsd> All those disturbances have kept me away from IRC, and Pil, for a while. Hope to be back on a regular basis again now
<Regenaxer> no hurry
<beneroth> we love to have you back :)
<Regenaxer> yep
<mtsd> I have missed you guys, a lot
<beneroth> oh thanks
<beneroth> btw. the IRC is now logged: https://irclog.whitequark.org/picolisp/
<mtsd> Yes, I saw that. Great!
<mtsd> But a good thing happened in all this too. Our third child was born in September. It all went well
<beneroth> sweet. congratulations!
<Regenaxer> Wow! Congrats!!
<mtsd> Thank you very much! :)
rob_w has joined #picolisp
<C-Keen> whoohoo another little mutant! Congratulations!
<mtsd> Thank you C-Keen!
<mtsd> More picolispers to the world ;)
<beneroth> islands of quiet quick progress and sanity - or so we like to see ourselves
<C-Keen> a baby is everything but quiet and its definition of sanity is a healthy one but usually does not match grown ups'
<beneroth> you can inherit your parentheses to your child one day :D
<mtsd> So far, our third one sleeps best of all the children.
<mtsd> haha, yes. They will all get my parentheses :)
<C-Keen> mtsd: my theory is that children need some base noise of chaos. If that's already being delivered by others there's less need to participate in for yourself
<beneroth> haha, T
<mtsd> C-Keen, good theory. We have plenty of chaos right now, so that seems to support it
<C-Keen> just keep it up for a couple of years more :)
<beneroth> well in discordian wisdom both chaos and order have each creative and destructive sides to it. the trick is to stay mainly on the creative sides.
<beneroth> some order is required for any structure to emerge. some chaos is required to prevent stagnation.
<C-Keen> stagnation is something one hardly sees with children, the force of life is too strong in them
<mtsd> I seem to remember 2007 being chaotic as well. Perhaps these things move in cycles
<mtsd> 10 year buildup phase, 1 year breakdown to create something new
<mtsd> Time will tell ;)
<beneroth> I see cycles, too. but I'm not so sure about them being consistently regular
<mtsd> Me neither, just have that feeling at the moment. At least in some areas.
<mtsd> beneroth, so you have some clients that pay you to do Pil programming? Great to hear
<mtsd> That's really the direction I want to go
<beneroth> yes I do
<mtsd> Very good
<beneroth> not yet really on a sustainable level, as I charge less for projects which I realize with my own (pil) software, which then is continued to be hosted by me.
<mtsd> I remember you building some sort of platform, based on Pil, to use for clients?
<beneroth> at the moment I'm happy when I can work in pil, the main goal is getting some references (software used at x,y,z) and to do also basic product development, meaning sometimes I solve stuff not in the project-specific code but in the underlying framework, so those projects provide me with knowledge and experience to solve the right things (and not develop bullshit in the ivory tower)
<beneroth> this year I spent most time working on my own software. next year I have again to freelance more and/or selling more pil-based projects to get money
<beneroth> but now I have a good base to work from.
<mtsd> We talked about it some time ago, I found it really interesting. In my case, I have more or less used what Regenaxer has created to build software
alexshendi has quit [Ping timeout: 248 seconds]
<beneroth> his stuff is simply awesome
<mtsd> Hard to beat, really
<beneroth> my plans and use cases are different, therefore I have another approach.
<beneroth> I have my own webserver implementation, but it is not yet as powerful as Regenaxers. on the DB side, I have an extra layer on top of standard pilDB, but the resulting DB is fully compatible to standard pil DB.
<mtsd> Not bad
<beneroth> apparently my webserver implementation is faster (not benched in details), out of a funny idea I made it so that it only parses the request as far as is needed to answer the request.. so often the client request is not fully parsed. apparently this makes a big difference.
<beneroth> on the flip side my webserver is still fully forking, meaning a new process per request. no long running session processes yet, so much space to optimize.
rgrau has joined #picolisp
<beneroth> the html generating code I use is also very unoptimized, Regenaxers is very well optimized. but in any case the pil webserver seems to be way ahead of average non-pil web-apps, so no problem.
<mtsd> I have not had much time to create my own things, unfortunately. Trying to focus on getting to know the existing framework and language well
<beneroth> I will eventually open source my stuff, but currently the code is a bit too messy and the architecture still changing often, so I see no value in that yet.
<beneroth> mtsd, I recommend you using pil for scripting stuff, e.g. instead of doing more complicated bash scripts. usually quick results and good to learn all the different pil features.
<beneroth> some stuff, e.g. the pil DB, need some focused time to get into it. but once you got over that stage it will make you much more productive and flexible.
<mtsd> Writing the form docs helped too
<beneroth> a simple pil DB is easy. a backuped DB with complex schema secured against sudden power losses takes a bit more. but the tooling is there to achieve all this.
<mtsd> And, of course, getting started writing applications, adapting the demo app etc.
<beneroth> mtsd, oh yes. and we need more documentation.
<mtsd> I quite like doing that. Hope to do some more
<beneroth> I will soonish to a form app, will use your doc heavily and probably still have a few questions you might be able to help me :)
<mtsd> You will probably find some things that need correcting. Proof-reading is always good :)
alexshendi has joined #picolisp
abel-normand has quit [Ping timeout: 248 seconds]
<viaken> beneroth: What does your extra DB layer achieve?
<joebo> beneroth: morning! I did some simple benchmarking on a custom pil http server and found the same thing... You can squeeze out a quite a bit more requests per second by only doing the things you know you have to do
<joebo> vs using the more expansive current http server
<joebo> I don't recall the details either, but it wasn't particularly surprising ... do less get more ... but if rps doesn't matter then stick with the standard way for flexibility down the road
<joebo> mtsd: I have 3 kids too :) youngest is 3, oldest is 6
<joebo> 3, 4 (almost 5) and 6
<joebo> 18 mo apart
<Regenaxer> Hi viaken, joebo!
<viaken> Hi Regenaxer!
<joebo> hi Regenaxer !
<Regenaxer> Nice, all the young kids :) I must confess I have 3 too, but they are around 26, 28 and 30 haha
<joebo> close in age too :)
<Regenaxer> T
<joebo> my youngest had a runny nose yesterday and a cold. Now, I have a cold this morning
<joebo> hard to keep the germs from spreading... they pick up so many from school
<joebo> but that's just a minor complaint of having little ones :)
<Regenaxer> indeed
<mtsd> Hi joebo
<mtsd> Mine are 4.5, 2 and 1.5 months old
<mtsd> The germs, yes.. all too familiar.
<joebo> :) young too!
alexshendi has quit [Ping timeout: 240 seconds]
<mtsd> We plan to stop at 3 kids :)
<joebo> same here
<mtsd> Both my wife and I have two siblings, so we come from families with 3 children
<mtsd> And now we have our own
<joebo> I have 4 siblings and my wife has 3, so there was consideration for more but 3 seems like the right number
<joebo> I know we do much more with our kids than my parents did... they are all in different activities now which is nearly impossible to keep up with
<joebo> let alone with 2 more kids
<joebo> not bad, just different
<mtsd> I just came indoors after a playing session with the two oldest ones. I work remotely now, so I have a break in the middle of the day
<mtsd> Feels good to be able to give time and attention to them
alexshendi has joined #picolisp
alexshendi has quit [Ping timeout: 255 seconds]
<cess11> mtsd: congrats on the kid and improved working conditions
<mtsd> Thank you cess11
abel-normand has joined #picolisp
alexshendi has joined #picolisp
<beneroth> hey all :)
<beneroth> mtsd, nice you can work remotely :)
<Regenaxer> Hi beneroth!
<beneroth> Guten Abend Regenaxer :)
<beneroth> viaken, various stuff... main thing is to do schema migrations, live and automatic and up and down. but this is largely not implemented yet, but the basic data structures to allow it are there
rgrau has quit [Ping timeout: 248 seconds]
<beneroth> bwahahaha
<beneroth> Windows 8.1 has overly high CPU use when a user name contains "user"
clacke[m] has quit [Ping timeout: 246 seconds]
<mtsd> beneroth, yes, working remotely helps. We get the keys to our new flat in December, this way I can start working before that
stacksmith has joined #picolisp
<stacksmith> Hello. Can someone explain the difference between let and use?
<beneroth> mtsd, working home needs training. but once you have the right habits to work productively from home it gives much more freedom and flexibility.
<beneroth> stacksmith, hi, welcome!
<beneroth> stacksmith, (let) is used to initialise variables, while (use) doesn't give the declared variables new values, it just defines a new scope (binding environment)
<beneroth> (let A 5 ...) -> within (let ...), A has the value 5, outside it has whatever it had there (probably NIL)
<beneroth> (use A ...) -> within (use ...), A has the value it had outside (probably NIL), but when it is changed within the (use), it will be changed back to the original value when the (use) is left
<beneroth> the "change back" is also happening with (let). both give a new binding environment.
<beneroth> so in short: let -> initialize variables vs. use -> keep values from outer scope. both ensure that the value in the outer scope is not overwritten.
<beneroth> stacksmith, alright?
<stacksmith> Thanks, I somehow missed it.
<beneroth> yeah happens, no problem :)
mtsd has quit [Quit: Leaving]
abel-normand has quit [Ping timeout: 240 seconds]
<stacksmith> Say, perhaps you could save me a bunch of time and frustration. I am a fairly competent CL hacker, but as a minimalist love PicoLisp. What is _really_ the practical workflow in PicoLisp? I cannot imagine that people actually invoke vim one function at a time and go back to the repl, or edit in vim and (ld) the whole file all the time...
<yumaikas> stacksmith: I'd imagine that most people use tmux or something no?
<yumaikas> You can bind a key to send keys via tmux to another pane, so you could hook into :Make and have it send the (ld) command to your pil instance.
<stacksmith> With Slime I generally have 5 buffers and a REPL, and move around compiling functions from different files. I am a bit sick of Emacs/slime, but is there a way to do something like that? Or do you just reload whole files every time?
<stacksmith> I am also curious what you guys do - when in Rome etc.
<yumaikas> You'd have to ask beneroth or Regenaxer. I've reloaded files whole mostly in the past.
<yumaikas> But I've also done very little picolisp
<tankfeeder> i call pil from vim
<tankfeeder> bind f4
<stacksmith> beneroth: if you have a minute, what is your workflow?
<stacksmith> tankfeeder: what happens when you hit f4? Do you start a new pil and load the file(s) you are editing in vim? That seems hard...
<tankfeeder> stacksmith: it just call pil
<tankfeeder> like shell run
<tankfeeder> it also save file before :)
<stacksmith> tankfeeder: so you generally work in a single file, and have f4 save it to a magic name and invoke pil on that file?
<tankfeeder> yeap
<tankfeeder> minimalistic way on minimalistic lisp
<stacksmith> OK, that makes sense.
<joebo> stacksmith: it's been awhile since I've done pil dev but I would typically use emacs and have a pil process open in one of the windows
<beneroth> stacksmith, I'm using emacs with the picolisp-mode ("lib/el/" in picolisp.tgz) and paredit (automatically writing parenthesis, keyboard shortcuts to nest / un-nest SEXPRs), and a repl in normal terminal to test
<joebo> and then use comint to send data to it
<beneroth> stacksmith, as I mostly do web stuff, and most of that stuff is auto-reloaded by my webserver implementation, I just hit F5 in the browser :)
<beneroth> stacksmith, the picolisp-mode in the distro has also shortcuts to start the repl within emacs as a buffer etc. but I don't use that.
<beneroth> there are other picolisp-mode's for emacs which can be found on github I think.
<Regenaxer> stacksmith, to your first question: 'let' is 'use' plus 'setq': (let A I ..) is (use A (setq A I) ..)
<stacksmith> Regenaxer: thanks, got that.
<joebo> i have a function like this bound to a key in my .emacs
<joebo> (defun cmd-send-region (start end)
<joebo> (interactive "r")
<joebo> (comint-send-region (get-buffer-process "*cmd*") start end))
<joebo> so highlight a region and then send it to the repl to test
<Regenaxer> I usually simply 'load' the whole file. It is sufficiently fast
<beneroth> I think there is also a function for that in standard picolisp-mode coming with the distro..
<beneroth> Regenaxer, T
<Regenaxer> vip in one window with several files open, one with the repl
<Regenaxer> vi[pm]
<beneroth> stacksmith, many of us here also use tiling window managers, so like your multiple panes in emacs/slime but with all windows. then it is also less of a hazzle when using different tools at the same time, easy doable without interruption of the workflow
* beneroth uses https://i3wm.org
<beneroth> Regenaxer develops mostly/solely on his android tablet, using tmux and... I forgot what did you use for tiling Regenaxer ?
<yumaikas> There's also tmux, if all the programs in question are terminal based.
<yumaikas> tmux does tiling, no?
<Regenaxer> yes, tmux
<beneroth> okay
<Regenaxer> split horizontally and vertically
<beneroth> so 4 windows
<Regenaxer> no, more
<Regenaxer> typically 9 ;)
<beneroth> well how many do you work with typically?
<beneroth> ) wow
<yumaikas> Regenaxer: how big is your table?
<yumaikas> *tablet?
<Regenaxer> 9 inch
<stacksmith> Yikes!
<Regenaxer> so I have 49 x 80
<yumaikas> Regenaxer: 9 windows in a 9 inch tablet? How?
<beneroth> when using penti keyboard instead of a normal keyboard, you safe screen space (penti is transparent)
<stacksmith> 3x2 inch windows?
<Regenaxer> I have 3 Termux windows
<Regenaxer> change with ^N and ^P
<Regenaxer> each has one tmux with 3 sessions each
<stacksmith> Ah
<beneroth> good question stacksmith! this discussion could be its own wiki article...
<stacksmith> Yes, I am digesting...Thanks to all responders.
<Regenaxer> welcome ! :)
<stacksmith> Regenaxer, so do you chord right on the tablet surface?
<Regenaxer> yep
<Regenaxer> just now too
<stacksmith> Huh. When I saw the video I thought the circles were just a display gimick, the way some emacs videos have keys flying as you type..
<Regenaxer> :)
<beneroth> those circles are the finger touch points
<stacksmith> Do you find that your hand conceals much of the screen?
<Regenaxer> not much, it is very usable
<Regenaxer> I use it also on an 5 inch phone
<stacksmith> Interesting. So you run Android on an unlocked tablet?
<Regenaxer> yes
<Regenaxer> Android allows user-space keyboards
<Regenaxer> just a normal app
<Regenaxer> You have Android?
<beneroth> I use it on 10.1" tablet, but just started. had no problems except for some weird apps which move the input field offscreen while typing (probably taking the size of the keyboard box, not being expecting penti to be full screen size without covering content)
<Regenaxer> You can get PentiKeyboard on Google Store
<beneroth> requires Android 5+ I think
<Regenaxer> true
<stacksmith> Yup, I have a couple of rooted Samsung 10" tablets just dying to run picolisp...
<beneroth> cool
<Regenaxer> I recommend Termux then
<Regenaxer> just do apt install picolisp
<stacksmith> Old android though...
<Regenaxer> older than 5?
<stacksmith> way old. One is running some old Cyanogen, as I hate the Google.
<Regenaxer> I used CyanogenMod too
<Regenaxer> 12 works
<Regenaxer> CM12
<stacksmith> Where do you check the version? It's been a while...
<beneroth> what CPU?
<Regenaxer> Settings/This phone
<Regenaxer> or: about the phone
<beneroth> and maybe they don't have multitouch, or multitouch limited to 2 touches, then you can't use penti (requires up to 5 parallel touches). picolisp can still be used.
<stacksmith> 4.3.1
<Regenaxer> hmm
<Regenaxer> too bad
<beneroth> well I think the apps could be built for 4.3, no? ok API changed a bit (access rights etc) and surely a re-compile would be necessary...
alexshendi has quit [Ping timeout: 240 seconds]
<Regenaxer> Needs some changes probably
<Regenaxer> I have a check for later versions in the code
<stacksmith> I suppose I could upgrade...
<Regenaxer> Android changes all the time
<Regenaxer> So not only a recompile
<stacksmith> beneroth: it's an arm7 v7l, I think 4 cores but can't remember.
<beneroth> so arm 32bit
<stacksmith> 1.4GHz
<Regenaxer> For example, there is a check for VERSION.SDK_INT < 23
<beneroth> pil can work on those (emu or maybe ersatz), but not optimal. main variant of picolisp is 64bit. ARM 64bit is actually currently the best architecture for it (according to Regenaxer)
<Regenaxer> Pil32 is available in Termux
<Regenaxer> for Arm 32
<beneroth> ah nice!
<Regenaxer> also intel 32 bit
<stacksmith> I've been using the 32-bit raspberry pi pil anyway...
<Regenaxer> But pil64 is only availe for Arm
<beneroth> stacksmith, pil32 has some minor differences to pil64 (e.g. different physical DB structure and different C FFI), but has same capabilities as pil64
<stacksmith> I saw that last time I've tried to use pil...
<Regenaxer> yes, has quite some limitations
<Regenaxer> no namespaces, no native
<stacksmith> right.
<beneroth> ah I forgot about namespaces.
<Regenaxer> coroutines too
<beneroth> oh
<stacksmith> A lot of functions have more capabilities in 64-bit pil...
<Regenaxer> T
<beneroth> ah Regenaxer today I had a thought: when having many internal symbols combined with heavy usage of namespaces (without import!), then parsing should be faster (faster lookup in internal symbols tree), yes?
<beneroth> probably doesn't matter in practice
<Regenaxer> yes
<Regenaxer> shorter traversal
<Regenaxer> but really minimal difference I think
<beneroth> but only affects parsing, as during execution that lookups are already done, then it is working with direct pointers. confirm?
<Regenaxer> hmm, or not
<Regenaxer> most symbols are still in 'pico'
<stacksmith> When is it not?
<Regenaxer> they are found later
<beneroth> well if it makes a difference, then the internal symbol space is really really big
<Regenaxer> 'if' etc
<Regenaxer> it is not searched linearly, but in a tree
<beneroth> well still being in 'pico during parsing, I would say. just reference other symbols with namespace prefix, not using import.
<Regenaxer> it depends on the order
<beneroth> T
<stacksmith> if looks up symbols? Sorry, new to this interpreter.
<Regenaxer> I always have (symbols 'a 'b 'pico)
<Regenaxer> yes, looks up
<Regenaxer> only in 'read'
<beneroth> stacksmith, this is some deep-level theorising with no practical value (beside understanding)
<Regenaxer> reading as in read/eval
<Regenaxer> beneroth, right
<beneroth> stacksmith, REPL -> this is about the R eading-phase
<stacksmith> beneroth, got it. Isn't everything looked up in R phase
<Regenaxer> The Lisp reader works this way. If it sees abc, it searches for it and returns it, otherwise creates it
<beneroth> during reading, picolisp VM maps the source code to in-memory structures. after reading it only works with those in-memory structures (cells), not with the text anymore.
<Regenaxer> so 'abc' is always unique
<beneroth> but the structure of the code in memory is the same as in the text.
<stacksmith> Right, so how is 'if' different?
<Regenaxer> it is not
<beneroth> if is built-in
<Regenaxer> 'if' is just a symbol too
<beneroth> built-ins are all in namespace pico
<Regenaxer> yes
<stacksmith> Yes. Just curious why Regenaxer mentioned 'if' specifically.
<beneroth> my thought was: when having many symbols, and having many namespaces, the lookup is faster because the symbol tree is smaller (but deeper), as all namespacing stuff resides in sub-trees
<Regenaxer> What I meant is that 'pico' symbols are most frequent to look up
<beneroth> yep
<beneroth> most used symbols are the 500-something built-ins, which all reside in the pico namespace
<Regenaxer> T
<Regenaxer> Let's not confuse people ;)
<Regenaxer> very theoretical discussion
<beneroth> (though this tree of internal symbols is in fact splitted into two trees, defined by length of the symbol name. one tree for symbols which shorter names, one for longer ones, right Regenaxer ?)
<beneroth> yeah
<beneroth> stacksmith, no need to understand this unless you want to fully understand the picolisp VM ;-)
<beneroth> you can be an excellent picolisp programmer without knowing about this stuff.
<stacksmith> beneroth - don't worry, I am a bit of a language hacker.
<beneroth> though there is much to understand (e.g. binding, fexpr, ...) to be a good programmer :)
<Regenaxer> That's the case in all languages, notably C++
<Regenaxer> maybe not so much in Java, you just paste stuff together ;)
<stacksmith> Some years ago I had a forth-like system with layers of namespace-like dictionaries. A very simple LRU-type setup (last-found item gets linked in front) made lookups really fast and optimized for usage...
<beneroth> stacksmith, well this is a bit of an unusual IRC channel here. we like to discuss minor programming questions, design / architecture questions, general programming stuff, general philosophical or whatever stuff, our kids, rant about inferior languages, and feel ourselves smug while being friendly and humble :)
<beneroth> and sometimes we mix 2-3 of those talks in parallel. and sometimes we sit silent for days :P
<stacksmith> beneroth: I noticed - been here before, a while back (a couple of times actually).
<beneroth> ok. I forgot. sorry :)
<Regenaxer> stacksmith: Understanding Forth-like systems is very useful for pil
<stacksmith> And everything else :)
<Regenaxer> Some thinking is similar
<Regenaxer> right!
<Regenaxer> I came to Lisp via Forth
<Regenaxer> Asm -> C -> Forth -> Lisp
<beneroth> interesting path. unusual and unlikely these days. probably quite likely when you started.
<stacksmith> I've been using CL for a few years. Same path, with C and Forth reversed.
<Regenaxer> I see
<Regenaxer> To be exact, I started with Fortran, but did not no much
<beneroth> C/C++ -> PicoLisp (with some C#, Ruby, Fortran, C/AL on the side)
<Regenaxer> stacksmith: There is a toy Forth in https://software-lab.de/forth.l
<stacksmith> I spent most of my life writing weird forth-like languages with lisp aspirations, until I realized that i really want Lisp
<Regenaxer> just a proof of concept
<Regenaxer> cool!
<beneroth> Regenaxer, you made a more forth-like Lisp (than PicoLisp), right? the... I forgot the name
<Regenaxer> yes, "Lifo"
<beneroth> this
<beneroth> afaik it was more coherent & elegant, but less practical ?
<stacksmith> A few years ago I wrote some test code that integrated some Lisp and Forth ideas, with a possibility to hardwire it in an FPGA...
<Regenaxer> beneroth, yes
<beneroth> stacksmith, Regenaxer even made a verilog implementation of pil64
<stacksmith> Parameter passing in Forth is much cleaner (until you have to reorder it)
<Regenaxer> yes, no binding to symbols needed
<beneroth> so referenced by order position or how?
<Regenaxer> yes, on the stack
<beneroth> I see
<Regenaxer> dup, over, swap
<stacksmith> My last fight with SBCL was largely because of ridiculous code size in parameter passing - a single function call compiles to several K of code unless you are really optimizing.
<beneroth> wow
<Regenaxer> oh
<stacksmith> No one gives a shit I suppose, but it just irks me.
<stacksmith> I was especially pissed about the CFFI bindings being huge. I wrote a CFFI extractor, and nearly choked when I saw the CFFI disassemblies. On a raspberry pi, it almost matters.
<Regenaxer> surely
<stacksmith> Not to prematurely optimized, you know. But I am old, and still feel that 100K of code is an awful lot for 30 bindings :)
<Regenaxer> I think so too. Grew up in a time when every byte was precious
<stacksmith> So what happened to verilog pil? I think I chatted or emailed with you once, and we agreed it's kind of pointless, given the state of hardware today... Is that still the case?
<Regenaxer> I think too it is not really meaningful
<Regenaxer> but Geo is still working on it
<Regenaxer> aw- thinks it might be useful for an OSS system
<stacksmith> Agreed. A raspberry pi will probably blow any FPGA away for less than an FPGA board...
<Regenaxer> (aw- is Alex Williams, not here atm)
<Regenaxer> exactly
<beneroth> there is still hope. and I consider it interesting not for the performance, but for the fact that it kinda eliminates some of the potentially hidden turtles. if the hardware is a pil-machine, it is pretty transparent what runs on it, and maybe one could for such a machine actually prove that the source code and the running application IS the same.
<Regenaxer> And pil runs especially well on an Arm64
<stacksmith> I wrote a bunch of verilog a while back, and a weird low-level thing call fpgasm, as a way to bootstrap some kind of lisp hardware, but gave up for similar reasons.
<stacksmith> 'called'
<stacksmith> So a few years back I wrote a primitive test, a forth-like system that was a substrate for Lisp. It is hazy now, but it integrated consing with the stack, and allowed you to 'tear off' a chunk of the stack when a longer scope was required.
<stacksmith> It was actually conses. I think the stack was pre-formed as a long list, and setting cars worked same as pushing on forth stack. When torn-off, the list could be used as any other list, gc'd. Otherwise, you could just use the stack.
<Regenaxer> Makes sense
<beneroth> sounds elegant
<stacksmith> I forgot why I abandoned the idea. Honestly, I've explored the forth space for so many years in a fairly exhaustive way that I repeated a bunch of attempts having lost my notes from decades back... Sounds kind of sad reading it...
<stacksmith> Could be technically problematic, but could be because I had to do something to pay the bills and didn't get a chance to finish.
<stacksmith> Shite, I have to run. Thanks for your help. I hope to chat some more soon.
<beneroth> see ya!
<Regenaxer> Sure! See you!
<Regenaxer> I go to sleep
<beneroth> me too
<beneroth> good night
<Regenaxer> Good night everyone! :)
<yumaikas> Night!
karswell_ has joined #picolisp
karswell_ is now known as karswell
clacke[m] has joined #picolisp
rob_w has quit [Read error: Connection reset by peer]