!bQveTkYXFyxLJQwcLG:matrix.org

Malleable Systems Collective

123 Members
Malleable projects, ideas, and adjacent topics | Code of conduct: https://malleable.systems/code-of-conduct | Forum: https://forum.malleable.systems | Logs: https://view.matrix.org/room/!bQveTkYXFyxLJQwcLG:matrix.org/34 Servers

Load older messages


SenderMessageTime
1 Nov 2024
@gnu_ponut:matrix.orgGnuxie ๐Ÿ’œ๐Ÿ

This approach would seem to require an execution environment that allows dynamically hooking / modifying code in response to changes made by extensions. While various dynamic programming systems like those associated with JavaScript, Smalltalk, Lisp, etc. may have some support for this, itโ€™s less likely to be found in the statically typed languages, as those often assume type checking should be paired with ahead-of-time compilation.

Itโ€™s less clear to me how dynamically typed languages might provide extension-time sanity checks, so thatโ€™s a big part of why I focused on a statically typed approach. If you see a way to do something similar in a more dynamic environment, please do let me know!

The way we manage this is by creating a schema for the interface and using it to validate capabilities match it. But I don't know if you need to gaurntee more things than the interface. It's not clear to me from your post what we're trying to check x3

16:59:45
@gnu_ponut:matrix.orgGnuxie ๐Ÿ’œ๐Ÿ *

This approach would seem to require an execution environment that allows dynamically hooking / modifying code in response to changes made by extensions. While various dynamic programming systems like those associated with JavaScript, Smalltalk, Lisp, etc. may have some support for this, itโ€™s less likely to be found in the statically typed languages, as those often assume type checking should be paired with ahead-of-time compilation.

Itโ€™s less clear to me how dynamically typed languages might provide extension-time sanity checks, so thatโ€™s a big part of why I focused on a statically typed approach. If you see a way to do something similar in a more dynamic environment, please do let me know!

The way we manage this is by creating a schema for the interface and using it to validate capabilities match it. But I don't know if you need to gaurntee more things than the interface. It's not clear to me from your post what things specifically we're trying to check x3

17:00:18
@mpcarc:beeper.commpcarcwhen's the close again? submit submit17:00:35
@mpcarc:beeper.commpcarcI've already been sharing these with others, really really interesting submissions17:01:54
@gnu_ponut:matrix.orgGnuxie ๐Ÿ’œ๐Ÿ
In reply to @mpcarc:beeper.com
when's the close again? submit submit
well the UI that hotswaps capabilities isn't implemented yet cos i had to make changes to allow us to express that in the UX, but I will submit something late when I can show it off ^^
17:02:56
@mpcarc:beeper.commpcarc^.^17:03:29
@jryans:matrix.orgJ. Ryan Stinnett
In reply to @mpcarc:beeper.com
when's the close again? submit submit
Just under 19 hours remain...! https://time.is/0000_2_Nov_2024_in_Anywhere_on_Earth
17:08:53
@jryans:matrix.orgJ. Ryan Stinnett
In reply to @gnu_ponut:matrix.org
i was gonna submit something about Draupnir but it's not like revolutionary or amazing or anything. But we do use a capability based plugin system that allows you to hotswap different implemtnations of various capabilities that the plugins are using. So for example a protection (we call plugins protections) that needs to be ban a user uses a capability interface called UserConsequences. And when we create the protection you have to provide a capability to fulfill that interface (it's just dependency injection but y'know). Users get to choose and configure capabilities on a per plugin basis and if they know enough to script they can change the functionality of protections by just writing new capabilities to fill the interface rather than changing the code. It's a little bit different to AOP becaues rather than hooking in arbritrarily anywhere as a dev you're also exposing the option to change the behaviour to users in a structured way. Not too amazing but just thought i'd bring it up as an example of this. I'll have to check out Effekt to be able to understand your post deeply i just needed to mention this x3
Sounds interesting! I'd definitely like to hear more about this sometime... even if you don't have time for a submission for the challenge, please do write about it eventually. ๐Ÿ™‚
17:10:27
@jryans:matrix.orgJ. Ryan Stinnett
In reply to @gnu_ponut:matrix.org

