beneroth changed the topic of #picolisp to: PicoLisp language | The scalpel of software development | Channel Log: https://libera.irclog.whitequark.org/picolisp | Check www.picolisp.com for more information
bjorkint0sh has quit [Ping timeout: 240 seconds]
rob_w has joined #picolisp
bjorkintosh has joined #picolisp
bjorkintosh has quit [Changing host]
bjorkintosh has joined #picolisp
bjorkintosh has quit [Ping timeout: 268 seconds]
bjorkintosh has joined #picolisp
bjorkintosh has quit [Changing host]
bjorkintosh has joined #picolisp
beneroth has quit [Ping timeout: 264 seconds]
beneroth has joined #picolisp
beneroth_ has joined #picolisp
beneroth has quit [Ping timeout: 260 seconds]
beneroth_ has quit [Quit: Leaving]
beneroth has joined #picolisp
rob_w has quit [Quit: Leaving]
lagash has joined #picolisp
skyjuice has joined #picolisp
<skyjuice> Hello all
<abu[7]> Hi skyjuice
<skyjuice> Following Mia's tutorial picolisp-explored.com/creating-a-todo-app-5-adding-the-user-login, I have a issues adding a user to the db
<skyjuice> Calling (request '+User 'nm "admin" 'pw (passwd "admin")) returns nil instead of an external symbol
<abu[7]> 'request' needs a 'typ', not a 'cls'
<abu[7]> i.e. a list of classes
<abu[7]> (request '(+User) ...
<skyjuice> thanks that works
<abu[7]> ☺
<skyjuice> has there been an update to the request function signature, or is it typo in the tutorial?
aw- has quit [Ping timeout: 240 seconds]
<abu[7]> It has always been that way
<abu[7]> To create a new object always a list (a type) is needed
<abu[7]> I cannot find 'request' in the above lin(
<skyjuice> In the tutorial?
<skyjuice> under "Creating the user"
<abu[7]> Indeed
<abu[7]> that's wrong
<skyjuice> Ah thought that might be the case or may be the request function had been updated.
<abu[7]> Yeah
<skyjuice> Interestingly (for me) (put '+User 'nm "admin" 'pw (passwd "admin")) returns a salt like string but the user couldn't be persisted  after (commit) -> T
<abu[7]> '+User is the class. not an object
<abu[7]> (put!> '{123} ... if {123} is an existing object
aw- has joined #picolisp
<abu[7]> (put '+User 'nm ... is legal, but puts a 'nm' property to the class
<skyjuice> Ah got it ty
<skyjuice> So the long string I got was just the return value of (passwd) salt, hash etc
<abu[7]> Right
<skyjuice> (y)
<abu[7]> t
<beneroth> put and put> is a small but big difference :-)
<beneroth> first is the native picolisp function to write properties of a symbol
<beneroth> second is a method defined on +Entity which kicks-off the whole database schema machinery (methods on +relation and subclasses and prefix-classes) to check database integrity and update indexes etc.
<skyjuice> ty good to know
<beneroth> both can be used on external symbols (database records), but (put) is lower-level and does not run all the stuff that (put> . +Entity) does. (put> . +Entity) itself uses (put)
<skyjuice> the ">" suffix always indicates  methods in Picolisp, no?
<beneroth> (commit) in the end just persists all changed external symbols, even when they were only changed by (put) instead of (put> ...) - but likely not all side-effects (updating indexes etc) were done then
<beneroth> so it can be legitimate to use (put) for database stuff, but not in normal use
<abu[7]> skyjuice, yes
<beneroth> skyjuice, yes. see naming conventions
<skyjuice> ty wil
<skyjuice> *will do
<beneroth> naming conventions are not enforced but it highly recommended to follow them. helps preventing most user/programmer mistakes.
<beneroth> s/it/its
<beneroth> you can use (lint) and (lintAll) to check your code
<skyjuice> "you can use (lint) and (lintAll) to check your code"  in vip?
<abu[7]> Yes. or just in REPL
<abu[7]> Tbe output is a bit cryptic ;)
<beneroth> you could add a parser to vip to translate it into easier english ;-)
<beneroth> displaying it as a list of points to fix or such... and maybe even supporting Ctrl+K to jump to the variables/functions whatever.
<beneroth> just an idea ^^
<beneroth> then again you abu[7] probably no the codes by heart :)
<beneroth> s/no/know
<abu[7]> T, in .pil/viprc
<beneroth> T, good point
<abu[7]> Only 4 codes IIRC
skyjuice has quit [Quit: Client closed]
<beneroth> 5 - var dup def bnd use
<abu[7]> no, 5
<abu[7]> T ☺
<beneroth> I guess you rarely see 'use :)
skyjuice has joined #picolisp
<abu[7]> T saw sometimes
<abu[7]> but rarely
<beneroth> wb skyjuice
<skyjuice> ty :]
<skyjuice> ty "https://software-lab.de/doc/refL.html#lint" I'm using emacs but  I can use this from the repl
<beneroth> yes its loaded by default whenever you start pil in debug mode
<beneroth> you can use (show 'lint) or (; 'lint *Dbg) to see where it is defined (works for every picolisp symbol, not only lint)
<beneroth> (de) adds the *Dbg property when running in debug mode
<abu[7]> Better (pp 'lint) instead of (show 'lint)
<abu[7]> or ideally (wi 'lint)
<beneroth> note how *Dbg is here used as property name, but is also a global variable set to T when picolisp was started in debug mode
<beneroth> abu[7], (wi) ? since when?
<abu[7]> oops
<abu[7]> (vi ...
<beneroth> you mean (vi) ?
<beneroth> ah
<abu[7]> ☺
<beneroth> :)
<abu[7]> New keyboard
<beneroth> skyjuice, (pp) or (vi) to show the function definition. (; 'lint *Dbg) to see where it comes from.
<beneroth> abu[7], not penti?
<abu[7]> No
<abu[7]> StenoBoard
<beneroth> what happened? :O
<abu[7]> I have problems with my finger
<beneroth> :(
<beneroth> when will you add voice recognition to repl?
<abu[7]> ☺
<beneroth> :)
<beneroth> gute Besserung :-/
<abu[7]> Steno is not documented yet
<abu[7]> Thanks!
<abu[7]> It is Morbus Dupuytren
<abu[7]> For Steno I need only one finger
<beneroth> new project by software lab?
<beneroth> inspired by flappy bird?
<beneroth> I'm excited to learn about it :)
<beneroth> but no stress!
<abu[7]> software-lab.de/StenoBoard.tgz
<beneroth> ah, radial controls
<abu[7]> All chars are written with a single stroke
<abu[7]> 8 directions (E, SE, S, SW etc.)
<skyjuice>  I ran (lintAll "todo-user-login.l") on this source: gitlab.com/picolisp-blog/web-applications/-/blob/main/todo-list-example/todo-user-login.l which returned ((erVar (bnd Cur))), what does this indicate? I can't find the definition for "erVar" in the docs and there is no "Cur" symbol in the source.
<beneroth> abu[7], o is a tap?
<abu[7]> The function erVar does not bind Cur
<abu[7]> o is the end
<abu[7]> 8 dirs times 4 endings
<beneroth> skyjuice, (lintAll) checks all internal symbols (of your current repl) and the files you give additionally
<beneroth> so the error doesn't come from the file, but your environment
<abu[7]> Ending is up, left, right or back
<beneroth> ah!
<beneroth> nice logo!
<abu[7]> I'm working on cheat.pdf
<skyjuice> ah got it,  ty
<beneroth> :)
<abu[7]> 👍
skyjuice has quit [Ping timeout: 250 seconds]