<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:01:03] <stephan48> Amanda, nadja: do
you implement RFC9402?
L2[00:48:36]
<Pokeman2003> So, out of curiosity, just
how much of Pastebin-download support is make or break for you
guys?
L3[00:48:36]
<Pokeman2003> I was considering about
making an OC server but I like to do things the old fashioned way,
where you have to make everything yourself instead of just
downloading Pastebin, but I realize that's not for everyone.
L4[00:49:45]
<Sky> 100%
break
L5[00:50:12]
<Sky> ive
not played many servers because HTTP was disabled lol
L6[00:50:18]
<Pokeman2003> Fair enough.
L7[00:50:30]
<Pokeman2003> ~~So when is someone going
to make a proper Internet Explorer in Minecraft?~~
L8[00:50:42] * Izzy
smugs
L9[00:50:49]
<Sky>
~~wget~~
L11[00:51:20]
<Pokeman2003> Oh, huh.
L12[00:51:34] <Izzy> GUI FRequest browser
:3
L13[00:51:44] <Izzy> (for kOS NEO)
L14[00:53:00]
<Pokeman2003> I guess another concern is
that you can easily have an economy of people making software in
Opencomputers, but it falls apart very quickly with Pastebin.
L15[00:53:00]
<Pokeman2003> Whose gonna buy a really
shit OS when Minitel or MineOS already exists.
L16[00:54:50]
<Pokeman2003> I mean I could stub
everyone's toes by implementing my favorite RAM and harddrive
settings, but then everyone's going to be pissed at me because the
stock stuff doesn't work without tier 1.5 :P
L18[00:55:25]
<AR2000>
IPv4 and UDP
L19[00:55:29]
<Pokeman2003> Neat!
L20[00:55:41] <Izzy> Just enable hardcore
recipes so it pays to make efficient software
L21[00:55:50]
<Pokeman2003> >Pokeman2003: I mean I
could stub everyone's toes by implementing my favorite RAM and
harddr…
L22[00:55:50]
<Pokeman2003> (Guess there's not much of a
difference. OpenOS already takes 2 RAM sticks.)
L23[00:55:58]
<AR2000>
(ICMP echo is the only working ICMP packet)
L24[00:56:15] <Izzy> on a server with Skye
once I ended up writing an EEPROM to load an OS from the tape to
the tmpfs so I could avoid building a hard drive
L25[00:56:27]
<AR2000>
Lol
L26[00:56:48]
<AR2000>
tmpfs is sooo small
L27[00:56:57] <Izzy> 64k is more than
enough space for PsychOS 2
L29[00:57:30]
<Pokeman2003> 64k is more than enough for
most of my OSes too because I like making things tiny but OpenOS is
what most people are going to go afte.r
L30[00:57:44] <Izzy> If I were to do it
again nowadays I'd probably have a kernel file that included enough
to mount the tape as an archive and part of the filesystem
L31[00:58:09] <Izzy> Downside is you'd need
more than one tape, I guess.
L32[00:58:27] <Izzy> (Rather than loading
into memory then being able to remove the tape+drive until the
computer restarted)
L33[00:58:40]
<AR2000>
Make a tar archive
L34[00:58:40]
<AR2000>
After all, that's what tar is for. Tape Archive
L35[00:58:46] <Izzy> mtar :)
L36[00:59:20]
<Pokeman2003> On a side note, is there a
soundcard mod? I'm kind of wanting to add music to my OS but
computer.beep() is not cutting it.
L37[00:59:25] <Izzy> Already have the code
for mounting (compressed) mtar files as a filesystem, would just
need to generalise it to support mounting more than one
filesystem
L38[00:59:28]
<Pokeman2003> Why DOES computer.beep()
stop execution anyways?
L39[00:59:30] <Izzy> Computronics has a
sound card IIRC
L40[01:00:39] <Izzy> (as it is, it's only
set up for one instance, in the case of pkgfs, but there's zero
reason it couldn't be instanced so you could have lots of mounted
archive filesystems)
L41[01:01:27]
<AR2000>
Does mtar mean Minecraft tar ?
L42[01:01:49] <Izzy> MiniTel ARchive,
nominally
L43[01:02:10] <Izzy> though I don't think I
ever explicitly said what it means so you're free to come up with
your own interpretations
L44[01:03:17]
<AR2000>
That's where it's from ....
L45[01:03:18]
<AR2000>
Because I never figured out what was this unknown archive format
everyone was talking about
L47[01:04:55] <Izzy> pretty sure that's
been linked at you before
L48[01:04:57] <Izzy> but whatever
L49[01:07:51]
<AR2000> It
got linked a gist, not that
L50[01:10:29] <Amanda> stephan48: I do
now!
L51[01:10:56] <Izzy> maybe I should
actually spin up my cursed OC cloud some time
L52[01:10:59]
<AR2000>
Fun fact: I can't package mtar from oppm with my packaging script.
The reason : it use https urls in the file list.
L53[01:11:33] <Amanda> Sounds like your
packaging script isn't implementing oppm correctly them
L54[01:11:59]
<AR2000>
Where is it documented that you can use urls in programs.cfg
?
L55[01:13:33]
<AR2000>
Same for the dep part : where is it documented that you can use
urls to a single file instead of a package name?
L56[01:13:59]
<AR2000>
Now it know but it's not in the example files or on the wiki
L57[01:14:54] <Amanda> I wasn't aware it
had formal documentation. Like, everything I ever heard about using
it was "check out what other people did"
L58[01:15:17] <Izzy> I can't find my OC
cloud service thinger, I know it was on this laptop somewhere
but...
L59[01:15:21] <Amanda> This isn't some
large enterprise project with every detail mapped out and planned,
it's literally somebody's hobby project
L61[01:15:50]
<AR2000>
And the examples file linked in it
L62[01:17:08] <Amanda> So you expect a
tutorial to go into deep detail about every single feature of a
program? What tiny ass programs do you use?
L63[01:17:46] <Izzy> Amanda: you know what
feature of apk I like from pmOS?
L64[01:17:56] <Izzy> packages with
subpackages for integrating with other packages
L65[01:18:29] <Amanda> Izzy: no, but I like
the `apk add --no-cache` feature when I'm doing docker stuff with
it
L66[01:18:41] <Amanda> Ratherz with
alpine
L67[01:19:20] <Amanda> No messy many-liner
to install everything then blow away the package cache in one
docker command
L68[01:20:51]
<AR2000> It
would have been nice if the example file included the https links
in the dep and files list to show it's possible. It already show
everything else. Why not that ?
L69[01:22:09] <Amanda> Again, hobby
project. The https feature was probably added and nobody updated
the example file
L70[01:24:36] <CompanionCube>
%tonkout
L71[01:24:36] <MichiBot> Kapow!
CompanionCube! You beat Vaur's previous record of 2 hours, 3
minutes and 5 seconds (By 50 minutes and 9 seconds)! I hope you're
happy!
L72[01:24:37] <MichiBot> CompanionCube has
stolen the tonkout! Tonk has been reset! They gained 0.002 tonk
points! plus 0.001 bonus points for consecutive hours! (Reduced to
50% because stealing) Current score: 0.572575. Position #1
L73[01:25:03]
<AR2000> I
only know it's a thing because of 5 packages that failed to build
because of that over the +200 packages that exists.
L74[01:25:03]
<AR2000> I
don't think you could have expected me to have known it was a thing
by reading what other did with probability like that.
L75[01:25:04]
<AR2000>
Anyway, I might not even fix it since I'm not sure I can share the
packages. Not my code, some are unlicenced, and I would have to
check the repo of each ones to see if redistributing is
allowed
L76[01:27:12] <Izzy> oh hey I found it
:D
L77[01:27:27] <Amanda> Probably for the
better, ar2k
L78[01:27:53] <Izzy> hey Amanda are you
busy?
L79[01:28:50] <Amanda> Izzy: what, you
don't have an organization system? Mines simple, code goes in the
aready-200+gb ~/Code, everything else is sprinkled around like
paper machee!
L80[01:28:59]
<AR2000>
What is that OC cloud thing?
L81[01:28:59]
<AR2000>
Remote filesystem? Over internet?
L82[01:29:05] <Izzy> no I've done that
already
L83[01:29:09] <Izzy> I'm talking OC as a
service
L84[01:29:15] <Amanda> Izzy: I am not, but
I'm not computered
L85[01:29:20] <Izzy> ah, okey
L86[01:29:30] <Izzy> because this works if
you want to poke at it and have an SSH client handy
L87[01:29:47] <Amanda> I e got juicessh on
my phone
L88[01:29:47]
<AR2000> OC
as a service?
L89[01:29:55]
<AR2000>
Same
L90[01:30:07] <CompanionCube> termux >
juicessh
L91[01:30:37] <Amanda> I might install
termux soon, now that my love affair with nix is ending
L92[01:30:44]
<AR2000>
Termux is not just a ssh client.
L93[01:31:03]
<AR2000> Is
way more than that
L94[01:31:07] <CompanionCube> true, i also
run a weechat in it
L95[01:31:24]
<AR2000>
And need to be installed from f-droid
L96[01:31:38]
<AR2000>
Because google play version is outdated
L97[01:31:48] <CompanionCube> also
true
L98[01:31:56] <Izzy> Amanda: PM'd you the
login
L99[01:32:06] <Izzy> CompanionCube: you
wanna poke my cursed OC cloud?
L100[01:32:11] <Amanda> There's a termux
fork I have installed ATM called nix-on-droid, but I've not gotten
around to trying termux itself yet
L101[01:33:24] <CompanionCube> Izzy: sure
why not
L102[01:35:38] <Amanda> Was mildly
confused when it asked for a username after connecting, then
realized why
L103[01:36:00] <Izzy> yee
L104[01:36:05] <Izzy> I haven't
implemented passwords or anything
L105[01:36:32]
<AR2000>
Cloud you share the curse with us ?
L106[01:36:39]
<AR2000>
With screenshot
L107[01:37:11] <Amanda> I'd say instead of
un/pass you key it off the public key of the connecting user
L108[01:37:45] <Amanda> I think that ends
up in an env var prefixed with SSH_
L109[01:38:05] <Izzy> yeah I think that
might've been my plan
L111[01:38:38] <Amanda> That's what I did
with mine, but I also wrote mine in go, serving a ssh server from
the go code
L112[01:38:52]
<AR2000>
Unrelated question : is stripping comment from packaged files a
good idea ? If yes, should blank lines be left in place so errors
msg get the same line number as in the source code
L113[01:40:28]
<AR2000>
Thx Izaya. Blursed is not the correct word to use to describe what
I just saw. But that's the best I know to do so
L114[01:40:35] <Amanda> Cute new phone
case get
L115[01:40:54] <Amanda> I'd take a
picture, but I'm wearing a towel so I can't hear the cosmos asking
for one
L116[01:41:08]
<AR2000>
The good thing with it : you can copy/paste from OC
L117[01:41:28] <Izzy> Amanda: okay so what
one could do is if you log in you have to add a ssh public
key
L118[01:41:32] <Amanda> It's literally
ocvm over ssh
L119[01:41:36]
<AR2000>
That's a feature I miss sooooo much. To copy errors msg for
example
L120[01:41:42] <Izzy> and then those are
added to the .ssh/authorized_keys with a username env var
L121[01:43:01] <Izzy>
environment="USERNAME=whatever" ssh-rsa ....
L122[01:43:19] <Izzy> then you can add
more keys so you can log in from different machines
L123[01:43:35] <Izzy> plus once you
register you wouldn't need to put in the password
L125[01:44:35] <Izzy> but yeah it's pretty
much just a forced TUI menu as a login program
L126[01:44:46] <CompanionCube> also it
would mean everyone doesn't get to see everyone else's ocvms?
L127[01:44:50]
<AR2000>
Izzy : have you tried ocelot in the web browser ?
L128[01:45:03] <Izzy> nop
L129[01:45:18] <Izzy> CompanionCube: I
mean, each user is instanced
L130[01:45:30] <Izzy> but there's nothing
stopping you logging in as anyone else
L132[01:46:04] <CompanionCube> a
non-scuffed version would probably have a more fleshed-out
'hypervisor' ui
L133[01:46:06]
<AR2000>
Cursed, and doesn't work on mobile since you can't open your
keyboard
L134[01:46:09] <Izzy> oh is that a shared
VM? that's neat
L135[01:46:32] <Izzy> I want something
like that but I want people to be able to run independent machines
that can communicate
L136[01:46:46] <CompanionCube> well,
fortunately hacker's keyboard has a notification to open it
L137[01:47:01]
<AR2000>
Nice
L138[01:47:42] <CompanionCube> but it
doesn't actually need that, it opens anyway on top
L139[01:47:46] <CompanionCube> *tap
L140[01:47:49]
<AR2000>
How would you allow instances to link ? With linked cards ? A
common wireless space ?
L141[01:47:57] <Izzy> ocvm does local
networking
L142[01:48:09] <Izzy> with some minor
patching you can even make ocvm instances on different machines
communicate
L143[01:48:21] <CompanionCube> also your
openos is newer lol
L144[01:49:08] <Izzy> yeah I last worked
on this ... May 31 2022
L145[01:50:51] <Izzy> with some more ocvm
patching I want to get it set up so you can specify a network
bridge address as part of the network card configuration
L146[01:51:08] <Izzy> then each person can
have a personal network and there can be an arbitrary number of
public networks too
L147[01:51:37] <CompanionCube> makes
sense
L148[01:52:03] <Izzy> this would be
configurable from the management screen
L149[01:52:07] <Izzy> as well as memory
size, disks, etc
L150[01:52:43] <CompanionCube> probably
the wrong vibe but i wonder how you configure things under
z/vm
L151[01:53:16] <Izzy> soon: izzy makes the
VMs boot up with a RO minitel disk attached by default
L152[01:54:23] <CompanionCube> (which
comes to mind because of the whole 'vm host running set of vms with
a single-user OS' paradigm of CP/CMS
L153[01:55:06] <Izzy> time to look for the
manual :3
L154[01:55:09] <Amanda> %remindme 12h fix
dotfiles to use /use/bin/env bash instead of /bin/bash
L155[01:55:09] <MichiBot> I'll tell you
"fix dotfiles to use /use/bin/env bash instead of
/bin/bash" in 12h at 04/13/2023 01:55:09 PM
L156[01:55:14] <Izzy> that said,
>implying OC is single-user
L157[01:56:05]
<walksanator.
B⃢ot.> %tonk
L158[01:56:05] <MichiBot> Eureka!
walksanator. B⃢ot.! You beat CompanionCube's previous record of
<0 (By 31 minutes and 28 seconds)! I hope you're happy!
L159[01:56:06] <MichiBot> walksanator.
B⃢ot.'s new record is 31 minutes and 28 seconds! walksanator. B⃢ot.
also gained 0.00052 tonk points for stealing the tonk. Position #5.
Need 0.18175975 more points to pass Michiyo!
L160[01:56:24] <Amanda> ... huh
L161[01:56:28] <Amanda> CANNOT LINK
EXECUTABLE "ssh": library "libcrypto.so.3" not
found: needed by main executable
L162[01:56:30] <CompanionCube> at least
ibm documentation is very comprehensive
L163[01:56:41] <Amanda> Termux seems
upset
L164[01:57:09] <Izzy> so anyway, that's
what I want to do with one of these S10es with a wonky screen
L165[01:57:31] <Izzy> 2GB is a lot of
memory if you divide it in 0.25-4MB blocks for OC VMs
L166[01:58:22] <CompanionCube> the
maximum-effort version of this is obviously 'ocvm as xen/kvm
unikernel'
L167[01:58:32] <Izzy> >:D
L168[01:58:49] <Izzy> maybe this is what I
should do with the eMac rather than running LuPi2 on it
L169[01:59:06] <Amanda> Firecracker vms
running ocvm as init
L170[01:59:24] <Izzy> it only has 384M of
memory but even that could run at least 90-ish copies of ocvm
L171[02:00:12] <Izzy> I'm sure that even a
single-core 800Mhz PowerPC box would be faster split into 90 slices
than real OC hardware
L172[02:00:14] <Izzy> and it'd be
neat!
L173[02:01:05] <CompanionCube> impossible:
lupi2 as dom0 equivalent
L174[02:01:23] <Izzy> one LuPi2 instance
per core
L175[02:01:29] <CompanionCube> (obviously
no xen ppc, but kvm)
L176[02:01:36] <Izzy> with a vty for
each
L177[02:01:55] <Izzy> (for more modern
RPis and similar)
L178[02:12:45] <CompanionCube> Izzy:
randomly related: tailscale is nice, i recently resurrected the pi3
and tried out tailscale at the same tiem and it's been pretty
sweet
L179[02:13:02] <Izzy> been meaning to poke
at tailscale (and wireguard) more
L180[02:13:41] <Amanda> Aww man
L181[02:14:02] <Amanda> My minio instance
is dead, so I can't install kos on ocaas
L182[02:14:18] <CompanionCube> also
probably the first time i've actually used the 'search' thing in
resolv.conf after adding another forward-zone to unbound
L183[02:15:44] <CompanionCube> todo: the
website says the android support is for 6+, the apk is for 5+, it
seemingly does nothing on 5+, wonder if it's just a minor problem
or what
L184[02:17:07] <Izzy> damn you know what
would be cursed but fun? running something in this ocaas thinger
that lets me access my inventory server from a normal
terminal
L185[02:18:44] <Amanda> You did make that
virtual linked card server didn't you?
L186[02:18:45] <CompanionCube> if you want
less cursed you don't really need ocass
L187[02:18:54] <Izzy> this is true
L188[02:19:12] <CompanionCube> just run a
telnet proxy on your inventory server
L189[02:19:49] <Izzy> Amanda: yeah, was
actually thinking implementing the ocvm protocol in that bridge and
using it as a ... VLAN-aware switch? might be easier than patching
ocvm
L190[02:20:07] <CompanionCube> (you can't
get ssh but you don't need ssh anyway so no loss)
L191[02:20:23] <Izzy> CompanionCube: I
could just run an ocvm instance locally and connect it to an
internet bridge tbh
L192[02:21:05] <CompanionCube> now to make
it *more* cursed involve block-mode 3270/5250 somewhere, 10/10
enterprisey
L193[02:21:12] <Izzy> delicious
L194[02:21:41] <Izzy> I mean the inventory
system UIs run on a combination of MT-RPC and giant compressed
serialised tables
L195[02:22:03] <CompanionCube> (both of
which still use telnet, resulting in 'telnet over tls' actually
being a thing)
L196[02:22:11]
⇨ Joins: Hawk777
(~Hawk777@2607:c000:8295:ee00:52ce:b43e:1c89:321a)
L197[02:22:41] <Izzy> so it's kind of
local forms as it is
L198[02:22:57] <Izzy> it's just the form
is "here is a list, either submit a new search or tell me to
do something with something here"
L200[02:27:01]
<TechTastic> %down
L201[02:27:01] <MichiBot> You drink a
searing violet potion (New!). TechTastic suddenly forgets a random
piece of trivia.
L203[02:44:19] <Amanda> Hrm
L204[02:51:54] <Amanda> Oh fun
L205[02:52:01] <Amanda> I bricked one of
the vms
L206[02:52:22] <Amanda> And it cycles too
fast for me to see the error
L207[02:52:55] <CompanionCube> oh no
L208[02:52:58] <Amanda> Izzy: maybe a
"ocvm exited, press any key to return to
hypervisor"
L209[02:53:13] <Izzy> that could likely be
arranged
L211[03:37:15]
<CSX8600> I
tried doing some looking around but couldn't find an example. How
would I go about drawing power from a system from a
`DriverItem`?
L212[03:41:47]
<CSX8600>
Whoops- wildly wrong class. I meant doing it within a callback of
an implementation of `AbstractManagedEnvironment`
L213[03:48:19]
<SoBinary>
%tonk
L214[03:48:20] <MichiBot> Woooo!
SoBinary! You beat walksanator. B⃢ot.'s previous record of 31
minutes and 28 seconds (By 1 hour, 20 minutes and 45 seconds)! I
hope you're happy!
L215[03:48:21] <MichiBot> SoBinary's new
record is 1 hour, 52 minutes and 14 seconds! SoBinary also gained
0.00135 tonk points for stealing the tonk. Position #8. Need
0.00379 more points to pass Vaur!
L216[03:54:40] <Amanda> %give MichiBot a
poorly-secured jar of wasps
L217[03:54:40] *
MichiBot accepts the poorly-secured jar of wasps and adds it to her
inventory
L218[03:55:01] *
Amanda curls up around elfi, passes out
L219[03:55:04] <Amanda> Night girls
L220[04:05:14]
<Pokeman2003> How do events work on
OpenOS? Like, how does the callback occur?
L221[04:07:51] <Hawk777> IIRC under the
hood the events go into a queue. When no code is executing, all
coroutines are asleep on something (sleep for time, pullEvent, or
whatever). When an event happens, the top-level code (I think in
machine.lua) is invoked, which pulls an event from the queue and
delivers it to everyone who cares (through some layers), so that
callbacks get invoked and coroutines blocked in pullEvent get woken
up.
L222[04:08:09] <Hawk777> That’s more
machine-layer than OS-layer though; that’s more what I know.
L223[04:10:16]
<Pokeman2003> Ah, clever. So basically,
they replaced computer.pushSignal with their own so that it would
actually call a function in the main lua script?
L224[04:10:16]
<Pokeman2003> The only problem I would
have with that is that this only works program level, and I have no
idea how you would change that during OS execution, unless makign
your own custom computer.pushSignal in Lua also replaces the
default one the system uses.
L225[04:10:52] <Hawk777> I *think*
computer.pushSignal is an FFI call (i.e. it calls into Scala code),
which just pushes the event onto the same queue that all the other
events use.
L226[04:11:07] <Hawk777> (Scala being the
language OpenComputers itself is written in)
L227[04:11:29] <Hawk777> I’m describing
how the machine-layer works.
L228[04:11:35] <Hawk777> I thought
computer.pushSignal was *not* replaced.
L229[04:11:53]
<Pokeman2003> Oh, I have misunderstood
then.
L230[04:12:24] <Hawk777> How core OC works
is that there’s an event queue, and whenever a CPU decides it’s
ready to go to sleep, core OC will wake up the CPU (and tell it “go
back to running whatever code you’re running”) whenever the event
queue is nonempty, *or* the sleep time it asked for has
expired.
L231[04:12:59] <Hawk777> On top of that,
the OS just deals with taking the events that cause execution to
resume, popping them from the queue, and distributing them to the
registered callbacks as well as any coroutines that are sleeping in
pullEvent.
L232[04:13:10]
<Pokeman2003> OC being OpenOS in this
instance, right?
L233[04:13:17] <Hawk777> No, OC being
OpenComputers.
L234[04:13:24] <Hawk777> I.e. the mod
itself, below the OS layer.
L235[04:13:30] <Hawk777> The event queue
is, for lack of a better term, a “hardware” feature.
L236[04:13:30]
<Pokeman2003> Ah.
L237[04:13:40]
<Pokeman2003> Well, so, my deal is that
I'm trying to figure out how the threading system works.
L238[04:13:44] <Hawk777> It has to be,
since it’s filled with mostly events that come from outside the
OS.
L239[04:13:52] <Hawk777> I *think* threads
are pretty much just Lua coroutines.
L240[04:13:56]
<Pokeman2003> Cooperative threading which
doesn't crash the computer is really impressive to me.
L241[04:14:13]
<Pokeman2003> Well, yeah. I know it
is.
L242[04:14:40]
<Pokeman2003> My thing was that coroutines
only tell part of the story, since OpenOS can determine, seemingly
arbitrarily, to stop running one thread so that it can execute
another.
L243[04:14:46]
<Pokeman2003> That's not something Lua can
do normally.
L244[04:14:56] <Hawk777> Do you mean
timeslicing?
L245[04:15:09]
<Pokeman2003> Pretty much, yeah. I'm
trying to figure out how the timeslicing system works.
L246[04:15:13] <Hawk777> I don’t think
there is one.
L247[04:15:37] <Hawk777> Have you actually
verified it? I’m pretty sure if you don’t do any blocking
operations in a thread, no other thread will run, and eventually
your computer will break due to the five second rule.
L248[04:16:02] <Hawk777> Other threads
only run when you do a blocking operation, which ultimately boils
down to a pullEvent or a synchronous component call or
something.
L249[04:18:22] <Hawk777> (for the record,
synchronous component calls are also ultimately implemented by
sleeping the coroutine tree and returning from the top-level code
in machine.lua)
L250[04:20:27]
<Pokeman2003> I'm going to hurt myself
thinking about this too hard.
L251[04:20:27]
<Pokeman2003> Okay, so... a blocking
operation. How does OpenOS define those...
L252[04:21:04]
<Pokeman2003> Also, OpenOS is able to
determine when a program has been going on for too long without
yielding which is... interesting.
L253[04:23:31]
<TechTastic> %down
L254[04:23:31] <MichiBot> You drink a
diluted honey potion (New!). A bard behind TechTastic suddenly
stops playing. They were most likely eaten by a monster.
L255[04:23:52] <Hawk777> A blocking
operation is one that makes the current coroutine yield. These are
pullEvent, sleep, and any component call that is marked
synchronous. Whether a component call is synchronous or not is a
piece of metadata exposed by the “hardware”.
L256[04:24:03] <Hawk777> The “too long
without yielding” thing is actually implemented in machine.lua,
using the debug API.
L257[04:24:05] <Hawk777> IIRC
L258[04:24:16]
<Pokeman2003> Huh.
L259[04:24:23]
<Pokeman2003> That's impressive.
L260[04:25:12]
<Pokeman2003> So, how does the synchronous
call pause the coroutine? Is it as simple as just making a wrapper
which does coroutine.yield() followed by the actual call?
L262[04:25:46]
<Pokeman2003> I have it open but I don't
understand it, which is why I'm asking so many questions.
L263[04:25:51]
<Pokeman2003> If I understood it, I
wouldn't be asking them.
L265[04:28:42] <Hawk777> You can, for the
indirect case (or direct where the limit of direct calls has been
reached), it packs the parameters up in a table, does a
“coroutine.yield” tossing a lambda up to the parent
coroutine.
L266[04:29:45]
<Pokeman2003> Huh, okay. Interesting. So
that was about as simple as I had guessed...
L267[04:29:53]
<Pokeman2003> Maybe too much credit for
myself.
L268[04:30:12]
<Michiyo>
>CSX8600: Whoops- wildly wrong class. I meant doing it within a
callback of an imple…
L269[04:30:13]
<Michiyo>
`node = Network.newNode(this,
Visibility.Network).withComponent(getComponentName()).withConnector(bufferValue).create()`
L270[04:30:13]
<Michiyo>
`node.changeBuffe(int);`
L271[04:30:13]
<Michiyo>
Basically this
L272[04:30:23] <Hawk777> IIUC (and I may
not) the “main” function returns a callable to invoke on the
Minecraft world thread, where that callable is the lambda tossed up
through the layers which actually performs the component
call.
L274[04:30:56] <Hawk777> They work
together, both of them count as “hardware”.
L275[04:31:39]
<Michiyo>
>Michiyo: `node = Network.newNode(this,
Visibility.Network).withComponent(getCompone…
L278[04:32:29]
<Pokeman2003> Interesting, thank you
Hawk.
L279[04:32:44]
<Pokeman2003> I... think I'm a bit too out
of my field at the moment to even remotely attempt that for my own
OS.
L280[04:34:26] <Hawk777> The way an
individual CPU works is it bounces back and forth between
runThreaded (on its own OC-specific thread) and runSynchronized (on
the Mincraft world thread). runThreaded returns whenever the CPU is
idle, and is invoked again when the sleep time expires or an event
is pushed to the queue. The return value from runThreaded indicates
how long to sleep for, or whether to power down, or whether a
synchronous call is needed. If a sync
L281[04:34:26] <Hawk777> s call is needed,
then core OC calls runSynchronized instead. Looks like the
synchronizedCall variable in there is used to hang onto the
coroutine returned by the machine.lua invocation, such that that
lambda can be invoked from runSynchronized in order to do the
component call.
L282[04:35:03] <Hawk777> I don’t actually
know a whole lot about the Lua side of things; I wrote OC-Wasm so I
know how core OC interacts with an architecture, but not so much
how Lua layers things on top of that.
L283[04:36:21] <Hawk777> (“thread” here
being in the Java sense, which has nothing to do with OpenOS
threads)
L284[04:36:24]
<Pokeman2003> I see. Well, thank
you.
L285[04:36:24]
<Pokeman2003> Wasn't your addon under OC
Addons for a bit? What happened to that?
L286[04:37:37] <Hawk777> Not sure, what’s
OC Addons?
L287[04:38:05]
<Pokeman2003> The Discord server category.
I thought we had an oc-wasm at some point. At least, I remember
there being more channels here.
L288[04:38:16] <Hawk777> Oh, I dunno, I’m
not in Discord, only IRC.
L289[04:40:52]
<Michiyo>
IIRC the only other channel there was mine, and I deleted it
L290[04:42:21]
<Pokeman2003> Ah, I see. I must have been
thinking of yours then.
L291[04:43:27]
<Michiyo> I
cut down on the channels visible by default to try to cut down on
random people joining, picking some random channel down the list
and posting then getting upset that no one answers their
question
L292[04:43:58]
<Michiyo>
Well, because you asked a support question in the off-topic channel
that no one else watches because it's all shitposts..
L293[06:32:06]
<walksanator.
B⃢ot.> %tonk
L294[06:32:07] <MichiBot> Hooray!
walksanator. B⃢ot.! You beat SoBinary's previous record of 1
hour, 52 minutes and 14 seconds (By 51 minutes and 32 seconds)! I
hope you're happy!
L295[06:32:08] <MichiBot> walksanator.
B⃢ot.'s new record is 2 hours, 43 minutes and 47 seconds!
walksanator. B⃢ot. also gained 0.00172 (0.00086 x 2) tonk points
for stealing the tonk. Position #5. Need 0.18003975 more points to
pass Michiyo!
L296[06:51:59] <nadja> stephan48: Is that
a question or a statement of the obvious? Also, you're 12 days late
;)
L297[07:02:51]
⇨ Joins: Vexatos
(~Vexatos@p200300eaef1a5768c7d0ad74c6ba79cc.dip0.t-ipconnect.de)
L298[07:02:51]
zsh sets mode: +v on Vexatos
L299[07:32:32] ⇦
Quits: Hawk777 (~Hawk777@2607:c000:8295:ee00:52ce:b43e:1c89:321a)
(Quit: Leaving.)
L302[08:56:29]
<Kokice5>
forums exist?
L303[08:59:57]
<Vaur>
%tonk
L304[08:59:57] <MichiBot> I'm sorry Vaur,
you were not able to beat walksanator. B⃢ot.'s record of 2 hours,
43 minutes and 47 seconds this time. 2 hours, 27 minutes and 50
seconds were wasted! Missed by 15 minutes and 57 seconds!
L305[09:11:31]
<Pokeman2003> Yes, they've always
existed.
L306[09:12:48]
<Forecaster> Since the dawn of time
L307[09:13:01]
<Forecaster> give or take a few eons
L308[11:12:21] *
Amanda meows and looks around, demands a full scritchies audit on
@Inari
L309[11:13:49] <Amanda> nadja: maybe don't
try and take over unknown world's magic system, never know why they
only built on the tall plaetoes, not the deep revens between the
nations.
L310[11:16:09]
<CSX8600>
>Michiyo: `node = Network.newNode(this,
Visibility.Network).withComponent(getCompone…
L311[11:16:09]
<CSX8600>
YES thank you! I knew it was something like this and I knew I saw
it somewhere but I just couldn't find it anywhere
L312[11:17:24] <Amanda> It's a
@Michiyo!
L313[11:37:30] <Amanda> %choose factory or
try and be productive with code
L314[11:37:31] <MichiBot> Amanda: You
*could* do "factory", I guess.
L315[12:19:03] <Amanda> Hi, I'm Amanda,
and it has been 0 (Zero) Days since I burn out my power grid with
too many roboports
L316[12:19:27]
<Forecaster> poor robots
L317[12:41:15] <Amanda> %choose continue
new or go to old and look for spaceship in asteroid belt
L318[12:41:16] <MichiBot> Amanda: A
wizard is never late, and sometimes engages in some "go to old
and look for spaceship in asteroid belt".
L319[12:47:05]
<SoBinary>
%tonkout
L320[12:47:05] <MichiBot> Holy nearly
deflated balloon Batman! SoBinary! You beat walksanator. B⃢ot.'s
previous record of 2 hours, 43 minutes and 47 seconds (By 1 hour, 3
minutes and 21 seconds)! I hope you're happy!
L321[12:47:06] <MichiBot> SoBinary has
stolen the tonkout! Tonk has been reset! They gained 0.003 tonk
points! plus 0.002 bonus points for consecutive hours! (Reduced to
50% because stealing) Current score: 0.15351. Position #8 => #7
(Overtook Vaur) Need 0.04607457 more points to pass
RedstoneParkour!
L323[13:00:27] <Izzy> s/on2/an2/
L325[13:28:43]
<TechTastic> %down
L326[13:28:45] <MichiBot> You drink a sour
redstone potion (New!). TechTastic has a single tear roll down
their cheek for some reason.
L327[13:55:10] <MichiBot> Amanda REMINDER:
fix dotfiles to use /use/bin/env bash instead of /bin/bash
L328[13:57:48]
<Forecaster> Space wizards
L331[15:13:15]
<Forecaster> Psh, cooperation. Real
programmers make their threads fight to the death for
dominance
L332[15:21:06] <nadja> Amanda: Hey now
madam, you don't get to tell me what magic systems to take
over!
L333[15:22:59]
<Vaur>
%tonk
L334[15:22:59] <MichiBot> Bejabbers!
Vaur! You beat SoBinary's previous record of <0 (By 2 hours,
35 minutes and 54 seconds)! I hope you're happy!
L335[15:23:00] <MichiBot> Vaur's new
record is 2 hours, 35 minutes and 54 seconds! Vaur also gained
0.0026 tonk points for stealing the tonk. Position #8 => #7.
(Overtook SoBinary) Need 0.04568457 more points to pass
RedstoneParkour!
L336[15:23:30]
<Vaur>
%sip
L337[15:23:30] <MichiBot> You drink a
chewy cyan potion (New!). It tastes sour.
L338[15:36:12]
<SoBinary>
%greenshell RedstoneParkour
L339[15:36:12] <MichiBot> SoBinary:
Unfortunately you missed with a 1 vs 10.
L340[15:36:35]
<SoBinary>
binary chooses a shell with the lowest dc, rolls a 1
L341[15:39:29]
<Vaur>
rip
L342[15:43:59]
⇨ Joins: flappy
(~flappy@85-156-68-155.elisa-laajakaista.fi)
L343[15:45:15]
<Vaur>
Msip
L344[15:45:17]
<Vaur>
%sip
L345[15:45:17] <MichiBot> You drink a
rising adamantium potion (New!). Vaur spots a shiny thing!
L346[15:45:33] <Amanda> nadja: can I just
cheat myself to have full logistics? My spaghetti is getting more
and more bad...
L347[15:46:23] <nadja> Amanda can have a
few Logistic bots, as a treat
L348[15:47:07] <Amanda> I've got bots, but
no requestor chests yet, and my bus is starting to look like a PCB
designed on LCD
L349[15:49:43] <Amanda> And SE moved
requestor chests into the tech tree you can't access until you're
in spac.
L350[15:49:45] <Amanda> * space
L351[15:53:21]
<Vaur>
%sip
L352[16:09:55]
⇨ Joins: alluser (~alluser@51.89.95.143)
L354[16:15:15] <Amanda> nadja: lookit this
mess!
L355[16:17:44]
<Vaur> this
looks much better than my base
L356[16:19:00]
<Forecaster> Looks about how mine used to
look
L357[16:54:54] <Amanda> I have no idea
where I'm going to put blue circits
L358[17:01:26]
<AR2000>
The factory MUST grow
L360[17:10:23] ⇦
Quits: alluser (~alluser@51.89.95.143) (Ping timeout: 189
seconds)
L361[17:12:58] <Amanda> %choose switch to
fuel cubes or keep using coal for steam engines
L362[17:12:58] <MichiBot> Amanda: I'm 40%
"switch to fuel cubes"!
L363[17:16:10]
<walksanator.
B⃢ot.> so 60% keep using coal
L364[18:20:54]
<SoBinary>
%tonkout
L365[18:20:54] <MichiBot> Blast!
SoBinary! You beat Vaur's previous record of 2 hours, 35 minutes
and 54 seconds (By 22 minutes)! I hope you're happy!
L366[18:20:55] <MichiBot> SoBinary has
stolen the tonkout! Tonk has been reset! They gained 0.002 tonk
points! plus 0.001 bonus points for consecutive hours! (Reduced to
50% because stealing) Current score: 0.15701. Position #8 => #7
(Overtook Vaur) Need 0.04257457 more points to pass
RedstoneParkour!
L367[18:21:23] <Amanda> %choose comfort or
utility or laptopnaptime
L368[18:21:23] <MichiBot> Amanda: I spy
with my robotic eye something beginning with
"utility"!
L369[18:21:24]
<walksanator.
B⃢ot.> >SoBinary: %tonkout
L371[18:21:29]
<walksanator.
B⃢ot.> I forgot to do it
L372[18:21:40]
<SoBinary>
>:3
L374[18:32:16] <SquidDev> @walksanator:
If you're seriously looking at luna, might be worth also checking
out wizard of lua's fork of rembulan -
https://github.com/wizards-of-lua/rembulan. Honestly
not sure how they compare - I think both are incomplete in
different ways.
L375[18:39:42]
<RapFab> Is
there someone who recently compiled a version of OC for themselves,
cause I'm trying so I followed the guide but at the `gradlew
setupDecompWorkspace` it failed and said "Deprecated Gradle
features were used in this build, making it incompatible with
Gradle 7.0."
L376[18:41:22]
<RapFab> On
the other hand I have no Idea how to compile a mod so I welcome
anyone who might want to teach me
L377[18:43:42]
<PwnagePineapple (He/Him)> %tonk
L378[18:43:42] <MichiBot> Yay!
PwnagePineapple (He/Him)! You beat SoBinary's previous record of
<0 (By 22 minutes and 47 seconds)! I hope you're happy!
L379[18:43:43] <MichiBot> PwnagePineapple
(He/Him)'s new record is 22 minutes and 47 seconds! PwnagePineapple
(He/Him) also gained 0.00038 tonk points for stealing the tonk.
Position #9. Need 0.01414 more points to pass Vaur!
L380[18:47:46]
<TechTastic> %down
L381[18:47:47] <MichiBot> You drink a
liquid emerald potion (New!). TechTastic grows whiskers until
someone stabs them.
L382[18:52:54]
<Vaur>
%sip
L383[18:52:54] <MichiBot> You drink a
mutable automato potion (New!). Vaur turns into an adamantium robot
boy until they have a nap.
L384[19:27:02]
<Kristopher38> >RapFab: Is there
someone who recently compiled a version of OC for themselves, cause
I'…
L385[19:27:02]
<Kristopher38> can you downgrade
gradle?
L387[19:36:47]
<RapFab>
>Kristopher38: can you downgrade gradle?
L388[19:36:48]
<RapFab>
Well, I installed IntelliJ IDEA and got the Gradle Plugin but there
is no option to use an older version
L389[19:38:40] <SquidDev> Can you post the
full log? The deprecated message should only be a warning, not the
main reason it fails.
L390[19:39:40]
<RapFab>
Isn't such a log a bit big for discord?
L391[19:40:11] <SquidDev> Put it on
pastebin or a similar logs service.
L392[19:40:13]
<TechTastic> PasteBin or Gist
L393[19:49:08]
<Forecaster> Discord collapses large
pastes or files automatically
L394[19:49:28]
<Forecaster> The bridge hastebins them for
IRC
L395[19:50:10]
<Forecaster> Well, pastes are collapsed if
you put them in a code block
L396[20:01:10]
<RapFab>
so...I have no idea where to get the log
L397[20:18:26]
<Pokeman2003> @Ocawesome101
L398[20:18:26]
<Pokeman2003> Huh, interesting.
L399[20:18:26]
<Pokeman2003> Out of curiosity, can I
outright replace computer.pullSignal without making a wrapper like
event.pull?
L400[20:18:35]
<Ocawesome101> yes
L401[20:19:14]
<Pokeman2003> *Yes*
L402[20:21:41]
<Pokeman2003> That actually makes things
super easy for me. Thank god.
L403[20:29:37]
<Vaur>
%tonk
L404[20:29:37] <MichiBot> Bingo! Vaur!
You beat PwnagePineapple (He/Him)'s previous record of 22 minutes
and 47 seconds (By 1 hour, 23 minutes and 7 seconds)! I hope you're
happy!
L405[20:29:38] <MichiBot> Vaur's new
record is 1 hour, 45 minutes and 55 seconds! Vaur also gained
0.00139 tonk points for stealing the tonk. Position #8. Need
0.00172 more points to pass SoBinary!
L406[20:33:33]
<walksanator.
B⃢ot.> %sip
L407[20:33:34] <MichiBot> You drink a
light strawberry potion (New!). walksanator. B⃢ot. gains one
research point. walksanator. B⃢ot. now has 1 point. (Rem. uses:
1)
L408[20:33:49]
<walksanator.
B⃢ot.> @TechTastic free research point
L409[20:34:28]
<TechTastic> %down light strawberry
potion
L410[20:34:29] <MichiBot> You drink a
light strawberry potion. TechTastic gains one research point.
TechTastic now has 1 point. (Rem. uses: 0)
L411[20:54:38]
<Pokeman2003> Why are the GPU cards like
this?
L412[20:56:08]
<Pokeman2003> Like, 50, 80 and 160 are all
valid VGA widths, but the first GPU doesn't even have a valid
height, and the rest are... Well, they are valid modes but they're
also just not great.
L413[20:56:50]
<Pokeman2003> Actually,
L414[20:57:03]
<Pokeman2003> 50 is NOT a valid VGA width,
I don't know where I got that from.
L415[20:58:34]
<Pokeman2003> Why in the world is tier 1
50x16 and not something like 40x25? If you were going to complain
about 80x25 no longer being that much of an upgrade because of
sharing a width, why not adopt 80x30?
L416[20:58:35]
<Pokeman2003> Man, I nitpick these things
too much don't I?
L417[20:59:32]
<walksanator.
B⃢ot.> dont make me give you the 1x1
L418[20:59:44]
<Pokeman2003> Does it give color?
L419[21:00:09]
<walksanator.
B⃢ot.> (I was saying it as a joke)
L420[21:00:09]
<walksanator.
B⃢ot.> no, infact it doesen't turn on 90% of the time
L421[21:00:23]
<Pokeman2003> Damn it.
L422[21:00:37]
<Pokeman2003> I guess it's as reliable an
Altair 880 which has been running 24/7...
L423[21:00:41]
<walksanator.
B⃢ot.> dumb idea: Broken GPU, has a N % chance to just *not
execute the draw command*
L424[21:01:13]
<walksanator.
B⃢ot.> low tier is like 10%
L425[21:01:14]
<walksanator.
B⃢ot.> medium is 15%
L426[21:01:14]
<walksanator.
B⃢ot.> high tier is 20%
L427[21:01:21]
<Pokeman2003> Let's take it to its logical
extreme:Computer components degrade with use and have a slowly
incrementing chance of just not executing a command or doing the
wrong command.
L428[21:01:28]
<Pokeman2003> Higher tiers degrade
slower.
L429[21:01:35]
<Pokeman2003> Planned obselence,
baby~
L430[21:01:39]
<walksanator.
B⃢ot.> drones just randomly fall out of the sky
L431[21:02:15]
<walksanator.
B⃢ot.> >Pokeman2003: Higher tiers degrade slower.
L432[21:02:16]
<walksanator.
B⃢ot.> no mine was factory-faulty
L433[21:02:16]
<walksanator.
B⃢ot.> so the componest is allready broken
L434[21:02:16]
<walksanator.
B⃢ot.> and the higher tiers being more complex obvs have more
things to break
L435[21:02:24]
<Pokeman2003> Ah, fair enough.
L436[21:02:49]
<walksanator.
B⃢ot.> ~~creative broken GPU has a 100% chance to not work and
is craftable from dirt~~
L437[21:03:55]
<Pokeman2003> I thought about making my
own computer mod for Minecraft back in like... late 2019. You'd use
(Lua or other languages) to build chip architectures. You'd have to
manufacture the chips, which could make them worse or better
depending on the amount of materials used.
L438[21:03:56]
<Pokeman2003> I didn't go through with it,
obviously, but this just reminded me of that idea I had.
L439[21:05:00]
<walksanator.
B⃢ot.> I am planning a ExaPunks mod
L440[21:05:09]
<walksanator.
B⃢ot.> here is my (bad) ideas
L442[21:06:04]
<Pokeman2003> ~~I jokingly added "as
an FPU" and then removed it but Google has degraded and now I
can't remove suggestions, send help~~
L443[21:06:12]
<walksanator.
B⃢ot.> i did it
L444[21:06:14]
<Pokeman2003> Thanks
L445[21:06:16]
<Pokeman2003> Sorry about that
L446[21:06:24]
<Pokeman2003> I thought I was going to be
funny, not an inconvenience.
L447[21:06:29]
<walksanator.
B⃢ot.> but yeah tis-advanced also adds some instructions for
INT<->Float
L448[21:06:40]
<walksanator.
B⃢ot.> >Pokeman2003: I thought I was going to be funny, not
an inconvenience.
L449[21:06:40]
<walksanator.
B⃢ot.> smol ammount of text is no worry
L450[21:06:49]
<walksanator.
B⃢ot.> and JMP instruction variations for floats
L451[21:06:57]
<Pokeman2003> Why would
L452[21:07:11]
<Pokeman2003> why would you use float
addresses with JMPs?
L453[21:07:33]
<walksanator.
B⃢ot.> no float values
L454[21:07:35]
<TechTastic> Funky stuff
L455[21:07:48]
<Pokeman2003> Ah.
L456[21:07:54]
<walksanator.
B⃢ot.> so the thing would be JEQ <float>
<label>
L457[21:08:06]
<Pokeman2003> It looks cool, though not
really my type of thing. I hope you make it.
L458[21:08:26]
<walksanator.
B⃢ot.> the one reason why I am reluctant: networking the
things
L459[21:08:45]
<walksanator.
B⃢ot.> and multi-block
L460[21:08:52]
<walksanator.
B⃢ot.> mainly handling the multi-block network
L461[21:08:53]
<TechTastic> I'm making TIS Advanced
required if you are using TIS3D with Valkyrien Computers just so
they don't have to do a shit ton to handle half precision
floats
L462[21:20:21] ***
Guest30324 is now known as Skye
L463[21:28:06] ⇦
Quits: Vexatos
(~Vexatos@p200300eaef1a5768c7d0ad74c6ba79cc.dip0.t-ipconnect.de)
(Quit: Insert quantum chemistry joke here)
L464[21:50:09]
<Pokeman2003> So, let's say
L465[21:50:42]
<Pokeman2003> I have a set of functions in
a Lua file.
L466[21:51:12]
<Michiyo>
You have a set of function in a Lua file.
L467[21:51:18]
<Pokeman2003> I want to recover only a few
of the functions in the Lua file.
L468[21:51:35]
<Pokeman2003> Like, from function 1, 2, 3,
4, 5, I just want functions 2, and 4. How would I then get rid of
the other two functions?
L469[21:51:51]
<Pokeman2003> I only know what 2 and 4 are
named, not what the other ones are.
L470[21:52:54]
<Pokeman2003> I already understand how to
copy functions over, which is my planned way to "recover"
them from the file after execution. I do not know how to track down
the other functions and get rid of them though.
L471[21:55:35]
<Pokeman2003> It would be relatively easy
if I could somehow prevent the lua file from accessing the global
scope.
L472[22:00:26]
<Pokeman2003> I am about to do some really
fucked up things to the global metatable.
L473[22:03:15] <Amanda> This sounds like
one hell of an XY Problem.
L474[22:03:23] *
Amanda gets the popcorn, curls up in nadja's lap
L475[22:03:43] <Amanda> %choose comfort or
utility or laptopanptime
L476[22:03:43] <MichiBot> Amanda: I'm 40%
"utility"!
L477[22:04:05] <Amanda> What's what
MichiBot? ~~timmy's fallen down the well~~ laptopnaptime? Got
it!
L478[22:04:26]
<Pokeman2003> Well, the problem is that
I'm not quite what I want to articulate here.
L479[22:04:29]
<Pokeman2003> Or *how* to for that
matter.
L480[22:04:53]
<Pokeman2003> I know the problem
intrinsically, but I do not understand it on an extrinsic
level.
L481[22:05:17]
<Pokeman2003> I suppose what I need is
just some way to avoid letting the Lua table access teh global
table.
L482[22:05:28]
<Pokeman2003> Lua file access the global
table*
L485[22:06:21] <MichiBot>
Title:
Running scripts fails in Termux
| Posted by: fbartels
|
Posted: Tue Oct 01 17:11:45 UTC 2019
| Status:
closed
L486[22:27:53]
<Kristopher38> >Pokeman2003: I want to
recover only a few of the functions in the Lua file.
L487[22:27:53]
<Kristopher38> what do you mean
"recover"
L488[22:28:05]
<Kristopher38> sorry, I don't understand a
thing
L489[22:28:34]
<Kristopher38> what does it mean to
"copy functions over"
L490[22:28:49]
<Ocawesome101> retrieve the source for
only these functions?
L491[22:29:42]
<Kristopher38> if that's the case they
need a parser to do that reliably
L492[22:30:03]
<Kristopher38> could be a very simplified
one actually
L493[22:30:33]
<Kristopher38> for once lua having `end`
as the terminator for complex statements is helpful
L494[22:31:18]
<Pokeman2003> I'm making this for a driver
system.
L495[22:31:18]
<Pokeman2003> My plan is to only have 4
specific functions get put into a table, while leaving whatever
else the driver file has alone.
L496[22:31:18]
<Pokeman2003> The driver file is a lua
file.
L497[22:31:49]
<Pokeman2003> By "recover", I
quite literally mean just copy the functions into this table.
L498[22:32:22] <Izzy> write it as a
library
L499[22:32:43] <Izzy> use local functions
for non-shared stuff, return a table containing the ones you do
want
L500[22:32:44]
<Kristopher38> then put those 4 functions
in a table and don't put the rest in that table
L501[22:32:45]
<Kristopher38> ???
L502[22:33:12]
<Pokeman2003> The problem is that that the
lua script could mess with the rest of the globals. I'm trying to
*avoid* that.
L503[22:33:28] <Izzy> you could load it
into a contained environment
L504[22:33:28]
<Pokeman2003> Plus, that sounds like a
memory leak.
L505[22:33:45] <Izzy> ..?
L506[22:33:48]
<Kristopher38> what globals, mess up how,
memory leak how
L507[22:34:35]
<Pokeman2003> Global tables, literally be
able to read and write data that shouldn't be allowed to the
globals table, and leaving a bunch of global variables in memory
without ever cleaning them up.;
L508[22:34:55]
<Pokeman2003> I'm pretty sure global
variables are only garbage collected when they = nil.
L509[22:35:53]
<Pokeman2003> Anyways, I'm trying to
figure out how I'm supposed to make this contained
environment.
L510[22:36:21]
<Kristopher38> ah so you're saying that
from the OS designer point of view? You don't want the user to
leave stuff in the globals table?
L511[22:36:47] <Izzy> see the environment
argument in load()'s documentation
L512[22:36:50]
<Pokeman2003> Yeah. I don't want the user
to be able to leave or damage anything that is in the globals
table.
L513[22:37:06] <Izzy> you can use a
metatable to let global variables accessible but only let it write
to its own env
L514[22:37:19]
<Pokeman2003> My first idea was to try to
override the _G. metatable but that sounds like a horrible idea in
hindsight. I've found _ENV and setfenv but I have no idea how to
use them and I'm trying to figure that out. I might have to check
out load().
L516[22:37:56] <Izzy> IIRC setfenv doesn't
exist in Lua 5.2+
L517[22:38:10] <Izzy> you have to do it
with load
L518[22:38:24] *
Izzy sidesteps this part of OS design by assuming the user is
competent and not sandboxing
L519[22:38:51]
<Pokeman2003> I'm more so doing this to
prevent people from making malicious code out of the drivers, but
honestly at this point I might ditch all of that and live up to the
name "resource Cheap Operating System."
L521[22:40:21]
<Kristopher38> i think this should do the
trick (?)
L522[22:41:07]
<Pokeman2003> I feel like a 3 year old
trying to explain what "TeeTees" are.
L523[22:41:16] <Izzy> note that it won't
stop stuff from modifying other tables inside _ENV like that
L524[22:41:32]
<Pokeman2003> Oh I'm fine with it
modifying tables inside _ENV.
L525[22:41:53] <Izzy> ie it can override
os.whatever functions
L526[22:42:03]
<Pokeman2003> I plan to wrap those for
protection.
L527[22:42:18]
<Pokeman2003> (Or at least make a read
only table.)
L528[22:42:32] <Izzy> I think the lua-user
wiki has some notes on sandboxing in Lua
L529[22:42:57]
<Pokeman2003> Yeah their warning roughly
translates into "do not do this unless you understand Lua
fully"
L530[22:43:02]
<Pokeman2003> And guess who doesn't even
understand how to print!
L531[22:43:27]
<Pokeman2003> But yeah.
L533[22:45:16]
<Kristopher38> on another note: what's
with people trying to implement *protection* into OC OSes, it's not
like the computers are used in a multiuser environment, neither is
the user supposed to modify tables which aren't theirs unless they
know very well what they're doing (otherwise its their fault for
messing with somebody else's stuff!)
L534[22:45:53] <Izzy> PsychOS is designed
for multi-user use! :D
L535[22:45:57] <Izzy> it does not
implement any protections
L536[22:46:15]
<Kristopher38> what multi-user use entails
exactly
L537[22:46:25]
<Kristopher38> in case of PsychOS, i
mean
L538[22:46:30] <Izzy> it can support
multiple simultaneous users on different terminals
L539[22:46:32] <Izzy> timesharing
L540[22:46:45]
<Kristopher38> you've got me
interested
L541[22:46:45]
<Pokeman2003> First off, you seem to
forget that it's entirely possible that OpenComputers is very much
able to run well on a server.
L542[22:47:17] <Izzy> it doesn't have user
accounts or anything but you can happily have multiple users using
one computer
L543[22:47:29] <Izzy> it also nominally
supports remote login over minitel
L544[22:47:36]
<Pokeman2003> Also, OpenComputers
LITERALLY supports detecting which user is interacting with the
computer through signals.
L545[22:48:25]
<Pokeman2003> If you are insane, you could
theoretically make one computer handle multiple users at once,
since all inputs are tagged with the player.
L546[22:48:31]
<Kristopher38> Izzy: sounds like an OS for
me, no protection but features that openOS lacks
L547[22:48:54]
<Kristopher38> important: does it support
scrolling the terminal with mousewheel?
L548[22:49:18] <Izzy> no, though it would
be nice
L549[22:49:44]
<Kristopher38> damn, 9/10 then, otherwise
i would've given 10/10
L550[22:49:45] <Izzy> I wanted something
like that but it got pushed down my list because it seemed
non-trivial to implement in the context of a VT100 compatible
terminal emulator
L551[22:50:05] <Izzy> did I mention it has
a haiku-style pkgfs using compressed archives?
L554[22:52:25]
<Kristopher38> because the shell is also a
lua interpreter it kinda reminds me of TempleOS
L555[22:52:51] <Izzy> I was going for
something along the lines of a lisp machine but lua-oriented
L556[22:52:53]
<Kristopher38> the shell was a
jit-compiled HolyC REPL
L557[22:53:25] <Izzy> there aren't
distinct executable files like OpenOS has, just libraries
L558[22:55:31] ⇦
Quits: flappy (~flappy@85-156-68-155.elisa-laajakaista.fi) (Ping
timeout: 190 seconds)
L559[22:55:32]
<ThePiGuy24> %tonk
L560[22:55:32] <MichiBot> Darn!
ThePiGuy24! You beat Vaur's previous record of 1 hour, 45 minutes
and 55 seconds (By 39 minutes and 59 seconds)! I hope you're
happy!
L561[22:55:33] <MichiBot> ThePiGuy24's new
record is 2 hours, 25 minutes and 54 seconds! ThePiGuy24 also
gained 0.00134 (0.00067 x 2) tonk points for stealing the tonk.
Position #10. Need 0.0352496 more points to pass PwnagePineapple
(He/Him)!
L564[22:56:53]
<Kristopher38> lol binutils is just a
single file with a handful of functions
L565[22:57:00]
<Kristopher38> not sure how i feel about
this
L566[22:57:09] <Izzy> $0 is a hell of a
drug
L567[22:57:10]
<ThePiGuy24> Izzy: lovely old descent
;3
L568[22:57:40]
<ThePiGuy24> >Kristopher38: lol
binutils is just a single file with a handful of functions
L569[22:57:41]
<ThePiGuy24> wait until you see
busybox
L570[22:57:43] <Izzy> ThePiGuy24: running
two computers off one tape drive because I was too cheap to build a
hard drive
L571[22:57:47] <Izzy> good times
L572[22:58:18]
<Kristopher38> >ThePiGuy24: wait until
you see busybox
L573[22:58:18]
<Kristopher38> Now that you say it, it
does resemble busybox
L574[23:02:22]
<ThePiGuy24> Izzy: i still have that world
download hosted on my web server if you want to experience
something resembling nostalgia (though all the IE and IE style
wires are gone becuase of an nbt corruption issue), though youll
have to find your own copy of the modpack as that isnt hosted
anywhere anymore iirc ;p
L575[23:03:00] <Izzy> I think I still have
it in MultiMC
L576[23:19:13]
<Pokeman2003> How dependent is
Computertronics on other mods? It seems to have a lot of hooks into
mods I'm not so sure about.
L578[23:23:29]
<AR2000> It
should be in the folder that was open when you ran the jar
L581[23:24:38]
<AR2000>
And the file doesn't exist by default. You have to create it
L582[23:24:38]
<AR2000>
You can simply copy it from Minecraft's config folder. It's
opencomputers' s config file
L583[23:24:42]
<Pokeman2003> Oh.
L584[23:24:47]
<Pokeman2003> ~~I don't have
Minecraft.~~
L585[23:25:07]
<Pokeman2003> Yeah I'll just get it when I
get home and can get on my actual gaming computer then.
L587[23:25:40]
<AR2000>
That's my config file.
L588[23:26:27]
<AR2000>
Unlike default it allow localhost tcp/http
L589[23:26:27]
<AR2000>
and there is no file buffering (better when using external code
editor)
L590[23:26:29]
<Pokeman2003> I imagine it's been tweaked
to your own liking. Well, thanks!
L591[23:29:25]
<AR2000>
Just out of curiosity : what are you working on ?
L592[23:32:09]
<Pokeman2003> A resource cheap operating
system which shares more in common with DOS than Linux. OpenOS and
Plan9K are too Linux/Unixy for me.
L593[23:32:09]
<Pokeman2003> That said, I'm... very much
outclassed in every regard. I highly doubt anyone will be using
it.
L594[23:33:10]
<Pokeman2003> And I'm aware that there's a
100% chance that someone has already done my idea way better, but
it's a hobby thing.
L595[23:40:10] <Izzy> writing an OS is fun
:D
L596[23:42:19]
<AR2000>
Writing network stack that only you will ever use is fun too.
L597[23:42:19]
<AR2000> Or
a package format
L598[23:42:30]
<AR2000>
Writing things is fun
L599[23:50:32] <Izzy> writing a network
stack other people will use is also fun :akko_fingerguns: