<geri>
gonna go rewrite half of my code not to use explicit evals :D
<geri>
or not, i guess it only works with lambdas and for builtins you need to use eval anyway
<geri>
oh nevermind, pico eval actually allows ((list '+ 1 2)) as well
<geri>
that is so cool
<abu[7]>
お早うgeri!
<geri>
:DD
<geri>
was it actually using the kanji for "fast"?
<abu[7]>
yes
<abu[7]>
hayai
<geri>
today ive learned
<geri>
okay so i made (...) mean eval if the lambda is not valid
<geri>
its funny but so hard to debug that id rather not
<geri>
let eval be eval and () be a function call
<geri>
does evaluating function call build a new list before passing it to the body or do it in-place?
<abu[7]>
No, it does no consing by itself
<geri>
huh
<geri>
what does it do then?
<geri>
i mean if '((Name) (print "Hello, " Name))
<abu[7]>
This is a legal function
<abu[7]>
Why should it cons?
<geri>
im thinking :D
<geri>
i guess it just sees Name, takes first argument, evals and binds
<geri>
then does the same thing with other stuff
<abu[7]>
right
<abu[7]>
so only stack operations
<abu[7]>
llvm~evList
<geri>
all the param destructuring is in evExpr?
<abu[7]>
Yes, and the same in evMethod
<geri>
i was probably consing to pass it to destructuring bind prettily
<geri>
to not have to do it all in 3 places
<geri>
maybe if i add a "eval" flag to the bind itll be better
<geri>
although the function does so much now its kinda confusing :D
<geri>
also i just realized i can kinda emulate forth's hyperstatic environments with private namespace :D
<geri>
: start ." original" ; ok
<geri>
: entry start ; ok
<geri>
: start ." new" ; ok
<geri>
entry original ok
<geri>
entry original ok
m_mans has joined #picolisp
Guest87 has joined #picolisp
Guest87 has quit [Client Quit]
Serj-Aleks has joined #picolisp
<Serj-Aleks>
Первый раз использую IRC канал, даже не знал, что это ... и пока не понимаю, как пользоваться ... Присоединился, потому что недавно узнал о проекте PicoLisp и приняд для себя решение в него погрузиться.
<abu[7]>
Serj-Aleks, no problem! There is always a first time. Welcome here! ☺
<tankf33der>
Serj-Aleks: ку
<Serj-Aleks>
Спасибо всем, кто откликнулся. Попробую выйти и зайти снова. Программа говорит, что мои настройки в сети будут запомнены на моем компьютере. Надо проверить. Я сначала заходил с телефона как
<Serj-Aleks>
гость, но потом решил с компьютера с ником.
<tankf33der>
ok
Serj-Aleks has quit [Quit: Client closed]
<bjorkintosh>
what was all that?
<tankf33der>
new russian speaker
<abu[7]>
He is new to IRC
Serj-Aleks has joined #picolisp
<abu[7]>
Maybe tankf33der, m_mans on geri can herp
<tankf33der>
is geri knows russian ?
<abu[7]>
Serj-Aleks, which password do you mean?
<tankf33der>
he left but will return
<abu[7]>
geri seems here though (?)
<tankf33der>
geri: wake up
<m_mans>
Hi all! Yeah, I proposed him to ask in russian Telegram chat
<abu[7]>
Is there a pil telegram channel?
<m_mans>
Very small one, no activity there
<tankf33der>
:)
<abu[7]>
Cool anyway :)
<abu[7]>
So Serj-Aleks does not know English?
<m_mans>
mostly for us, who does not speak English fluently )
<abu[7]>
Bad English is also OK
<m_mans>
abu[7]: I know nothing about him yet
ygrek has joined #picolisp
Serj-Aleks has quit [Quit: Client closed]
m_mans has quit [Ping timeout: 244 seconds]
<geri>
tankf33der: im very slow damn
<geri>
yeah he just said that he wants to get deeper into picolisp and that he experienced some technical issues with his computer/irc
<geri>
probably irc client, it wasn't exactly clear honestly
<geri>
like 80% it was about irc
<geri>
"First time using an IRC channel, didn't even know what it was... and still don't understand how to use it... Joined because learned about the PicoLisp project recently and decided to dive deeper into it"
<geri>
"Thank you to everyone who responded. I'll try to leave and join again. The program says my settings will be synced with my computer. Need to check. First time I joined off of my phone as a guest, but later decided to join from a phone with a nick"
<geri>
abu[7]: im also confused what passwords you meant :D
<abu[7]>
I had his texts translated by AI
<geri>
my ai is a little better B)
<abu[7]>
but answered to him in English. Not sure if he understood ...
<abu[7]>
:)
<geri>
he kinda never reacted to actual words so im not sure
<geri>
but the thank you implies that probably yes
<abu[7]>
right
<geri>
tankf33der: what's ку
<tankf33der>
I thought you understand russian. Sorry.
<geri>
i understand russian, not internet slang
<geri>
apparently a short greeting
<tankf33der>
Ok
<geri>
abu[7]: what do you like about dynamic binding
<abu[7]>
Simple and fast
<geri>
can already say that probably symbols being "real" and relative simplicty
<geri>
also shadowing stuff can be nice, like (let *Some-Global Some-value body)
<abu[7]>
T
<abu[7]>
You can do even in C
bjorkintosh has quit [Quit: "Every day, computers are making people easier to use." David Temkin]
<geri>
shadowing globals?
<abu[7]>
int f () int i = GlobalI; ...; GlobalI = i; ...
<abu[7]>
int f () {int i = GlobalI; ...; GlobalI = i; ...
bjorkintosh has joined #picolisp
bjorkintosh has joined #picolisp
<geri>
yeah fair
<geri>
any other upsides come to mind?
<abu[7]>
for example?
<geri>
to dynamic binding
<abu[7]>
Like you said, shadowing
<abu[7]>
globals or other free vars
<abu[7]>
or functions especially
<abu[7]>
(let car foo (bar))
<geri>
yeah
<geri>
thats why emacs also uses dynamic binding
<geri>
although it has got lexical since forever as well
<geri>
for downsides i guess less efficient to compile and shadowing can be nasty sometimes
<abu[7]>
both true
<abu[7]>
But lexical binding has the same problems in other situations like macros
<geri>
like need for gensyms in common lisp?
<abu[7]>
T
<geri>
that's honestly more of a problem with list-based macro system instead of the complex langauge scheme uses for hygiene
<geri>
but it also gives you power, just like shadowing in dynamic binding
<geri>
like, you can make a macro take and return arbitrary forms
<geri>
scheme's are a little more limited, by design though