[00:04:45] <^alex> idk, we haven't bothered him much about factor [00:09:10] <^alex> we _do_ appreciate the ability to make standalone executables [00:31:58] +1 [00:32:33] I use it for git hooks. [00:32:48] (post-receive) [00:32:58] and trac-admin [00:35:29] if I push many commits, it only cares about the last commit, so if I have a commit message that has "Closes #n." then it won't be closed as it is not the latest commit [00:35:55] I have written some Factor code to fix this [00:36:43] idk if there's a way to get the list of refs (hashes) that I just pushed (that I can use in hooks/post-receive) [00:36:57] instead of getting the latest one via "git rev-parse master+ [00:37:03] " [00:37:41] I can use --date=local and --max-age but that's not exactly a good way to go about it [00:38:49] so I just put all refs into the db, and when I push, all the new hashes that are not in the db is what I pushed, I "loop" through them and run trac-admin on them and insert into the db [00:39:42] it also avoids duplicates [00:40:01] and the reason I wanted tuples like { 1 2 3 } is because those will represent the IDs of tickets [00:40:20] and there r cases when two branches close the same tickets [00:40:49] although i won't use this "feature" yet, I like to see that another branch attempted to close the ticket (which is shown in the timeline properly etc) [00:41:08] so I think it's a good thing to have, might get rid of { 1 2 3 } altogether [00:42:03] this is my first working factor code [00:42:49] the previous one was unfinished ed25519, I only have equal, ge, times19, and times38 implemented so far so it's really nothing [00:43:14] I was thinking of using TYPED [00:43:26] supercop-*/crypto_sign/ed25519/ref is the ref [00:43:28] I got stuff like [00:43:36] : equal ( x y -- z ) bitxor 1 w- -31 shift abs ; inline foldable flushable [00:43:39] : ge ( x y -- z ) w- -31 shift 1 bitxor ; inline foldable flushable [00:43:40] etc [00:43:58] and I have unit tests! [00:44:04] for all words [00:44:20] { 1 } [ -4294967295 -4294967295 equal ] unit-test [00:44:20] { 1 } [ -4294967296 -4294967296 equal ] unit-test [00:44:22] and so forth [00:45:00] then I got gcrypt, gpg-error, libgpgrt, and otr [00:45:30] I'm more or less finished with gcrypt's ffi.factor [00:45:57] CONSTANT: POLY1305_STATE_ALIGNMENT $[ avx? [ 32 ] [ sse2? [ 16 ] [ 8 ] if ] if ] [00:46:00] CONSTANT: POLY1305_ALIGNED_STATESIZE flags{ POLY1305_LARGEST_STATESIZE POLY1305_STATE_ALIGNMENT + } [00:46:05] I like factor for stuff like this [00:46:59] or creating aligned-16-char that can be used in structs [00:47:05] (using << >>) [00:47:11] it's pretty cool [00:47:33] $[ ] and << >> are neat [00:47:58] and flags{ [00:50:11] seems like otr is almost finished too, just ran into some issues due to my incompetency :D [00:50:57] if anyone is interested I can give you the code I got so you won't have to start from scratch but yeah [00:53:59] I wanna implement blake2 and blake4 [00:54:02] blake3* [00:55:12] in pure factor [00:56:02] sorry for my monologues lol [00:56:23] you can comment on anything I posted (or not at all) [00:57:02] and I suppose the channel would be quiet if it weren't for these :p [00:57:26] any news on the new Listener btw? [00:58:42] no news on https://github.com/factor/factor/issues/2193 :( [00:59:04] (showing the value of ENUM members) [00:59:52] mrjbq7 got close to it, but it breaks some stuff [01:13:31] it worked so well though! Maybe I could get back to that one and fix [03:06:11] ptrkriz: I usually live within the Factor environment when I use it, and use the REPL to interact with the stuff I develop. I don't really distribute executables. [03:07:00] ptrkriz: he got a job where he wasn't allowed to work on other projects [03:59:26] :( [03:59:33] goddamit apple [04:04:02] sad [04:04:37] maybe he should do it under a pseudonym :D [04:05:32] are there multiline comments currently in factor? [04:05:57] it shouldnt be too easy to add I suppose [04:06:00] maybe !- -! or smth [04:06:01] idk [04:08:13] ptrkriz: see https://docs.factorcode.org/content/word-__slash____star__%2Cmultiline.html [04:12:11] <^alex> lol [04:13:49] <^alex> ptrkriz, so this is the thing. being a good Factor programmer necessarily involves driving at least one person _literally_ insane. [04:14:13] <^alex> in our case, that person was us, and we managed the insanity well [04:15:53] <^alex> but our girlfriend would have been much happier if we'd've picked up the HP-48 a few years earlier, yanno? [04:18:36] how the heck did I miss the multiline comment [04:18:37] lol [04:18:40] thanks :D [04:19:32] emacs.factor doesn't support it! [04:20:31] can we make this part of the lang? [04:20:41] or should we [04:27:55] > Factor is definitely not that small (there's a full optimizing compiler and a giant standard library…) and doesn't run on any embedded platforms. It's more like C# than like Forth in terms of usage scenarios. [04:27:59] huh wut [04:28:30] what platforms does it support btw? [04:31:50] <^alex> x86, ARM [04:32:14] <^alex> ARM is the trans-est of processors lol [04:33:04] <^alex> we keep getting our transgender processor icons mixed up - lynn conway and sophie wilson were both transgender [04:33:27] <^alex> lynn conway made superscalar architecture [04:33:41] <^alex> sophie wilson designed the ARM [04:33:43] <^alex> aiui [05:08:14] let's say I have this https://slexy.org/view/s2fSBeAW0R [05:08:33] how do I get { "baz" "qux" } ? [05:08:38] diff and without doesn't seem to work [05:08:41] it prints { } :/ [05:08:46] I mean I get { } [05:08:53] intersect works... [05:08:57] but not diff, idk why [05:08:59] ideas? [05:14:22] I seem to get what I want with "drop-prefix", but idk why it returns slice1 and slice2 [05:14:42] I could of course drop the first slice [05:14:57] but I'm sure there exists a way to only get the second [05:22:16] https://slexy.org/view/s2fkIadbVc [05:22:21] sorry, full code that you can test [05:23:08] I want { T{ ref { hash "baz" } } T{ ref { hash "qux" } } } as output [05:23:28] { ~ref~ ~ref~ } where the hash is "baz" and "qux" respectively :p [05:26:38] there are two T{'s, I want the ones that don't exist in both of them... "foo" and "bar" exists in both, so I want "baz" and "qux" which only exists in one of em [09:38:13] * Sgeo [Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net] has quit (Read error: Connection reset by peer). [11:52:39] * Hotbees [Hotbees!sid234392@gateway/web/irccloud.com/x-onscbgexzboiqlfu] has quit. [14:03:10] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has joined the channel. [15:38:57] ah diff doesnt work because it must have the same number of elements [15:39:00] that's not good [15:56:29] or it seems like, anyway, not the best way to go about it I guess [15:56:39] I'll use hash>>, each, and member? [15:56:41] I think [17:27:46] * tgunr [tgunr!~davec@dsl-dhcp-conrtxxahre-76-164-103-181.consolidated.net] has joined the channel. [17:52:28] * Sgeo [Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net] has joined the channel. [17:54:00] * tgunr [tgunr!~davec@dsl-dhcp-conrtxxahre-76-164-103-181.consolidated.net] has quit (Ping timeout: 256 seconds). [17:57:21] * tgunr [tgunr!~davec@dsl-dhcp-conrtxxahre-76-164-103-181.consolidated.net] has joined the channel. [19:40:45] * tgunr [tgunr!~davec@dsl-dhcp-conrtxxahre-76-164-103-181.consolidated.net] has quit (Ping timeout: 240 seconds). [19:43:17] * tgunr [tgunr!~davec@dsl-dhcp-conrtxxahre-76-164-103-181.consolidated.net] has joined the channel. [20:27:45] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has quit. [20:33:47] * tgunr [tgunr!~davec@dsl-dhcp-conrtxxahre-76-164-103-181.consolidated.net] has quit (Ping timeout: 240 seconds). [20:36:12] * tgunr [tgunr!~davec@dsl-dhcp-conrtxxahre-76-164-103-181.consolidated.net] has joined the channel. [22:07:30] * ptrkriz [ptrkriz!~ptrkriz@81.4.110.225] has quit (Remote host closed the connection). [22:08:17] * ptrkriz [ptrkriz!~ptrkriz@81.4.110.225] has joined the channel. [23:00:24] oh, or just >hash-set then diff [23:01:17] in case of T{ foo f "bar" } [23:01:21] how do I get "bar"? [23:02:47] cuz it doesnt keep the slot name [23:03:04] so idk how to access [23:05:49] oh nvm [23:05:52] my bad [23:17:17] how the heck do I get all of the values from a hash-set? [23:17:19] HS{ } [23:20:08] it doesnt seem to implemen anything [23:21:10] I can do array>> and then I get tombstones, no idea what those are, but i dont need them [23:21:13] lol [23:22:16] not sure what to do with an array that has tombstones -.- sigh [23:25:28] ah [23:25:29] members! [23:25:43] okay nice, works [23:47:13] doublec: given that I have select-tuples, how do I get only one slot instead? like "f foo boa select-tuples" returns "{ T{ foo { bar "xxx" } } }" but I only want bar for each of these tuples (so in this case "xxx") [23:49:29] I'll try a couple of things out [23:50:32] f ref boa select-tuples first hash>> . [23:50:34] this prints only 1 [23:50:35] :| [23:50:59] right [23:51:01] okay [23:51:13] do I need to use each here too?