Arcan

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2025-08-23
21:42
(lua/tools) last round of multipart chunking fixes Leaf check-in: 1be40f93ce user: letoram tags: master, trunk
21:25
(lua) image_access_storage: expose cursor style check-in: c697e0bd64 user: letoram tags: master, trunk
19:14
(tui) only log screensize change when dimensions have changed check-in: 89312714a6 user: letoram tags: master, trunk
2025-08-22
17:50
(tests/dnd) add ctrl+drag to announce as drag check-in: 152a24d519 user: letoram tags: master, trunk
12:22
(platform) fix broken tilde key event utf8 attribute. check-in: 279f52c4ac user: cipharius tags: master, trunk
10:56
(build) update nixpkgs version and add additional dependencies to flake.nix. check-in: d163b0e67c user: cipharius tags: master, trunk
08:33
(lua) make text_surface erase the whole row on update, except when explicit x coordinate is provided. check-in: 14fbc5be58 user: cipharius tags: master, trunk
07:10
(core/lua) make text_surface respect default font size and provide mm/pt conversion functions to avoid conversion constants being scattered around the codebase. check-in: ab4fcca9e9 user: cipharius tags: master, trunk
2025-08-21
20:21
(core/lua) extend image_origo_offset with support to set local anchoring offset This is a complement to anchoring in link_image, which only defines anchoring relative to the new parent. With this you can also adjust which corner is used to position the object within the anchor without manually resolve-property/move and match transforms. check-in: 4132c275ec user: letoram tags: master, trunk
2025-08-20
21:41
(core) relinking should invalidate entire hierarchy If there are no transformation scheduled on a object hierarchy and something with children gets relinked, the children retain the valid_cache status preventing recursion further down the chain. This is also a case with the early out from invalidate_cache() where an object with a valid cache would prevent children with an invalid cache to propagate since it assumed it always propagated upwards as is the case with transformations. This will impose a cost on larger hierarchies, so it might be useful to have the early-out for transform walk in regular processing and ignore it during relinking. Discovered-by: Nanderty check-in: b044778592 user: letoram tags: master, trunk
00:05
(tui) add :message function and handler to lua bindings check-in: 7e69b6db70 user: letoram tags: master, trunk
2025-08-19
23:54
(tui) add local/generic :message domain and route MESSAGE events to handler This is mainly needed for tui appl part of an a12-directory-ctrl as they interop with regular arcan appls. At the same time add a LOCAL message domain so that we can use this to signal between tui contexts. check-in: af4f4fe433 user: letoram tags: master, trunk
23:46
(shmif) fix edge-case truncation in utf8 multipart chunking Credit-to: Bohdan check-in: 73cdd2ffa0 user: letoram tags: master, trunk
2025-08-18
11:41
(net) reset multipart message offset after broadcast (ctrl- less) check-in: fa1528c364 user: letoram tags: master, trunk
02:01
(net) add alias_appl to config.lua This function lets an appl transparently share a controller or message domain with another. The purpose of that is mainly to be able to have a tui form as a complement to a main appl. check-in: b2e030f6d3 user: letoram tags: master, trunk
01:06
(doc) updates changelog check-in: 44a3b32510 user: letoram tags: master, trunk
2025-08-17
23:33
(net) soft-link resolve swap descriptors as traversal continues check-in: 8506d9f066 user: letoram tags: master, trunk
10:06
(platform) launch_target forward resolved system script path This caused arcan_lwa launch_target to fail for some environments check-in: 6285ca12a9 user: letoram tags: master, trunk
2025-08-15
00:57
(net) forward referential link endpoint to diropen req Next step should be to just try the connection from dir_cl, fingers crossed that would work and we can move on to trying more complex paths. Otherwise a likely suspect is a kpub being flipped in dir_srv_worker. check-in: 7826d0be6a user: letoram tags: master, trunk
2025-08-12
15:30
(decode) svg: respect displayhint by recalculating scale check-in: 4cbbb96106 user: letoram tags: master, trunk
2025-08-10
22:14
(net) fix printing dirref as source, start respecting --path This should almost bring the feature to usable, the separate resolver gets running and the DIROPEN request gets routed. What is left is to get server side chain from dirsrv_link to provide the right connection information from its end routed through. check-in: 8dd19dfe41 user: letoram tags: master, trunk
14:40
(net) force reference_directory to give a name for dynlist This makes the link-worker send that name back as the NETSTATE post connection. check-in: bd780cc4fc user: letoram tags: master, trunk
00:22
(net) add dirref to permitted inbound role if local is directory check-in: c223e2b504 user: letoram tags: master, trunk
00:15
(net) split up dir into dir and dirref Another round of prepwork for referential connections. check-in: d0ca1a0bef user: letoram tags: master, trunk
2025-07-29
18:56
(net) prepare dircl for soft-link traversal This adds the (nonworking, untested) --path a/b/c argument to arcan-net. This breaks down into a connection to [a] -> waiting for discover of a referenced directory [b] and so on until the path has been fulfilled. The regular cli request is then applied to that server. check-in: b141f5730f user: letoram tags: master, trunk
2025-07-20
23:25
(net) dir_cl: permit 'tui' in manifest and route through afsrv-terminal This is the first step towards letting afsrv_terminal act as a runner for tui flagged appls and was tested with directory hosted cat9. It is still dangerous in the sense that the appl can basically popen() whatever it feels like. Just like for desktop type appls that can be ok, but should go with a manifest option. The main purpose of this is to be able to provide an alternate minimalistic appl as a complement to another hosted one, both for a wider computing environment and for accessibility. check-in: 4063874561 user: letoram tags: master, trunk
2025-07-15
13:20
(build) openBSD missing includes check-in: 5963fb4205 user: letoram tags: master, trunk
2025-07-14
22:59
(net) respect parallel option for BCHUNK This takes care of the client end of letting an appl have multiple ongoing inbound binary transfers against a directory at once. check-in: 8b7650711f user: letoram tags: master, trunk
21:52
(net) session: recalculate dimensions for TPACK based on DISPLAYHINT check-in: 4c05aa73c1 user: letoram tags: master, trunk
2025-07-13
13:30
(net) a12: expose keyframe controls, fixes to first frame tpack cast This was a fun-one. Shmifsrv vbuffer only sets vbuffer size if VENC is for passthrough, otherwise buffer-bound is calculated through stride/pitch. Since we passed vbuffer size to tunpack the i-frame generation context would fail, but delta frames etc. would still be passed raw as a12 frame encoder for zstd+tpack does validate actual data contents and calculate size from that. There is still another ugly bug in that for the sink side, a12_unpack when given a shmif context will _resize that context based on the unpacked vbuffer. That field is given by the tpack dance, but that's defined by the cell dimensions of the 'driver' sink which might have different densities and font preferences than other sinks. To fix that, a12.c need to track DISPLAYHINT and when it gets cell_w/cell_h and decodes a tpack buffer, calculate the intended size manually before resizing. check-in: ebc85b6033 user: letoram tags: master, trunk
2025-07-10
22:30
(net) let session.c sink thread share lock with a12helper check-in: d36ef70702 user: letoram tags: master, trunk
2025-07-09
22:30
(net) hashmap_iterate takes 1 return for continuation This should fix the problem of only one sink getting updates. check-in: 745785b046 user: letoram tags: master, trunk
22:19
(net) session: expose channel-id for framequeue this still need to correspond to a SEGREQ event in the view-only sink so that it can compose accordingly. check-in: bc30becc17 user: letoram tags: master, trunk
19:47
(net) session: forward correct tunining parameters for tpack check-in: 23c2d11ea0 user: letoram tags: master, trunk
17:05
(net) session: --cast signs of life Successfully hosted tests/frameservers/counter via arcan-net --cast /path/to/counter then connected a primary sink to it (first come owns it) and then connect/disconnect a client on another machine and it gets to view-only the current state of the first channel. check-in: 20d6c08e82 user: letoram tags: master, trunk
2025-07-08
21:15
(build) prototype warning fixes check-in: 24ff999ba9 user: void tags: master, trunk
16:52
(net) session: wire in first attempt at frame cache for casting This is for the last big step in the feature matrix of what we need as building blocks for the intended first round of a12 appls, i.e. letting multiple sinks view the same source. There is a lot that can be done with it, but settle for just pushing towards PoC stage by adding a mode to session where the first connected sink becomes the 'driver' and the frames that are produced gets mirrored to any other sink that connects. The main complications to look out for will be the usual 'how to handle secondary surfaces' in order to preserve deferred composition, with cat9 open embed style being the tough example. check-in: 8f1c2243bb user: letoram tags: master, trunk
2025-07-07
17:26
(net) session: expose parent process cli options over shmif check-in: e8509ab60b user: letoram tags: master, trunk
09:51
(net) session: source-sinking through directory tunnel back This was rather simple, just forgot to pass the secret onwards. Now thread sanitizer across the most complex source-sink case is finally possible. check-in: d836c8f44b user: letoram tags: master, trunk
2025-07-06
15:44
(net) session: introduce key-management This is a consolidated version of the pattern in net.c merging the directory- spawned, local hosted and directory-joined forms. check-in: ba8fc41a67 user: letoram tags: master, trunk
06:43
(net) send reset/register on resumption This works with the caveat that if the sink side WM deletes the window, causing the connection to terminate, this will not cause the termination to hit and the old session will still recover. Similarly, if say, afsrv_terminal: #exit kills the window the server will still try to resumption it. Both suggest that there is an issue with lifecycle tracking at these transitions. check-in: 78c8cffa11 user: letoram tags: master, trunk
2025-07-05
21:40
(net) [regression warning] refactor -l -- /shmif/client hosting This will break pull use of arcan-net -- /some/bin. To get away from the fork() + continued exec use in arcan-net which stops thread sanitizer from working, and make net.c less messy -- we split into a new binary, arcan-net-session. This binary will take care of spinning up the shmif client and mapping to an a12 sink, but also prepare for two major features and a tui UI for runtime parameter controls. The first feature is to be able to resume an interrupted connection by leveraging the crash recovery _RESET mechanism. This is done by tracking the public-key used to authenticate, and the status of the shmif client primary when the a12 connection has terminated. If the client is still alive, bind it to the public-key and look for that on new connections. The second feature is a bit more complex, but it is to have a broadcast option where encoded video frames are kept from the session that the first source gets. Any new connections are then fed these frames within a GOP-sequence friendly window as passthrough. This lets one a12 connection 'drive' the shmif client, and the others view it. It will be single window only (and uncomposited, if composition is wanted, host through lwa+wm). check-in: 7e0e57c14b user: letoram tags: master, trunk
21:32
(arcterm) handle SIGUSR1 in cli=lua mode and dump trace This is an intermediate convenience (before adding full debugif) to capture livelocks in lash scripts. check-in: 71e8543711 user: letoram tags: master, trunk
2025-07-04
08:45
(shmif) poll in blocking recvfds() to avoid 100% spin on nonblock socket check-in: 6150579486 user: letoram tags: master, trunk
2025-06-29
19:01
(build) adds few more dependencies to flake.nix check-in: e65ca0e5d4 user: cipharius tags: master, trunk
18:44
(build) adds flake.nix with all of the build dependencies check-in: a28bab3e82 user: cipharius tags: master, trunk
2025-06-26
16:29
(net) obsd warnings check-in: 11cc3d5829 user: letoram tags: master, trunk
04:41
(build) move arc4random() to arcan_random() for musl- compat check-in: 555656c25a user: letoram tags: master, trunk
2025-06-25
06:06
(net) expose debug report generation as .report resource This solves for half of the triaging point. It makes it so a developer permission key can generate and download the report for the appl it specifies, a config option to flush after this has occured (the flush happens instantly, meaning that if the connection is severed while the report is downloaded, it is lost). It can be parried for by tracking the transfer and waiting for STREAMSTATUS to latch the unlink, if needed. It's just fringe enough to not warrant the effort right now. It also adds config.lua scope controls to block the flush, and admin functions to enumerate installed appls and explicitly flush. What's missing is the .ctrl layer, both for merging into the report itself, and more importantly - an external ticket service config and functions to issue a ticket into it. check-in: 66835228e0 user: letoram tags: master, trunk
06:02
(shmif) don't warn if migrate called without connp set check-in: b85540ac80 user: letoram tags: master, trunk