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
orivej has quit [Ping timeout: 268 seconds]
Regenaxer has joined #picolisp
aw- has joined #picolisp
<Regenaxer> Does anybody know why does not return correct values on my systems?
<Regenaxer> eg. (native "@" "wcwidth" 'I 26481) should return 2, but doesn't
<Regenaxer> I have LC_CTYPE=en_US.UTF-8
<Regenaxer> ^ Does anybody know why wcwidth(3) does not return correct values on my systems?
<Regenaxer> If it worked, I could fix @lib/led.l and @lib/vip.l to work with asian characters
<tankf33der> unknown to me
<Regenaxer> ok
<Regenaxer> What does it return on your systems?
<Regenaxer> It must work somehow, as Vim and readline(3) handle such characters correctly
<Regenaxer> And pil handles whe character itself also correctly:
<Regenaxer> : (char 26481)
<Regenaxer> -> "東"
<Regenaxer> Just not the width on screen
rob_w has joined #picolisp
<aw-> Regenaxer: hi
<aw-> : (char 112)
<aw-> -> "p"
<aw-> -> 1
<aw-> : (native "@" "wcwidth" 'I 112)
<aw-> : (char 26481)
<aw-> -> "?"
<aw-> -> -1
<aw-> : (native "@" "wcwidth" 'I 26481)
<aw-> i'm guessing it's an issue with the value provided to wcwidth
<Regenaxer> (char 26481) is strange!
<Regenaxer> should be higashi
<aw-> yes i was testing on Linux through screen
<Regenaxer> You don't even have UTF-8?
<aw-> without screen it shows 東
<Regenaxer> I see
<Regenaxer> so screen does not inherit the locale it seems
<Regenaxer> sigh, it is all a mess
<aw-> : (native "@" "wcwidth" 'I 26481)
<aw-> -> -1
<aw-> -> "東"
<aw-> : (char 26481)
<aw-> without screen
<Regenaxer> ok
<Regenaxer> I use tmux
<Regenaxer> I just wonder what the right way is
<Regenaxer> cause Vim and Bash get it right
<Regenaxer> eg in Bash I can type the kanji, and also backspace over it
<Regenaxer> same in Vim
<Regenaxer> Not that I really need kanji, but it nags me that they don't work
<aw-> probably related to LC_CTYPE
<aw-> how can i see the error with (errno) ?
<Regenaxer> (native "@" "strerror" 'S (errno))
<tankf33der> picolisp works under gcc 8.
<Regenaxer> tankf33der, in which sense?
<Regenaxer> wcwidth()?
<tankf33der> no, just release. offtopic.
<aw-> oh right
<aw-> i checked with strace and the output is not very helpful
<Regenaxer> uh, yes, "No such file or directory"
<Regenaxer> when wcwidth() returns -1
<Regenaxer> nonsense indeed
<Regenaxer> so wcwidth() seems not to work at all
<aw-> yeah
<Regenaxer> how can that be, I don't find reports by other users
<aw-> is it built into picolisp?
<Regenaxer> how?
<aw-> @ ?
<aw-> isn't (native "@") what's compiled/linked in picolisp?
<Regenaxer> "@" is glibc
<Regenaxer> yes
<aw-> right
<Regenaxer> the linked libs
<aw-> libc.so.6 maybe doesn't have wcwidth?
<Regenaxer> only linked -lc -lm -ldl
<Regenaxer> libc, math and dlsyms
<Regenaxer> The symbol 'wcwidth' must be there, otherwise we would get a not found
<Regenaxer> What I don't understand is that wcwidth take a "wide char"
<Regenaxer> What is that exactly?
<Regenaxer> not unicode when locale is utf-8?
<aw-> no idea
<Regenaxer> :)
<aw-> first time i hear of it
<Regenaxer> Who understands this mess?
<aw-> nobody
<aw-> we should move forward with PilOS
<Regenaxer> hmm
<Regenaxer> All those characters work well in "modern" stuff like HTML or SVG
<aw-> abstraction over abstraction over abstraction, soon we end up with something nobody understands, or nothing anybody understands
<Regenaxer> but old stuff like terminals or even pdf not
<Regenaxer> yeah
<aw-> too many "standards" and different ways to do the same thing
<Regenaxer> T
<aw-> what are you trying to do?
<Regenaxer> I want that @lib/led.l and @lib/vip.l can handle kanji
<Regenaxer> eg. this irc client uses @lib/led.l
<Regenaxer> I cannot cleanly type kanji here
<Regenaxer> I *can* type, but the line messes up
<Regenaxer> try in the pil repl
<aw-> oh i see
<aw-> hmmm
<aw-> works fine
<Regenaxer> The reason is that led backspaces to redraw the line
<aw-> one sec
<Regenaxer> in 'pil +' 4
<Regenaxer> ?
<aw-> : ((p(p(p(p(p(prinl "感じ")
<aw-> 感じ
<aw-> :
<aw-> -> "感じ"
<aw-> oh yeah that's weird
<aw-> i type (prinl "感じ")
<Regenaxer> yes, that's what I mean
<Regenaxer> the backspaces need to go 2 places here
<Regenaxer> but led does not know
<aw-> ((p(p(p(p(p(prinl "漢字")
<aw-> -> "漢字"
<aw-> 漢字
<aw-> wrong Kanji ;)
<aw-> right
<Regenaxer> 漢字文化
<Regenaxer> I see a mess here
<Regenaxer> in irc it appears all right probably
<aw-> how is 'wcwidth' related?
<aw-> yes it appears fine on irc
<aw-> but yeah.. typing kanji in pil messes up the display
<Regenaxer> If led knows the size is 2 it can backspace two times
<aw-> does the repl use led.l ?
<aw-> ah yes with +
<aw-> i see it
<aw-> `*Dbg
<aw-> (load (pil "editor"))
<aw-> (if (info (pil "editor"))
<aw-> (load "@lib/led.l" "@lib/edit.l") )
<aw-> tbh i never really look at this stuff ;)
<beneroth> Good morning
<beneroth> "wide" character usually means multi-byte characters in C/C++ afaik
<aw-> hey beneroth
<aw-> beneroth: same as double width?
<aw-> same meaning?
<Regenaxer> hi beneroth!
<beneroth> not necessarily double, I think.
<Regenaxer> yes, but unicode?
<Regenaxer> I expect that wcwidth interprets the wide char according to the current locale
<aw-> Regenaxer: i think Japanese characters typed in console are "fullwidth" not "wide width"
<Regenaxer> These are different things
<Regenaxer> the number of bytes in the representation and he space on screen
<beneroth> question is how wchar_t is defined on your system
<Regenaxer> eg umlauts ü take two bytes in utf-8, but one cell on screen
<beneroth> it's not necessarily UTF-8. could be UTF-16 or UTF-32 or something even more weird
<Regenaxer> I care only about screen
<beneroth> the argument you give should be a wchar_t.
<Regenaxer> not utf8
<Regenaxer> unicode, 16 or 32 bits
<Regenaxer> but this is irrelevant
<aw-> right right
<beneroth> ok, wchar_t should usually be 32 bits, except windows where its 16 bits
<Regenaxer> yes
<Regenaxer> We just pass the number 26481 for higashi
<beneroth> I see
<Regenaxer> takes 2 bytes as unicode, and 3 bytes as utf8
<Regenaxer> the representation is irrelevant
<Regenaxer> wcwidth(26481) should return 2 I expect
<Regenaxer> *if* it understands unicode
<Regenaxer> utf8 is only the serialized format
<Regenaxer> in memory
<beneroth> T
<Regenaxer> the char value is 26481 in unicode
<aw-> what is wchar_t ?
<aw-> Int ?
<aw-> char ?
<Regenaxer> I expect it is an int
<Regenaxer> grepping includes
<aw-> Regenaxer:
<aw-> (native "@" "wcwidth" 'I 126)
<aw-> -> 1
<aw-> -> -1
<aw-> : (native "@" "wcwidth" 'I 127)
<aw-> i think it's using ASCII
<Regenaxer> yes, this looks correct
<aw-> doesn't go beyond 126
<Regenaxer> 127 is DEL
<Regenaxer> (char "ü") -> 252
<Regenaxer> This should be 1 again
<Regenaxer> 127 is special
<aw-> i tried a few greater than 126 and all return -1
<Regenaxer> So your locale is ASCII
<Regenaxer> I get (corretly) 1 for 252
<Regenaxer> but also (incorrectly) 1 for 26481
<aw-> weird
<Regenaxer> or for (hex "FF50") which is a full-width "p"
<Regenaxer> : (char (hex "FF50")) -> "p"
<Regenaxer> Should be 2 in width
<Regenaxer> but I get 1
<aw-> instead of using 'wcwidth', you can easily know if a char is between N and P, then it's kanji character?
<Regenaxer> N and P?
<aw-> ex: if unicode char is between 12000 and 12999
<Regenaxer> not only
<Regenaxer> there are many ranges I think
<Regenaxer> 26481 is higashi
<aw-> or, anything above unicode 3000
<Regenaxer> not between 12000 and 12999
<aw-> or something like that?
<Regenaxer> yeah, would be a hack
<aw-> haha indeed
<Regenaxer> (hex "FF50") is 65360
<Regenaxer> width 2
<Regenaxer> So wcwidth() should be the way to go
<Regenaxer> I looked at the sources briefly
<Regenaxer> seems to use lots of tables
<Regenaxer> tl;dr
<aw-> yeah… (hex "ff70") is width 1 i think
<aw-> "half-width"
<Regenaxer> no
<Regenaxer> it is 2
<aw-> and ff71 ?
<Regenaxer> also
<aw-> i see
<aw-> ok so wcwidth just hardcodes tables ?
<Regenaxer> U+FFxx
<aw-> so you can do it with Japanese, it's not like they will change anyways
<Regenaxer> Not really sure, it must be more complicated
<Regenaxer> due to the many locales
<Regenaxer> Other users of pil might use other characters, not japanese
<Regenaxer> One guy here complained, he was chinese iirc
<aw-> also doesn't work on 32-bit btw ;)
<aw-> 'wcwidth'
<Regenaxer> how did you try?
<Regenaxer> larger char?
<aw-> (native) on OS X
<Regenaxer> pil only uses up to 16 bits
<aw-> on my Mac
<aw-> pil +
<aw-> -> "漢字"
<aw-> 漢字
<aw-> : ((p(p(p(p(p(prinl "漢字")
<Regenaxer> yeah, same
<aw-> so your native is only good for 64-bit
<Regenaxer> pil32 does not have 'native' (?)
<Regenaxer> you have pil32 on an old Mac?
<Regenaxer> We had lots of discussions here these days for pil on Mac again
<aw-> yes
<Regenaxer> How does it run on yours? Very old?
<aw-> pil32 on an "old" Mac
<aw-> OS X
<Regenaxer> yeah
<aw-> 64-bit
<Regenaxer> not clang yet
<aw-> no
<aw-> what is your question? i don't understand
<Regenaxer> Hmm, I give up with wcwidth for now
<Regenaxer> which question?
<Regenaxer> wcwidth or Mac?
<aw-> what do you want to know about my Mac
<Regenaxer> Mac is clear, as pil ran on old Macs
<Regenaxer> it does not build on newer ones due to x86 and/or clang
<Regenaxer> not the problem here
<aw-> really?
<aw-> 32-bit pil builds fine on mine
<Regenaxer> yes, lots of discussions here
<aw-> probably cause i dont have clang
<Regenaxer> all the time
<Regenaxer> yes, exactly
<aw-> tell people to stop using shitty Mac
<aw-> it's so crap nowadays
<Regenaxer> pil32 does not build on clang due to dynamic arrays
<Regenaxer> and no pil64 due to pic
<Regenaxer> sigh ;)
<Regenaxer> I give up
<Regenaxer> must continue to work
<aw-> yes, and who knows what else will stop working when they start shipping their own CPUs with custom instruction set
<Regenaxer> it is just frustrating
<aw-> i understand
<Regenaxer> :)
<aw-> ttyl
<Regenaxer> Thanks anyway!
mtsd has joined #picolisp
stultulo has joined #picolisp
f8l has quit [Ping timeout: 256 seconds]
stultulo is now known as f8l
<aw-> still fighting this cold, happy I don't have to leave my house when i'm sick :)
<Regenaxer> good :)
stultulo has joined #picolisp
f8l has quit [Ping timeout: 240 seconds]
stultulo is now known as f8l
mtsd has quit [Remote host closed the connection]
<beneroth> aw-, Mac plans to use a custom CPU architecture?
<beneroth> Regenaxer, maybe 'wcwidth' doesn't see the correct environment variable. maybe set it yourself before doing the native call. just a random idea.
<Regenaxer> I tried that
<Regenaxer> LS_CTYPE
<Regenaxer> LC
<Regenaxer> But yes, it must be something simple like that
cilz has joined #picolisp
tankf33der has quit [Quit: Connection closed for inactivity]
dtornabene has joined #picolisp
cilz has quit [Ping timeout: 256 seconds]
<aw-> beneroth: i read somethin about that yeah
<Regenaxer> I saw that it might be arm64-based
<Regenaxer> That would be good for picolisp
<aw-> doubtful
<aw-> i would imagine 'arm' + '64' but not arm64 as we know it
<Regenaxer> I don't think they'll invent a CPU from scratch
<aw-> well using arm doesn't mean invent from scratch
<Regenaxer> So if "arm" something it will be ARMv8
<Regenaxer> What counts for me is only the instruction set
<Regenaxer> architecture
<aw-> i think they would use a custom ISA based on ARM
<aw-> Apple doesn't really care for compatibility with industry standards
<Regenaxer> T
<aw-> they always do their own and then force everyone to upgrade
<aw-> "here's a new cable to charge iPhones"
<aw-> i would really like picolisp for RISC-V though ;)
<Regenaxer> Yeah, but is the architecture suitable?
<aw-> absolutely
<Regenaxer> We need access to the stack and flag registers
<Regenaxer> these are for example not in llvm
<Regenaxer> neither stack nor flags
<Regenaxer> So it is useless and on the same level as C
mtsd has joined #picolisp
<Regenaxer> level of VM-power I mean
<aw-> what is useless?
<Regenaxer> The arch is then useless for pil64
<Regenaxer> LLVM for example
<Regenaxer> I wanted to use it initially
<aw-> you're comparing LLVM to RISC-V ?
<aw-> i dont understand
<Regenaxer> but due to the above deficits I went to plain asm
<Regenaxer> I'm asking
<Regenaxer> as I don't know the power of RISC-V
<Regenaxer> Does it allow stack and flag accesses?
<aw-> can you be more specific?
<Regenaxer> How?
<aw-> what do you mean "stack and flag access" ?
<Regenaxer> Can I push/pop the stack
<Regenaxer> allocate space on it?
<Regenaxer> Flags are Carry, Sign, Zero at least
<aw-> oh hmmm...
<aw-> i remember reading that it's designed to isolate certain operations
<Regenaxer> See doc64/README
<Regenaxer> "higher" abstractions give you an equivalent of C
<Regenaxer> So we can stay with C
<beneroth> aw-, O remember reading that RISC-V is safe against Spectre. which would mean no shared Level 3 CPU cache.
<beneroth> I think aw- is probably right, unfortunately. ARM is often used in weird mix-ups (as eg. in this ARM64 with 32bit instruction set case Regenaxer had)
<Regenaxer> No, the CPU was OK
<beneroth> ah ok
<Regenaxer> it was just a 32-bit Android on it
<beneroth> ok
<Regenaxer> stupid Samsung
<beneroth> right
<beneroth> anyway, Apple as to stonewall its garden
<aw-> Regenaxer: there's a stack pointer, you can push and pop from various registers based on that
<Regenaxer> I think all ARMv8 are on the instruction level the same
<beneroth> but would be an interesting switch of strategy, as they just switched from Motorola to Intel not that long ago...
<Regenaxer> just the chips and periphery differ
<beneroth> Regenaxer, I heard from setups in which multiple ARM versions were mixed.
<Regenaxer> yes, small CPUs to save energy
<Regenaxer> so perhaps that's why they needed a 32 bit OS
<aw-> i should write the pil64 port for RISC-V
<Regenaxer> Yesss! Good idea
<Regenaxer> You have a link to the instruction set at hand?
<aw-> yes
<aw-> i printed the two PDFs
<aw-> read them a few months ago
<aw-> one sec
<Regenaxer> cool
mtsd has quit [Remote host closed the connection]
<aw-> and
<Regenaxer> I need only user space
mtsd has joined #picolisp
<aw-> need privileged for PilOS ;)
<Regenaxer> true
<Regenaxer> Seems a typical RISC
<Regenaxer> similar to ppc64 and arm64
<aw-> yes they didn't stray too far from existing ISAs
<Regenaxer> The word "carry" is not found :(
<Regenaxer> Is the "return address stack" a separate stack?
<Regenaxer> x2 seems the normal stack pointer
<aw-> no, can't you just use any register for carry?
<aw-> oh never mind
<Regenaxer> I do that in C in pil32, but inefficient
<aw-> yes
<Regenaxer> needs to compare the args and the result if the highest bit differs
<Regenaxer> and rotations and shifts through carry are not possible
<aw-> same stack i think
<Regenaxer> ok
<Regenaxer> different is also OK
<Regenaxer> on Arm64 I use two
<Regenaxer> one is the hardware stack used for interrupts
<Regenaxer> It is always below the other used by Lisp data
<aw-> at the end there's a table with pseudoinstructions
<aw-> you can avoid the use of carry with certain branch instructions
<aw-> like beqz
<aw-> branch if = zero
<Regenaxer> no, this is different
<Regenaxer> I need the value of the carry bit
<aw-> when?
<Regenaxer> pass it around, save, restore, and return from subroutines
<Regenaxer> everywhere
<aw-> haha "everywhere"
<Regenaxer> Check the pil64 sources
tankf33der_ has joined #picolisp
tankf33der_ is now known as tankf33der
<aw-> like i said before, i don't look at these sources very often ;)
<Regenaxer> eg equalAE_F returns flags
<Regenaxer> all functions with _.F... in the end
mtsd has quit [Remote host closed the connection]
<Regenaxer> Some return one or more registeas, and some flags
<Regenaxer> or both usually
<aw-> compareAE_F
<Regenaxer> fgrep _F src64/*.l
<Regenaxer> yes
<Regenaxer> symCharCX_FACX return 4 values
<aw-> hmmm
<Regenaxer> accepts C and X, and returns F, A, C and X
<Regenaxer> This is the power of assembly
<aw-> this is not portable
<Regenaxer> it is
<Regenaxer> all real CPUs have flags
<Regenaxer> since 8-bit times
<Regenaxer> Only "high-level" braindamaged systems don't have them
<Regenaxer> Those systems have only C, Java etc. in mind
<Regenaxer> so they "protect" the programmer from them
<aw-> dunno.. i didn't invent it, and i'm too young to know about 8-bit :P
<Regenaxer> even 1-bit CPUs have a carry :)
<Regenaxer> They do need them desperately
<Regenaxer> so-called "bit-slice" CPUs (AMD)
<Regenaxer> So RISC-V also provides a castrated instruction set, because "high-level" languages don't need those features? Poor ... like LLVM ...
<Regenaxer> To be honest, the picolisp VM is also castrated, as it restricted itself to only 3 flags: Zero, Sign and Carry
<Regenaxer> no Overflow or Half-Carry etc.
<aw-> so, we should rewrite PicoLisp?
<aw-> :P
<beneroth> no, just build picolisp machines :P
<aw-> there we go
<beneroth> lets see who laughs if they can't run their C on it!
<beneroth> probably them xD
<aw-> who needs C anyways?
<beneroth> like.. everything with computers in it? :D
<beneroth> (rounded)
<aw-> pft
<beneroth> :D
<aw-> says you
<aw-> in a picolisp world, we wouldn't need C
<beneroth> I say nuffin'
<beneroth> T
<beneroth> in a picolisp world, we don't calculate with floating numbers.
<aw-> haha yeah, seriously
<beneroth> does someone here have experience with "Web Components" ? it is worth to have a look at, or just a "lets make the browser an OS and add some more bloated layers to it"-thingy?
<beneroth> has stuff like "custom html elements" and templates and bla
<beneroth> aw-, this could become a meme: in a picolisp world ... people can have 31 character long names in the database!
<beneroth> in a picolisp world ... you can prove that the source is the running program!
<Regenaxer> hehe, yep
<Regenaxer> aw-, any news from Geo?
<Regenaxer> Did you meet him BTW?
<aw-> no, i need to check my email
orivej has joined #picolisp
<tankf33der> task
<tankf33der> find (1 2 3) inside list (5 4 3 2 1 2 3 4 5)
<tankf33der> any hints ?
<beneroth> (seek)
<beneroth> what should the result be? an index number? tail of list starting with the search list?
<tankf33der> T or NIL
<tankf33der> implementing my variation
<tankf33der> too
<tankf33der> (1 2 3) always tree elements
<tankf33der> inside list any size
<tankf33der> ready.
<tankf33der> T i mean nonNIL
rob_w has quit [Remote host closed the connection]
<beneroth> : (setq Search (1 2 3))
<beneroth> -> (1 2 3 4 5)
<beneroth> -> (1 2 3)
<beneroth> : (seek '((X) (= Search (head (length Search) X))) (5 4 3 2 1 2 3 4 5))
<tankf33der> ok
<tankf33der> (de z7-2-seek (Lst Y)
<tankf33der> (seek '((L) (fully = Y L)) Lst) )
<beneroth> ah
<beneroth> yeah (fully) is nicer!
<beneroth> much better then my variant
m_mans has joined #picolisp
m_mans has left #picolisp [#picolisp]
<tankf33der> next task
<Regenaxer> tankf33der, cool solution with 'seek' and fully!
<tankf33der> beneroth's hint :)
<Regenaxer> Even shorter is (seek '((L) (head Search L)) Lst)
<Regenaxer> Uh, two factor auth ;)
<beneroth> ah right, the predicate function of (head). nice!
<sriram_> (nice reading...learning about head, seek, fully etc as the conversation unfolds :) )
<Regenaxer> Hi sriram_!
<sriram_> Hi Regenaxer! good afternoon
<Regenaxer> :)
<sriram_> (trying to think how to change that solution if what was needed was the index in the original list of the matching portion
<beneroth> hi sriram_ :)
<sriram_> Hi beneroth (thanks for guiding to seek...)
<beneroth> hm.. maybe Regenaxers solution plus a counter variable which you increase with (inc)
<sriram_> e.g in above case, it should return 4 (0-based)
<Regenaxer> You could maintain a count in the function
<Regenaxer> (let Cnt 0 (and (seek '((L) (inc 'Cnt) (head Search L)) Lst) Cnt))
<sriram_> (was looking at the 'index function...but not exactly)
<Regenaxer> 1 based then (more pilly)
<sriram_> yes the count seems to be the best
<sriram_> (let Cnt 0 (cons (seek '((L) (inc 'Cnt) (head Search L)) Lst) Cnt))
<sriram_> if you need both :)
<Regenaxer> yeah
<sriram_> index and the list i mean
<Regenaxer> Or use '@@' as a convention for second return value
<Regenaxer> Without 'let' then
<Regenaxer> (zero @@) (seek '((L) (inc '@@) (head Search L)) Lst)
<sriram_> you mean for use on repl only?
<Regenaxer> no
<sriram_> @, @@, @@@ etc?
<Regenaxer> in general
<Regenaxer> There are several functions which return a second value in '@@'
<Regenaxer> eg. 'call', 'mini', 'maxi'
<sriram_> oh interesting...did not encounter that convention
<Regenaxer> 'seek' too
<sriram_> (reading up)
<Regenaxer> So this is similar to what the REPL does, but a little different
<Regenaxer> away, bbl
<sriram_> "and stores the non-NIL value in the global variable @@"
<sriram_> mised that when i read before
<sriram_> bye
<sriram_> but wont the above use of @@ interfere with seeks use of @@?
<sriram_> (zero @@) (seek '((L) (inc '@@) (head Search L)) Lst)
dtornabene has quit [Quit: Leaving]
<beneroth> sriram_, in picolisp we're usually start counting with 1. as it is an index position, not pointer offset.
<sriram_> beneroth> agreed...get confused with C sometimes..
<beneroth> it's mainly a habit thing
<Regenaxer> sriram_, right, so the solution with '@@' won't work
<Regenaxer> 'seek' overrides the count
<sriram_> yes, in general, I think I would prefer to avoid using variables like @@ now that I know it is used internally
<sriram_> in case by chance a call is made to a function that uses it
<sriram_> I think there is no advantage to using that name (@@)?
<Regenaxer> Right
<Regenaxer> I would also prefer (let Cnt 0 ... Cnt)
<Regenaxer> or (cons .. Cnt)
<sriram_> agreed...(back to pdfPage for me :) )
<Regenaxer> ok :)
<aw-> beneroth: you here?
<aw-> oh actually never mind, i was looking for some code but I found it
<aw-> it's in joebo's repo :)
alexshendi has joined #picolisp
<aw-> joebo: i will re-use your todo-backend-pil code, but I'm a bit confused about using (pool) in the parent and then writing to the database from forked processes… wouldn't this create race conditions for writing to the DB?
<aw-> if multiple clients connect at the same time..
<Regenaxer> No, this is normal and OK
<aw-> or.. is DB shared with children???
<Regenaxer> Yes, it *must* even be so
<aw-> ahhhhh
<aw-> perfect!!
<Regenaxer> The parent is needed to synchronize the children
<aw-> <3 this is exactly what i needed
<aw-> i was actually sleeping, and woke up thinking about this haha thanks!
<Regenaxer> Yeah, that's why I said "normal" and OK
<Regenaxer> Is your cold getting better?
<aw-> yes somewhat, thanks
aw- has quit [Quit: Leaving.]
orivej_ has joined #picolisp
orivej has quit [Ping timeout: 255 seconds]
C-Keen has quit [Ping timeout: 264 seconds]
karswell_ has quit [Ping timeout: 264 seconds]
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
C-Keen has joined #picolisp
C-Keen is now known as Guest11973
Guest11973 has quit [Changing host]
C-Keen has joined #picolisp
reed has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]