[00:19:06] * ColonelJ [ColonelJ!~ColonelJ@unaffiliated/colonelj] has quit (Quit: leaving). [00:20:45] * Sonderblade [Sonderblade!~helloman@94.191.136.105.mobile.tre.se] has joined the channel. [00:29:01] erg: Today, no, tomorrow, yes; got thrown way off this evening by kids and cats. [01:10:28] * bitmapper [bitmapper!~bitmapper@142.162.167.202] has quit (Ping timeout: 256 seconds). [01:35:37] * craigo [craigo!~craigo@144.136.206.168] has quit (Ping timeout: 272 seconds). [01:44:01] * Sonderblade [Sonderblade!~helloman@94.191.136.105.mobile.tre.se] has quit (Quit: Konversation terminated!). [02:05:58] * hyperpape [hyperpape!~user@cpe-71-77-68-37.nc.res.rr.com] has joined the channel. [03:22:25] * hyperpape [hyperpape!~user@cpe-71-77-68-37.nc.res.rr.com] has quit (Ping timeout: 264 seconds). [04:01:50] * MDude [MDude!~MDude@74.5.140.76] has quit (Quit: Going offline, see ya! (www.adiirc.com)). [06:42:44] * ephe_meral [ephe_meral!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has joined the channel. [08:08:50] * ephe_meral [ephe_meral!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has quit (Ping timeout: 244 seconds). [08:38:33] * ephe_meral [ephe_meral!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has joined the channel. [09:31:46] * craigo [craigo!~craigo@144.136.206.168] has joined the channel. [11:09:04] * craigo [craigo!~craigo@144.136.206.168] has quit (Quit: Leaving). [11:15:47] * craigo [craigo!~craigo@144.136.206.168] has joined the channel. [11:43:14] * ColonelJ [ColonelJ!~ColonelJ@unaffiliated/colonelj] has joined the channel. [14:14:47] * bitmapper [bitmapper!~bitmapper@142.162.167.202] has joined the channel. [14:20:04] * obfusk [obfusk!~quassel@a82-161-150-56.adsl.xs4all.nl] has quit (Remote host closed the connection). [15:49:18] * MDude [MDude!~MDude@74.5.140.76] has joined the channel. [16:15:16] Okay, grabbing my kiddo from school, putting him down for his nap, and then diving into HTML5, probably in about an hour. [16:26:14] i just merged master into the html5 branch and force-pushed it [16:54:23] bmps: I added a test document in basis/html5/html5-tests.factor. so to see what i've completed, do USE: html5 then paste in lines 10-20 and it'll spit out some text that mentions the tags. i didn't finish named characters, some of the hex/decimal stuff at the end, and actually emitting the nodes in the DOM [16:55:01] Sounds good. I’ll start there and just familiarize myself first, then take a look at extensions. [16:58:28] <^alex> hey speaking of branches, anyone wanna rename the default branch to `main` or `trunk` or whatever the git consensus was? [16:58:50] <^alex> or is that a "patches welcome" situation [16:59:08] cool. i'm up for working on it too, not trying to ditch it onto you. :p also the way it's set up is a bit boilerplatey because it follows the spec. the foo-state will get another character and call (foo-state). some of these are pure boilerplate, but sometimes the spec asks you to go into (foo-state) directly from another state. so rather than clean it up to begin with, i just did it the boilerplate [16:59:14] way [16:59:48] ^alex: is git moving from master -> main? where's the discussion? [17:01:25] oh damn, github itself is doing it? [17:01:38] <^alex> yep [17:01:54] <^alex> a symbolic minor antiracist concession, to be fair [17:01:58] is master purely a slave word or did it exist before? [17:02:14] <^alex> not really equipped rn to deal with the reasoning behind the change [17:02:29] hehe. i'll look into it myself [17:02:33] <^alex> just that we support it [17:02:50] <^alex> brought up this and related issues at work [17:03:30] this is going to waste thousands of man-hours [17:03:33] <^alex> like, the company uses a git fork and a monorepo, so it should be eminently feasible to push coherent rebases to rewrite our deadname out of history [17:04:19] https://twitter.com/bryanl/status/1278343673672011776 this is where i heard it first [17:04:28] <^alex> erg, on the other hand, it's going to make people whose history includes chattel slavery a lot more comfortable dealing with git [17:04:50] <^alex> anyway, we want the names rebased so that we don't have to have the incredibly discordant experience of doing a `git blame` and realizing that not only was the idiot that wrote the code we're swearing at our past self, it was our past pre-transition self [17:04:59] <^alex> like, every programmer is familiar with the first half of this one [17:05:20] <^alex> but the second half, well, you just gotta be there, y'know? [17:05:34] <^alex> and also, like, people who aren't trans change their name too [17:06:33] <^alex> erg, fyi there still exist living people who were once chattel slaves under a Master. not a whole lot, but they're out there [17:07:15] there's really no master vs slave implication in git, i would have repurposed the meaning of master to mean that it's the most skilled branch, like a master in chess [17:08:20] <^alex> mm [17:11:13] <^alex> tldr we don't see that metaphor as applying any better to git [17:22:04] <^alex> the issue with `master` is that it can imply that the other branches are subordinate, when that isn't even technically accurate [17:22:09] <^alex> you can have branches that aren't rooted in the asme tree [17:22:44] true. it was a stab at getting out of doing lots of work :p [17:23:30] <^alex> luckily you have an IRC channel full of people who follow your lead as maintainer [17:23:30] <^alex> :) [17:23:31] actually if i made a github/gitlab i would initialize an empty branch and save the issues and kanban in that branch. so if you check out the full repo you get the code, issues, roadmap, etc as branches [17:23:49] <^alex> erg, at that point why not switch to fossil :) [17:24:14] <^alex> distributed code, ticket, wiki, etc [17:24:30] factor used cvs, svn, darcs, git so far [17:24:40] <^alex> so have we [17:24:41] the last straw with darcs was waiting 10 minutes to commit a patch on windows [17:24:51] <^alex> darcs was nice as an interactive thing [17:25:20] <^alex> fossil publishes binaries for windows, os x, linux, and openbsd, and it's a single binary [17:26:08] <^alex> i mean, as long as we're proposing radical changes that require an bit of slogwork [17:27:34] neat, is there hosting for fossil like at github? i think the world has decided on git for awhile [17:28:17] <^alex> fossil is relatively self-hosting [17:28:24] <^alex> like, `fossil server` spins up HTTP :8080 [17:30:44] <^alex> like, the one feature it needs to be completely self-contained is the ability to ask and answer letsencrypt challenges [17:30:55] <^alex> also the UI isn't byzantine [17:31:32] <^alex> and it writes out _the_ most humane merge conflict markers we've ever seen in a VCS [17:33:10] <^alex> https://www.fossil-scm.org/home/file?udc=1&ln=on&ci=tip&name=src%2Fmerge3.c line 141 [17:33:18] nice. i'll try it out for myself but not going to make everony learn fossil to work on factor :) [17:33:33] * ^alex nods [17:33:49] <^alex> we've been using it for our dotfiles and small personal projects to good effect [17:36:07] is it cheating to just mirror master -> main and have both? [17:37:46] (i know it is) [17:46:03] <^alex> we'd describe that as a transition plan [17:46:11] <^alex> heyoOOOOO [17:47:00] lol [17:58:22] ok. i have a script to mirror github to factorcode, and i added a line to mirror master to main when that script runs [18:00:15] once github announces more we do more too [18:01:12] <^alex> and we see `upstream/main` in our repo, where `upstream` is github.com/factor/factor [18:01:19] <^alex> (our `origin` being our fork) [18:01:29] is that correct? [18:01:32] <^alex> yes [18:01:45] <^alex> other people will now see `origin/main` because they use defaults [18:01:46] <^alex> ;p [18:02:08] PRs have to go to master still, because master syncs down and then tries to overwrite main [18:02:13] * ^alex nods [18:02:25] <^alex> but this gives us foundation to make the rest of the changes [18:02:53] yes. mason and zealot have to change the branches for the CI (i can do it) [18:03:38] <^alex> and, as per tradition, we'll root out the rest of the details [18:03:52] <^alex> always good to work with a professional [18:04:41] np. solidarity [18:04:46] <^alex> no, seriously, this is the Thing We Do, kind of, in general; chase down weird details of internal infrastructure and make precarious changes [18:05:13] <^alex> ask us about the time we maintained a fork of Tcl 8.4 with a hacked-in support for continuations [18:06:17] <^alex> that was then squeezed between two TCP/IP stacks like the end of Requiem For A Dream [18:06:55] <^alex> and about the utter lack of institutional support for, maybe, moving to tcl 8.6, which has an official and actually-works implementation of the feature we half-hacked in [18:07:07] <^alex> (that last "we" being 'the company') [18:07:56] <^alex> one dude seriously said, to our face and without apparent awareness, when we suggested upgrading the Tcl version, "oh, we can't change that, because we've modified it" [18:08:33] <^alex> do you mean to tell us, my man, that we are unable to modify the thing, because there exist modifications we have done, to the thing????? [18:08:57] <^alex> (i mean, you all didn't ask, but, that was sort of rhetorical) [18:10:00] <^alex> AND this was before we transitioned, so we can't really tie it to a gendered interaction [18:14:52] Wow that's a lot of backscroll. Reading. [18:17:23] Okay, working backwards for a couple minutes: [18:18:07] 1. I support the branch name, but it's not exactly hard to sync `main` and `master` during the transition. On a self-hosted Git installation, you can literally symlink them until you've had a chance to transition. [18:18:30] * ^alex watches all of the futures resolve [18:18:36] There had been talk about rewriting Factor's entire history to incorporate darcs; this would be an excuse to do that, too, if we wanted. [18:19:24] Since Git is snapshot-based (unlike e.g. Mercurial, which is changeset-based, or Darcs and Pijul, which are patch-based), I think we could even automate the rebases of existing PRs pretty trivially with GitHub Actions; they should Just Work™. [18:19:36] <^alex> oh we totally forgot about pijul! [18:19:44] So has its dev team, unfortunately. [18:20:02] <^alex> yeah that's ... an elephant in the fossil room too [18:20:46] 2. Any given project gets a certain number of "non-mainstream" points to spend. For Factor, I kind of feel like the points we spend are on Factor itself. As long as GitHub is doing the right things, abandoning their social ecosystem seems like a poor move. We really could use their discoverability. [18:21:08] I'd be very nervous that switching to Fossil (or my pet, Mercurial), would just decrease contributions, and not honestly get us much. [18:21:45] In part because: 3. I've been following Fossil since inception. I love the idea, but I have many beefs with the implementation. As does, notably, its designers, because they don't use their own built-in bug tracker or wiki (although they did write their own mailing lists/forums, so...that's interesting) [18:22:12] <^alex> they do use their built in bugtracker and wiki tho [18:22:23] <^alex> the wiki pages are embedded docs [18:22:41] The wiki they're using is the embedded docs. Fossil also has a proper wiki. They do not use the latter. [18:22:55] I have not seen them use their bug tracker for *years*. Let me see if that's actually changed. [18:23:37] I definitely don't see the tab for it, nor any references on the timeline (https://fossil-scm.org/home/timeline); is there somewhere else to look? [18:23:52] I'll clone it locally and see if it's just hidden or something. [18:24:07] This is somewhat academic, though; I'd not be in favor of leaving GitHub at the moment. [18:24:43] <^alex> huhm [18:24:57] <^alex> we appear to be wrong on that point [18:25:08] <^alex> https://fossil-scm.org/home/rptview?rn=2 [18:25:13] They absolutely *used* to use it; you're not misremembering. But it's been deprecated since ca. 2015, unless I'm misremembering. [18:25:14] <^alex> oh hold up [18:25:52] <^alex> https://fossil-scm.org/home/timeline?y=t might have to log in [18:26:01] Hmm, yeah, looks like they hid it, but are using it again. [18:26:08] Okay, I'm wrong, you're right. Glad to see it's getting dogfooded again. [18:26:54] Well, hmm. ^alex it's not getting *heavily* used; four tickets have been adjusted this year, only one last year, three in 2018. [18:27:03] So I'd say it's still in heavy disuse, but less so than I thought. [18:27:03] <^alex> i mean [18:27:32] <^alex> it's academic, we're not gonna flip tables if it doesn't go our way [18:35:09] Noted. And I mentioned this in a PM, but for anyone reading backscroll, I just love DVCSes, contributed a lot to Mercurial, and have even though multiple times of writing one in Factor. I know I come off strong sometimes, but I just love this topic. [18:35:31] ^alex: Do you remember the Apache-licensed Fossil ideological clone BTW? It was called Vault or Valium or somehting. [18:36:02] ...I literally just discovered I exist as a Marvel character. Interesting. [18:37:55] Veracity. [18:38:08] http://veracity-scm.com/ [18:38:15] We should rewrite that in Factor. (: [18:38:37] <^alex> hahah [18:39:00] <^alex> we remember encountering that... once [18:39:18] <^alex> we have considered making a factor gui to control a Fossil with the json interface [18:39:23] <^alex> because We Hate The Web [18:56:36] erg: I am FINALLY getting to this. [18:56:43] Sorry; bambino would NOT take a damn nap. [18:56:46] `html5` branch? [18:57:16] ...why is this reloading half the vocabs [18:57:43] erg: I can't `USE: html5` on `master` with your branch; do I need to fully rebootstrap? [18:59:01] `>>temporary-buffer-attribute` appears to be the problematic word; digging. [18:59:24] And that's fully inside the vocab, which makes me wonder if this depends on your parser improvements. [18:59:51] Yup. Halp? [19:00:25] i pushed a fix for that already [19:00:54] html5 branch, USE: html5, look in html5-tests.factor for some example code [19:02:53] i also force pushed. maybe i shouldnt have done that [19:03:25] git fetch --all && git reset --hard origin/html5 [19:03:40] stuff like that. it should be 8 patches ahead of main branch [19:05:48] i was trying to see if i got named-characters working. my example was & and it output as "&" which made me think the temporary-buffer was getting truncated. in reality it is correct and i picked a dumb named entity to test with [19:08:49] OkAy. Retrying. [19:09:39] origin sounds like the patriarchy. we should rename it to something else [19:11:53] <^alex> we used upstream [19:12:04] <^alex> :) [19:12:26] <^alex> `default` and `upstream` seem nice, tbqh [19:12:38] <^alex> but we're hyperlexic [19:13:43] I'm really okay with `origin` honestly [19:13:46] <^alex> me too [19:14:05] <^alex> changing _that_ to default would be something we'd propose at upstream [19:14:08] <^alex> (git) [19:14:11] dumb joke :) just waiting for bmps to say it's working [19:14:19] Wait one but I am checking. [19:14:42] Had to do a hard reset because you force-pushed, AFAICT. [19:14:45] ...oh wait and you said that. [19:15:09] i can force-push if i want to, it's MY branch [19:15:14] XD [19:15:30] <^alex> while we're here [19:15:34] i think i wont force-push again to any of the working branches. my bad [19:15:35] ^alex: This is what Mercurial changeset evolution explicitly solves [19:15:36] <^alex> in build,sh: $ECHO " update-boot-image - get the boot image for the current branch of for master" [19:15:45] <^alex> what is that supposed to say? [19:15:52] Git has a weird variant of it they're exploring that abuses the living snot out of annotated tags to achieve a similar result, but...very excitedly [19:15:58] <^alex> can't parse thet tail end [19:16:07] ^alex: "get the boot image that corresponds to `master`" [19:16:19] Or was built with/can be used by `master` [19:16:22] <^alex> gotcha [19:16:49] <^alex> suggesting: $ECHO " update-boot-image - get the latest boot image from the `main` branch" [19:17:11] LOL, erg, fun fact: because APFS case-folders, me errantly typing "USE: Html5" works...until it doesn't. [19:17:51] ^alex: it's acutally just "get the latest boot image for the current branch". i fixed it, thanks for the report [19:18:01] bmps: oops haha [19:18:52] ^alex: build.sh assumed the branch was master for awhile because all development happened on master [19:19:31] <^alex> cool :3 [19:22:29] bmps: so any unimplemented|unimplemented* needs fixing, the error handling needs to allow corrections instead of throwing, and the DOM needs to build [19:31:07] Noted, looking. [19:31:14] I've got about an hour I can throw at this right now. [19:31:56] cool. priority might be building the dom [19:32:22] up to you, just thrilled you will even look at it :) [19:32:38] Let me at least read through/grok tests, and then maybe I can take a stab at a couple. [19:32:46] That's about the max I can possibly imagine doing by 16:30. [19:36:18] there are no tests muahaha [19:57:58] Yeah, I realized that (I had had higher hopes for `html5-tests.factor` :-p) and am now just reading code. [19:58:23] You do technically kinda sorta have one test. [19:58:25] Sorta. [19:58:56] I will note BTW erg that 170 lines of `DEFER:` is a good argument for your parser work, even though I'm a bit ambivalent about two-phase compilers in a Forth. [19:59:11] it's basically just the state machine from the url at the top. you can change some code and run parse-html5 on some input text. if you like what you see, commit it. [19:59:39] i got tired of states referencing each other out of order [19:59:55] Sorry, to be 100% clear, I am not critiquing your code with that comment. [20:00:21] i understand [20:00:27] Just reading right now with your code in one window and the HTML5 spec in the other until it starts clicking. [20:03:51] wow. my real estate friend is messaging me a listing and she said "primary bedroom, we don't say master any more" [20:04:08] when the world wants to solve racism, we do it! [20:07:14] <^alex> baby steps [20:07:41] <^alex> we can usually find more accurate terminology [20:09:31] it's not racism either..it's like...hm [20:09:33] <^alex> this was A Conversation that needed to be had, but not the last [20:09:38] <^alex> structural oppression [20:09:43] ^ [20:09:53] <^alex> covert abuse perpetuated by nobody and everyone simultaneously [20:10:01] https://github.com/factor/factor/blob/html5/basis/html5/html5.factor [20:10:06] here's the monstrosity that bmp's looking at [20:10:10] <^alex> one of those maddening things to describe because it's almost intangible [20:11:16] <^alex> erg, we've been pondering the idea of a language with first-class state machines in the syntax [20:11:28] <^alex> but we're not quite at a point to make it concrete [20:17:43] i think this could be cleaned up. you see some structure when you leave all the boilerplate in [20:36:15] erg: Okay. So, I think I get how to extend this and I get what you're doing. [20:36:22] That's as far as I got; I need to go wake up my kiddo. [20:36:42] This is actually quite clean, once I got my head to start reading in Factor instead of translating it to something else. [20:36:59] sleep now https://www.youtube.com/watch?v=R5sQnfHDNRg [20:37:01] The HTML5 spec state machine is...bad. [20:37:14] that's how you put him down right? how do you wake him up? [20:37:44] bmps: cool. it's better than a lot of RFCs which hide everything useful in formalities [20:37:46] Oh I give him 1 liters of ketamin. [20:38:19] erg: I agree; just, there's a lot to chew through, and I'm frequently staring at the ceiling trying to figure out/remember what browser quirk they're aiming at. [20:38:19] ooh i have one for that too https://www.youtube.com/watch?v=DRfidJNts6U [20:38:49] What the actual fuck did you just attempt to download to my eyeballs. [20:38:53] haha [20:39:08] dont get hacked [20:40:31] S.N.O.W.C.R.A.S.H. [20:40:47] <^alex> oh are you people sending cognitive hazards to each other unbidden now? good [20:41:34] I mean, what counts as cognitive hazards can be a bit variable. https://www.youtube.com/watch?v=3q7ExHaKt2M might qualify [20:42:45] But https://www.youtube.com/watch?v=5WTkJHHF4B4 is one I've been enjoying lately and that's more on topic [20:46:25] bmps: lol the friends thing. i sent to my sister [20:46:45] I absolutely love Postmodern Jukebox, but that particular video of theirs is more-or-less a Rickroll. [20:47:08] * bmps is now known as bmp [20:47:17] bmp: no longer a we? [20:47:23] LOL [20:47:41] I'm in the middle of changing my name, but I'm a bit lazy and my triggers in this channel are all still "bmp" [20:47:59] Not a "we"; my wife and I are just both hyphenating our names to match our son. [20:49:26] Huh, I didn't realize we had a NixOS package def in the root. [20:49:29] Interesting. [20:49:40] Beginning last October. [20:49:40] it needs some work too. if you run nixos [20:49:55] i put a vm together but didnt commit much (anything?) [20:50:05] focus on the goal: html5 :p [20:50:11] I like what NixOS is trying to achieve, but I don't like NixOS. That's way off topic and my complaints are pretty specific, but a quick tl;dr is I'm keeping an eye on Guix and otherwise... [20:50:13] LOL yeah I'm on board. :) [20:50:43] Anyway, gotta go to wake bambino up; back Sunday or sooner. [20:50:49] cheers! [20:51:11] I think I can indeed contribute to the parser though, erg ; despite your protestations, I get what you're doing here and I think it makes sense. [20:54:52] i've used guix [20:54:57] it's sadly a lot worse [20:57:51] I know, but I'm more optimistic in the medium-to-long term about a Scheme backing the concept. [20:57:54] I may be wrong. [20:58:34] At the moment, I find both more trouble than their worth; the closest practical variant in the space, very much IMVHO, is Fedora Silverblue, which notably has a very different approach. [20:58:42] s/their/they're [20:58:51] ...well, honestly, either, now that I think about it. [20:59:31] bmp: yeah the issue is not the scheme, i like scheme [20:59:36] it's just that it's so much more verbose [20:59:52] and the package definitions are a mess [21:00:02] there's tons of 20000 line files everywhere [21:00:05] Right. I'm just...that's very much Scheme's wheelhouse. [21:00:18] 20k files don't bug me in, I dunno, most FORTHs, for example. [21:00:27] But they'd cause me to shit my pants and same-day quit in JavaScript. [21:00:56] Guix is somewhere in between. Some of the verbosity is just being explicit; some is self-inflicted. But cleaning that up through macros is a very Scheme approach. [21:01:02] that's why they made typescript [21:01:03] So I'm less worried about the current status than where it coudl get to. [21:01:47] bmp: no, that's not the kind of verbosity i mean [21:01:48] MS made TypeScript because they shat into a turbofan hanging over the ES4 spec and then realized a decade later they kinda needed that spec, so then they reinvented the whole damn thing from base principles. Better, for once, which was nice, but a bit beside the point. [21:01:53] And this is coming from someone who likes TypeScript. [21:01:58] i was trying to write a package for discord a bit ago [21:02:13] the unfinished package is 3x longer than the finished nix equivalent [22:20:11] <^alex> bmp, loooool [22:21:03] <^alex> the http parser nailed into the tcl/network thing was a pair of 10,000-line files :) [22:21:29] <^alex> one for the 'client' and one for the 'server' [23:01:07] * ephe_meral [ephe_meral!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has quit (Ping timeout: 244 seconds).