This approach would seem to require an execution environment that allows dynamically hooking / modifying code in response to changes made by extensions. While various dynamic programming systems like those associated with JavaScript, Smalltalk, Lisp, etc. may have some support for this, itโ€™s less likely to be found in the statically typed languages, as those often assume type checking should be paired with ahead-of-time compilation.

Itโ€™s less clear to me how dynamically typed languages might provide extension-time sanity checks, so thatโ€™s a big part of why I focused on a statically typed approach. If you see a way to do something similar in a more dynamic environment, please do let me know!

The way we manage this is by creating a schema for the interface and using it to validate capabilities match it. But I don't know if you need to gaurntee more things than the interface. It's not clear to me from your post what things specifically we're trying to check x3

Yes, certainly a fair comment... I meant to go into more detail on exactly what I'd want checking to ensure, but ran out of energy for writing it up... ๐Ÿ˜… Anyway, curious to hear more about any vaguely related ideas that seem connected to my poorly written words. ๐Ÿ˜‡
17:14:43
@_bifrost_contrapunctus=40jabjab.de:aria-net.orgfugata (they/them)_ joined the room.17:42:42
@_bifrost_contrapunctus=40jabjab.de:aria-net.orgfugata (they/them)_ changed their display name from fugata to contrapunctus.17:43:27
@computably:matrix.orgcomputably
In reply to @jryans:matrix.org
Hmm well, the features they focus on seem quite desirable, but perhaps a bit orthogonal from malleability... Their system seems a very nice version of interactive programming, where the build loop fails away and you can make live changes.

Video game devs have made lots of interesting stuff at least IMO tangentially relevant to malleability. Working with code as an interactive, multimedia human-oriented thing, instead of plaintext. Partially the product of constraints: soft real-time (multiplayer) interactivity, collaboration with creatives / non-programmers, and the horrendous difficulty of debugging rendering on GPUs. Unfortunately the culture is often directly opposed to malleability, with heavy proprietary stacks, DRM/anticheats, ship-once products, constant "crunch time," etc....

I believe Arcan is an example of an ambitious project (a new infrastructure for graphical desktop) which started as a game/multimedia engine. The similarities are not just incidental.

18:28:02
@jryans:matrix.orgJ. Ryan StinnettAh yeah, there is some overlap via the live / interactive programming abilities at least, but also some unfortunate restrictions as you say.22:25:41
2 Nov 2024
@feeds:integrations.ems.hostFeeds New post in Forum Topics: Fearless Extensibility: Capability based extension in Draupnir 14:53:45
@mpcarc:beeper.commpcarcyessss! so glad this got submitted18:17:11
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse left the room.19:52:32
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse joined the room.19:54:05
@albertzak:matrix.orgAlbert Zak joined the room.21:45:19
@albertzak:matrix.orgAlbert Zak set a profile picture.21:46:25
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse left the room.23:01:44
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse joined the room.23:14:51
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse left the room.23:20:17
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse joined the room.23:31:23
3 Nov 2024
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse left the room.00:26:25
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse joined the room.00:31:37
@_bifrost_contrapunctus=40jabjab.de:aria-net.orgfugata (they/them)_ changed their display name from contrapunctus to fugata.11:04:38
@_bifrost_contrapunctus=40jabjab.de:aria-net.orgfugata (they/them)_ changed their display name from fugata to fugata (they/them)_.11:07:42
4 Nov 2024
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse left the room.04:15:06
@_bifrost_wgreenhouse=40hmm.st:aria-net.orgwgreenhouse joined the room.04:16:08
5 Nov 2024
@_bifrost_contrapunctus=40jabjab.de:aria-net.orgfugata (they/them)_ changed their display name from fugata (they/them)_ to fugata.08:09:14

Show newer messages


Back to Room ListRoom Version: 5