00:00:00 --- log: started forth/13.09.23 00:52:46 --- join: dys (~user@2a01:1e8:e100:8296:21a:4dff:fe4e:273a) joined #forth 01:09:18 --- join: Tod-Autojoined (~Tod@50-198-177-185-static.hfc.comcastbusiness.net) joined #forth 01:10:10 --- quit: TodPunk (Read error: Connection reset by peer) 01:24:15 --- join: epicmonkey (~epicmonke@188.134.41.114) joined #forth 02:28:50 --- quit: kludge` (Ping timeout: 248 seconds) 02:59:56 --- join: kludge` (~comet@unaffiliated/espiral) joined #forth 05:10:56 --- join: nighty^ (~nighty@lns-bzn-49f-62-147-170-46.adsl.proxad.net) joined #forth 06:51:39 --- nick: Guest67932 -> rprimus 07:39:38 --- join: RodgerTheGreat (~rodger@97-83-155-123.dhcp.eucl.wi.charter.com) joined #forth 09:17:38 --- join: Tod-Work (~thansmann@50-202-143-210-static.hfc.comcastbusiness.net) joined #forth 10:32:09 --- join: Kumool (~nmz@adsl-64-237-233-149.prtc.net) joined #forth 10:47:34 --- quit: sirdancealo3 (Ping timeout: 252 seconds) 10:50:33 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 11:10:32 --- join: sirdancealot (~sirdancea@194.228.11.84) joined #forth 11:13:04 --- quit: sirdancealot (Max SendQ exceeded) 11:14:26 --- join: ErhardtMundt (~Lawrence@host19-78-dynamic.42-79-r.retail.telecomitalia.it) joined #forth 11:14:42 --- join: sirdancealot (~sirdancea@194.228.11.84) joined #forth 11:14:49 --- quit: ErhardtMundt (Client Quit) 11:15:56 --- join: ErhardtMundt (~Lawrence@host19-78-dynamic.42-79-r.retail.telecomitalia.it) joined #forth 11:16:07 --- quit: sirdancealot (Max SendQ exceeded) 11:17:11 --- join: sirdancealot (~sirdancea@194.228.11.84) joined #forth 11:29:55 --- quit: Nisstyre-laptop (Quit: Leaving) 11:51:12 --- quit: sirdancealot (Read error: Operation timed out) 12:04:52 --- join: sirdancealot (~sirdancea@194.228.11.84) joined #forth 12:18:35 --- quit: sirdancealot (Quit: Ragequit) 12:19:27 --- join: sirdancealo2 (~sirdancea@194.228.11.84) joined #forth 12:58:07 --- join: dessos (~dessos@c-174-60-176-249.hsd1.pa.comcast.net) joined #forth 13:41:46 --- quit: true-grue (Read error: Connection reset by peer) 14:12:27 --- quit: Tod-Work (Quit: Leaving) 14:17:44 --- join: Tod-Work (~thansmann@50-202-143-210-static.hfc.comcastbusiness.net) joined #forth 14:27:26 --- quit: nighty^ (Remote host closed the connection) 14:31:33 --- quit: dys (Remote host closed the connection) 15:00:57 --- quit: john_metcalf (Ping timeout: 240 seconds) 15:02:18 --- join: john_metcalf (~john_metc@200.79.125.91.dyn.plus.net) joined #forth 15:09:34 --- quit: sirdancealo2 (Ping timeout: 245 seconds) 15:23:03 --- join: sirdancealo2 (~sirdancea@194.228.11.84) joined #forth 15:23:14 --- quit: epicmonkey (Ping timeout: 276 seconds) 15:31:11 --- join: Tod-Work_ (~thansmann@50-202-143-210-static.hfc.comcastbusiness.net) joined #forth 15:34:13 --- quit: Tod-Work (Ping timeout: 240 seconds) 16:01:22 --- part: dessos left #forth 16:09:09 --- quit: Tod-Work_ (Quit: Leaving) 17:13:31 --- join: daowee_ (~daowee@m37-197-217-54.cust.tele2.se) joined #forth 17:16:37 --- quit: daowee (Ping timeout: 245 seconds) 17:18:32 --- nick: daowee_ -> daowee 18:13:22 --- quit: nisstyre (Ping timeout: 248 seconds) 19:45:22 --- join: unic0rn (unic0rn@unaffiliated/unic0rn) joined #forth 19:48:35 hi. i have some rather weird question. what is the chance that the number of elements on the stack changes inside a loop? i'm planning a forth compiler for a stack machine that has one drawback - all jumps to single location require the stack to be in the same state (depth-wise). 19:49:10 i can separate words into methods (threaded code isn't possible on that vm), but i want to do as much inlining as possible 19:49:37 what makes me wonder if some rather normal loop won't cause verify error at runtime. i just can't think of a loop that would do such a thing 19:50:06 well, other than recurrency, but such word would have to be put in separate method obviously and that would solve the problem 19:50:26 but using methods isn't preferable because of performance penalty 19:53:02 a loop with variable number of parameters on the stack to consume would be the only case that comes to my mind, but is such thing a normal/recommended practice? 19:59:05 the thing is, i didn't play with forth that much to this day to know the answer, while i would really like to use it for my current project, but i need to write a compiler - or interpreter - for that. that's not a problem, but i would prefer compiler because the performance matters 19:59:38 i'm just not sure if i can get away with such limitation as 'same number of parameters on the stack in each pass of the loop' in the long roon 19:59:42 run* 20:00:48 couldn't you swap/rot the stuff you add around the loop "sentinals"? 20:01:19 and or make your loop constructs aware - maybe leaving N on the stack which is the number of elements you added 20:01:41 i haven't played with this but there are ways - possibly even simpler than mine 20:02:27 --- quit: daowee (Ping timeout: 245 seconds) 20:02:38 your "inner" loop could push the outer loop's management values onto the return stack as long as it moves them back before exiting, etc. 20:03:41 when i have x elements on the stack, and x+1 or x-1 in the next loop pass, verifier will crash my bytecode. also, return stack isn't an issue - actually, from vm point of view, there is/will be no return stack. loop counters will be stored in local registers 20:04:10 i can of course place some workaround to store/restore the stack state so that verifier doesn't complain, but that involves performance penalty 20:04:29 the target vm is avm2, the one used in flash player 20:04:31 bytecode verifier? this doesn't sound like forth any more 20:05:05 avm2 is a stack machine. it just doesn't have much to do with the forth itself, that doesn't mean i cannot compile forth to avm2 20:05:19 hmm, if their VM doesn't let you mod the stack inside a loop you'll have to put your stuff somewhere other than the stack 20:06:30 unic0rn: what do you mean by avm2? actionscript vm? 20:06:38 yunfan: yes 20:06:58 i'm targeting flash player basically 20:08:23 because neither mxmlc, even asc2 from air sdk, nor haxe, give acceptable performance without writing tons of boilerplate code (and i'm not a fan of those langs anyway, wrote my batch of as3 code) 20:08:44 and flascc/crossbridge has its own issues, and its unusable in 32bit environment 20:09:06 (and i hate C even more) 20:09:23 --- join: daowee (~daowee@m37-197-217-54.cust.tele2.se) joined #forth 20:11:43 bluekelp: there's an interesting thing and thanks for helping me realize it. avm2 has opcodes for fast memory access (the whole thing has JIT), but there's the price: you can have ints and floats and objects (as references to them) on the stack, but fast memory opcodes work only with ints and floats (and bools, bytes and stuff) 20:12:28 so i can keep the stack in separate bytearray 20:12:51 but.. well. loops would be more flexible, but slower at the same time. even just with numbers. 20:13:08 unless the compiler would be damn smart to decide when verify error may occur 20:13:16 and even then backing up to local registers could be faster 20:13:22 it's a mess :) 20:16:49 --- quit: Kumool (Quit: Divided by 0) 20:36:20 unic0rn: i knew mozilla has an opensourced avm implemented which was written by forth 20:39:34 all i know is that they've had project tamarin, which was basically avm2 from adobe (the only opensourced part of the player), but they've decided not to use it because it lagged behind in interpreted code performance 20:39:40 they've used nanojit from it though 20:40:06 so basically their jit performance nowadays is thanks to adobe 20:41:43 i need to target flash though, because it's widely used and has consistent performance across platforms (and i need to be able to process rather large images, fast) 20:42:00 s/platforms/browsers/ 20:43:41 as some say, use the right tool for the job. and if there is none - write one ;) 20:45:21 yes tamarin 20:45:39 it was written in C afair 20:45:55 and yesterday i have found a pdf from earuforth which suggest register vm for forth 20:46:10 but i didnt found any projects about it 20:46:44 well. big registers, shifting, smart compiler - it may make sense 20:47:00 only for smart compilers though 20:47:06 smart as in complicated 20:47:40 yes the more smarter the more complicated 20:47:45 unfortunately, avm2 is stack based (or rather mixed), with drawbacks caused by bytecode verifier 20:48:28 so what you use it for? 20:48:33 flash game? 20:48:51 photo editor 20:48:59 or should i say enhancer 20:49:13 like ps ? 20:49:20 i figured that webbased + premium sms payments have bigger chance of success than standalone app 20:49:46 much simpler, yet doing some pretty advanced things. 'photo miracles for dummies', kinda 20:50:04 that's why i need as much processing power as possible 20:50:35 gpu acceleration is out of the question, texture size limit is one thing, shaders in flash limited to 200 opcodes are another 20:51:04 sms payments used to be very popular in china 20:51:37 i guess they're still very popular around the world 20:52:21 besides, underage girls posting their photos on facebook can use those, without having their own bank account/visa card or paypal. and will be more willing to do so. 20:52:41 i've no idea, but these day people are very sit up of sms payments 20:52:56 there was chao days 20:53:42 i think you could check a chinese software which almost do the samething of yours 20:53:50 oh, there're two 20:53:58 and both are popular at their time 20:54:00 i guess it depends on what you're paying for. when you have an app online, you can try it, see how well it works, and you're one sms away from using the full version, well 20:55:07 one is nEO iMAGING on PC, another is meituxiuxiu , check this https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&cad=rja&ved=0CE4QFjAH&url=https%3A%2F%2Fitunes.apple.com%2Fjp%2Fapp%2Fmei-tu-xiu-xiu%2Fid416048305%3Fmt%3D8&ei=7wxBUqC7J8S0iQe8w4G4Dg&usg=AFQjCNHPCNpnEUeL3P0n0fjfZ-4C63PeAQ&sig2=bz2Z7fsxXEvg3pmWnOCF-g&bvm=bv.52434380,d.aGc 20:55:26 meituxiuxiu is very popular in chinese girl's phone :] 20:55:54 they would use it to modify their photo before uploading ^_^ 20:57:26 er. by photo miracles i meant my own variation of local contrast enhancement, together with a bunch of other adjustments, not 'touch here to put a cute heart/kitten/blingbling on your face' ;) 20:57:56 also, i don't understand japanese nor chinese 20:58:32 (and i have no iWhatever :P) 20:59:58 it's more like '2 clicks to make your photo look like it was made by a pro' 21:37:39 nope, those software are not just for adding things on the picture 21:37:48 they have enhancement effects 21:38:36 and they are famous of those effects like make your face smaller or thinner 21:38:59 or made the light darker or lighter such this 21:52:51 --- join: ASau` (~user@p5797E9BB.dip0.t-ipconnect.de) joined #forth 21:56:02 --- quit: ASau (Ping timeout: 256 seconds) 22:30:55 --- nick: ASau` -> ASau 23:23:11 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 23:59:59 --- log: ended forth/13.09.23