00:00:00 --- log: started retro/11.12.11 00:20:12 --- quit: karswell (Ping timeout: 240 seconds) 03:13:13 --- join: yunfan (~jyf@unaffiliated/yunfan) joined #retro 03:33:03 --- join: karswell (~coat@93-97-29-243.zone5.bethere.co.uk) joined #retro 07:23:25 --- quit: yunfan (Quit: leaving) 10:23:33 --- join: Kumul (~Kumul@67.224.207.52) joined #retro 12:11:21 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 13:11:01 crc ping 13:13:06 --- join: crcx (~crcx@184.77.185.20) joined #retro 13:13:23 wb crcx 13:13:37 hi 13:13:39 I guess you are at work 13:13:46 no, home currently 13:13:54 ah cool 13:14:06 hey is {} scope in toka 13:15:15 I had to add to the bootstrap.toka" from msvcrt.dl "l to get the string stuff working 13:17:05 ffi.c seem to be straight forward and should have worked as coded, and it did. from lib was missing 13:17:06 { } is scope; they can be nested up to 4 levels deep IIRC 13:19:39 weird because I thought it was scoped but when I wanted to test to see if from msvcrt.dll would work. I placed it inside of { } but I was visible outside of that and fixed all the string functions 13:20:26 the scoping only affects the visibility of function names 13:21:06 what do you mean by that 13:21:44 { { [ ] } is foo } is bar 13:21:59 foo is not visible outside bar? 13:22:10 that should crash 13:22:46 { [ 1 ] is foo } -> foo is not visible outside of the { } block 13:22:49 yep it does 13:23:00 is expects an address of a quote 13:23:20 { 13:23:24 [ 1 ] is foo 13:23:31 { [ foo foo + ] is bar } 13:23:38 ( bar is no longer visible ) 13:23:39 } 13:23:46 ( foo is no longer visible ) 13:24:07 ok cool 13:25:00 this is a subset of the old scoping model from Retro. (since 11.x, we have a more advanced one, which allows for some functions to remain global, but nesting is gone now) 13:27:20 * crcx wonders if it'd be worth putting together a larger bootstrap package for toka 13:27:24 I will port the socket lib soon 13:27:59 crcx: what would that buy you 13:28:19 smaller core? 13:28:22 a richer set of functionality. more combinators, some of the stuff from retro could be more easily ported then 13:28:40 core would remain the same, more code in bootstrap.toka though 13:29:35 I like the bootstrapping because you are defining the language in the language itself 13:30:28 retro does similar (the 31 primitives are used to build up the language); though in retro, the parser and such are implemented using the primitives instead of being part of the core language 13:31:02 I have 3 versions of toka :( 13:31:52 The version I have been using the most is the one I got from subversion 13:32:55 the version I got from you doesn't have ffi.c 13:35:03 the version i posted was for use with the old ngaro assembler; it had to work on more platforms than the ffi was supported on 13:35:19 (os x, some bsd varients, etc had trouble with the ffi) 13:35:28 I see 13:36:15 I is a nice little implementation 13:36:20 It* 13:37:32 toka was a nice little language. it just proved less flexible than I wanted 13:38:02 explain? 13:38:14 things that are relatively easy in retro can't be done without changes to the c code in toka 13:38:21 flexible as far as portability 13:38:53 e.g., revectoring to allow for prefixes, adding a searchable set of multiple dictionaries 13:39:17 adding new classes of functions, and so on 13:39:37 code example 13:40:02 retro allows prefixing 13:40:29 retro allows prefixing 13:40:41 neat 13:42:00 as far as abstraction toka it good for need to do things like file manipulation 13:42:13 http://rx-core.org/rx.fossil/artifact?name=7939157dcd52e41a6eab96fade38b52b861f0ea7 13:42:23 look at the section ( extend prefix handling .... ) 13:42:53 it adds support for a new class of prefixes (ones that do parsing of the input) 13:43:05 we use this to implement string parsing, among other things 13:43:39 toka was a dual experiment: 1) syntax [quotes and such] and 2) practicality 13:44:04 I used it for a lot of things until this year 13:45:16 * erider likes the syntax of toka 13:47:36 the quote syntax is part of retro. the use of is, is-macro, and is-data is not, though it could be added 13:49:07 I like that form [ do something ] is foo 13:49:30 : foo do something ; no some much 13:50:19 quotes give me anonymous functions :) 13:50:47 not sure if retro has anonymous functions 13:50:58 --- quit: ChanServ (*.net *.split) 13:50:59 --- quit: crc (*.net *.split) 13:51:00 --- quit: scj (*.net *.split) 13:51:02 --- quit: SimonRC (*.net *.split) 13:51:05 --- quit: yiyus (*.net *.split) 13:51:06 --- quit: Kumul (*.net *.split) 13:51:10 --- quit: retro_commits (*.net *.split) 13:51:11 --- quit: saper (*.net *.split) 13:51:11 --- quit: C-Keen (*.net *.split) 13:51:45 --- join: scj (scj@shells.mycrosoft.us) joined #retro 13:51:45 --- join: yiyus (1242712427@je.je.je) joined #retro 13:51:45 --- join: ChanServ (ChanServ@services.) joined #retro 13:51:45 --- join: SimonRC (~sc@fof.durge.org) joined #retro 13:51:45 --- mode: adams.freenode.net set +o ChanServ 13:52:14 --- join: Kumul (~Kumul@67.224.207.52) joined #retro 13:52:39 --- join: crc (~quassel@li125-93.members.linode.com) joined #retro 13:52:51 quotes give me anonymous functions :) 13:52:57 not sure if retro has anonymous functions 13:53:03 retro has quotes 13:53:15 you could define is: 13:53:18 : is ( a"- ) getToken find [ !d->xt ] [ drop tib header &.word reclass @last !d->xt ] if ; 13:53:32 --- join: retro_commits (~retro_com@li125-93.members.linode.com) joined #retro 13:53:33 --- join: saper (saper@wikipedia/saper) joined #retro 13:53:33 --- join: C-Keen (cckeen@pestilenz.org) joined #retro 13:53:43 then [ words ] is foo 13:53:51 would work as it does in toka 13:54:08 * crcx should put together a file comparing retro and toka 13:54:20 --- quit: karswell (Remote host closed the connection) 13:55:06 retro has a larger code base? 13:56:00 retro is a larger language, so yes. strictly speaking, the low-level part (the c code) is smaller, but the rest of the code is larger. it is written in itself though, apart from the vm 13:57:50 crcx: ah ok 13:59:43 retro does provide a lot more than toka. besides the stack operators, there's a bunch of combinators, better scope control, multiple named dictionaries with a user controlled search order, prefixes, extensive vectorization, more operators on data structures 14:00:42 toka has one data structure which is that stack right? 14:00:52 the* 14:01:16 toka has arrays, strings, and simple variables 14:01:50 retro has arrays, buffers, strings, simple variables, as well as linked lists, generic structures, and such in the library 14:02:02 but more operators on the structures 14:02:49 e.g., retro has an extensible each@ combinator, and a lot more operations on strings and buffers 14:03:25 within arrays, there are functions to convert to/from quotes, reverse order, apply quotes to each item, etc which toka lacks currently 14:05:38 I don't think I know what combinators are 14:06:01 combinators are functions which operate on other functions 14:06:16 they can modify the stack and such in useful ways. 14:06:24 e.g., I can do this in retro: 14:06:32 200 [ 100 = ] [ 200 = ] bi or 14:06:44 to see if 200 is equal to 100 or 200 14:07:03 in ANS forth, it'd be: 200 dup 100 = swap 200 = or 14:07:39 combinators can make things more readable. retro uses them for most loops, lots of flow control, and similar bits 14:08:11 interesting 14:08:23 a pattern like: 100 dup >r 200 + r> * would be: 100 [ 200 + ] sip * in retro 14:12:01 that is readable 14:17:06 * crcx will prepare a new boostrap.toka with some of the combinators and other useful bits from retro added 14:18:02 where is DROP defined 14:18:56 in toka? 14:19:58 stack.c, as the stack_drop() function 14:20:40 yeah 14:21:29 no I think you have a macro that you use in the code 14:22:27 headers/stack.h 14:22:45 #define DROP data.sp-- 14:23:23 yeah I found it thanks I grep for it 14:23:42 (fwiw, if I drop out I'll be back; I'm using an ipad, which has a tendency to drop background connections if I walk away for a few minutes) 14:24:32 #define DROP sp-- 14:25:13 yeah I know it does it to me as well. 14:25:33 are you using the web client 14:25:38 no 14:25:54 ah ok 14:25:57 I have quassel running on my server, which I monitor on my phone 14:26:20 at home, I use a client running on the ipad; at work I connect using the quassel desktop client 14:26:22 good deal 14:27:06 I am looking at how you are parsing 14:27:51 get_token is doing the heavy lifting 14:28:39 yup 14:35:52 --- quit: erider (Ping timeout: 240 seconds) 14:40:25 --- join: erider (~chatzilla@pool-173-69-151-233.bltmmd.fios.verizon.net) joined #retro 14:40:57 --- quit: erider (Changing host) 14:40:57 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 14:41:04 figure if I can get a good understanding from toka and its implementation it will help me 14:52:34 --- quit: erider (Ping timeout: 276 seconds) 15:14:28 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 15:15:24 crcx: retro is very interesting, I just tried my python vm and it works like a charm 15:16:02 retroImage holds the whole language? 15:16:11 the python code is very well tested (under python 2.x, 3.x, and pypy) 15:16:45 retroImage holds the core language. There are optional vocabularies (in src/library) that can be loaded if needed 15:17:03 once loaded, they can be saved into the retroImage for later use 15:29:42 it's been a long time since I wrote anything in toka 15:31:27 http://sprunge.us/LFbD 15:31:37 initial attempt to port some of the combinators over 15:31:40 bi fails 15:31:57 not sure on all of the others. 15:33:12 dip seems to work, sip fails 15:33:22 not sure why :( 15:33:47 retro has peeked my interest 15:36:34 I don't have src/library. I just have the python retro and the image file 15:36:59 which is pretty light weight 15:37:39 yup, as it should be :) 15:38:22 I like the flexibility to be able to python with language I want to host retro 15:38:41 I like the flexibility to be able to pick with language I want to host retro 15:38:56 which language* 15:40:10 C is the faster vm? 15:40:12 it makes it easier to ensure that anyone can run retro 15:40:25 assembly is fastest, then c 15:41:05 are they differences across implementation languages 15:41:34 ie python vs lua 15:41:47 do you get the same features 15:43:07 crcx: is there a haskell version 15:43:16 --- join: roarde (~roarde@pdpc/supporter/active/roarde) joined #retro 15:43:17 no haskell, lua lacks some features 15:44:31 python is ok right? 15:44:34 http://www.rx-core.org/docs/Implementations.html for status 15:44:38 python is feature complete 15:44:49 good deal 15:45:24 brb 15:45:35 hmm, I need to add the scheme implementation to the chart 15:45:39 hi roarde 15:45:55 hi, crcx 15:53:58 at one point I thought you were using toka as your compiler for the image file 15:56:24 how is the image file being built 15:57:23 add scheme to Implementations list : http://rx-core.org/rx.fossil/info/cf9c912a567cb495d6d4c7b75293895f8b76056f 15:57:40 the image is now built using only retro 15:58:09 I rewrote the assembler and initial compiler in retro, build a core image, relocate it over the old image and save the results 15:58:40 I think I stopped using toka for this in 10.3 16:05:04 very cool 16:05:54 very small set of vm instructions 16:06:32 31? 16:06:45 yes 16:07:08 very cool indeed 16:08:39 crcx: you have a ml version? 16:08:51 no 16:08:58 fsx 16:09:14 fsx is f# 16:09:25 ah ok 16:10:18 mono supports f# ? 16:10:26 yes, with a little work 16:10:40 if the executable is built as a static binary it'll work on a stock mono 16:10:57 otherwise you need to manually install and register the .dll's for f# 16:11:13 * crcx can provide a static binary if needed 16:11:57 in f#? 16:12:05 yes 16:12:10 http://rx-core.org/retro.exe 16:12:29 * crcx tested on a stock mono from debian, and on a vanilla windows 7 install with microsoft .net 16:14:15 I like it :) 16:14:33 it's big, but that's the cost of a static binary 16:15:10 f# looks a lot like haskell 16:15:29 * crcx uses the c version under ssh, the python or assembly for his web apps (depending on performance needs), the f# at work, and javascript on the ipad and android (thanks to phonegap) 16:15:43 a microsoft ripoff special 16:16:02 i've never looked closely at haskell 16:16:16 probably something I should do when I have more time 16:16:50 its interesting language 16:17:19 f# looks very similar 16:17:42 I was quite pleased to receive the f# implementation 16:19:18 http://blogs.msdn.com/b/ashleyf/archive/2011/08/15/going-retro-and-loving-it.aspx was the blog post from its developer 16:19:24 plus it is a complete version on like c# 16:19:35 unlike c# 16:19:35 yup 16:24:50 --- quit: erider (Read error: No route to host) 16:25:06 --- join: erider (~chatzilla@pool-173-69-151-233.bltmmd.fios.verizon.net) joined #retro 16:25:25 --- quit: erider (Changing host) 16:25:25 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 16:25:38 crcx: very cool post 16:28:06 { 1 2 3 } [ sum ] [ length ] bi / . does this work 16:28:46 not in retro; that's from factor 16:29:08 (retro lacks factor-style sequences) 16:30:39 do I need core.rx 16:32:30 only if you want to build a new image 16:32:42 to run retro all you need is the retroImage and a vm 16:37:07 What you’re doing is defining words in terms of composition of other words and threading a stack through them. 16:37:17 what does this mean? 16:43:06 add sum and length to array' : http://rx-core.org/rx.fossil/info/056eca540318ef465538528114c9cdea882acbdd 16:44:05 in theory, a concatenative language (like retro) can be viewed in terms of functions that take and return stacks 16:44:34 with this commit, and the array.rx in the library, you can do: 16:44:37 * crcx needs array' 16:44:40 with array' 16:44:59 new{ 1 2 3 } [ sum ] [ length ] bi / 16:45:06 to average the values in an array 16:46:08 what is the twist that the post refer to in retro 16:47:28 ? 16:48:12 I assume it's the use of quotes and combinators, which is uncommon in the forth world 16:49:12 there's a *lot* of dislike of these in the mainstream forth world, and even among those who maintain non-standard systems 16:50:34 why 16:51:06 seems like a good way to abstract from the stack manipulation 16:54:08 anonymous functions are viewed as a bad thing. not sure why 16:58:07 I like nameless functions special if you need a down and dirty function to do one thing 16:58:50 ans forth has :noname 16:59:31 but no nesting, so it's not as elegant for use with control structures and such 17:02:20 pointless programming what does this mean? 17:04:22 or point free 17:05:23 http://en.wikipedia.org/wiki/Tacit_programming 17:05:45 I am looking at that now 17:05:46 --- quit: roarde (Ping timeout: 276 seconds) 17:07:25 I don't get it :( 17:09:15 --- join: roarde (~roarde@pdpc/supporter/active/roarde) joined #retro 17:09:29 afaict it involves programming without explicit variables 17:12:17 without naming variables? 17:15:37 yes 17:19:35 --- quit: roarde (Quit: Leaving) 17:22:06 crcx: teach me what you know :) 17:28:58 I know very little of the terminology used; my focus is on doing what I need for my projects 17:34:19 array library: example of averaging values in an array : http://rx-core.org/rx.fossil/info/9f9447ce9fa6402cbccc0b90b3170c284b9316e4 17:35:46 good night crcx 17:36:07 goodnigt 17:37:10 --- quit: erider (Quit: ChatZilla 0.9.87 [Firefox 8.0.1/20111120135848]) 17:37:30 --- join: jyfl987 (~jyf@static-ip-107-131-66-202.rev.dyxnet.com) joined #retro 17:42:26 --- join: erider (ad4597e9@gateway/web/freenode/ip.173.69.151.233) joined #retro 17:43:20 Hey does retro run on iPad 17:43:45 the javascript version (http://rx-core.org/canvas) works on it 17:44:14 there's no native version, but the command line c version can be built for jailbroken devices 17:45:46 You would think it could run because there is lua and python for the iPad 17:46:13 I've not tried either of those 17:47:43 Both have access to the filesystem 17:48:42 for lua, you need 5.2 (work in progress, not released) or luajit 17:48:52 if there's python, it should work 17:50:14 Ok 17:50:46 (I'm personally content with the javascript vm on my ipad) 17:51:08 It has wo 17:51:50 It has what one would need to start? 17:52:21 the javascript? 17:52:38 Yes 17:52:47 yes 17:52:59 no file i/o, but everything else is present 17:53:30 What kind of stuff are you doing with it 17:53:43 I do most of my prototyping in it 17:54:03 Ah ok 17:55:13 You have access to Dom right 17:55:34 that can be added; it's not part of the standard vm or image 17:55:45 Oh 17:57:06 Btw how are you feeling? Are you still sick 17:57:30 yes; I currently have a fever over 100 degrees 17:58:32 Oh well goodnight I hope you feel better 17:59:03 I'll be better eventually 17:59:08 goodnight again 17:59:28 --- quit: erider (Quit: Page closed) 18:16:46 --- quit: crcx (Quit: crcx) 18:27:54 --- join: roarde (~roarde@pdpc/supporter/active/roarde) joined #retro 18:34:23 crc: is there native android version of retro? which can invoke the system ui widgets 18:34:50 --- join: crcx (~crcx@184.77.185.20) joined #retro 18:35:36 crcx: is there native android version of retro? which can invoke the system ui widgets 18:35:47 no 18:36:03 what a pity 18:37:41 none of the vm implementations allow for interfacing with elements of the host environment apart from filesystem, time, and system environment variables 18:40:45 why not add that ability for different system? based on the cross platform retro 18:40:46 currently retro on android for me is just for playing 18:42:22 there's a lot of work to interface with a graphical subsystem, and for my current purposes, a browser provides enough ui functionality 18:44:52 maybe its my fault, but i didnt see any comvenient in the brownser ui 18:45:12 I do cgi-based applications 18:45:33 aha, got it 18:46:26 crcx: do you know who are doing work for interface with graphical subsystem? 18:47:07 none as far as I know 18:48:38 ;[ 18:49:04 I've a real interest in it, jyfl987, but have no time to pursue it. 18:57:21 forthcommunity is down for the count, right? 18:58:25 looks like it 18:58:42 I'll try to contact docl about it 18:59:32 ah, he probably let it go. In his place I'd probably do the same. Shame tho. And a shame it wasn't more used. 18:59:44 roarde: i have ask an question on stackoverflow 19:00:12 * roarde can't even find stackoverflow :P 19:00:23 http://stackoverflow.com/questions/8465584/is-there-any-real-on-device-developing-tools-on-android check this 19:01:00 thx 19:55:47 * crcx is off to bed; goodnigh 19:55:51 *goodnight 19:56:02 --- quit: crcx (Quit: crcx) 21:31:33 --- quit: Kumul (Quit: gone) 22:37:42 --- quit: roarde (Ping timeout: 240 seconds) 23:05:12 --- nick: jyfl987 -> CyrusYzGTt__ 23:28:47 --- nick: CyrusYzGTt__ -> CryusYzGTt 23:59:59 --- log: ended retro/11.12.11