[00:05:01] <^alex> we put 2 annotations on yr paste :) [00:06:05] <^alex> oops, the second one needs a before the ; [00:27:25] * ColonelJ [ColonelJ!~ColonelJ@unaffiliated/colonelj] has quit (Quit: leaving). [00:32:26] <^alex> when dealing with json we've also had good luck using `deep-at`, `values-of` and `map>assoc` in extractor/validator/parser-type functions [00:44:17] * m_hackerfoo [m_hackerfoo!~matrixirc@2001:19f0:ac01:1008:bdf5:b365:489f:d03e] has quit (Ping timeout: 260 seconds). [00:44:52] * HackerFoo [HackerFoo!~hackerfoo@2001:19f0:ac01:1008:bdf5:b365:489f:d03e] has quit (Ping timeout: 260 seconds). [00:57:05] * HackerFoo [HackerFoo!~hackerfoo@144.202.105.23] has joined the channel. [00:57:17] * m_hackerfoo [m_hackerfoo!~matrixirc@144.202.105.23] has joined the channel. [01:18:09] <^alex> one of those is in assocs.extras [01:19:04] * bitmapper [bitmapper!~bitmapper@142.162.167.202] has quit (Ping timeout: 244 seconds). [02:48:34] * rgrinberg [rgrinberg!sid50668@gateway/web/irccloud.com/x-oxnbivnfyfvdkukn] has quit (Read error: Connection reset by peer). [02:49:47] * ullbeking [ullbeking!sid5364@gateway/web/irccloud.com/x-ydlocfabuhweghvr] has quit (Ping timeout: 240 seconds). [02:53:26] * rgrinberg [rgrinberg!sid50668@gateway/web/irccloud.com/x-oohltyfwgggxdrcg] has joined the channel. [02:55:59] * ullbeking [ullbeking!sid5364@gateway/web/irccloud.com/x-qqkyugfmnqlnuuis] has joined the channel. [04:55:07] * Sgeo_ [Sgeo_!~Sgeo@ool-18b982ad.dyn.optonline.net] has joined the channel. [04:58:07] * Sgeo [Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net] has quit (Ping timeout: 240 seconds). [06:03:13] * elioat [elioat!~elioat@yuno.bagel.systems] has quit (Ping timeout: 264 seconds). [06:04:25] * elioat [elioat!~elioat@yuno.bagel.systems] has joined the channel. [06:13:01] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has joined the channel. [06:13:11] whoa, ^alex, thank you so much! [06:17:51] Using "at" annoyed me a lot, because I never had the situation that the key was on the stack and I wanted to provide a hashtable next. of has the natural order. H{ { "key" "val" } } "key" of. really nice! [06:24:44] I spent some time decyphering your last variant without repeating of: "id" "method" "params" [ [ of ] curry ] tri@ tri ; [06:26:28] Very elegant, but I think I prefer the previous version with [ "id" of ] [ "method" of ] [ "params" of ] tri [06:29:10] Also because I don't think the simple case of "offing" all keys will happen often. Either way I learned very useful words through your annotations. :thumbs_up: (tri@, of, curry) [06:41:03] * ephe_meral1 [ephe_meral1!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has joined the channel. [07:12:19] bmps: great to see you too! [07:15:46] bitmapper: yes, it's a difficult problem [07:30:02] why port shen to factor? [07:31:39] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has quit. [07:33:56] Also in what way? So that factor can interpret shen code? [07:34:07] itmuckel: Shen is a language designed to have multiple 'ports' in backend languages. So there are Shen ports for Common Lisp, JavaScript, C, etc. [07:34:53] itmuckel: Shen compiles to a Lisp variant called K-Lambda. Most ports are K-Lambda interpreters, or compile K-Lambda to the native code of the port (Lisp, etc). [07:35:21] itmuckel: Factor makes a great backend for a language implementation with good performance due to the JIT. [07:35:35] itmuckel: See the Smalltalk example in the Factor source [07:36:26] The Self programming language system has a Java->Self compiler example. You can load and execute Java classes in the Self environment. It'd be neat to do an example like that in Factor. [07:39:07] itmuckel: this is a bit about the Smalltalk in Factor https://factor-language.blogspot.com/2009/04/sup-dawg-we-heard-you-like-smalltalk-so.html [07:40:52] itmuckel: this is the Smalltalk parser https://github.com/factor/factor/blob/master/extra/smalltalk/parser/parser.factor [08:16:29] god, the ebnf parser is incredibly awesome :D [08:22:56] itmuckel: here's a bit about the ebnf parser https://bluishcoder.co.nz/2008/04/04/factor-parsing-dsl.html [08:24:37] bitmapper: I wonder if the way the ebnf parser compiles to locals can help with your shen port. It's mentioned in that post above. [08:25:54] doublec: So the goal is to have Shen compile to Factor, so the Factor compiler can use its optimization techniques to make the Shen code run faster? [08:27:13] itmuckel: I think bitmapper's goal is to have a Shen implementation that runs fast due to Factor's JIT'd VM, and have access to all factor's libraries, GUI, etc. [08:33:19] doublec: nice [08:35:44] Anyone of you using a 4k display? Any ideas how to tune the factor tools (listener, browser etc.) to look fine on that size? [08:51:39] * Sgeo_ [Sgeo_!~Sgeo@ool-18b982ad.dyn.optonline.net] has quit (Read error: Connection reset by peer). [08:51:52] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has joined the channel. [08:55:01] Maybe once I'm comfortable with factor, I can look through the source of the UI tools :) [09:34:06] Is there a way to do hot-reload in factor? Like calling "refresh-all" automatically, when file changes have been detected? [09:48:49] * ephe_meral1 [ephe_meral1!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has quit (Ping timeout: 264 seconds). [10:55:26] bmps: The shutdown request works. lol. [11:00:23] bmps: The initialization request is much more sophisticated: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#initialize Here I really need to dig deeper. If I get stuck I'll notify you, but now I should use the weekend to relax my mind a bit. ;) [11:25:12] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has quit. [11:39:50] itmuckel: you can probably hook into this to call refresh-all https://docs.factorcode.org/content/article-io.monitors.html [14:40:30] * ColonelJ [ColonelJ!~ColonelJ@unaffiliated/colonelj] has joined the channel. [14:54:28] <^alex> iirc there is an auto-reload mode [15:09:54] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has joined the channel. [16:41:45] * bitmapper [bitmapper!~bitmapper@142.162.167.202] has joined the channel. [17:04:46] * ephe_meral1 [ephe_meral1!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has joined the channel. [17:26:57] * ephe_meral1 [ephe_meral1!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has quit (Ping timeout: 258 seconds). [17:31:54] <^alex> itmuckel, tasteful use of curry and bi/tri are, imo, key elements of idiomatic Factor [17:37:39] <^alex> very rarely do we use locals in our personal code: http://sprunge.us/lfLm0J?factor f.ex [17:42:48] what is the retain stack? [17:43:54] <^alex> aiui it's one of the 5 stacks in a continuation [17:44:06] <^alex> data, call, retain, name, and catch [17:44:17] <^alex> iirc older forths just had the data and retain stacks [17:44:52] <^alex> and the retain stack held calls in addition to things put there with `r>` [17:53:21] i'm trying to compile to shen to factor, and i'm not sure how to deal with lexical scope [17:53:26] i'd like to not use locals [18:18:58] <^alex> ah [18:24:43] * ephe_meral1 [ephe_meral1!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has joined the channel. [18:35:34] * ephe_meral1 [ephe_meral1!~amnesia@ip5f5bf7d1.dynamic.kabel-deutschland.de] has quit (Ping timeout: 240 seconds). [18:47:32] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has quit. [18:48:54] * ephe_meral1 [ephe_meral1!~amnesia@2a02:8109:8880:2004:9679:ffd7:9736:b625] has joined the channel. [19:15:28] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has joined the channel. [19:30:27] * ephe_meral1 [ephe_meral1!~amnesia@2a02:8109:8880:2004:9679:ffd7:9736:b625] has quit (Ping timeout: 260 seconds). [20:28:18] * ephe_meral1 [ephe_meral1!~amnesia@2a02:8109:8880:2004:9679:ffd7:9736:b625] has joined the channel. [20:30:38] is it possible to get the nth item on the stack? [20:32:57] <^alex> look into the generalized shuffle words [20:33:01] <^alex> `npick` [20:35:57] <^alex> or, possibly, the smart combinators [20:47:27] * ephe_meral1 [ephe_meral1!~amnesia@2a02:8109:8880:2004:9679:ffd7:9736:b625] has quit (Ping timeout: 260 seconds). [21:19:22] * Sgeo [Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net] has joined the channel. [22:46:10] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has quit (Ping timeout: 246 seconds). [22:57:05] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has joined the channel. [23:07:49] * itmuckel [itmuckel!~itmuckel@mue-88-130-56-120.dsl.tropolys.de] has quit.