[02:26:16] * MDude is now known as MDream [03:12:49] * jtimon [jtimon!~quassel@199.31.134.37.dynamic.jazztel.es] has quit (Ping timeout: 248 seconds). [05:28:16] * jlewis [jlewis!~jlewis@unaffiliated/jordanlewis] has quit (Ping timeout: 260 seconds). [07:40:50] * MDream [MDream!~MDude@pa-67-234-100-233.dhcp.embarqhsd.net] has quit (Ping timeout: 255 seconds). [12:45:19] * madmalik [madmalik!uid13697@gateway/web/irccloud.com/x-djvdntkfqnfaawgc] has joined the channel. [12:52:33] * MDude [MDude!~MDude@pa-67-234-100-233.dhcp.embarqhsd.net] has joined the channel. [12:57:53] * jtimon [jtimon!~quassel@199.31.134.37.dynamic.jazztel.es] has joined the channel. [14:34:27] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98627.dyn.optonline.net] has joined the channel. [14:36:33] * Sgeo [Sgeo!~Sgeo@ool-18b98627.dyn.optonline.net] has quit (Ping timeout: 248 seconds). [15:41:22] * jtimon [jtimon!~quassel@199.31.134.37.dynamic.jazztel.es] has quit (Ping timeout: 260 seconds). [15:42:19] ooh, no troll yesterday? [15:42:20] so good [16:40:00] * jlewis [jlewis!~jlewis@unaffiliated/jordanlewis] has joined the channel. [17:46:43] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has quit. [18:15:38] hi folks! i wanted to experiment with a little concatenative functional language and was looking for a simple stack based vm to target - is there any recommendable one? [18:17:28] (i'm asking since i had the feeling that that might be easier than building on asm (or c) directly - i'm not so familiar with low level programming) [18:20:02] well... you could build a syntax on top of factor ;) [18:20:27] ephe_meral: How about threaded code? https://en.wikipedia.org/wiki/Threaded_code [18:20:42] It's a simple technique. [18:20:58] an' yeah, that's the usual forth implementation technique [18:21:12] maybe look to Jonesforth for inspiration? [18:26:16] yeah thanks, i was hoping there was some sort of risc stack vm already, so its easy to emit bytecode in any higher level language of my choice [18:27:26] i've seen jonesforth but didnt go through the code in detail, and i dont really know how factor works under the hood [18:27:40] well i mean. there's a lot of stack-based VMs out there? they're just for other languages? [18:27:53] like, the python VM, the Java VM, etc [18:28:09] yeah like those [18:28:46] i'm not sure how complex their instructions are though, but yeah that was my starting point [18:28:58] *their instruction sets [18:30:06] so i get the feeling that there is no default go-to experimental simplistic vm like that... [18:30:30] as far as i know, no [18:30:44] Why not just generate threaded code as C? Then it's readable, and you can even compile it to something that will outperform most VMs. [18:31:28] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has joined the channel. [18:31:51] thats because i'm not really familiar with c and it would be quite a pain :D [18:31:58] I don't understand the fascination with VMs. They are just interpreters for a compact language. [18:32:19] but i guess i wont get around it [18:32:21] so your options are target another VM [18:32:25] or write yr own [18:32:28] ephe_meral: Are you familiar with any particular byte code? [18:32:38] hackerfoo: nope [18:32:56] i never worked with bytecode directly [18:34:09] but yeah, bascially that compact language is the key - to build ontop of that already makes it easier to focus on the actual language that i wanted to experiment with [18:34:51] Anyway, you can start by simply listing the stack code source, so something like `dup 2 *` becomes `dup(); push(2); time();`. [18:35:49] true [18:36:02] or write standard c [18:36:30] okay thanks anyway, thats what i'm gonna do then [18:36:36] Generating efficient C is trickier. [18:37:25] i mean c as a base for either a simple vm, or as the actual interpreter [18:37:41] i really dislike c :D [18:38:30] ephe_meral: You don't have to use C. You can use the same technique in about any language. [18:39:32] I suggest using the language with which you are most familiar. [19:12:18] * jtimon [jtimon!~quassel@199.31.134.37.dynamic.jazztel.es] has joined the channel. [19:31:10] hackerfoo: thats totally true... i was thinking c because it seemed stupid to build a base system (like a vm in this case) ontop of another high-level, hardware abstracted environment [19:31:27] but for the sake of experimenting it doesnt really matter [19:31:48] I just want to write more Joy [19:36:43] shapr: are there any interesting current projects written in joy? it seemed rather orphaned [19:36:53] or, forgotten [19:37:58] I still remember! [19:38:19] I started my own flavor, "Secret Joy" but it's still secret. [19:46:52] a pity [19:47:07] - that it's a secret, that is [20:22:24] shapr: What do you like about Joy? [20:23:13] stack based, postfix, legal programs at lexical boundaries, metaprogramming by having instructions in lists [20:23:21] hackerfoo: do you know of other languages that have all that? [20:23:54] shapr: Mine does, mostly. [20:24:11] popr? [20:24:32] In the early version, even program fragments with mismatched brackets we valid programs, but that was silly. [20:24:41] *were [20:24:44] Yes, Popr. [20:26:14] I had to restrict the language quite a bit from what was allowed by Joy in order to achieve efficient compilation, but it led to a much better designed language IMHO. [20:26:22] ok, now you have my interest [20:26:42] Link: https://github.com/HackerFoo/poprc [20:26:49] yup, reading that now [20:27:04] I tried the online version for a minute or so [20:27:16] looks close to Joy at first glance, I've not dug in [20:27:35] Don't worry about the inactivity. I'm working on a large change right now, and I don't want to break the build. [20:27:52] branch? [20:28:47] shapr: I have a branch on another machine, but I don't like publishing changes that I'm going to rebase anyway. [20:29:13] ah [22:21:16] * madmalik [madmalik!uid13697@gateway/web/irccloud.com/x-djvdntkfqnfaawgc] has quit (Quit: Connection closed for inactivity).