Re: Wiki Article: Asynchronous Events and Family IPC
By the way, the picolisp twitter account is great !!! :-) JC > On May 8, 2022, at 14:08, Alexander Burger wrote: > > Hi all, > > a new Wiki article about internal background processing, asynchronous events > and > family IPC in PicoLisp: > > https://picolisp.com/wiki/?background > > I think this was not yet documented anywhere. > > ☺/ A!ex > > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe -- Jean-Christophe Helary @brandelune https://mac4translators.blogspot.com https://sr.ht/~brandelune/omegat-as-a-book/ -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Wiki Article: Asynchronous Events and Family IPC
Hi all, a new Wiki article about internal background processing, asynchronous events and family IPC in PicoLisp: https://picolisp.com/wiki/?background I think this was not yet documented anywhere. ☺/ A!ex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: clarification on lexical scopes needed - why parameter name 'args breaks things?
On Sat, May 07, 2022 at 08:45:48PM +0200, Alexander Burger wrote: > There is an ongoing confusion of terms: "Scope" means "visibility", but when > we > talk about the values of symbols it is "binding". We should really talk about this at the next PilCon (in three days). ☺/ A!ex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: clarification on lexical scopes needed - why parameter name 'args breaks things?
Hi Jason, > Why does declaring a parameter named 'args', in a function that does > NOT use the '(args)' call, break things severely ? > > I had a function that does NOT use the built-in 'args, but which > declared a parameter named 'args : > ... > Then eventually 'fun calls a function that calls '(args) : Well, this is easy ;) You did not follow the PicoLisp naming conventions. We should use an uppercase The Naming Conventions in https://software-lab.de/doc/ref.html#conv state: "Locally bound symbols start with an upper case letter". Also check the FAQ at https://software-lab.de/doc/faq.html#bind > I thought parameters and '(let ..) variables are in their own > dynamic lexical scope, so that even if the 'args call is hidden PicoLisp does dynamic BINDING. There is an ongoing confusion of terms: "Scope" means "visibility", but when we talk about the values of symbols it is "binding". Common Lisp for example does lexical binding, while PicoLisp does dynamic binding. The SCOPE of a symbol in PicoLisp depends on its type. Transient symbols have a file-local scope, internal symbols have a scope per namespace, an external symbol's scope is that of the database. But they are ALL bound dynamically. ☺/ A!ex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
clarification on lexical scopes needed - why parameter name 'args breaks things?
Good day Alex, picoLisp list - Why does declaring a parameter named 'args', in a function that does NOT use the '(args)' call, break things severely ? I had a function that does NOT use the built-in 'args, but which declared a parameter named 'args : (de a ( fun data args ) (let ( (flg list x) args ) # destructuring bind (prog ... # eventually, fun gets called with unpacked args: (fun data flg list x) ) ) ) Then eventually 'fun calls a function that calls '(args) : '(request! '(+myDbCls) ... ) which DOES use args, at which point I got an error: !? ((0 NIL 16661165511231956559 (15935676839705835219 (12638994734423517827 ... 0 -- Variable expected Renaming the parameter 'ars (or 'as :-) ) fixed the problem. Why ? I thought parameters and '(let ..) variables are in their own dynamic lexical scope, so that even if the 'args call is hidden in the 'a function, if 'a calls another function 'fun, and that calls a function which calls 'request!, the binding of 'args in request cannot possibly be affected by the binding of 'args in 'a. This turns out to be incorrect ! Where am I going wrong ? This took me a LONG time to find. My only clue was that 'list does look like : ((0 NIL 16661165511231956559 (15935676839705835219 (12638994734423517827 ... Any suggestions as to exactly how the binding of 'args in 'a gets called by 'request! would be much appreciated. Thank You & Best Regards, Jason -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe