ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Picolisp latest found at http://www.software-lab.de/down.html | check also http://www.picolisp.com for more information
reed has joined #picolisp
<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'
<tankf33der> reed
<tankf33der> start point
<tankf33der> dont hesitate write to mailing list
<reed> Thanks, Ill take a look
aw- has joined #picolisp
<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
<Regenaxer> afp again, bbl
mtsd has quit [Remote host closed the connection]
<tankf33der> next task
<Regenaxer> ret
<Regenaxer> All those tasks are rather tough
aw- has quit [Quit: Leaving.]
alexshendi has quit [Ping timeout: 252 seconds]
alexshendi has joined #picolisp
<tankf33der> this will help me a lot
grp has joined #picolisp
<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
<grp> that comment kind of stuck in my mind, so I wanted to know more about such case
orivej has joined #picolisp
reed has joined #picolisp
kuarg has joined #picolisp
<kuarg> hello
<kuarg> pil + "/usr/lib/picolisp/lib.l" -- Open error: No such file or directory ? :
<kuarg> This statement is not documented "/usr/lib/picolisp/lib.l" -- Open error: No such file or directory
<kuarg> why does this appear? What does it mean?
kuarg has quit [Quit: Page closed]
<Regenaxer> oops, just wanted to go to bed, after taking a short look here;)
<Regenaxer> Yes, I'm now in the process of rewriting that app
<Regenaxer> With only a single class now
<Regenaxer> For searching in Pilog, I needed to search a list of classes sometimes
<Regenaxer> ie when the class was not specially known
<Regenaxer>
<Regenaxer> OK, I can give you a code fragment, extracts from the E/R model plus a search function
<Regenaxer> I think it will not be very helpful out of context, but here it is:
<Regenaxer> 131.(de *Personen defines the names for GUI menus
<Regenaxer> 141.(class +Kunde +Person) here the 8 classes are defined
<Regenaxer> Good nite!
<Regenaxer> afp
grp has quit [Quit: box shutting down...]
reed has quit [Ping timeout: 260 seconds]
alexshendi has quit [Ping timeout: 245 seconds]
<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
styx has joined #picolisp