xkapastel has quit [Quit: Connection closed for inactivity]
xkapastel has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
mtsd has joined #picolisp
xkapastel has quit [Quit: Connection closed for inactivity]
Nistur has quit [Ping timeout: 252 seconds]
<Regenaxer>
DKordic: "How to <<car> and <<cdr>> and destructively update <<num>>s" - Now I see your misunderstanding
<Regenaxer>
Bignums are *not* lists internally
<Regenaxer>
They are a *binary* structure
<Regenaxer>
The cells are chained by pointers with offsets, and the CARs are raw binary values, not Lisp data
Nistur has joined #picolisp
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
<DKordic>
YOW! >> [ dfn ( L Chain Argument Mapping ) ( Chain Mapping Argument ) ( 1A ) ( L id ) ] <<.
<DKordic>
>> ' [ let [ dfn C ( L ( L id 2 ) 3 ) ] ( and ( and ( = C ( L L 3 ( L L 2 id ) ) ) ( = C ( Forth ( 1A 2 ) ( 1A 3 ) ) ) ) ( = -1 ( apply C - ) ) ) ] <<.
<DKordic>
>> ' L << seems to be somehow Linear and related to the Forth <<Argument Stack>>, and >> ' ( L L ) << seems to be... a W/Parent_pointer_tree and related to <<Call Stack>>!
<Regenaxer>
DKordic, did you read my impression above? Is that correct?
<DKordic>
Regenaxer: Swaps of Memory!
<Regenaxer>
?
<Regenaxer>
No idea what you are talking about :(
<DKordic>
Ah, sorry. Yes... We can use a <<dst>> Parameter where result is Stored, Destructive Uptdate.
<Regenaxer>
use for what?
mtsd_ has joined #picolisp
<Regenaxer>
Can you PLEASE make more clear what you mean? I don't have the brilliance to understand
<Regenaxer>
And use normal Lisp syntax if possible
mtsd has quit [Ping timeout: 246 seconds]
<Regenaxer>
Hopeless case, it seems
<Regenaxer>
I give up
<DKordic>
Sorry, I need some time...
<Regenaxer>
afp
<DKordic>
It is My Forth Dialect :) .
<DKordic>
I tryed to make it a PicoLisp lib. But I had difficulties with Downward Fun Arg Problem, and even more difficulties with Upward Fun Arg Problem.
<DKordic>
That was an initial example. <<L>>ink Arguments 2 and 3, name them <<C>>, and <<apply>> <<->> with them, resulting in <<-1>>.
<DKordic>
Re: pil <<num>> primitives. As an initial example, <<(sub! dst digit1 digit2)>>? Even better if it can be reFactored into something like <<(! (digit -))>> clarifying it's structure.
<DKordic>
Like <<(= E (cons (car E) (cdr E)))>> is to <<cons>>, <<(= Num (num (.digit Num) (.digits Num)))>> is to <<num>>. <<(! Dst num Digit Digits)>> is <<(! Dst id (num Digit Digits))>>?
<Regenaxer>
ret
<Regenaxer>
Numbers are binary digits. No sense to 'cons' them
<Regenaxer>
And they are NOT cons pairs
<Regenaxer>
despite cells are used to store them
<Regenaxer>
A cons cell holds two *Lisp* level items
wineroots has quit [Read error: Connection reset by peer]
mtsd_ has quit [Ping timeout: 252 seconds]
wineroots has joined #picolisp
mtsd has joined #picolisp
olaf_h has joined #picolisp
<Regenaxer>
Hi olaf_h!
<olaf_h>
Hi Regenaxer :-)
<Regenaxer>
:)
<Regenaxer>
We should plan what to do on next PilCon
<Regenaxer>
Last time was too hard core
<Regenaxer>
I think we lost most people
<beneroth>
:/
<Regenaxer>
Back to the Basics
<beneroth>
last two times? or only last time?
<Regenaxer>
More last time
<beneroth>
sorry ^^'
<Regenaxer>
I was kind of bored to repeat
<beneroth>
yeah, that maybe too
<beneroth>
hmmm
<olaf_h>
... i have to remember what topic we had last time ....
<beneroth>
vip
<Regenaxer>
yes
<olaf_h>
ah, vip 2nd run, right?
<beneroth>
T
<olaf_h>
hi beneroth :-)
<beneroth>
hi dear olaf_h :)
<Regenaxer>
too specialized issue
<beneroth>
too few vip users I'd guess
<Regenaxer>
yes, and the code is complicated
<beneroth>
maybe you could give a "history of picolisp implementations" talk, Regenaxer ?
<olaf_h>
and it's hard to follow the special cases if one is not already using vip
<beneroth>
or.. a overview of a range of projects (without details, just about the use cases and technical challenges) you solved with picolisp over your career
<Regenaxer>
hmm, a history is even more confusing
<beneroth>
hahaha
<beneroth>
I see
<Regenaxer>
changed too often
<beneroth>
good mark
<Regenaxer>
I hope only the LLVM version prevails
<beneroth>
you feel better with technical than meta-technical discussion I'd guess... hmmm
<olaf_h>
topic immutable (?) was mentioned some meetings ago
<beneroth>
hm
<Regenaxer>
meta-technical is all right
<Regenaxer>
also philosophy
<beneroth>
that might be an idea: a discussion of each function pair of mutable/immutable variant
<Regenaxer>
I think the main purpose of pil is not understand
<Regenaxer>
purposes
<beneroth>
though we will never be able to convince the people who insist on "functional programming means immutability"
<beneroth>
that we should not try
<beneroth>
just point out the different trade offs and use cases
<beneroth>
Regenaxer, maybe. or it's too simple. not special enough.
<olaf_h>
i do not have any clue what immutable means, so this would have to be explained too
<Regenaxer>
sure
<Regenaxer>
we can talk about immutability
<beneroth>
olaf_h, never changing data, but copying it when doing modification. including for all variables in memory.
<Regenaxer>
Functions like append, delete, reverse
<beneroth>
it became a hype especially through clojure (arguably the only lisp in wider fashion now.)
<beneroth>
Regenaxer, exactly those
<Regenaxer>
as opposed to conc or flip
<Regenaxer>
I think the core issue in pil is to be in control
<Regenaxer>
being able to understand the whole system
<Regenaxer>
But now I see that most people don't strive for that
<beneroth>
olaf_h, the main benefit (or main cause why it was used as strong language attribute in newer languages) is that it makes thread programming much easier. thread programming = memory shared between multiple "processes" = problems if they don't coordinate well how is allowed to change what = immutability = never changing anything, only create new stuff = less coordination problem
<beneroth>
Regenaxer, don't dare to change that purpose :P
<Regenaxer>
never :)
<beneroth>
good!
<Regenaxer>
immutable means no side effect, so functional programming
<beneroth>
problem is: people are taught that they CANNOT be in control. that they have to follow guides & best practices & leave special parts to the respective specialists.
<Regenaxer>
but pure functional is not the goal in PicoLisp
<beneroth>
which is also true for most overengineered bloatware. because its bloat, not because of the essential complexity of the domain.
<beneroth>
there are topic where specialization is warranted, but nearly always it is just used as an excuse to hand a thing over to someone else or as excuse why nobody is to blame for any mistake
<beneroth>
Regenaxer, I believe that the "functional = immutable" is a new thing
<Regenaxer>
not "="
<Regenaxer>
but implies
<beneroth>
implies vs. warrants
<Regenaxer>
functional means "no side effect"
<beneroth>
which is not real-world-compatible :D
<beneroth>
not as long as we cannot chose the direction of time
<Regenaxer>
Eric Normand made the picture of Data, Functions and Actions
<Regenaxer>
ok, so let's talk about that :)
<olaf_h>
Regenaxer: to be in control ...... but could picolisp not be useful/able for those too, who only want to create small programs?
<beneroth>
olaf_h, it can and is useful. also for big programs, I would say. insofar as big programs are useful in any way.
<olaf_h>
pilBox seems to be outstanding for that it is (the only?, i dont know) possible to hack program on device itself
<Regenaxer>
To create a small program you can use any langsiWe should explain what is different in Pil
<beneroth>
big business is trying hard to get the "universal computing" concept out of devices. and it works.
<olaf_h>
but the step in is too high
<beneroth>
Regenaxer, T
<Regenaxer>
The step is high, yes, but a lot higher in most other systems
<beneroth>
the point is that with picolisp you can do in a small program, which can be understood in its entirety, what other stacks requires big amounts of complex code
<Regenaxer>
this too, but the point is you can understand the machinery
<olaf_h>
i'm thinking about how to lower the first step(s)
<beneroth>
olaf_h, which first steps?
<beneroth>
Regenaxer, maybe mtsd should present his presentation at pilcon before the discussion :D
<mtsd>
Been a while now, but might be a topic to discuss?
<olaf_h>
beneroth: first steps like having picolisp code / snippets on button touch for example
<Regenaxer>
Thats very high level
<Regenaxer>
I mean the cells etc level
<Regenaxer>
eval
<Regenaxer>
quoting
<Regenaxer>
So many don't understand
<Regenaxer>
That's the core concepts
<mtsd>
I turned the example I mentioned in my presentation into a kind of application skeleton, a while ago. I'll take a look at it, maybe it can be used as an example.
<beneroth>
Regenaxer, T that talk is needed too. Though I would start with datatypes
<mtsd>
Tried to convice some of my colleagues of the benefits, but that turned out to be somewhat hard
<beneroth>
first with the strongly statically typed ones, than one the dynamic ones based on top of it (e.g. strings, objects, classes, externals, ...)
<olaf_h>
after having installed pilBox on my device, having explored some of the published demo apps, having discovered the way to the REPL ..... then it would be very nice to put together 'my own' first hello world by tapping only a few buttons - like tutorial - and having that 'app' presented among the others apps on the picolisp dashboard.
<beneroth>
Regenaxer, things like eval and cells are too hard for non-lispers, because they're so unfamiliar. and they don't see the use of it. they first must be lead to a problem where this is the solution
<olaf_h>
a user who wants to collect phone numbers - would mainly be interested in Charts and Input Fields and so on.
<Regenaxer>
ok, so PilBox is also a good subject
<Regenaxer>
I see, it is hard do decide which layer to address
<olaf_h>
picolisp at the moment is too sophisticated to allow such a user to reach the goal - though there seems to be the promise of putting things together on the device
<Regenaxer>
hmm
<Regenaxer>
so PicoLisp failed on its core purpose
<olaf_h>
Regenaxer: yes, because PilCon audience does not tell its wishes.
<beneroth>
Regenaxer, not for me
<beneroth>
Regenaxer, don't forget the standard in software developer education dropped massively
<olaf_h>
Regenaxer: my english is bad, what do you mean by: PicoLisp failed on its core purpose
<Regenaxer>
T
<Regenaxer>
As you said "is too sophisticated"
<olaf_h>
beneroth: standard dropped because it is (seems not to be) no longer necessary for industrial software production
<beneroth>
most programmers don't want to be in control. most don't know that its feasible.
<beneroth>
olaf_h, demand is greater than supply, therefore drop quality in favor of mass software production
<Regenaxer>
yeah
<beneroth>
sorry I have to had off for a priority errand
<mtsd>
Seems like most programmers prefer to be a replacable commodity, rather than a valued asset
<olaf_h>
bye
<Regenaxer>
no problem!
<Regenaxer>
see you
<beneroth>
mtsd, YES! This!
<mtsd>
See you beneroth!
<beneroth>
will join the discussion later again. :)
<olaf_h>
sure, beneroth !
<olaf_h>
i see software doing similar steps as cars
<olaf_h>
at the beginning no one could use a car without being able to fix it
<olaf_h>
but nowadays i can use a car without any clue about the core of it - i only need to study how to use it
<mtsd>
And then it turns the other way. Everyone uses them, nobody knows how to fix them
<olaf_h>
yes, but that is no problem at all for most of the users (of cars)
<olaf_h>
and in software, too - if we count apps as software
<Regenaxer>
But if you want to win a Formular 1 race, you need to understand all details of the machine
<olaf_h>
pilBox entered PlayStore and announces 'create apps on the device itself' (not in words, but in meaning)
<Regenaxer>
yes
<Regenaxer>
I do that exclusively
<Regenaxer>
working only on a phone
<mtsd>
I am still amazed by that, Regenaxer
<olaf_h>
yes, Regenaxer, you can do this because you know the language.
<olaf_h>
Other lispers could do as well.
<olaf_h>
But when they tap in the repl, the keyboard will overlap the input line
<Regenaxer>
yes, but this is separate from knowing Pil
<olaf_h>
and it is not possible to (or not possible for users like me) edit more than one line
<Regenaxer>
Never tried :)
<Regenaxer>
On a tablet it is no problem I think
<Regenaxer>
But even if the screen is partly covered by a keyboard, you could zoom the repl window in some proper way
<olaf_h>
sorry for my bad english here, it always might sound a bit bity, but i do not want to criticize anything, i just want to empower
<Regenaxer>
yes, I understood it this way
<Regenaxer>
But you are right, pure mobile development makes sense only with Penti
<Regenaxer>
everything else is masochism
<Regenaxer>
Not only for the keyboard overlay
<Regenaxer>
but also keys like Control etc
<olaf_h>
Using the smartphone with a bluetooth keyboard at a table is no masochism at all
<Regenaxer>
yes, that's fine
<Regenaxer>
but then you are no longer "mobile"
<Regenaxer>
I do it to be productive in any situation
<Regenaxer>
On the walk, the sofa, or in the train
<Regenaxer>
and toilet of course :)
<olaf_h>
if you are not in a hurry at the moment, i would like to try to share my dream, my vision, my ideas in a few sentences.
<Regenaxer>
So Penti and Pil have the same characteristics: A steep learning curve, but after that power on your fingertips
<olaf_h>
so that we could discuss, if there are core issues why that would not work
<Regenaxer>
good
<mtsd>
Sounds interestings, olaf_h
<olaf_h>
I totally agree to your sentence poiting out the similarities of Penti and Pil and the conclusio, i totally agree! For years!
<Regenaxer>
:)
<olaf_h>
Ok. I try.
<olaf_h>
my dream for a total newbie: downloading a pilBox app, which offers him/her Buttons to create an app, which will occur on the dashboard.
<olaf_h>
with dashboard i mean the page of avail apps of pilbox (rounded rectangles)
<Regenaxer>
ok
<olaf_h>
the labels of the buttons would sound like ....
<olaf_h>
.... 'create a hello world' 'create a phonebook' .... sht like this
<olaf_h>
.... then after touching this button ...
<Regenaxer>
and then a skeleton is loaded?
<olaf_h>
right
<olaf_h>
and new buttons appear
<Regenaxer>
We have that with "Download" in Settings
<olaf_h>
because the skeleton contains words like YOURTEXT
<Regenaxer>
just prepare such Apps
<Regenaxer>
yes
<olaf_h>
right, completely right
<Regenaxer>
you type a name in Downloads, and the button appears
<Regenaxer>
then look at the source by clicking on the link
<olaf_h>
yes, i discoverd that after looking into the source code :-)
<Regenaxer>
ok :)
<Regenaxer>
The Link in the PILs tab
<Regenaxer>
So we should prepare more demo Apps?
<olaf_h>
Not, if we want people to code in picolisp. If we want people to code in picolisp we need lower first steps, i would argue.
<Regenaxer>
And I feel we must communicate more the philosophy
<Regenaxer>
it is not understood
<olaf_h>
T
<Regenaxer>
Only Forth has this focus in a similar way
<Regenaxer>
being in control
<Regenaxer>
and few core concepts
<olaf_h>
T
<olaf_h>
Are you interested in a growing community of picolisp coders or would you prefer to have a few dozen specialists
<olaf_h>
i see similarities to Javascript: JS as a basic language for easier to use languages
<Regenaxer>
I think the community will not grow, as typical programmers don't want to understand the details and be in control
<aw->
hi Regenaxer olaf_h beneroth
<aw->
jumping in a bit late here
<Regenaxer>
JS is a counter example. I don't understand what it does internally
<olaf_h>
hi aw, beneroth will return later
<beneroth>
back
<Regenaxer>
Hi aw-!
<aw->
what's the problem?
<Regenaxer>
What to talk next PilCon
<olaf_h>
for users who want to buld applications, the internals may not seem to be interesting as long as their application does what they expected it
<Regenaxer>
yes
<Regenaxer>
But *I* feel bad, because I get lost quickly
<Regenaxer>
trying around until it works
<Regenaxer>
but never sure it is correct
<olaf_h>
i would argue, that those users would like another step in into picolisp coding
<beneroth>
Regenaxer, that is the state of mind of most "coders" (not sure if they deserve called "programmers"). and they actually like it ;-)
<olaf_h>
Regenaxer: yes, but others like that :-)
<aw->
hmmm
<aw->
who is the target audience of pilcon?
<Regenaxer>
good question
<beneroth>
aw-, picolisp community, I'd think
<aw->
i mean, is it people who actually know PicoLisp?
<Regenaxer>
anybody with a good question
<aw->
or people new to the language?
<Regenaxer>
I think both
<aw->
ok, so that's the first problem
<Regenaxer>
anybody can ask anything
<beneroth>
aw-, well the people who *know* picolisp is a sub group within our community
<aw->
you can't cater to both at the same time
<beneroth>
T
<beneroth>
!!
<olaf_h>
aw: T
<Regenaxer>
aw-, but we did
<olaf_h>
we tried
<Regenaxer>
some asked basic stuff
<Regenaxer>
and we talked about confusing stuff like vip
<aw->
well
<aw->
i think the problem is "answering questions"
<aw->
on the spot
<olaf_h>
and still do not know, what others would like to talk about
<beneroth>
they don't know, I think
<aw->
i would prefer if PilCon was topic-based
<aw->
rather than question-based
<beneroth>
aw-, I agree fully with you
<beneroth>
but... I don't take now the time to do something about it now
<Regenaxer>
we had that too, eg the "hazards" one
<Regenaxer>
and vip was that too
<aw->
i missed that :(
<olaf_h>
i like the 'stammtisch' habit of the meeting
<olaf_h>
topics would require preparation
<aw->
olaf_h: yes indeed
<aw->
but i dont think Regenaxer should be the only one talking either
<Regenaxer>
yes, and not knowing if there is interest
<beneroth>
I believe it should be both. part stammtisch (regular small talk meetup), and part on-topic. and better have a very restricted topic so its easy to stay on it.
<beneroth>
olaf_h, aw- T
<beneroth>
but who is willing to do preparations and hold a topic-specific talk besides Regenaxer? THAT is the issue here.
<beneroth>
Regenaxer would surely help prepare if one feels not too knowledgeable to do that
<Regenaxer>
yes
<olaf_h>
exactly, therefore i like the small meetup talk habit of that meeting - everyone is fine with it, no one needs to do extra efforts
<Regenaxer>
right :)
<beneroth>
I want to do more, but cannot now. Maybe in 2 months. But probably I should not say such things, its just empty words for now.
<olaf_h>
no needs for promises, let's have fun at the meetup, building up a common understanding of each other, things like this
<beneroth>
T
<Regenaxer>
good
<beneroth>
I find it good that Regenaxer announces pilCon topics some days before pilCon
<Regenaxer>
ok
<beneroth>
so people who are not interested can chose to not join, but can join another time when the topic is interesting for them. this way we don't lose them, instead of them joining/not founding something they like/never bothered again
Nistur has quit [Ping timeout: 268 seconds]
<Regenaxer>
true
<olaf_h>
i think, since some PilCons, Regenaxer is exactly doing that
<Regenaxer>
But I'm never sure which topic to propose
<olaf_h>
T: <beneroth> I find it good that Regenaxer announces pilCon topics some days before pilCon
<Regenaxer>
So I think it was too difficult
<Regenaxer>
eg. the vip details
<Regenaxer>
the code of vip
<Regenaxer>
We should go back to more basic stuff
<olaf_h>
most benefit for me came out of the practical doing
<olaf_h>
no matter what topic it was about
<Regenaxer>
ok
<beneroth>
the vip talk was very good for me
<Regenaxer>
good to know :)
<olaf_h>
was very interesting even for me, but hard to follow because I do not use vip so far.
<olaf_h>
But the feature of eval of certain sexpr was very nice to see and will shorten the time until i might use vip :-)
<Regenaxer>
Only the three of us remained in the end
<Regenaxer>
all others were driven off
<olaf_h>
yes, indeed!
<beneroth>
aye :/
<beneroth>
I'm away again. bbl :)
<olaf_h>
and i think in automn 2020 there were about 13 or so sometimes?
<Regenaxer>
no problem :)
<olaf_h>
see you beneroht
<Regenaxer>
The first one was about 20
<Regenaxer>
after that usually less than 10
<Regenaxer>
but constant
<olaf_h>
ah, I see.
<Regenaxer>
Something 5 to 7 typically
<olaf_h>
okay, i think to find out, what topics would attract more people, would be a '10-minutes of ....' corner at a dedicated time of the PilCon
<olaf_h>
that announced days or weeks before, so that people can organize
<Regenaxer>
Why 10 minutes?
<olaf_h>
no idea, but it should be short and crispy and time limited, so that people can get used to it
<Regenaxer>
with a predefined topic?
<olaf_h>
yes, if we would like to know what the people would be interested in - otherwise only the 5-7 guys can say yes or no
<Regenaxer>
ah, I see
<olaf_h>
10 minutes because less preparation, too.
<Regenaxer>
But anybody can ask what they want to know, no?
<olaf_h>
Was'nt there such a slot on conferences in general
<olaf_h>
not in the 10 minutes of prepared topic.
<olaf_h>
ask what you want is before or after the 10 minutes, otherwise the 10 minutes would not be focused on the topic
<Regenaxer>
ok
<olaf_h>
i think one would see, which 10 minute topic seems to get more interest
<olaf_h>
and could do another 10 minutes on going deeper into it
<olaf_h>
PilCon 2h duration in a whole seems to be established, i think
<Regenaxer>
yes
<olaf_h>
basic stuff talk could be set to the beginning of PilCon
<Regenaxer>
Hard to plan
<Regenaxer>
Let's just start as ever :)
<olaf_h>
what do you mean by hard to plan
<Regenaxer>
topics, timings
<Regenaxer>
It all depends on who is there
<olaf_h>
i think of users, who are not interested so much in a small talk meetup, or are just too shy to appear if they are not sure, nothing is expected from them
<olaf_h>
for those it could be easier to join and leave at certain minutes without saying a word - but the interest in the topic would be counte by their appearance
<Regenaxer>
Not sure. May be other (external) reasons
<Regenaxer>
ok, have some duties
<Regenaxer>
Let's think a little more about it
<olaf_h>
sure!
<Regenaxer>
thanks for the input!
<olaf_h>
not that for. you're welcome.
<Regenaxer>
:)
<olaf_h>
i'm not really sure, if picolisp looks for users who want to create applications but are not interested in lisp in its core.
<Regenaxer>
People who just want to create an application choose the easy way
<olaf_h>
but pilBox looks it would
<Regenaxer>
Pick some standard framework
<Regenaxer>
Most people dont want to learn
<Regenaxer>
same as Penti
<olaf_h>
ah, okay, so possibly this might be our communication bridge: The Picolisp User's Framework (it's not the core)
orivej has joined #picolisp
<olaf_h>
T: Most people dont want to learn.
<Regenaxer>
yeah
<Regenaxer>
Just get something done
<Regenaxer>
as easy as possible
<olaf_h>
Yes, could you live with it, if people would use picolisp that way?
<Regenaxer>
No need to feel sure it is correct
<Regenaxer>
I think they wont
<olaf_h>
but would you like to see those people post on the mailing list?
<Regenaxer>
Why not?
<olaf_h>
because they would post very basic questions about things, which could be answered by themselves, if they would like to learn.
<Regenaxer>
hmm, depends how often that happens
<olaf_h>
right, and if the community will be helpful
<olaf_h>
I would like to remember a term like 'Picolisp Hackers Framework' or so to make clear, when I'm talking about those topics.
<olaf_h>
So that it's clear, that i do not critisize any of the wonderful picolisp work
<Regenaxer>
"Hacker" in the sense of "advanced"?
<olaf_h>
if you find a nice title for that, let me know :-) then i can announce "ScriptKiddies would like a button to create a phonebook app"
<Regenaxer>
:)
<Regenaxer>
ok, sorry, must continue here
<olaf_h>
no, i'm looking for a word for those, whose first interest is not learning, but having experiences
<Regenaxer>
some duties
<olaf_h>
yes of course, see you
<Regenaxer>
thanks! See you!
<olaf_h>
i also planned a complete other vormittag :-)
<olaf_h>
see you
<Regenaxer>
hehe :)
<olaf_h>
.... just to remember later, no answer required: perhaps 'The Picolisp Newbie's Framework' characterizes the intention of what i was talking about