<reed>
Hi All. Do all methods of parallelism in picolisp use fork? I'm trying to implement some version of "Communicating Sequential Processes" using nanomsg nng, but nng isn't compatible with 'fork'
<Regenaxer>
reed, quasi-parallelism is achieved in pil with the 'task' function ('*Run' mechanism) and/or coroutines
<Regenaxer>
The (fork) family includes 'pipe' and 'in'/'out' (the latter two also as pipes)
orivej has quit [Ping timeout: 245 seconds]
<aw->
reed: there already exists a nanomsg/picolisp library, it doesn't use fork
<aw->
hi Regenaxer
<Regenaxer>
Hi aw-!
Regenaxer has left #picolisp [#picolisp]
Regenaxer has joined #picolisp
<aw->
Regenaxer: re pilAsm
<aw->
-> (code 'tcpAcceptA_FE)
<aw->
what is A_FE ?
<aw->
i see these all over the code.. always different
<Regenaxer>
It is a naming convention
<aw->
'closeAX
<Regenaxer>
Arguments are before the '_', return values after
<Regenaxer>
So tcpAcceptA_FE accepts an arg in A, and returns flags and a value in E
<aw->
returns 2 things?
<Regenaxer>
yes, or more
<aw->
oh, conditionally
<Regenaxer>
F are condition codes
<Regenaxer>
carry, sign and/or zero flags
<aw->
why at the end of that function you have: eq # Return 'z'
<aw->
ret
<aw->
shouldn't it be (code 'tcpAcceptA_FEZ ?
<Regenaxer>
This forces a zero flag
<aw->
oh... flags
<aw->
right, z is a Flag
<Regenaxer>
yes, Z would be another register
<aw->
ok one more question
<aw->
in this line: or E CNT
<aw->
what is CNT ?
<Regenaxer>
(equ CNT 2) in src64/defs.l
<aw->
arghhh!!! i was looking in sys/arm64.linux.defs.l
<Regenaxer>
BTW, if you (edit ) the sources, you can click on such constants
<aw->
wow i completely missed the src64/defs.l file! thanks!
<Regenaxer>
it will jump there
<Regenaxer>
oops
<Regenaxer>
not 'edit' but 'vi'
<aw->
you mean (vi) ?
<aw->
right right
<Regenaxer>
yeah
<Regenaxer>
or 'em' for emacs iirc
<aw->
so by convention, lisp functions start with 'do ?
<Regenaxer>
(vi 'car) then ^] on CDR
<Regenaxer>
exactly
<Regenaxer>
they have an entry in src64/glob.l
<aw->
this is awesome,
<aw->
and a bit insane
<aw->
out of curiosity, how much time did it take to write pil64 ?
<Regenaxer>
Hmm, not sure
<aw->
years, months, weeks?
<Regenaxer>
Mainly I wrote it on a trip to Japan in 2012
<Regenaxer>
three weeks
<Regenaxer>
But this was only the initial version
<aw->
wow!
<Regenaxer>
after that a permanent process
<Regenaxer>
hmm, or was it 2009?
<Regenaxer>
yes, 2009
<aw->
interesting..
<aw->
did you think of writing your own assembler first? or did that come only after you decided to support more architectures?
<Regenaxer>
both in parallel I think
<yunfan>
Regenaxer: you were practicing coding on trip?
<aw->
haha "practicing"
<Regenaxer>
the own assembler is not so much for portability but readability
<Regenaxer>
existings asms are a horror!
<Regenaxer>
%eax etc
<Regenaxer>
yunfan, not really ;)
<aw->
Regenaxer: yes, nasm isn't that bad but the names are definitely not obvious
<yunfan>
i remember read a guy wrote about his doing that
<yunfan>
and he encourage other to do that too :-
<Regenaxer>
good :)
<aw->
i've written lots of code on 14hr flights, very productive
<yunfan>
i cant keep calmdown on flights
<Regenaxer>
yes, indeed. Boring otherwise
<yunfan>
but i do have a cellphone with termux installed
<yunfan>
that could let me code everywhere with its 4G support
<yunfan>
i even carry a bluetooth keyboard everyday
<Regenaxer>
I use a tablet with termux
<aw->
Air Canada's new international cabins are terrible for that now though.. they decreased leg room in order to add more seats, and removed AC outlets from the seats :( can't charge your laptop anymore
<Regenaxer>
no network needed to work
<yunfan>
but right now, i still do a few debuging work with that
<yunfan>
not a full project
<aw->
Regenaxer: exactly
<Regenaxer>
aw-, oh, no power! terrible
<aw->
Regenaxer: they provide USB outlets instead
<Regenaxer>
ok
<aw->
terrible decision
<Regenaxer>
you can charge a tablet :)
<yunfan>
that's a improvement i think, only that brainless
<yunfan>
i hope oneday there could be a powerfull handheld keyboard for me to code with my cellphone
<yunfan>
i begin to self-taugth programming from a e-dictionary of my classmate
<aw->
yunfan: on a tiny screen?
<yunfan>
aw-: yes, i am still had feeling of those devices
<aw->
well, i stopped coding on flights since airlines became hostile to it.. now i just bring physical books, heavy but can still read during takeoff/landing ;)
<yunfan>
i used to bought a nanonote, maybe i should try that gemini PDA on kickstarter
<Regenaxer>
yunfan: Try my mobile virtual chording keyboad (PentiKeyboard) :)
<Regenaxer>
I write everything with it
<Regenaxer>
also just now
<Regenaxer>
No need for a physical keyboard any more
<aw->
Regenaxer: does the .l ASM files require 3 space indentation? or any space is fine?
<Regenaxer>
anything is fine
<Regenaxer>
it uses the Lisp reader
<aw->
end of function is delimited by what? empty newline or start of code on newline?
<aw->
or both?
<Regenaxer>
It is delimeted by a pair
<Regenaxer>
eg doCar is delimited by (code 'doCdr 2)
<Regenaxer>
So it (read) till a pair or EOF
<aw->
oh ok
<Regenaxer>
pairs in a statement don't count
<Regenaxer>
eg ld E ((E CDR)) # Get arg
<Regenaxer>
cause 'ld' is an atom
<Regenaxer>
ie. a statement
<aw->
right
<aw->
ok one more question
<aw->
when i look doc64/asm
<aw->
nul4 # Compare four bytes in 'A' with 0 [zs_]
<aw->
what is [zs_] ?
<aw->
sometimes it's [---]
<aw->
i can't seem to decode that
<Regenaxer>
it is the condition codes which are affected
<aw->
flags?
<Regenaxer>
_ means 0
<Regenaxer>
yes
<Regenaxer>
- means "don't care" or undefined
<aw->
what is . ?
<aw->
cnt src # Non-'z' if small number [z..]
<Regenaxer>
. is undefined, sorry
<Regenaxer>
- is "not changed"
<Regenaxer>
c is carry, b is borrow
<Regenaxer>
so _ is 0 and z is 1 for zero-flag
<aw->
right
<aw->
ok thanks!
<Regenaxer>
:)
<Regenaxer>
Must prepare now. We go hiking :)
<aw->
ok! i will go home
<aw->
thanks, have fun
<Regenaxer>
Nice evening! :)
aw- has quit [Quit: Leaving.]
<Regenaxer>
afp
mtsd has joined #picolisp
<yunfan>
Regenaxer: i'd installed that, but the problem is my fingers
<yunfan>
the third and fourth fingers of mine cannot play alone, they usually act together
<yunfan>
Regenaxer: also the keyboard figures make me feel very weird :[
<mtsd>
Morning all
<mtsd>
yunfan, testing out penti? :)
<mtsd>
I have tried it out a bit too, like the idea but it takes some time to get used to
<yunfan>
mtsd: yes i think so
<yunfan>
Regenaxer: mtsd why not let user to customized the location of circles?
<yunfan>
also, that implemention inspired me
<mtsd>
Feelings of weirdness will pass with time and become normality ;)
<yunfan>
yes, i remember when i first learn vi :D
<yunfan>
but there's a key feature encouraged me to keep on learning vi
<yunfan>
which is `dd`
alexshendi has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
mtsd has quit [Remote host closed the connection]
mtsd has joined #picolisp
beneroth has joined #picolisp
reed has quit [Ping timeout: 260 seconds]
alexshendi has joined #picolisp
orivej has quit [Ping timeout: 252 seconds]
orivej has joined #picolisp
aw- has joined #picolisp
libertas has quit [Remote host closed the connection]
libertas has joined #picolisp
libertas has quit [Client Quit]
libertas has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #picolisp
mtsd has quit [Remote host closed the connection]
mtsd has joined #picolisp
<Regenaxer>
ret
<Regenaxer>
Was walking through the woods a few hours
<Regenaxer>
yunfan, the circles *are* user-defined
<Regenaxer>
Hi mtsd!
<Regenaxer>
yunfan, it works both for left and for right hand
<Regenaxer>
"it expects you to touch the screen with all 5 fingers in a convenient position. You can use both your right or your left hand." in https://software-lab.de/penti.html
<grp>
I just got back to my keyboard, and the very instant I pressed a key, the screen died. I was ilke "what? 0_o", then it turned on... seems I got the timing for energy saving just perfect
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshendi has quit [Ping timeout: 240 seconds]
alexshendi has joined #picolisp
<grp>
Regenaxer: if it's not unreasonable to ask, would you post a query and the DB model, before and after you remodeled it (remember the +Person class you had like 8 subclases of?). I'm trying to fast-track my what's-the-better-way-to-tackle-some-cases sense.
<grp>
I've been doing micro experiments on the DB to really understand what's going on
<grp>
I'm still trying to define the model for the data I need to work on, and I seem to parallel-think a couple of ways every time I reach a complex decision, but I still lack the knowledge to decide what's better
<grp>
even if I get it right, I'm still lacking the WHY
<grp>
(the longterm WHY)
<grp>
so, considering you had substantial hassle from a bad data design, I'd like to take a look at it
<grp>
beneroth: if you had such experiences, I'd like to know about 'em ;¬D
alexshendi has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 240 seconds]
<Regenaxer>
oops, sorry, busy here
<Regenaxer>
grp, "before and after you remodeled"
<Regenaxer>
What do you mean here?
<Regenaxer>
afp
alexshendi has joined #picolisp
<grp>
well, the other day you told me about an app where you used to have a class +Person, and a lot of subclasses, which made searching a pain in the ass. You remodeled it (or were in process of(?)) to keep everything in just +Person
<beneroth>
1. guy is working at a company which migrated all their email to google 2. guy does something which kinda is a Google refund ToS violation 3. all google accounts of the whole company (including related private personal accounts) got shut down by google