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
orivej has quit [Ping timeout: 258 seconds]
<tankf33der> pil21 is broken in two days somewhere. debugging.
<tankf33der> rc is broken.
<tankf33der> $ pil21 +
<tankf33der> :
<tankf33der> -> (ctl File (in File (let Lst (read) (ifn (args) (cdr (assoc Key Lst)) (let Val (next) (loop (if (assoc Key Lst) (con @ Val) (push 'Lst (cons Key Val))) (NIL (args)) (setq Key (next) Val (next))) (protect (out File (println Lst))) Val)))))
<tankf33der> : (rc "a.rc" 'a 1)
<Regenaxer> ctl is not implemented yet
<Regenaxer> you should check the sources first
<Regenaxer> I put a #! comment into stub functions
<Regenaxer> There are many such places
alexshendi has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
alexshendi has joined #picolisp
<tankf33der> maybe i missed those file and thought it worked before.
<tankf33der> ok
<Regenaxer> yeah
<Regenaxer> I could put an "not implemented" error into such places
<Regenaxer> then it is obvious immediately
<tankf33der> no, its ok.
orivej has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #picolisp
m_mans has joined #picolisp
<m_mans> hi all
orivej has quit [Ping timeout: 240 seconds]
<tankf33der> m_mans: o/
orivej has joined #picolisp
<beneroth> tankf33der, \o
<beneroth> hi m_mans
<Regenaxer> Hi m_mans, beneroth
<beneroth> hi Regenaxer :)
<anddam> howdy
<anddam> I recently read this https://news.ycombinator.com/item?id=23811382 and as usual my fascination for lisp was triggered
<anddam> how does picolisp stand WRT the "interactive building" thing?
<anddam> I would not know since I have not put in the time to actually tinker with it
<Regenaxer> Hi anddam!
<Regenaxer> In PicoLisp such things are trivial
<Regenaxer> It is all s-expressions
<Regenaxer> I have not read the above article though
<anddam> nice reading, f or me at least
<anddam> s/f or/for/
<Regenaxer> ok :)
<Regenaxer> But what exactly was your question about?
<Regenaxer> interactive building
<beneroth> anddam, PicoLisp classes don't store a reference to objects instanced from them by default. But as you can access all symbols in memory (and classes & objects in PicoLisp are based on the symbol data type), you could (filter) (all) to find all objects
<beneroth> anddam, PicoLisp database objects have a method 'set> to change the class(es) of an object
<beneroth> as PicoLisp is (on purpose) purely interpreted, it is always interactive and interactive building can be done at every moment to everything
<beneroth> PicoLisp has 3 data types for values: number, symbol, list
<beneroth> all other kinds of types are each based on one of these.
<beneroth> functions are lists, objects are symbols.
<beneroth> so you can edit a function like any other list
<beneroth> anddam, answers this your question? there are no non-interactive parts in PicoLisp
<Regenaxer> Good explanation beneroth :)
<beneroth> Regenaxer, I understood his link was about common lisp having a feature that you can change the class of all objects of that class - meant for working interactively with the program vs. writing & rewriting code
<Regenaxer> I read it as working like 'set' or 'set>', i.e. for a given object
<Regenaxer> But I just took a short glance
<Regenaxer> UPDATE-INSTANCE-FOR-REDEFINED-CLASS reinitializes an object when Lisp detects ...
<beneroth> yeah same
<Regenaxer> Function names like UPDATE-INSTANCE-FOR-REDEFINED-CLASS terrify me ;)
<Regenaxer> If the point of the article is:
<Regenaxer> The differentiating point is that the entire
<Regenaxer> language and system is thoughtfully designed
<Regenaxer> progress while it runs, and that you should be
<Regenaxer> you're going to be changing your work in
<Regenaxer> from the ground up with the assumption that
<Regenaxer> able to change absolutely anything about it as
<Regenaxer> it runs and have a reasonable expectation that
<Regenaxer> it will continue to work while you do it.
<Regenaxer> Then it all is the same in PicoLisp
<Regenaxer> In PicoLisp it is true in addition that it also applies to the Database
<Regenaxer> as it is integral part of the runtime system
orivej has quit [Ping timeout: 246 seconds]
orivej_ has joined #picolisp
<beneroth> Regenaxer, T
<Regenaxer> Just now
<beneroth> nice :)
freemint has joined #picolisp
<freemint> So FoF is in an hour?
<Regenaxer> yep
<Regenaxer> FfF
<freemint> Where will it be?
<Regenaxer> here ;)
<Regenaxer> ok
<freemint> That's what i wanted to know
<rick42> it just dropped me, but i think it reconnected me too. this is all new to me. haha
<Regenaxer> Hi Rick!
<rick42> hi Regenaxer!
<rick42> look like just me and beneroth in there. tried saying hello :)
<rick42> i hope I can stay connected ...
<Regenaxer> I'm preparing toi
<Regenaxer> toi
<Regenaxer> grr
<Regenaxer> too
<rick42> hehe
michelp has quit []
michelp has joined #picolisp
<Regenaxer> I start my screen share
<rick42> beneroth: I heard you say "Hello everyone:" then you dropped
<beneroth> yup
<beneroth> clicked on leave >.<
<beneroth> I'm back
<beneroth> Regenaxer, (off *Sun)
<freemint> Is someone having an ee on IRC, can't talk
lodsw has quit [Ping timeout: 265 seconds]
lodsw has joined #picolisp
<freemint> yes
f8l has joined #picolisp
<freemint> Regenaxer you app allows users to interact with a repl. Have considered at your infrastructer from an adversaries perspective/what can be done with an authenticated but stolen phone?
<freemint> Regenaxer, if i am aware the server can only pool one DB at the time. How do you copy data between fifi and the server side replica of the user database?
<freemint> Regenaxer is the UUOD an authentication token? If so how do you prevent guessing UUID, since the generation of UUID depend on time, which might make guessing it simpler
<freemint> Do you run shared production/development environment? Has that caused problems?
<freemint> beneroth, rick42 can one of you have an eye on the IRC chat from time to time? can't ask questions via voice rn.
freemint has quit [Remote host closed the connection]
freemint has joined #picolisp
narendraj9 has joined #picolisp
<Regenaxer> freemint, ok?
<freemint> yeah
<freemint> Regenaxer Fireman coordination is critical infrastructure. It seems like you are mission critical and your role can't be replaced easily by another Picolisp programmer. What do you think about this reality?
orivej_ has quit [Ping timeout: 258 seconds]
orivej has joined #picolisp
<freemint> Are you able push an emergency update, if some bug was dicsovered and fixed during a mission without everyone having to wait for upto 2 hours?
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #picolisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
<freemint> Regenaxer, will uninstalling the DB mean you need to redownload the database?
<freemint> Oh, yes looks like it
<freemint> Regenaxer, the user experience seems to have som rough edges (small dialogues, pictures shown way to big) Will you address those/have people with piir eyesight/little technology knowledge test them.
<freemint> In mean in the app
<freemint> Maybe even bigger than thatm you are wasing a lot of screen realestate
<freemint> *wasting
<freemint> No, i mean your buttons can be bigger
<freemint> and not rounded, spanning the complete screen width in vertical mode. I iimagine when the app us used in the field bigger buttons are better.
<freemint> I don't speak css ;-) It's just some feedback i have, not complaints
<Regenaxer> Yes, good. Thanks!
orivej has quit [Ping timeout: 246 seconds]
m_mans has quit [Remote host closed the connection]
orivej has joined #picolisp
<freemint> If we are in a post apocalyptic world i hope many phones have PilBox installed :-) It's so modable.
<freemint> Do you have an offline picolisp documentation app?
<freemint> I mean exactly that, do you a
<freemint> Yeah but that's not an App. Looks very nerdy and unapproachable compared to reading it via browser
f8l has quit [Ping timeout: 264 seconds]
<freemint> I am quiet tied up with Julia.
<Regenaxer> When will you marry?
<freemint> (programming language)
<Regenaxer> ah
<freemint> For nummerical stuff
<freemint> It's fine. It showed what pil can do
<freemint> Basically a Lisp that hides under a MatLab like syntax and runs like Fortran.
<freemint> Thanks
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #picolisp
<freemint> The maling list is best.
<freemint> Sorry
<freemint> :-)
<freemint> Regenaxer back in the old days you did weather simulation code, do i recall that correctly?
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
<freemint> Would you be interested in working on Open Source Climate code again?
<freemint> ys climate
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
<freemint> In Julia there is community building a new climate model. https://github.com/CliMA/ClimateMachine.jl
<freemint> (people in the Julia community)
<freemint> Oh yeah
<freemint> PDE solving.
<freemint> MPI
orivej has quit [Quit: No Ping reply in 180 seconds.]
freemint has quit [Ping timeout: 260 seconds]
orivej has joined #picolisp
f8l has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #picolisp
f8l has quit [Remote host closed the connection]
f8l has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
pointfree has quit []
pointfree has joined #picolisp
freemint has joined #picolisp
freemint has quit [Ping timeout: 260 seconds]
<Regenaxer> Hmm, in fact I'm getting a bit tired of that. Why make a PicoLisp conference if each time somebody takes over and won't stop advertising some other language?
<beneroth> T
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #picolisp
freemint has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #picolisp
freemint has quit [Ping timeout: 260 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 265 seconds]
orivej_ has joined #picolisp
orivej_ has quit [Read error: Connection reset by peer]
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #picolisp
<Nistur> hmmm, am I misremembering, am I not able to pass an array of numbers (integers, specifically) to a native, or gcc'd function?
<Nistur> eehhhh, I thought I'd already done this, but it looks like I've only ever passed strings
<beneroth> afaik this is possible, but I'm not an native expert
<beneroth> Nistur, look at the reference
<beneroth> (N . 4) - array of longs
<Nistur> yes, that's for returns
<beneroth> so I guess (I . 4) - int[4]
<beneroth> I see
<Nistur> ... it's always the C interop that trips me up. I don't set out to use C stuff... but I am looking to avoid rewriting every vaguely circular object to be a new form of wheel... I think with 5 small wrapper functions I have made most of the random software rendering lib work, and render to fbdev... it just doesn't load models. This is of course not ideal, as I then have nothing to render... so loading
<Nistur> models, I need to give it large streams of numbers representing the vertices etc
<Nistur> ahh, I think I have it
<beneroth> it seems you need to create the array in lisp by calling C functions, to then have a pointer which you can pass as a normal argument
<beneroth> is that it?
<beneroth> I always find (native "@") funny :)
<Nistur> let me have a look
<beneroth> (native "@") calls functions from the current binary
<Nistur> yup
<beneroth> which offers libc
<Nistur> I thought I'd inferred that you could pass a cons pair of the type, in this case 'I, and the list, but that didn't work either
<Nistur> I _can_ create a C array and populate it, but that's more than a bit meh :P
<beneroth> you saw this part?
<beneroth> (mapcar
<beneroth> '((Str) (cons (native "@" "strdup" 'N Str) 8))
<beneroth> '("abc" "def" "ghi") )
<beneroth> of course you don't want strings
<beneroth> The following passes the number 3 in a single-element
<beneroth> 'int' array, receiving the possibly modified value in the variable 'Len':
<beneroth> (Len (8 . I) -3)
<beneroth> sounds to me like the native array construction must be possible
* beneroth has never worked with native
<Nistur> yeahh
<Nistur> (cons NIL (list (* 8 Len)) Lst)
<Nistur> hmmm
<Nistur> two bee fayre, this is just a helper function to set up a struct with data I already have
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
<Nistur> I was wanting to just leverage someone else's code, already written
<Nistur> but I may just rewrite that bit :P
<beneroth> yeah I know the feeling :)
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
<aw-> beneroth Nistur hi, 'native' "@" is extremely useful btw
<aw-> it doesnt only give access to libc
<aw-> but it gives access to anything linked to the picolisp binary, you can try 'ldd /usr/bin/picolisp'
<aw-> in my case i also linked against librt.so and can now use native Linux message queues (realtime) directly with (native "@")
<aw-> ldd /usr/bin/picolisp
<aw-> linux-vdso.so.1 (0x0000007f8ef0f000)
<aw-> libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000007f8ec99000)
<aw-> libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f8ecac000)
<aw-> libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f8ed57000)
<aw-> /lib/ld-linux-aarch64.so.1 (0x000000557abb3000)
<aw-> librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000007f8ec82000)
<aw-> libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f8ec56000)