00:00:00 --- log: started retro/10.02.10 00:26:00 --- join: virl (~virl__@chello062178085149.1.12.vie.surfer.at) joined #retro 01:16:32 --- quit: SimonRC (Ping timeout: 265 seconds) 01:28:56 --- join: SimonRC (~sc@fof.durge.org) joined #retro 05:12:45 docl: thanks 05:14:54 --- join: Mat2 (~5b43e0d7@gateway/web/freenode/x-ffpsfyrlxffgbbdf) joined #retro 05:15:01 hi folks 05:16:35 hi Mat2 05:16:44 hi crc, what's new 05:17:01 Mat2: just working on documentation 05:17:13 waiting for a break in the snow to find out if work is opening today 05:17:36 just like me (snow chaos inclusive) 05:19:28 I have created a second vm for effective handling of direct and indirect threading. It's like the thumb instruction set for ARM an extension to AVM 05:20:11 cool 05:20:32 and now i'm sitting here and will write some documentation... 05:23:26 crc: the servers on assembler are just down 05:23:30 assembla 05:24:47 their git servers appear to be working 05:26:13 hmm, there web interfaces don't 05:26:32 503 Service Unavailable 05:27:48 the hg servers are also working 05:27:54 http://hg.assembla.com/avm works 05:28:31 thanks 05:36:21 ok, there have now a new web interface and where updating there servers 05:55:38 --- quit: Mat2 (Ping timeout: 248 seconds) 06:44:37 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #retro 06:44:48 --- quit: erider (Changing host) 06:44:48 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 06:48:20 brb 06:51:41 i went tio qwork, but weve had no customers 06:51:59 dont know how long I'll stay 06:53:06 --- quit: erider (Ping timeout: 272 seconds) 06:53:33 good news is that i should finish most of thw eordswords in the wiki today 07:11:38 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 07:13:54 hi 07:49:18 --- join: erider_ (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #retro 07:49:30 --- quit: erider_ (Changing host) 07:49:30 --- join: erider_ (~chatzilla@unaffiliated/erider) joined #retro 07:51:22 --- quit: erider (Ping timeout: 272 seconds) 07:51:26 crcz: you at work 07:51:32 --- nick: erider_ -> erider 08:08:51  08:08:57 eridre: yes 08:27:48 --- quit: virl (Remote host closed the connection) 10:00:02 back 10:00:32 crc whats up 10:00:45 I just got home from work 10:01:00 crc how do you pass an IP to a word in forth 10:01:10 IP? 10:02:02 I am trying to figure out how to take the accepted packets on the locally bind port and forward it to a remote host and port 10:02:44 you'll have to read the packet from the local port, store it somewhere, and write the packet contents back out to a differenent port 10:03:34 I have that 10:04:22 create buf 1024 allot 10:04:24 | stack: ( accept+socket -- accept+socket a n ) 10:04:26 : get-packets 10:04:28 dup buf 1024 0 recv buf swap 10:04:30 ; 10:05:25 I need to redirect the buf to another socket that I open 10:06:13 but that is going to be a user level feature to set the local port remote addr remote port to forward to 10:07:14 options: [ local port } [ remote addr ] [ remote port } 10:08:33 so if I had a usages it would look like this: localPort RemoteIP RemotePort set-redirector 10:09:02 you'll need to open a socket to to forward to 10:09:24 5000 192.168.1.4 22 forward-traffic 10:10:10 to be more verbose 0.0.0.0 5000 192.168.1.4 22 forward-traffic 10:10:29 or even 127.0.0.1 5000 192.168.1.4 22 forward-traffic 10:12:32 erider: just as a rough skeleton: http://retroforth.com/paste/?id=1954 10:12:47 hmm, send needs a different name 10:12:52 crc does 100007f translate into 127.0.0.1 10:14:48 I suspect that I might have to use hexadecimal to represent IPs 10:15:08 at least for now to get something functional 10:16:01 : ip->int ( n n n n -- n ) 10:16:01 >r 256 * >r 256 256 * * >r 256 256 * 256 * * r> + r> + r> + ; 10:16:08 127 0 0 1 ip->int 10:16:29 now that is useful thinks 10:16:36 7F00001 10:16:48 7F000001 10:16:51 sorry 10:17:01 that is 127.0.0.1 10:17:04 yes 10:17:18 this function is something I had left over from my earlier network experiments 10:17:39 I have it backwards I was trying to make something like ip->int 10:17:45 but to hex 10:18:43 hex is just a variation in how numbers are parsed/displayed 10:18:49 the in-memory representation is the same 10:20:00 true 10:20:56 crc I wish I got reduce my code to just that stuff you have in that ruff draft :) 10:21:40 your final app will have to be larger 10:21:58 there's a lot of error conditions, etc you'll want to trap/report if this is to see real use 10:26:28 yeah I am moving along 10:36:30 docl: nestable vocabs are in the repo now 10:42:47 global, canvas, editor, and debugger words are covered now 10:42:58 now to start the 'retro' vocabulary... 11:02:20 crc I need a hand on words: get-packets, send-packets, getsock and redirect-to-port 11:02:56 * erider plans to rename words and refactor code onces it is operational 11:03:10 crc have a look please http://retroforth.com/paste/?id=1956 11:05:42 erider: Lport and Rport both set Port? 11:05:56 I want to take the sockid that came from accept and read the packets transmitted from it but I want to create a new socket and forward that data 11:06:55 I made the change in my notes but not my code :( 11:07:35 also "dup to Port" rather than "to Port Port" 11:08:23 it'll accomplish the same thing, and potentially be more efficient (inlining, rather than going through the lookup overhead of invoking a value) 11:09:00 * erider is making the changes 11:11:31 crc will lose those words in the refactoring stage I think 11:11:37 ok 11:12:01 you'll need two 'bind-port' words. one for local, and one for remote. 11:12:30 I need to bind another port? 11:12:39 local and remote 11:12:44 two sockets 11:12:51 look at getsock 11:13:14 ok 11:13:15 that works 11:13:23 * crc is rusty on low-level sockets 11:14:14 crc please update with 22 Rport htonl PF_INET or over sin_family ! 11:14:56 and 50001 Lport 11:19:12 hmm I my need to use connectsocket instead of tcpsockt 11:19:40 connectsocket ( a n port -- sock ) 'forth 11:19:41 ~sockets 11:19:43 lib/net/sockets 11:19:45 Connect to the specified host and port with TCP. If 'n' is non-zero, th 11:19:47 en 11:19:49 (a,n) is the name of a server. If 'n' is zero, then 'a' is an IP addres 11:19:51 s. 11:24:39 crc I think the getsock should be like this: : getsock 11:24:40 192 168 1 7 RemoteAddr 0 11:24:42 22 Rport connectsocket 11:24:44 ; 11:26:42 stack: ( -- sock ) 11:37:45 hmm nevermind I think the first version is what I need 11:40:50 crc I think I am going to need to bind 11:41:16 again like you say 11:41:21 said* 11:42:54 I think I need to use the new bind with the structure I plate with the remote info the I need to use connect 11:43:00 * crc hasn't done anything with sockets since toka's http server 11:43:13 and that was written with the higher level wrappers 11:44:16 I think I need to use bind on the lsockaddr again but with the new sockID 11:45:04 then use connect to the new sockid with the rsocketaddr 11:49:09 I think I am going to rewrite if from scratch :( because right now I only have one-way connection not bi-directional connection through the redirector 11:49:32 s/if/it/ 11:50:44 crc what do you think 12:09:23 rewriting can be beneficial 12:11:58 --- quit: crcz (Remote host closed the connection) 12:12:01 yeah I am going to rewrite it 12:17:47 crc: now that I think have I have an idea I can rewrite the code from scratch and make it compact 12:29:04 cool 12:32:08 we will see 12:56:47 I setup a mirror of the assembla repo on github 12:56:59 http://github.com/crcx/retroforth 13:03:28 and I have a script to easily keep them in sync 13:22:43 --- join: retro-commit (~Karere@c-68-80-139-0.hsd1.pa.comcast.net) joined #retro 13:23:09 let 13:23:12 let 13:23:23 let's see if I can get the bot working again 13:24:44 --- quit: retro-commit (Remote host closed the connection) 13:25:14 --- join: retro-commit (~Karere@c-68-80-139-0.hsd1.pa.comcast.net) joined #retro 13:27:03 [crcx/retroforth] 9b711c: add "make purge" to remove all built files; sub-le... 13:27:42 --- join: Mat2 (~5b40e969@gateway/web/freenode/x-updzgvcxlbvssmek) joined #retro 13:27:48 hello 13:28:48 crc: http://rapiddatabase.assembla.com/wiki/show/navm 13:31:41 --- quit: retro-commit (Ping timeout: 265 seconds) 13:37:15 crc: the problem is handling bi-directional traffic with forth 13:37:44 I don't understand the library well enough 13:39:51 Mat2: thanks 13:40:22 no problem 13:40:37 let's see which vm performs better for subroutine threading 13:41:00 (I think nAvm) 13:48:59 Mat2: have you ported retro over the avm 13:49:19 erider: i'm slowly workin on it 13:50:00 before I can go further both interpreters must be completed 13:50:37 i'm currently workin on integrating my native code compiler to avm so the same source code can be interpreted or compiled as needed 13:51:18 I see 13:52:23 there exist now two instruction sets, one for effective interpretation (or compilation) of basic blocks for CPS capable compilation to vm-code and nAvm which offers instrinsic support for subroutine, direct and indirect threading 13:53:17 --- join: retro-commit (~Karere@c-68-80-139-0.hsd1.pa.comcast.net) joined #retro 13:53:44 for nAvm i'm just finishing the inline assembler and then will start with the port 13:54:09 [crcx/retroforth] bff01a: xkeys in subvocabulary too 13:54:15 (now quite easy task) 13:54:54 i'm not sure which threading variant to choosen 13:55:37 the nice thing is: both interpreters can run parallel 13:56:16 (interfacing is the problem here) 13:56:42 erider: what's with your project ? 13:57:46 I am starting over 13:58:49 I project started to get unorganized the more and more I started to think about things that I wasn't handling early on 13:59:01 s/I/The 13:59:24 I need to work a word at a time 13:59:44 make a word and test and move on 14:00:10 you can factor your project in independent parts with defined interface 14:02:26 *Mat2 thinks sometimes this makes live easier* 14:02:33 life 14:02:46 Mat2: I learning as I go 14:02:55 --- quit: retro-commit (Remote host closed the connection) 14:03:08 we all do :) 14:03:50 --- join: retro-commit (~Karere@c-68-80-139-0.hsd1.pa.comcast.net) joined #retro 14:04:44 I had withdrawing more than 2 vm's in 3 days because every time i'm workin on one I find something which offers more performance 14:06:03 tht's fun 14:06:05 thats 14:06:38 * crc finally has the ping responder working with ircd-seven, so the commit bot should be stable again 14:06:51 good news 14:07:14 the dispatch routine compiles to: 14:07:29 mov rax, [r15] 14:07:40 whew I need to stop and write this stuff down 14:08:19 lea r12, [r15+8] 14:08:57 mov aAvmJumpTable2(%rax,8), %rax 14:09:28 that are 1,5 cycles overhead with my athlon64 cpu 14:10:40 *Mat2 think that's the optimum possible* 14:11:38 gcc is very efficient at last 14:46:45 crc: Have you decided yet if you want to change the vector behaviour for retro 10.5 ? 14:49:34 [crcx/retroforth] 02e46f: adobe air version updated with nop skips for call/... 14:50:41 --- quit: crc (Quit: crc) 14:51:07 --- join: crc2 (~charlesch@c-68-80-139-0.hsd1.pa.comcast.net) joined #retro 14:51:28 I've no plans to alter the implementation of vectors in 10.5 14:51:46 --- mode: ChanServ set +o crc2 14:51:48 --- nick: crc2 -> crc 14:52:55 I've not found another way to allow for altering existing behavior in manner that works cleanly 14:55:57 ok 14:59:33 I was thinking about a vector class and an vector pointer in the dictionary header. The vector class then would fetch the pointer form the dictionary entry and call it instead of the compiled code. 14:59:52 --- join: _Tie-fighter_ (~Tie-fight@90.146.64.94) joined #retro 15:00:01 --- part: _Tie-fighter_ left #retro 15:00:09 have not try it yet 15:00:54 from 15:01:30 that could work, but would involve some additional overhead 15:02:11 (current vm implementations are now skipping the nop's for non-revectored words, so should be faster overall) 15:09:03 I will try to make a plain port of retro for nAvm 15:09:24 converting ngaro -> nAvm code 15:09:59 the resulting source code can then be compiled to native code 15:10:18 or interpreted 15:10:25 interpretated ? 15:11:06 interpreted 15:11:16 ok, thanks 15:14:04 but i'm not sure about the threading variant to be choosen.... 15:14:24 indirect threading would be very elegant 15:20:37 ok assembler is finsihed, I go to bed 15:20:48 ciao crc, erider and all others 15:20:56 goodnight mat 15:20:58 --- quit: Mat2 (Quit: Page closed) 15:29:33 --- join: zachk (~geisthaus@pool-71-240-243-4.syr.east.verizon.net) joined #retro 15:32:30 --- join: virl (~virl__@chello062178085149.1.12.vie.surfer.at) joined #retro 15:33:35 hi zachk, virl 15:37:30 hi 15:38:19 --- quit: SimonRC (Ping timeout: 265 seconds) 15:38:39 --- join: SimonRC (~sc@fof.durge.org) joined #retro 15:49:12 hello 16:01:12 hi zachk 16:15:32 --- quit: SimonRC (Ping timeout: 265 seconds) 16:26:40 --- join: SimonRC (~sc@fof.durge.org) joined #retro 16:43:34 [crcx/retroforth] 81b286: update golang implementation of vm (thanks yiyus) 16:46:34 [crcx/retroforth] ae496c: words for use with golang added to experimental/co... 17:13:39 howdy all 17:13:48 --- quit: erider (Remote host closed the connection) 17:13:51 back from work 17:13:57 hi docl 17:14:13 hi crc 17:38:55 what's new? 17:42:12 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 17:43:52 wb 17:53:09 not much 17:53:29 so I see some work on sockets lately 17:56:24 I wonder how hard it would be to patch some socket support in to retro 10 17:58:10 for the c version, pretty easy 17:58:20 but you can't talk to much due to character size issues 18:00:44 what kind of issues? 18:01:08 http, irc, etc deal with 8-bit chars, retro doesn't 18:01:36 thanks 18:02:33 I had a memory issue with the redirector I had to build 3 words over again to find the issue 18:39:44 crc: lol the remote addr is backwards in the structure 18:50:23 erider: an easy mistake 18:50:39 yeah 18:53:15 * crc is making headway on http://retroforth.org/pages/?WordsInRetro 18:53:48 yeah I can't use your word for ip conversion 18:53:59 why not? 18:54:23 not for the remote end 18:56:15 its converts but it does do the big endian thing 18:57:36 but it is ok I got a fix for it now 19:05:03 crc: almost done, I just have to handle the connection portion: http://retroforth.com/paste/?id=1957 19:07:32 crc: I tested most of the words a words at a time before I add to it 19:07:51 erider: looks good 19:08:15 most of the words can be tested as standalone 19:09:16 I need to remove ( ) because reva is complaining 19:09:19 )? 19:10:54 still missing some stack diagrams and some more docs but I will get to that when I have a functional example that I can make my final word 19:11:15 * crc is updating his reva to 9.0.9 19:11:54 I have 9.0 19:12:55 9.0 doesn't run on OS X 19:16:47 crc: the next thing I need to do is receive the packets on the listening port and then send them to the remote end 19:18:04 but I have to handle bi-directional communication we a buffer 19:18:17 I may need to make a queue 19:18:35 I don't know crc any ideas 19:21:18 erider: unfortunately not 19:21:34 [crcx/retroforth] f1bf68: add "make iphone" target to vm/fast-console 19:25:06 crc: no suggestions on how I can approach this problem 19:25:11 no 19:32:41 crc: ok I talk to you tomorrow 19:32:49 ok 19:32:53 have a good night 19:36:50 --- quit: erider (Ping timeout: 245 seconds) 20:47:00 wiki now at 57 pages, 3,428 lines, and 13,253 words :) 20:47:03 goodnight 23:56:00 --- quit: virl (*.net *.split) 23:56:00 --- quit: zachk (*.net *.split) 23:56:00 --- quit: retro-commit (*.net *.split) 23:56:00 --- quit: probonono (*.net *.split) 23:59:59 --- log: ended retro/10.02.10