<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:01:03] <stephan48> Amanda, nadja: do you implement RFC9402?
L2[00:48:36] <Pokem​an2003> So, out of curiosity, just how much of Pastebin-download support is make or break for you guys?
L3[00:48:36] <Pokem​an2003> 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] <S​ky> 100% break
L5[00:50:12] <S​ky> ive not played many servers because HTTP was disabled lol
L6[00:50:18] <Pokem​an2003> Fair enough.
L7[00:50:30] <Pokem​an2003> ~~So when is someone going to make a proper Internet Explorer in Minecraft?~~
L8[00:50:42] * Izzy smugs
L9[00:50:49] <S​ky> ~~wget~~
L10[00:51:14] <Izzy> https://github.com/ShadowKatStudios/OC-Minitel/blob/master/FRequest/KittenOS/apps/app-frequest.lua
L11[00:51:20] <Pokem​an2003> Oh, huh.
L12[00:51:34] <Izzy> GUI FRequest browser :3
L13[00:51:44] <Izzy> (for kOS NEO)
L14[00:53:00] <Pokem​an2003> 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] <Pokem​an2003> Whose gonna buy a really shit OS when Minitel or MineOS already exists.
L16[00:54:50] <Pokem​an2003> 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
L17[00:55:12] <AR2​000> https://github.com/AR2000AR/openComputers_codes/tree/master/network
L18[00:55:25] <AR2​000> IPv4 and UDP
L19[00:55:29] <Pokem​an2003> Neat!
L20[00:55:41] <Izzy> Just enable hardcore recipes so it pays to make efficient software
L21[00:55:50] <Pokem​an2003> >Pokeman2003: I mean I could stub everyone's toes by implementing my favorite RAM and harddr…
L22[00:55:50] <Pokem​an2003> (Guess there's not much of a difference. OpenOS already takes 2 RAM sticks.)
L23[00:55:58] <AR2​000> (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] <AR2​000> Lol
L26[00:56:48] <AR2​000> tmpfs is sooo small
L27[00:56:57] <Izzy> 64k is more than enough space for PsychOS 2
L28[00:56:59] <Izzy> :3
L29[00:57:30] <Pokem​an2003> 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] <AR2​000> Make a tar archive
L34[00:58:40] <AR2​000> After all, that's what tar is for. Tape Archive
L35[00:58:46] <Izzy> mtar :)
L36[00:59:20] <Pokem​an2003> 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] <Pokem​an2003> 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] <AR2​000> 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] <AR2​000> That's where it's from ....
L45[01:03:18] <AR2​000> Because I never figured out what was this unknown archive format everyone was talking about
L46[01:03:35] <Izzy> https://git.shadowkat.net/izaya/OC-misc/src/branch/master/mtar/
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] <AR2​000> 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] <AR2​000> 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] <AR2​000> Where is it documented that you can use urls in programs.cfg ?
L55[01:13:33] <AR2​000> 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] <AR2​000> 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
L60[01:15:32] <AR2​000> https://ocdoc.cil.li/tutorial:program:oppm
L61[01:15:50] <AR2​000> 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] <AR2​000> 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! Compan​ionCube! You beat Va​ur'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> Compan​ionCube 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] <AR2​000> 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] <AR2​000> 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] <AR2​000> 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] <AR2​000> What is that OC cloud thing?
L81[01:28:59] <AR2​000> 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] <AR2​000> OC as a service?
L89[01:29:55] <AR2​000> 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] <AR2​000> Termux is not just a ssh client.
L93[01:31:03] <AR2​000> Is way more than that
L94[01:31:07] <CompanionCube> true, i also run a weechat in it
L95[01:31:24] <AR2​000> And need to be installed from f-droid
L96[01:31:38] <AR2​000> 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] <AR2​000> Cloud you share the curse with us ?
L106[01:36:39] <AR2​000> 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
L110[01:38:33] <Izzy> AR2000: https://shadowkat.net/tmp/4fdf.html
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] <AR2​000> 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] <AR2​000> 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] <AR2​000> 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] <AR2​000> 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
L124[01:43:37] <Izzy> :3
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] <AR2​000> 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
L131[01:45:45] <AR2​000> https://ocelot.fomalhaut.me/
L132[01:46:04] <CompanionCube> a non-scuffed version would probably have a more fleshed-out 'hypervisor' ui
L133[01:46:06] <AR2​000> 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] <AR2​000> 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] <AR2​000> 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] <walksanato​r. B⃢ot.> %tonk
L158[01:56:05] <MichiBot> Eureka! walksanato​r. B⃢ot.! You beat Compan​ionCube'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 Mic​hiyo!
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"
L199[02:26:19] <CompanionCube> context for others: https://upload.wikimedia.org/wikipedia/commons/a/a4/Ibmi-main-menu.png
L200[02:27:01] <TechT​astic> %down
L201[02:27:01] <MichiBot> You drink a searing violet potion (New!). TechTastic suddenly forgets a random piece of trivia.
L202[02:28:11] <CompanionCube> also https://www.fortra.com/sites/default/files/halcyon-log-file-monitor.png
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
L210[03:06:24] <TechT​astic> Candelabra goes BRRRR https://tinyurl.com/2naadz53
L211[03:37:15] <CSX​8600> 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] <CSX​8600> Whoops- wildly wrong class. I meant doing it within a callback of an implementation of `AbstractManagedEnvironment`
L213[03:48:19] <SoBi​nary> %tonk
L214[03:48:20] <MichiBot> Woooo! SoBi​nary! You beat walksanato​r. 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 Va​ur!
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] <Pokem​an2003> 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] <Pokem​an2003> 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] <Pokem​an2003> 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] <Pokem​an2003> 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] <Pokem​an2003> 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] <Pokem​an2003> Ah.
L237[04:13:40] <Pokem​an2003> 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] <Pokem​an2003> Cooperative threading which doesn't crash the computer is really impressive to me.
L241[04:14:13] <Pokem​an2003> Well, yeah. I know it is.
L242[04:14:40] <Pokem​an2003> 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] <Pokem​an2003> That's not something Lua can do normally.
L244[04:14:56] <Hawk777> Do you mean timeslicing?
L245[04:15:09] <Pokem​an2003> 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] <Pokem​an2003> I'm going to hurt myself thinking about this too hard.
L251[04:20:27] <Pokem​an2003> Okay, so... a blocking operation. How does OpenOS define those...
L252[04:21:04] <Pokem​an2003> 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] <TechT​astic> %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] <Pokem​an2003> Huh.
L259[04:24:23] <Pokem​an2003> That's impressive.
L260[04:25:12] <Pokem​an2003> 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?
L261[04:25:27] <Hawk777> https://github.com/MightyPirates/OpenComputers/blob/master-MC1.12/src/main/resources/assets/opencomputers/lua/machine.lua ← here’s where a lot of the magic happens.
L262[04:25:46] <Pokem​an2003> I have it open but I don't understand it, which is why I'm asking so many questions.
L263[04:25:51] <Pokem​an2003> If I understood it, I wouldn't be asking them.
L264[04:26:36] <Hawk777> This <https://github.com/MightyPirates/OpenComputers/blob/master-MC1.12/src/main/resources/assets/opencomputers/lua/machine.lua#L1051&gt; is the bit that handles component calls.
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] <Pokem​an2003> Huh, okay. Interesting. So that was about as simple as I had guessed...
L267[04:29:53] <Pokem​an2003> Maybe too much credit for myself.
L268[04:30:12] <Mic​hiyo> >CSX8600: Whoops- wildly wrong class. I meant doing it within a callback of an imple…
L269[04:30:13] <Mic​hiyo> `node = Network.newNode(this, Visibility.Network).withComponent(getComponentName()).withConnector(bufferValue).create()`
L270[04:30:13] <Mic​hiyo> `node.changeBuffe(int);`
L271[04:30:13] <Mic​hiyo> 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.
L273[04:30:49] <Hawk777> It’s all supported by the stuff in here <https://github.com/MightyPirates/OpenComputers/tree/master-MC1.12/src/main/scala/li/cil/oc/server/machine&gt;.
L274[04:30:56] <Hawk777> They work together, both of them count as “hardware”.
L275[04:31:39] <Mic​hiyo> >Michiyo: `node = Network.newNode(this, Visibility.Network).withComponent(getCompone…
L276[04:31:40] <Mic​hiyo> https://github.com/PC-Logix/OpenSecurity/blob/4ff9b314851d2edae5fa29c1740a773b4103aa11/src/main/java/pcl/opensecurity/common/tileentity/TileEntityEntityDetector.java#L76
L277[04:32:23] <Hawk777> runSynchronized and runThreaded in here <https://github.com/MightyPirates/OpenComputers/blob/master-MC1.12/src/main/scala/li/cil/oc/server/machine/luaj/LuaJLuaArchitecture.scala&gt; show the other side of that interop boundary.
L278[04:32:29] <Pokem​an2003> Interesting, thank you Hawk.
L279[04:32:44] <Pokem​an2003> 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] <Pokem​an2003> I see. Well, thank you.
L285[04:36:24] <Pokem​an2003> 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] <Pokem​an2003> 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] <Mic​hiyo> IIRC the only other channel there was mine, and I deleted it
L290[04:42:21] <Pokem​an2003> Ah, I see. I must have been thinking of yours then.
L291[04:43:27] <Mic​hiyo> 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] <Mic​hiyo> 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] <walksanato​r. B⃢ot.> %tonk
L294[06:32:07] <MichiBot> Hooray! walksanato​r. B⃢ot.! You beat SoBi​nary'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 Mic​hiyo!
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.)
L300[07:56:45] <DiamondC​reeper_6> Paranormal Structure of Glowstone. https://tinyurl.com/2qc589tp
L301[08:56:29] <Kok​ice5> >walksanator. B⃢ot.: https://oc.cil.li/topic/1154-help-to-make-colored-text/
L302[08:56:29] <Kok​ice5> forums exist?
L303[08:59:57] <Va​ur> %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] <Pokem​an2003> Yes, they've always existed.
L306[09:12:48] <Forec​aster> Since the dawn of time
L307[09:13:01] <Forec​aster> 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] <CSX​8600> >Michiyo: `node = Network.newNode(this, Visibility.Network).withComponent(getCompone…
L311[11:16:09] <CSX​8600> 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> Ama​nda: 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] <Forec​aster> 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> Ama​nda: A wizard is never late, and sometimes engages in some "go to old and look for spaceship in asteroid belt".
L319[12:47:05] <SoBi​nary> %tonkout
L320[12:47:05] <MichiBot> Holy nearly deflated balloon Batman! SoBi​nary! You beat walksanato​r. 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> SoBi​nary 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 Redston​eParkour!
L322[13:00:18] <Izzy> Pokemon2003: if you're interested, I wrote PsychOS to do explicit cooperative multitasking, and while it doesn't intercept component calls, it is simple. See https://git.shadowkat.net/izaya/OC-PsychOS2/src/branch/master/module/sched.lua
L323[13:00:27] <Izzy> s/on2/an2/
L324[13:00:28] <MichiBot> <Izzy> Pokeman2003: if you're interested, I wrote PsychOS to do explicit cooperative multitasking, and while it doesn't intercept component calls, it is simple. See https://git.shadowkat.net/izaya/OC-PsychOS2/src/branch/master/module/sched.lua
L325[13:28:43] <TechT​astic> %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] <Forec​aster> Space wizards
L329[14:26:52] <Ocawes​ome101> Message contained 4 or more newlines and was pastebined https://paste.pc-logix.com/sotoronile
L330[14:31:05] <TechT​astic> Kettle Progress https://tinyurl.com/2hun536u
L331[15:13:15] <Forec​aster> 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] <Va​ur> %tonk
L334[15:22:59] <MichiBot> Bejabbers! Va​ur! You beat SoBi​nary'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 Redston​eParkour!
L336[15:23:30] <Va​ur> %sip
L337[15:23:30] <MichiBot> You drink a chewy cyan potion (New!). It tastes sour.
L338[15:36:12] <SoBi​nary> %greenshell RedstoneParkour
L339[15:36:12] <MichiBot> SoBi​nary: Unfortunately you missed with a 1 vs 10.
L340[15:36:35] <SoBi​nary> binary chooses a shell with the lowest dc, rolls a 1
L341[15:39:29] <Va​ur> rip
L342[15:43:59] ⇨ Joins: flappy (~flappy@85-156-68-155.elisa-laajakaista.fi)
L343[15:45:15] <Va​ur> Msip
L344[15:45:17] <Va​ur> %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] <Va​ur> %sip
L352[16:09:55] ⇨ Joins: alluser (~alluser@51.89.95.143)
L353[16:15:13] <Amanda> https://matrix.camnet.site/_matrix/media/r0/download/camnet.site/lkzYWcmfcXwyRPMYcjqXQBFH/screenshot_6680696_6096x1504.png
L354[16:15:15] <Amanda> nadja: lookit this mess!
L355[16:17:44] <Va​ur> this looks much better than my base
L356[16:19:00] <Forec​aster> 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] <AR2​000> The factory MUST grow
L359[17:05:37] <walksanato​r. B⃢ot.> it would be soo funny if I added https://github.com/kroepke/luna as a processor
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> Ama​nda: I'm 40% "switch to fuel cubes"!
L363[17:16:10] <walksanato​r. B⃢ot.> so 60% keep using coal
L364[18:20:54] <SoBi​nary> %tonkout
L365[18:20:54] <MichiBot> Blast! SoBi​nary! You beat Va​ur's previous record of 2 hours, 35 minutes and 54 seconds (By 22 minutes)! I hope you're happy!
L366[18:20:55] <MichiBot> SoBi​nary 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 Redston​eParkour!
L367[18:21:23] <Amanda> %choose comfort or utility or laptopnaptime
L368[18:21:23] <MichiBot> Ama​nda: I spy with my robotic eye something beginning with "utility"!
L369[18:21:24] <walksanato​r. B⃢ot.> >SoBinary: %tonkout
L370[18:21:24] <walksanato​r. B⃢ot.> https://www.youtube.com/watch?v=MDFpT1MtUt8
L371[18:21:29] <walksanato​r. B⃢ot.> I forgot to do it
L372[18:21:40] <SoBi​nary> >:3
L373[18:25:03] <walksanato​r. B⃢ot.> https://youtu.be/pzXL-6kQP_g
L374[18:32:16] <SquidDev> @walksanato​r: 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] <Rap​Fab> 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] <Rap​Fab> 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] <PwnagePineap​ple (He/Him)> %tonk
L378[18:43:42] <MichiBot> Yay! PwnagePineap​ple (He/Him)! You beat SoBi​nary'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 Va​ur!
L380[18:47:46] <TechT​astic> %down
L381[18:47:47] <MichiBot> You drink a liquid emerald potion (New!). TechTastic grows whiskers until someone stabs them.
L382[18:52:54] <Va​ur> %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] <Kristo​pher38> >RapFab: Is there someone who recently compiled a version of OC for themselves, cause I'…
L385[19:27:02] <Kristo​pher38> can you downgrade gradle?
L386[19:27:15] <TechT​astic> Altar go BRRRRR https://tinyurl.com/2n793me4
L387[19:36:47] <Rap​Fab> >Kristopher38: can you downgrade gradle?
L388[19:36:48] <Rap​Fab> 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] <Rap​Fab> 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] <TechT​astic> PasteBin or Gist
L393[19:49:08] <Forec​aster> Discord collapses large pastes or files automatically
L394[19:49:28] <Forec​aster> The bridge hastebins them for IRC
L395[19:50:10] <Forec​aster> Well, pastes are collapsed if you put them in a code block
L396[20:01:10] <Rap​Fab> so...I have no idea where to get the log
L397[20:18:26] <Pokem​an2003> @Ocawesome101
L398[20:18:26] <Pokem​an2003> Huh, interesting.
L399[20:18:26] <Pokem​an2003> Out of curiosity, can I outright replace computer.pullSignal without making a wrapper like event.pull?
L400[20:18:35] <Ocawes​ome101> yes
L401[20:19:14] <Pokem​an2003> *Yes*
L402[20:21:41] <Pokem​an2003> That actually makes things super easy for me. Thank god.
L403[20:29:37] <Va​ur> %tonk
L404[20:29:37] <MichiBot> Bingo! Va​ur! You beat PwnagePineap​ple (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 SoBi​nary!
L406[20:33:33] <walksanato​r. 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] <walksanato​r. B⃢ot.> @TechTastic free research point
L409[20:34:28] <TechT​astic> %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] <Pokem​an2003> Why are the GPU cards like this?
L412[20:56:08] <Pokem​an2003> 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] <Pokem​an2003> Actually,
L414[20:57:03] <Pokem​an2003> 50 is NOT a valid VGA width, I don't know where I got that from.
L415[20:58:34] <Pokem​an2003> 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] <Pokem​an2003> Man, I nitpick these things too much don't I?
L417[20:59:32] <walksanato​r. B⃢ot.> dont make me give you the 1x1
L418[20:59:44] <Pokem​an2003> Does it give color?
L419[21:00:09] <walksanato​r. B⃢ot.> (I was saying it as a joke)
L420[21:00:09] <walksanato​r. B⃢ot.> no, infact it doesen't turn on 90% of the time
L421[21:00:23] <Pokem​an2003> Damn it.
L422[21:00:37] <Pokem​an2003> I guess it's as reliable an Altair 880 which has been running 24/7...
L423[21:00:41] <walksanato​r. B⃢ot.> dumb idea: Broken GPU, has a N % chance to just *not execute the draw command*
L424[21:01:13] <walksanato​r. B⃢ot.> low tier is like 10%
L425[21:01:14] <walksanato​r. B⃢ot.> medium is 15%
L426[21:01:14] <walksanato​r. B⃢ot.> high tier is 20%
L427[21:01:21] <Pokem​an2003> 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] <Pokem​an2003> Higher tiers degrade slower.
L429[21:01:35] <Pokem​an2003> Planned obselence, baby~
L430[21:01:39] <walksanato​r. B⃢ot.> drones just randomly fall out of the sky
L431[21:02:15] <walksanato​r. B⃢ot.> >Pokeman2003: Higher tiers degrade slower.
L432[21:02:16] <walksanato​r. B⃢ot.> no mine was factory-faulty
L433[21:02:16] <walksanato​r. B⃢ot.> so the componest is allready broken
L434[21:02:16] <walksanato​r. B⃢ot.> and the higher tiers being more complex obvs have more things to break
L435[21:02:24] <Pokem​an2003> Ah, fair enough.
L436[21:02:49] <walksanato​r. B⃢ot.> ~~creative broken GPU has a 100% chance to not work and is craftable from dirt~~
L437[21:03:55] <Pokem​an2003> 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] <Pokem​an2003> I didn't go through with it, obviously, but this just reminded me of that idea I had.
L439[21:05:00] <walksanato​r. B⃢ot.> I am planning a ExaPunks mod
L440[21:05:09] <walksanato​r. B⃢ot.> here is my (bad) ideas
L441[21:05:10] <walksanato​r. B⃢ot.> https://docs.google.com/document/d/1jU4kD9mqqulId2XY0V1xNJn18a-N4RwAF9ci5viFIoY/edit
L442[21:06:04] <Pokem​an2003> ~~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] <walksanato​r. B⃢ot.> i did it
L444[21:06:14] <Pokem​an2003> Thanks
L445[21:06:16] <Pokem​an2003> Sorry about that
L446[21:06:24] <Pokem​an2003> I thought I was going to be funny, not an inconvenience.
L447[21:06:29] <walksanato​r. B⃢ot.> but yeah tis-advanced also adds some instructions for INT<->Float
L448[21:06:40] <walksanato​r. B⃢ot.> >Pokeman2003: I thought I was going to be funny, not an inconvenience.
L449[21:06:40] <walksanato​r. B⃢ot.> smol ammount of text is no worry
L450[21:06:49] <walksanato​r. B⃢ot.> and JMP instruction variations for floats
L451[21:06:57] <Pokem​an2003> Why would
L452[21:07:11] <Pokem​an2003> why would you use float addresses with JMPs?
L453[21:07:33] <walksanato​r. B⃢ot.> no float values
L454[21:07:35] <TechT​astic> Funky stuff
L455[21:07:48] <Pokem​an2003> Ah.
L456[21:07:54] <walksanato​r. B⃢ot.> so the thing would be JEQ <float> <label>
L457[21:08:06] <Pokem​an2003> It looks cool, though not really my type of thing. I hope you make it.
L458[21:08:26] <walksanato​r. B⃢ot.> the one reason why I am reluctant: networking the things
L459[21:08:45] <walksanato​r. B⃢ot.> and multi-block
L460[21:08:52] <walksanato​r. B⃢ot.> mainly handling the multi-block network
L461[21:08:53] <TechT​astic> 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] <Pokem​an2003> So, let's say
L465[21:50:42] <Pokem​an2003> I have a set of functions in a Lua file.
L466[21:51:12] <Mic​hiyo> You have a set of function in a Lua file.
L467[21:51:18] <Pokem​an2003> I want to recover only a few of the functions in the Lua file.
L468[21:51:35] <Pokem​an2003> 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] <Pokem​an2003> I only know what 2 and 4 are named, not what the other ones are.
L470[21:52:54] <Pokem​an2003> 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] <Pokem​an2003> It would be relatively easy if I could somehow prevent the lua file from accessing the global scope.
L472[22:00:26] <Pokem​an2003> 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> Ama​nda: 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] <Pokem​an2003> Well, the problem is that I'm not quite what I want to articulate here.
L479[22:04:29] <Pokem​an2003> Or *how* to for that matter.
L480[22:04:53] <Pokem​an2003> I know the problem intrinsically, but I do not understand it on an extrinsic level.
L481[22:05:17] <Pokem​an2003> I suppose what I need is just some way to avoid letting the Lua table access teh global table.
L482[22:05:28] <Pokem​an2003> Lua file access the global table*
L483[22:06:20] <Amanda> %remindme 12h do this https://github.com/twpayne/chezmoi/issues/445
L484[22:06:20] <MichiBot> I'll tell you "do this https://github.com/twpayne/chezmoi/issues/445&quot; in 12h at 04/14/2023 10:06:20 AM
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] <Kristo​pher38> >Pokeman2003: I want to recover only a few of the functions in the Lua file.
L487[22:27:53] <Kristo​pher38> what do you mean "recover"
L488[22:28:05] <Kristo​pher38> sorry, I don't understand a thing
L489[22:28:34] <Kristo​pher38> what does it mean to "copy functions over"
L490[22:28:49] <Ocawes​ome101> retrieve the source for only these functions?
L491[22:29:42] <Kristo​pher38> if that's the case they need a parser to do that reliably
L492[22:30:03] <Kristo​pher38> could be a very simplified one actually
L493[22:30:33] <Kristo​pher38> for once lua having `end` as the terminator for complex statements is helpful
L494[22:31:18] <Pokem​an2003> I'm making this for a driver system.
L495[22:31:18] <Pokem​an2003> 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] <Pokem​an2003> The driver file is a lua file.
L497[22:31:49] <Pokem​an2003> 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] <Kristo​pher38> then put those 4 functions in a table and don't put the rest in that table
L501[22:32:45] <Kristo​pher38> ???
L502[22:33:12] <Pokem​an2003> 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] <Pokem​an2003> Plus, that sounds like a memory leak.
L505[22:33:45] <Izzy> ..?
L506[22:33:48] <Kristo​pher38> what globals, mess up how, memory leak how
L507[22:34:35] <Pokem​an2003> 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] <Pokem​an2003> I'm pretty sure global variables are only garbage collected when they = nil.
L509[22:35:53] <Pokem​an2003> Anyways, I'm trying to figure out how I'm supposed to make this contained environment.
L510[22:36:21] <Kristo​pher38> 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] <Pokem​an2003> 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] <Pokem​an2003> 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().
L515[22:37:46] <Kristo​pher38> you can do the thing you want by using `env` argument of `load` https://www.lua.org/manual/5.3/manual.html#pdf-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] <Pokem​an2003> 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."
L520[22:40:10] <Kristo​pher38> Code Block pastebined https://paste.pc-logix.com/amocarezik
L521[22:40:21] <Kristo​pher38> i think this should do the trick (?)
L522[22:41:07] <Pokem​an2003> 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] <Pokem​an2003> 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] <Pokem​an2003> I plan to wrap those for protection.
L527[22:42:18] <Pokem​an2003> (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] <Pokem​an2003> Yeah their warning roughly translates into "do not do this unless you understand Lua fully"
L530[22:43:02] <Pokem​an2003> And guess who doesn't even understand how to print!
L531[22:43:27] <Pokem​an2003> But yeah.
L532[22:44:19] <Izzy> :D
L533[22:45:16] <Kristo​pher38> 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] <Kristo​pher38> what multi-user use entails exactly
L537[22:46:25] <Kristo​pher38> 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] <Kristo​pher38> you've got me interested
L541[22:46:45] <Pokem​an2003> 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] <Pokem​an2003> Also, OpenComputers LITERALLY supports detecting which user is interacting with the computer through signals.
L545[22:48:25] <Pokem​an2003> 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] <Kristo​pher38> Izzy: sounds like an OS for me, no protection but features that openOS lacks
L547[22:48:54] <Kristo​pher38> important: does it support scrolling the terminal with mousewheel?
L548[22:49:18] <Izzy> no, though it would be nice
L549[22:49:44] <Kristo​pher38> 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?
L552[22:50:25] <Izzy> https://shadowkat.net/tmp/d712.jpg
L553[22:51:46] <Izzy> oop, more recent: https://shadowkat.net/tmp/4119.jpg
L554[22:52:25] <Kristo​pher38> 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] <Kristo​pher38> 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] <ThePi​Guy24> %tonk
L560[22:55:32] <MichiBot> Darn! ThePi​Guy24! You beat Va​ur'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 PwnagePineap​ple (He/Him)!
L562[22:56:04] <Izzy> https://shadowkat.net/tmp/3e46.jpg
L563[22:56:11] <Izzy> https://shadowkat.net/tmp/57c3.jpg
L564[22:56:53] <Kristo​pher38> lol binutils is just a single file with a handful of functions
L565[22:57:00] <Kristo​pher38> not sure how i feel about this
L566[22:57:09] <Izzy> $0 is a hell of a drug
L567[22:57:10] <ThePi​Guy24> Izzy: lovely old descent ;3
L568[22:57:40] <ThePi​Guy24> >Kristopher38: lol binutils is just a single file with a handful of functions
L569[22:57:41] <ThePi​Guy24> 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] <Kristo​pher38> >ThePiGuy24: wait until you see busybox
L573[22:58:18] <Kristo​pher38> Now that you say it, it does resemble busybox
L574[23:02:22] <ThePi​Guy24> 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] <Pokem​an2003> How dependent is Computertronics on other mods? It seems to have a lot of hooks into mods I'm not so sure about.
L577[23:22:36] <Pokem​an2003> @AR2000 I hate to bother you, but I can't find brain.conf. https://tinyurl.com/2plzssus
L578[23:23:29] <AR2​000> It should be in the folder that was open when you ran the jar
L579[23:23:43] <Pokem​an2003> ... no. https://tinyurl.com/2eco46ca
L580[23:24:15] <Pokem​an2003> It's not like it's erroring on finding brain.conf either, it just doesn't seem to be trying. https://tinyurl.com/2om443k5
L581[23:24:38] <AR2​000> And the file doesn't exist by default. You have to create it
L582[23:24:38] <AR2​000> You can simply copy it from Minecraft's config folder. It's opencomputers' s config file
L583[23:24:42] <Pokem​an2003> Oh.
L584[23:24:47] <Pokem​an2003> ~~I don't have Minecraft.~~
L585[23:25:07] <Pokem​an2003> Yeah I'll just get it when I get home and can get on my actual gaming computer then.
L586[23:25:29] <AR2​000> https://tinyurl.com/2kwe4rwh
L587[23:25:40] <AR2​000> That's my config file.
L588[23:26:27] <AR2​000> Unlike default it allow localhost tcp/http
L589[23:26:27] <AR2​000> and there is no file buffering (better when using external code editor)
L590[23:26:29] <Pokem​an2003> I imagine it's been tweaked to your own liking. Well, thanks!
L591[23:29:25] <AR2​000> Just out of curiosity : what are you working on ?
L592[23:32:09] <Pokem​an2003> 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] <Pokem​an2003> That said, I'm... very much outclassed in every regard. I highly doubt anyone will be using it.
L594[23:33:10] <Pokem​an2003> 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] <AR2​000> Writing network stack that only you will ever use is fun too.
L597[23:42:19] <AR2​000> Or a package format
L598[23:42:30] <AR2​000> Writing things is fun
L599[23:50:32] <Izzy> writing a network stack other people will use is also fun :akko_fingerguns:
<<Prev Next>> Scroll to Top