00:00:00 --- log: started retro/12.04.23 00:27:06 --- join: impomatic (~digital_w@87.115.148.53) joined #retro 03:19:51 --- quit: jyfl987 (Quit: leaving) 04:13:09 --- quit: impomatic (Quit: impomatic) 04:40:00 --- quit: karswell_ (Ping timeout: 240 seconds) 04:47:29 --- join: karswell_ (~coat@93-97-29-243.zone5.bethere.co.uk) joined #retro 08:04:14 https://gist.github.com/2471486 (start of parable vm specification) 09:31:39 crc: interesting. 09:38:00 is there a difference between integer_push and character_push? 10:02:49 --- join: __tthomas__ (~Owner@24.130.7.34) joined #retro 10:30:39 --- join: Mat2 (5b4085c5@gateway/web/freenode/ip.91.64.133.197) joined #retro 10:30:48 hello @ all 10:32:35 crc: interesting design but I don't understand why you reserve 1000 cells for each slot. I assume you need space for some kind of inline expansion ? 10:32:57 <__tthomas__> hey Mat2 10:33:05 hi tthomas 10:33:36 <__tthomas__> what design is that? 10:33:46 crc's new vm design 10:34:03 <__tthomas__> ah, haven't seen it yet.. been super busy.. 10:34:18 https://gist.github.com/2471486 10:34:21 look here 10:35:08 by the wy vm coding goes wel here, have a rudimentary two path compiler to native code 10:35:25 way I mean 10:35:29 and well 10:36:10 and performance tests for Pentium IV are very good 10:36:51 shows nice speed-up 10:38:42 <__tthomas__> cool, I have been rethinking a few things too.. the console stuff can all be done remotely which lightens need for nonportable console code.. putty has pretty good support, though I am not sure if it supports per character, maybe in raw mode vs. telnet.. 10:40:08 hmm, and so the difference between ANSI capable character output and ncurses ist ? 10:40:19 <__tthomas__> though console stuff in C# and curses is pretty dead simple.. In python it isn't quite as portable, have to use either curses on linux or win32 console on windows.. not sure what macosx and bsd's support with python out of the box is like.. 10:41:03 <__tthomas__> not all consoles support ANSI escape sequences, especially if use a gui for console window instead of a true console.. 10:41:19 a ok, I forgot windows 10:41:44 <__tthomas__> its not just windows, gtk+, qt, tk, javascript.. 10:43:08 I think there must be a simple, platform independent lib out there... 10:43:11 <__tthomas__> many languages have nothing for console other than print and input... 10:44:07 <__tthomas__> there are tons, but most portable is putty or telnet over sockets.. 10:46:04 putty seem to emulate all kind of terminals I know of so it seems a good choice 10:47:03 (haven't use it as terminal-emualator for executing shell before) 10:47:17 <__tthomas__> yeah, I need to play with it more.. I use it for SSH terminals all the time.. 10:48:19 <__tthomas__> I think I have portable way to handle sockets almost down.. reading about how nodejs does sockets helped a lot, since it does it the strangest way.. 10:49:52 that does not wonder me 10:50:48 <__tthomas__> it is 100% event driven, so sockets register a callback on read.. I am doing it by checking if socket is readable then calling read, so I think I can make it look the same.. 10:53:22 Mat2: the space per slote is purely arbitrary at this point 10:54:09 ok 10:54:56 <__tthomas__> it would be easy to compact the slots I would think.. 10:55:12 crc: is there any source avariable ? 10:56:13 not yet 10:56:55 tthomas: 16 cells per slot would be enough I suggest 10:59:46 I haven't made anything functional enough to show yet 11:00:38 I have test some flag settings for ngaro and found gcc compiles the sources with -O6 to faster code than the assembly version so don't think a hand-coded assembler version for 64bit makes sense 11:00:38 <__tthomas__> I think making them huge for starting with then having option to compact them would be good compromise, then if code size is that important would just make a small table mapping slots to locations.. Otherwise leave it be.. 11:02:34 the slot approach is nice, gives me some ideas for dadaflow compilation right now 11:02:41 sorry mean dataflow 11:04:23 <__tthomas__> Yeah, I like the string/char vs. integer opcodes.. Makes things like having dedicated byte array for strings and raw bytes possible.. 11:08:55 <__tthomas__> interesting, no jumps, only calls.. 11:10:22 <__tthomas__> is the return stack gone? 11:12:36 I will host my vm sources thanks launchpad this night if I get these farn e-mail from canonical 11:12:51 __tthomas__: I'm not sure it it'll be accessible 11:13:10 <__tthomas__> heh.. crc well with sip,dip, bi, tri, not sure if it is needed.. 11:13:23 this is still just some early draft work 11:13:33 expect a lot of changes over the next week or two 11:14:05 sip, dip, bi, and tri are useful. the other forms can be implemented in higher level code easily enough 11:14:23 <__tthomas__> crc looks promising, a few things not sure how would be done, like loops.. 11:16:54 there will probably be opcodes for looping 11:17:28 (retro's loops are highly inefficient; vm-level support would help this greatly) 11:18:00 <__tthomas__> generators are amazing for looping, but I have no idea how generator vm support would work.. 11:20:55 crc: the loop instruction is code-effective but impementation decrease performance. My vm caches up to 16 instructions in a register and together with conditional rep-like instructions you get looping for free 11:21:44 something similar is possible if you preload slot values 11:22:24 <__tthomas__> One thing that would be nice would be an error stack or register, this would be great for things like EOF, NOT_FOUND.. 11:22:51 <__tthomas__> instead of using arbitrary numbers on top of stack.. 11:23:31 --- join: impomatic (~digital_w@87.115.148.53) joined #retro 11:34:20 tthomas: that's always a good idea 11:34:48 or using of a virtual condition-code register 11:35:28 docl: the stack will be type aware (for the basic types supported by parable), so the different pushes are indeed different 11:43:28 cool 11:57:57 crc: let me know if you design is matured?, I will code an assembly version 11:59:10 sorry if my english is harsh, to much language mix of german, dansk, gaelic and swedish 11:59:17 at moment 12:05:58 <__tthomas__> my grammar just sucks.. :) 12:08:59 La grammaire est souvent difficile 12:09:49 <__tthomas__> I was never requred to take a foreign language, though I wish I would have taken Spanish since I moved to California.. 12:11:32 I think spanish would be helpful but don't know before, this language is prefered in California 12:12:03 <__tthomas__> California used to be part of Mexico so it is spoken very commonly here.. 12:12:15 <__tthomas__> USA doesn't actually have an official language 12:12:16 good to know 12:15:13 <__tthomas__> I think coroutines are doable in forth, would require functions to have private stack which is accessible to words called from within coroutine.. 12:15:42 <__tthomas__> sorry was just thinking of how generators could be implemented.. 12:16:44 no problem 12:17:02 there exist some nice solutions for corroutines in forth 12:17:17 both at vm-level and in ANSI forth 12:17:47 <__tthomas__> yeah, I was thinking of forth83 implementation of multitasking, could be done within word itself.. 12:17:55 *Mat2 would prefer the vm approach* 12:18:42 <__tthomas__> it is a tradeoff, think both have their uses.. 12:24:14 for retro coroutines can be implemented with a simple cooperative multitasker (call the word task or similar) 12:25:31 <__tthomas__> I have seen code running two words by swapping address on return stack 12:28:46 you will need a way to save and load the vm state (data and address stack pointer etc.) 12:29:07 that's why I would prefer a vm internal solution 12:29:39 <__tthomas__> yeah, I think in case I am talking about, always very careful of not leaving anything on stack when switching words and keeping persistent information in variables.. 12:36:24 then look at some fig sources for a simple tasker 12:37:32 <__tthomas__> so are you talking co-routines or vm support for threading? 12:39:57 these old cooperative multitasker don't rely on stack states 12:40:27 but enforce the programmer to balancing the stack 12:41:00 if you wait a minute, I will lokk at some source here 12:42:24 ok, multitasking is enabled by indirect threading of vectored words 12:43:39 whereby each word has the possibility to alter it's next called task 12:44:10 alter the address of the next called task 12:46:03 <__tthomas__> Hmm.. I was thinking just compile a jump location at beginning so next time word is called jumps to new section.. 12:50:30 ok, but how do you implement priorities ? 12:50:47 <__tthomas__> priorities? in coroutines? 12:51:40 <__tthomas__> a coroutine is just a function that maintains state.. 12:56:19 ok wrong description, call it thread 12:57:19 <__tthomas__> yeah, threads are a whole other can of worms.. I tend to avoid them, unless running round robin scheduler, the control flow is unpredictable and difficult to debug.. 13:02:15 <__tthomas__> though I think your idea of a word revectoring itself when called would be a pretty simple and workable implementation... 13:02:34 I think so 13:04:54 can you please take a look at my description for spelling errors: https://launchpad.net/navm 13:07:29 <__tthomas__> No spelling mistakes.. Second sentences in first and second paragraph could be broken up.. They are a bit long for a single sentence.. 13:08:23 garmanism ;) 13:08:32 germanism I mean 13:08:35 thanks 13:10:01 <__tthomas__> I never understood why runon sentences are bad, except maybe it makes subject a bit harder to identify 13:12:32 you can combine emotional, logical and descriptive information from within the same word in german so translating from german to english tend to be resulting in runoff sentences 13:12:53 (if i understand correctly) 13:13:48 ah I forget some metaphysical conceptions rarely translatable to english 13:19:49 some translations from google-translate are pure fun 13:20:25 wisdom-of-day: World band seems to be not alone in the moonlight 13:20:29 *lol* 13:22:21 <__tthomas__> 1 1 10 range -> returns a quote that everytime you call it leaves a number on the stack from 1 to 10 incrementing by 1, when gets to 11 puts 0 on stack instead.. This is type of thing would use coroutines/generator for.. or function that every time you call it alternates between 0 and 1 on stack for simulating a clock.. 13:23:19 <__tthomas__> I have been messing a bit with Natural Language Toolkit for python, does pretty well for translating if you only do it once, but translate back and forth over and over and meaning begins to change quite a bit.. 13:24:39 I will try it out 13:28:31 "Weltenbande" means all aspects of mankind and nature with empasis on hopeful evolution, the translation seem to strugle with it and translate this word to World band (whatever this means in engish) 13:28:35 english 13:29:10 <__tthomas__> sounds like humanism 13:29:27 <__tthomas__> which was reaction to nihilism 13:33:59 signaling one and zero: Just shift left if tos = 1 and shift right if tos = 2 one bit while interpret 1=0 and 2=1 13:35:11 <__tthomas__> yeah, could do it with on off and variable as well.. 14:04:10 --- part: impomatic left #retro 14:21:56 I will get some sleep, ciao 14:22:15 --- quit: Mat2 (Quit: Page closed) 16:46:14 --- join: Kumul (~Kumul@cvx-ppp-66-50-147-89.coqui.net) joined #retro 20:28:38 --- join: jyfl987 (~jyf@unaffiliated/yunfan) joined #retro 20:44:26 --- quit: jyfl987 (Ping timeout: 246 seconds) 20:44:34 --- join: jyfl987 (~jyf@unaffiliated/yunfan) joined #retro 23:01:53 --- quit: Kumul (Quit: gone) 23:56:22 --- quit: __tthomas__ (Ping timeout: 260 seconds) 23:59:59 --- log: ended retro/12.04.23