ByteCode.NewsSubmit
Use quotes for an exact word.

Subscribe

RSSPodcast
Log in

Chat Logs

  1. * skillbot quit (Remote host closed the connection)
  2. * skillnews quit (Remote host closed the connection)
  3. * skillbot joined #primate
  4. * skillnews joined #primate
  5. * jreicher quit (Ping timeout: 265 seconds)
  6. * jreicher joined #primate
  7. * phaleth joined #primate
  8. * phaleth quit (Remote host closed the connection)
  9. * phaleth joined #primate
  10. dreamrealblue: updating primate on BCN now
  11. dreamrealand deployed
  12. bluedreamreal: nice, and all the issues are fixed?
  13. dreamrealIt's live.
  14. dreamrealLooks good so far.
  15. blueLines changed: 302 additions & 1530 deletions
  16. bluedreamreal: we love see that
  17. bluephaleth: hi
  18. phalethhi
  19. * phaleth quit (Ping timeout: 243 seconds)
  20. * phaleth joined #primate
  21. * phaleth quit (Remote host closed the connection)
  22. * phaleth joined #primate
  23. * phaleth quit (Remote host closed the connection)
  24. * phaleth joined #primate
  25. bluephaleth: primate 0.43 was completely published by flog, btw
  26. blueflog has thus shown production readiness, after taking over rcompat and primate management
  27. phaleththat means it's done
  28. phalethno more development
  29. bluewe're only getting started. `flog format` and `flog lint` are coming next, following closely by `flog test` and `flog test --coverage`
  30. blueflog will do everything that dog won't do
  31. phalethheh, ok
  32. bluedog will be developed in cit
  33. blue(yes, that's a pun)
  34. phalethcit?
  35. phalethno project freeze for dog either?
  36. phalethmight need to wait for better clanker
  37. blueyeah, cit. this is my new systems language replacement for zig
  38. blueI think you'll love it phaleth
  39. phaleth:D
  40. phalethso you read the article from the encore website and realized golang has limits
  41. bluewell, let's talk plainly
  42. bluego has a runtime and poorly interfaces with c++/c
  43. bluerust is no-go
  44. bluezig is a dumpster fire, as the BCN article has demonstrated
  45. bluethat leaves us with c++ (another can of worms) or c (too primitive)
  46. blueso we need cit
  47. phalethwell, but did you look into other so called c killers?
  48. blueI didn't, but honestly, I always wanted to do my own language so this is fine. the flog experiment has shown you can move faster than others and produce *better* software
  49. phalethwriting a programming lang and including useful enough standard lib targetting all platform is a huge undertaking
  50. blueI have features in flog I've wanted for years in pnpm, and the pnpm team didn't care
  51. bluealso, remember I'm a hands-on guy. cit will only target linux/x64 for now
  52. blueI'm not interesting in optimising anything else
  53. blueinterested*
  54. phalethok, but still, you might wanna take a look around
  55. blueif need a port, like freebsd/x64, that can be arranaged as well
  56. phaleththere is not only zig out there
  57. bluebut we're not doing darwin or arm or windows. I'm simply not interested
  58. blueit just needs to run fast on servers
  59. bluealso write now the cit prototype for dog is promising. dog in cit can now use both v8 and quickjs. one of the things I wanted for dog is the ability to switch engines
  60. blueright now*
  61. bluefor dog/cit 0.1, I want to target v8/jsc/qjs
  62. blueI'm not yet sure if I'm actually going to release dog-v8, dog-jsc and dog-qjs, or make the engines dynamically loadable at runtime
  63. bluebut those decisions are mostly operative
  64. phalethtargetting just v8 is fine, only that is actually useful
  65. phalethand that's also huge undertaking
  66. bluejsc is pretty useful as well, as bun has shown
  67. blueand qjs for embedded
  68. blueI'm also realistic. after spending about two weeks on writing an engine for dog, I realised that was a waste of time and pivoted
  69. phalethgreat
  70. bluephaleth: lioloc: dreamreal: flog 0.1.9 has been released
  71. blueflog can now seamlessly switch installation channels back-and-forth.
  72. blueflog update --channel unstable|stable
  73. bluedefault is stable (0.1.9). unstable builds automatically from master on every commit
  74. bluethe capability used here isn't flog-specific; repopach has recently gained rolling release channels, and the ability to advertise channel lists
  75. bluerepoopack*
  76. bluecurl -fsS https://repopack.com/project/flog/releases/flog/channels
  77. bluecurl -fsS https://repopack.com/project/flog/releases/flog/channels | jq '{default_channel, channels: [.channels[] | {id, name, kind, url}]}'
  78. bluepretty nice :)
  79. bluea release product can set a default channel; this is the mechanism used by flog to default to the stable channel
  80. bluechannels are identified by both their name, and id; ids are stable, names might not be. consumers (like flog) are advised to record ids and use them to verify that has a channel hasn't been renamed and another channel of the same name has been created in its stead
  81. bluerepopack will accept legacy channel use until dec 1, after which it will switch to enforcing providing an id when listing channels' contents (releases)
  82. bluethis is denoted as well in the curl request I just showed
  83. blue"identity_required_after":"2026-12-01T00:00:00Z"
  84. bluethat gives everyone enough time to upgrade to flog 0.1.9 until dec; flog 0.1.9 and master already use ids when querying channels for releases
  85. bluedreamreal: once I actually manage to get in most features that I need, I *might* actually release a flog major v1
  86. phalethhow do I set release channel when installing via trust me bro installer?
  87. * skillbot quit (Remote host closed the connection)
  88. * skillnews quit (Remote host closed the connection)
  89. * skillbot joined #primate
  90. * skillnews joined #primate
  91. blueFLOG_CHANNEL, but it's not yet supported, soon will be
  92. phalethcool
  93. bluephaleth: fixed; you can now install directly from the unstable channel
  94. bluecurl -fsSL https://flog.run/install | FLOG_CHANNEL=unstable sh
  95. phalethnice, no more bothering with FLOG_VERSION
  96. bluenice
  97. bluedreamreal: article idea for BCN... how do deal with known unknowns, and how to backpatch properly. a problem I often encounter: I need a certain mechanism, but the current version of x doesn't support it yet; I *could* release a new version of x which will support the (say, update) mechanism going forever, but version current - 1 is borked
  98. blueI'm facing this problem with JSON schemas for the repopack api right now. I'd like to advertise the docs, programmatic (API) description, and expiredness, but I can *not* change the already public schema itself.
  99. bluewith web requests, I think I've solved it pretty elegantly: I'll be using *headers* to communicate this data; I'm not touching the schema itself, I'm talking *about* the schema
  100. blueso I'll be sending things like Repopack-Schema-Expires: <isodate> and Repopack-Schema-Next: <number>
  101. * phaleth quit (Quit: phaleth)
  102. bluewhether the client respects them is another q, but it gives the client a way forward at least
  103. blues/going forever/going forward/
  104. * phaleth joined #primate
  105. bluethe advantage of using headers it that they are flexible; I can leave Repopack-Schema-Next out when there's no new schema yet
  106. dreamrealarticle How to deal with known unknowns
  107. nevetIdea session started: "How to deal with known unknowns". Use 'content <text>' to add body paragraphs, 'includeai' to enable AI summary/tags, 'done' to save, or 'cancel' to discard.
  108. dreamreallogs 20m
  109. nevetAdded 14 log messages (last 20m) as content block #1.
  110. dreamrealincludeai
  111. nevetAI summary enabled for "How to deal with known unknowns". On 'done', a generated summary and suggested tags will be appended to the draft.
  112. dreamrealSo how is that different from versioned headers in the first place?
  113. blueidk what versioned headers are
  114. dreamrealhttps://dev.to/abhivyaktii/api-versioning-using-headers-a-clean-and-flexible-approach-218p
  115. bluealso, http isn't always available in every scenario
  116. dreamrealnot really solving the same problem
  117. dreamrealof course
  118. dreamrealI'm just trying to understand the problem space
  119. bluealso, in my case, everything is anyway running under the /v0 namespace. the problem is even more nuanced; I want to version every JSON schema consumed / returned by an API call, separately. specifically in this case, listing channels even isn't part of the /v0 api route, but the concern is the same
  120. blue(and maybe it should be, but /v0 generally requires a token right now)
  121. dreamrealWell, okay, so restate the problem like I'm five.
  122. bluegiven a version of something is already out in the wild, how to communicate a new version without breaking it, and without requiring an update for that something
  123. blueas a generalised, non-specific concept
  124. botIdea session timed out. Saved draft: "How to deal with known unknowns" (1 content block)
  125. dreamrealOkay. There's nuance there: is the update *additive* or demonstrative? Does it actually break what's already there?
  126. dreamrealscrew you, nevet, will reload
  127. dreamrealdoes graphql or anything like that handle it?
  128. bluethe update *can* be additive, but additive updates do not promise that side-effects won't happen. for example, if a client does a closed schema validation, additive updates will break it
  129. dreamrealblue: sure, and that's important but now always ESPECIALLY important for some formats like JSON
  130. dreamrealfor gRPC or XML, obviously, yes
  131. blueclosed schema validations can be a bad design, but we're not discussing the client design. we're discussing a universal system for telling you need to update. http headers could be a thing, but they're limited to http
  132. dreamrealokay, so what transports are in use for consideration?
  133. dreamrealif you don't have transport control - if you're actually doing transport neutrality - that's great, but then you're mutating the datastream itself to add context, like deciding JSON comments are real (they should be, but JSON, amirite?) or specifically adding data fields to JSON or ... whatever
  134. dreamrealSGMLs have this out of the box, which is why they are so strong, but then you're talking about a lot of verbosity and we all know that programmers despise verbosity even when it saves them from themselves
  135. systemfaultEven if it would be nice... I think that allowing JSON in comments would only lead to shit...
  136. systemfaultPeople would start using comments as serialization/validation metadata...
  137. dreamrealwell, that's the problem. And JSON *does* allow comments... in the right variants of the sets of specs.
  138. dreamrealThe various JSON comment specs *may even* be compatible with each other!
  139. systemfaultIs there any valid spec beside the ECMA one and the RFC? (My knowledge may be outdated)
  140. dreamrealblue: I think this is a good idea for an article, FWIW
  141. dreamrealsystemfault: valid spec for... what
  142. systemfaultJSON
  143. dreamreal*agh*
  144. dreamrealyes
  145. dreamrealRJSON, JSON-LD, JSON5, a host of them, really
  146. systemfaultThey're all non-standard
  147. dreamrealit depends on what your definition of "standard" is
  148. systemfaultI meant something like ECMA 404 or RFC 8259
  149. dreamrealRJSON, JSON5, JSON-LD are all quite easy to find in the wild
  150. systemfaultThey're derivative of JSON, not JSON.
  151. systemfaultI'm fine with those
  152. dreamrealI hear you but that's like saying "are there any variants of the 2025 mazda 6 that are compatible with being the 2025 mazda 6 but aren't actual 2025 mazda 6s?"
  153. dreamreal"the spec" is the spec, and it's vastly insufficient, which is why things like JSON-LD, RJSON, JSON5 exist as separate variants
  154. dreamrealdang it, phaleth distracted blue
  155. systemfault</sad-trombone> :/
  156. phalethblue: release a separate migrator tool, then error when encountering old version of the schema using the tool that produces the data in the first place
  157. phalethmention the migrator tool in the error message
  158. blueI'm sorry dreamreal, life came up. I might be asking for something that's impossible: knowing in advance that you're gonna need to change things, and advertising that. I just wish there were side-channel capabilities that allowed you to do that even if you forgot to so to begin with, and already commited something to the public space
  159. dreamrealblue: yeah, in my experience that's almost entirely limited to the transport OR for things with placeholders already like SGML
  160. dreamrealwhichi s NOT to say that it wouldn't be VERY nice to have
  161. blueimagine you had a standard where, you take the sha256 of an *executable*, and go with it somewhere. `go.forward.run?sha=<sha256>`
  162. bluebut that requires people using it, and also a way to identify ownership of the sha256, so that the original author can add that info to the website
  163. dreamrealYeah, and assumes that the sha256 is verifiable
  164. dreamrealand attested (verifiable is easy, attested not so much)
  165. blueyes. but such an idea, if it would work, would allow me to release a binary and then inform about upgrade paths *after the fact*, even if the binary has mechanisms for that, built-in
  166. blueit mostly raises coordination and security implications, I feel
  167. bluehas no mechanisms*
  168. dreamreal*nod*
  169. blueone idea that could work is having, for example, repopack.com, as the publisher of the binary, provide such a mechanism. but that requires trust in repopack.com, and a way to proven that the binary was signed with repopack's key, which requires planning in advance
  170. bluehowever, if repopack can enforce binary signing, it could at least offer that forward pahth always, for binaries created on it
  171. blue(I'm specifically NOT talking about *rp* itself here; but about users creating and publishing binaries via repopack)
  172. * phaleth quit (Quit: phaleth)
  173. dreamrealblue++ I'm trying to work out how to make this a useful article
  174. nevetblue now has karma of 5.
  175. bluedreamreal: yeah, it's hard
  176. * jreicher quit (Quit: In transit)
  177. * jreicher joined #primate