xkapastel has quit [Quit: Connection closed for inactivity]
<beneroth>
aw-, good point. though why should it not apply to arm64, does arm has better stack protection on by default?
<beneroth>
hm, I can't tell. they haven't tested on ARM it seems, aye.
<beneroth>
aw-, your desktop/dev machine is the rocket?
<aw->
rock64
<aw->
arm64 cpu
<beneroth>
Huawei wants to go into ARM servers I heard (as reaction to US blockade).
<aw->
unaffected by Spectre and Meltdown
<beneroth>
even the newer spectre variants? no L3 cache or what?
<beneroth>
any disadvantages/discomfort you have using the rock64?
<aw->
unaffected i think
<aw->
well.. rock64 is Linux
<aw->
before that i was using a Mac for ~10 years
<aw->
so.. it's different
<beneroth>
well good for you. Linux is better for developer I think. Devs are just afraid to setup a linux I guess.
<aw->
yes
<aw->
working from Linux is a thousand times better than my Mac ever was
<aw->
since I do mostly dev/systems/network stuff
<aw->
but JavaScript is fucking slow as balls on the rock64
<aw->
it's unbelievably slow
<beneroth>
thx for confirmation. I never worked on Mac as dev, only worked on Mac when I was in art school (graphic designer were/are on Mac mostly for historic reasons)
<beneroth>
ok, that was were my question pointed at. slow js. makes sense.
<aw->
so i disable it by default in my browser, whitelist sites for JS, and i run very few addons in Firefox because those also slow down a lot
<beneroth>
firefox stinks more and more :(
<aw->
yeah...
<aw->
desktop is super fast and responsive, everything works perfectly
<aw->
it's just.. web+js which is horrible
<beneroth>
well, its horrible :D
<aw->
painful is a better word
<aw->
one tab with slow JS will freeze the entire browser
<aw->
sometimes for 10-15s
<beneroth>
any ideas/recommendation for a arm64 server system? would the rock64 be suitable?
<aw->
and running developer tools is also insanely slow.. so doing web dev on here is also horrible
<aw->
(firefox developer tools)
<aw->
beneroth: yeah I have a ton of rock64s actually
<beneroth>
backups? so you put some big disks on it?
<aw->
the problem is it has no expansion for PCIe devices, and it doesn't have onboard SATA... so you can't easily expand it as normal servers
<beneroth>
ok
<aw->
yeah one big disk for backup over USB 3
<aw->
but a real "server" platform you can add PCIe HBA or PCIe SFP fiber optic cards etc for 10Ge.. can't do that with a tiny rock64
<beneroth>
I'm setting up my company office (kinda the first one), and maybe I will change my dev setup and I definitely have to remake my little server (its still based on openVZ, running a bunch of containers, e.g. git server, seafile, proxy, internal apps, ...)
<aw->
also they are usually bigger and use more power
<aw->
yeah in that case a tiny rock64 is perfect for that
<aw->
max power usage is 75W, and no fan!
<beneroth>
lxc on rock64 ?
<beneroth>
good point!
<aw->
yes lots of people doing k8, docker, etc
<aw->
my setup is aimed at having a distributed "cluster" with multiple rock64, instead of one big power hungry server
<beneroth>
ok, sounds like I should order some rock64
<aw->
try it, they are so inexpensive it's not much loss
<beneroth>
how long did it take to be delivered? I guess they ship from US?
<aw->
and once it's setup, you can just run it headless: no monitor keyboard mouse
<beneroth>
yeah I run currently a intel nuc that way
<aw->
hmmm.. in Japan we have a few distributors with large quantities in stock
<aw->
i can order one and get it in 2 days
<beneroth>
nice boxes, those IntelNUCs
<beneroth>
but well...intel :D
<aw->
didn't Intel discontinue the NUC?
<beneroth>
ah nice
<aw->
also yes those are cool but they are also 100% closed
<beneroth>
probably, dunno. I thought they just released a new version again?
<beneroth>
T
<aw->
rock64 is 100% open source/ open hardware
<aw->
no closed firmware blobs
<aw->
unlike raspberrypi
<beneroth>
at least in theory
<aw->
haha yeah
<beneroth>
oh raspi has such stuff officially? how so?
<aw->
I also run a few NanoPi Neo2's also.. just as WiFi access points
<aw->
raspbi has a closed firmware blob.. i forget for which device.. maybe broadcom chip or something
<aw->
if you do mostly Linux-based work, you should work from a linux computer. It makes everything sooooo much simpler
<beneroth>
I work from a linux computer for years now
<beneroth>
still work on windows when I have to for customers, but then its their devices usually
<aw->
10 years ago it was a bit of a pain you know? setting up wifi, Xwindows, hardware support was so-so... now you just boot from an sdcard and everything *just works*.. except when you want to do something different haha then you need some linux-hacker skills
<beneroth>
I know. I started like 10 years ago. I remember when NTFS was read-only, no write access yet.
<aw->
oh good
<beneroth>
and then I see Mac not having write on NTFS in 2018 and laugh.
<beneroth>
printer setup works better on linux than windows for many years now, I found.
<aw->
beneroth: also avoid rockpro64 for now.. most people have hardware issues due to instability etc
<beneroth>
(finding the right driver automatically vs. search half the internet for legacy printer driver... the printer is fine)
<beneroth>
ok, thanks for the advice aw- ! much appreciated!
<aw->
haha yeah printers are well supported now
<beneroth>
it got worse on windows with win8 (don't know about win10, but I cannot imagine that they include drivers in 10 which they kicked out in 8)
<beneroth>
ah and rock64 is not vulnerable to spectre as it has indeed no L3 cache :)
razzy has quit [Read error: Connection reset by peer]
razzy has joined #picolisp
razzy has quit [Read error: Connection reset by peer]
razzy has joined #picolisp
razzy has quit [Read error: Connection reset by peer]
razzy has joined #picolisp
rob_w has quit [Quit: Leaving]
<razzy>
hmm, how can i stop repl from printing huge outputs when saving file i use (setq C (need 200000 42)) ; <- this coma. is there better way?
<Regenaxer>
Just write something in the same line
<Regenaxer>
: (range 1 10000000) T
<Regenaxer>
-> T
<razzy>
nice
<Regenaxer>
The repl prints only the result of the last expr
<razzy>
also, does (copy) copy all insides instantly? or copy only difference made later
<beneroth>
see in ref
<beneroth>
good evening all :)
<beneroth>
razzy, it copies instantly, its not copy-on-write
<beneroth>
also it is not a deep copy
<beneroth>
see reference
<beneroth>
Regenaxer, nice photo. we used to sit there :)
<beneroth>
here it was snowing the whole day too. maybe a bit less than at your place.
<Regenaxer>
Good evening beneroth
<razzy>
my guess there is no function that do copy-on-write ? from high lvl, view it is the same output, only copy on write is easier on resources
<beneroth>
its not necessarily easier on resources. you need to keep check on every write if there is something to copy.
<beneroth>
that's overhead too
<beneroth>
you pay some speed to gain some space. (in most optimization, you pay space to gain speed)
<beneroth>
also "premature optimization" is one of the worst things to do. don't do it.
<razzy>
thx. i agree. sometimes you do small incremental changes on 1% of file, and you do not want to make whole copy
<Regenaxer>
beneroth, yes, we sat there, but without snow ;)
<Regenaxer>
razzy, use the DB. It operates on small blocks of the file
<beneroth>
T. that is the correct answer.
<beneroth>
use the right tool for the specific task.
<razzy>
my ask is, if there is such copy-on-write function
* razzy
is lazy, and want to avoid learning DB as possible
<beneroth>
you are really lazy, not efficient.
<beneroth>
afaik there is no general copy-on-write in standard picolisp
<beneroth>
maybe there is one on rosettacode?
<beneroth>
else best guess is probably to look into c libraries
<beneroth>
the very best thing would be to optimize your task in the proper way. which is most likely not copy-on-write, unless it should really be a DB.
<beneroth>
you could make all this thinking and looking for solutions I just listed here BEFORE you ask here in the channel. that would be respectful and constructive.
<Regenaxer>
I wonder what razzy means with such a "function". It it were, it would rather be a mechanism of the whole interpreter machinery, not an isolated function
<Regenaxer>
And "write" where when "copy" what?
<Regenaxer>
a cell?
<razzy>
Regenaxer: it would need to be mechanism. propably whole picoDB aparatus. but on outside it could look as a function :] (copy-on-write ToSymbol FromSymbol)
<Regenaxer>
What exactly does that do?
<razzy>
maybe, not sure
<razzy>
give me 15 min
<razzy>
ok, i have something. big letters are variables. if i explained it badly, ask. It require only special function-call when accesing specific symbol (might be easy or hard to do). On outside works as (copy). (copy-on-write ToSymbol FromSymbol) create anonymous AnonSymbol symbol from FromSymbol, (copy-on-write) creates Change-data than captures changes on FromSymbol. (copy-on-write) creates Change-data2 than captures changes on
<razzy>
ToSymbol. From this point on, when ToSymbol is called, it reads AnonSymbol + adds Change-data2.
<Regenaxer>
I don't understand
<Regenaxer>
Why not (setq ToSymbol (box Value)) and hen (put ToSymbol ... ?
<Regenaxer>
What the hell means "write" in this context?
<Regenaxer>
(copy) is something different
<Regenaxer>
nothing to do with symbols
orivej has joined #picolisp
<razzy>
as i understand it copy-on-write or shallow-copy shares parts that are equal to both copies. something like picolisp do with paraell processes when using later
<Regenaxer>
(doc 'copy)
<Regenaxer>
it is a shallow copy
<razzy>
uh?
<Regenaxer>
yes
<razzy>
there is also deep copy, that makes copy bit by bit.
<Regenaxer>
All non-destructive functions share some stuff
<Regenaxer>
eg 'append' or 'delete'
<Regenaxer>
Do you understand how they work?
<razzy>
uhm, than what i thought about copy is wrong
<razzy>
now i have better idea
<Regenaxer>
I have no idea what you really want to do
shpx has joined #picolisp
<Regenaxer>
Are you sure you don't again throw in terms you picked up somewhere without knowing what they mean?
<razzy>
i propably do that again at some point.
<Regenaxer>
Please don't!
<Regenaxer>
You waste *our* time
<Regenaxer>
What exactly do you want to do?
<Regenaxer>
Why do you ask about copy-on-write when it makes absolutely no sense? Just to show that you heard of the term?
<Regenaxer>
I already asked: What "copy" and what "write"?
<Regenaxer>
What sense does it make in the Pil VM?
<razzy>
i made blunder, when i thought copy-on-write is same as shallow-copy
<Regenaxer>
What *copy* do you talk about? You don't even answer my questions!
<Regenaxer>
And what *write*?
<Regenaxer>
I'm willing to answer your questions, but not if you just throw in nonsense
<beneroth>
shallow copy has absolutely nothing to do with copy-on-write.
<Regenaxer>
a (fork) does a copy on write in the process memory space(s)
<beneroth>
shallow copy is the opposite of deep copy. deep copy means, everything nested/pointed at/indirectly connected gets copied too. shallow copy means usually only the direct connected stuff is copied.
<razzy>
Regenaxer: thank you for answering. i have no further questions.
<beneroth>
that's completely independent of lisp or any specific language. this are general programming terms.
<beneroth>
use wikipedia.
<Regenaxer>
beneroth, good explained
<razzy>
at this point i am propably wasting your time,
<Regenaxer>
true
<razzy>
any good reference on copy-on-write?
<beneroth>
you tried wikipedia?
<razzy>
yop, not very good references imho
<beneroth>
you lazy <insert-insult-I-cant-decide-on-one>
<beneroth>
lazy copy has to do with copy-on-write. but not shallow copy.
<beneroth>
not the least
<beneroth>
copy-on-write is usually only used in context of filesystem or forking/threading processes.
<beneroth>
shallow/deep copy is usually only used in context of object oriented programming, though it obviously applies to all kind of memory structures
<beneroth>
you should give us your address so we can send you an invoice.
<razzy>
my take from what i read so far is that: shallow-copy in context of filesystems and processes is called copy-on-write
<razzy>
and there are multiple lvls of "shallowness"
<Regenaxer>
I would not say so
<beneroth>
definitely no
<beneroth>
lazy-copy, but not shallow-copy.
<Regenaxer>
In shallow copy no "write" is involved
<razzy>
i will meditate on it, thx
<beneroth>
stop wasting your time, Regenaxer
orivej has quit [Ping timeout: 250 seconds]
<Regenaxer>
yeah, thanks :)
orivej has joined #picolisp
<tankf33der>
beneroth: i got threema
<beneroth>
cool
<beneroth>
see direct message
<beneroth>
send me something which makes me believe you are you and not someone spying on our IRC traffic :P
<beneroth>
then maybe I can send you something back which makes you believe it is me and not someone who changed the code before it reached you and is now MitMing us :P
<beneroth>
(hm impossible, shit)
<beneroth>
tankf33der, do you use python? any point in learning it (beside e.g. using one of its libraries or so) ?