Mercurial > repo
view paste/paste.32416 @ 6668:f96cbf25957f
<oerjan> mk this/changes/everything//oh, really?
author | HackBot |
---|---|
date | Tue, 09 Feb 2016 01:23:24 +0000 |
parents | cfccf77f13bb |
children |
line wrap: on
line source
2003-01-25.txt:18:57:15: <exarkun> d'you know if the stack stack is shared between threads in concurrent funge? 2003-01-25.txt:18:57:54: <fizzie> each has its own stack. 2003-01-25.txt:18:58:07: <exarkun> yea, each has its own stack 2003-01-25.txt:18:58:16: <exarkun> but the docs don't say anything about the stack stack 2003-01-25.txt:18:58:52: <fizzie> wellll.. stack is just what's on top of the stack stack. 2003-01-25.txt:18:59:23: <fizzie> in befunge97 or 96 they had shared stacks, which sounds really, really sick. 2003-01-27.txt:23:21:52: <lament> well if someone finds it offensive, fuck that btich! 2003-02-07.txt:05:06:00: <lament> "height in wavelengths"? What the fuck. 2003-04-20.txt:01:51:43: <lament> Many people who are into Scientology don't suspect how fucked up it is, either 2003-07-09.txt:04:09:41: <dbc> And I wouldn't broaden it too far. Stack machines are fine, but a four-function calculator isn't. Again, I'm trying to match common usage, which doesn't speak of "programming" anything very different from a computer... 2003-07-09.txt:04:13:19: <lament> In common usage, somebody says "HTML is a programming language, i learned it at school", and the response is "FUCK YOU!" *ban* 2003-07-12.txt:00:47:31: <andreou> power and shit... 2003-07-26.txt:04:25:32: <andreou> well, if i direct him to the UHH he'll start shouting at me ``what kind of the worst lamer has written that piece of trinary shit'' 2003-07-30.txt:20:32:00: <lament> Taaus: so they wanted to rename the language to "fuck" 2003-08-06.txt:19:20:43: <lament> but THIS is fucked up 2003-09-04.txt:02:28:14: <lament> Therefore, timbre can go fuck itself! 2003-09-04.txt:02:53:42: <lament> very shitty music, certainly. 2003-10-21.txt:00:49:56: <lament> that wouldn't be fucked up enough 2003-10-21.txt:04:24:40: -!- lament has quit ("fuck"). 2003-10-22.txt:03:32:16: <andreou> lament "ante gamisou" is "fuck off" 2003-10-22.txt:03:37:23: <stevaras> or a forgotten cut dick 2003-11-21.txt:02:32:43: <Taaus> I'm not sure.. It doesn't have any looping constructs, as far as I can see... Although it might be possible to implement it with a stack.. Hmm. 2003-11-21.txt:02:37:34: <Taaus> Cool. I made it blow the stack with a loop. 2003-11-21.txt:02:39:07: <Taaus> @+<coord> is "push <coord> onto stack", @@<coord> is "do <coord> for each item in stack" 2003-11-21.txt:02:41:41: <Taaus> A stack operation counts as a <coord>. And { ... } is just to group more <coord>s as one <coord>. 2003-11-21.txt:02:42:42: <Taaus> Well, the <coord> popped from the stack is placed in a special variable called the "current coordinate". 2003-11-21.txt:02:43:26: <Taaus> The @+ operation doesn't affect the current coordinate, but it does push its argument onto the stack. 2003-11-21.txt:02:59:07: <Taaus> I guess you could implement a kind of truth values using empty/non-empty stacks... 2003-11-21.txt:02:59:23: <Taaus> It's possible to save stacks in variables, BTW. 2003-11-21.txt:03:24:37: <lament> is a stack just a type of coordinate? :) 2003-11-21.txt:03:41:04: <Taaus> Grr... Saving stacks in variables seems to be... Limited, somehow... It seems it has to take place directly after the stack has been initialised. 2003-12-29.txt:21:56:40: <lament> any time you need more stack for example 2003-12-29.txt:21:56:57: <lament> neither does c, if you consider the stack 2004-02-08.txt:05:10:13: <lament> the whole terminology is extremely fucked up. 2004-02-08.txt:20:48:59: <Toreun> two dimensional, using a stack and a queue 2004-02-08.txt:20:58:38: <fizzie> er, with a stack and a queue, wouldn't the "obvious" way to do that be to stack everything from the queue to the stack, and then enqueue them back in the queue? (hee, that sounds fun. stack to the stack and enqueue in a queue.) 2004-02-08.txt:21:13:49: <Toreun> I'm probably gonna end up just using source-editing, so I can have the stack for other things 2004-02-08.txt:21:24:14: <fizzie> like that can't-remember-the-letter instruction in funge98 which pops the new delta vector from the stack. 2004-02-11.txt:00:16:55: <mooz-> I made a multitasking befunge befunge interpreter, but it doesn't keep the processes' stacks separate yet, making it quite useless 2004-02-11.txt:00:18:11: <fizzie> my glfunge98 knows how to multithread with separate stacks (using the funge98 multithreading instructions) but it's otherwise ultra-mega-sucky. 2004-02-11.txt:00:27:56: <Toreun> and the void is a stack with a max size of two 2004-02-13.txt:00:37:56: <calamari_> using c I could make a loop executing g() with void f() { g(); f() }, however, eventually the stack would overflow. I wonder if there's a way to avoid that without using "if" "while", "for", etc. 2004-02-13.txt:01:01:59: <Toreun> I'm thinking 'quack' because it has a queue and a stack 2004-04-29.txt:03:30:51: <Toreun> I talked about it awhile back here... it's a two dimensional programming language with a stack and a queue 2004-04-29.txt:06:08:52: <andreou> ah shit. 2004-04-30.txt:07:49:01: <heatsink> Well, brainfork is not actually known to be turing-complete; besides which brainfooey is not something any sane programmer would want to program in. For more info on brainfufu, look at the website (...). Of course, it's not actually called Brainflock, but we don't want to mention bad words and all that shit. 2004-04-30.txt:07:50:45: <lament> "And I can't quite make out that last one... And even if I could, i wouldn't say it. Because there're kids present, and I wouldn't want to fuck with their brains" 2004-04-30.txt:08:34:23: <lament> holy shit 2004-05-01.txt:04:05:28: <andreou> shit, yeah. 2004-05-04.txt:00:50:43: <andreou> by the way, the wikied code is stacked on my todo que (as #1), since i have to learn latex right now, i'll restart work on it tomorrow or the day after. 2004-05-27.txt:16:00:32: <fizzie> oh, and between '93 and '98 there was that funky funge with multithreading but a shared stack between all threads. (can't remember if it was '96 or '97) 2004-05-27.txt:16:06:04: <fizzie> they just push the corresponding number to stack. 2004-05-27.txt:16:06:30: <fizzie> there are no variables, just the stack. oh, and you can write/read to/from the playfield. 2004-05-27.txt:16:06:48: <fizzie> oh, right, funge98 also includes the "stack stack" 2004-05-27.txt:16:07:05: <fizzie> where instead of a single stack you actually have a stack of stacks, and you can manipulate those. 2004-05-27.txt:16:08:18: <fizzie> (if you're not familiar with forth, it just reaches into the stack and pulls out a number from an arbitrary depth.) 2004-05-27.txt:16:13:24: <fizzie> oh, and another difference: '93 had a defined 8-bit playfield and 32-bit stack. in funge98 the actual amount of bits is implementation-defined, but stack cells and playfield cells will be the same size. 2004-05-27.txt:16:14:27: <fizzie> but you can put anything from the stack to the playfield without having to worry about it being too big. 2004-05-27.txt:16:15:51: <Keymaker> it isn't pretty useful to have 32-bit stack and 8-bit playfield in 93'? 2004-05-27.txt:16:17:16: <fizzie> sorta-makes sense. the playfield is "text", composed of eight-bit octets, and the stack isn't 8-bit to allow you to calculate with larger numbers. 2004-05-27.txt:23:03:11: <lament> oh, fuck logic then :) 2004-05-28.txt:20:51:07: <calamari_> also, I'm not sure how big a stack I'll need 2004-05-31.txt:21:59:52: <fizzie> book's by philip k. dick, who has written lots of excellent books, imho. not about robots though. 2004-06-10.txt:20:17:51: <lament> it would also require a fucking big computer 2004-06-11.txt:20:25:41: <lament> fuck. 2004-06-11.txt:20:34:06: <lament> FUCK 2004-06-15.txt:10:05:56: <calamari_> for those wondering.. I have bfasm working with simple programs. Next I need to do arrays, then the stack, and finally put in text -> memory storage 2004-06-20.txt:18:11:28: <calamari_> I haven't finished implementing the STK command (to set the stack size).. also need to understand/use a few of dbc's compare and divide/mod routines 2004-06-20.txt:18:12:12: <calamari_> stack (accessible via push & pop only) 2004-06-28.txt:02:47:30: <WildHalcyon_> One option is just to push the function name onto the stack and have an 'execute' command 2004-06-28.txt:04:04:01: <Toreun> it has a stack and a queue 2004-06-28.txt:04:09:11: <WildHalcyon> so there's a stack and a queue? 2004-07-02.txt:06:38:15: <heatsink> Can a single datum (a cell, the stack contents, etc.) be arbitrarily big? Because then you could pack the lambda function into a single value, and then unpack it in-place... In fact, I've been wanting to do an esolang sort of like that 2004-07-02.txt:06:39:20: <WildHalcyon> Stack contents possibly, but an actual cell is limited to a 8-bit value 2004-07-06.txt:07:12:00: <WildHalcyon> like regular lambda functions in false - they're pushed onto the stack and executed like normal 2004-07-08.txt:17:04:39: <mtve> there was small tcpip stack in php and it shouldn't be more than 64k of bf-asm code i think. 2004-07-08.txt:17:10:52: <fizzie> there's all kinds of stuff like explicit congestion notification (RFC2884), syncookies, window scaling (RFC1323), Nagle's algorithm and loads of others if you want a funky tcp/ip stack. 2004-07-12.txt:21:02:01: <calamari_> is there an easy way to deal with that (I'm using something similar to recursive descent, using a stack rather than recursive calls) 2004-07-17.txt:22:13:29: <Lord_AnthraX> fuck the 8-ball 2004-08-05.txt:04:41:43: <JoeyP> WHAT THE FUCK REALTIME LOGGIN OMG LOL 2004-08-05.txt:04:46:05: <lament> What the fuck is esper.net? 2004-08-05.txt:04:50:05: <LinkMasterSab> Shit* 2004-08-05.txt:04:56:39: <LinkMasterSab> The two stacks don't interact. 2004-08-05.txt:05:01:25: <JoeyP> shitty++ 2004-08-05.txt:15:00:38: <JoeyP> I'll take that as a "NO BITCH, NOW FUCK OFF YOU FUCKING CUNT" 2004-08-12.txt:01:26:05: <JoeyP> oh shit 2004-08-12.txt:01:26:22: <JoeyP> i know, just a stack 2004-08-12.txt:01:26:36: <LinkMasterSab> Stacks are coo <23 2004-08-12.txt:01:27:41: <LinkMasterSab> pop(0) unless the callback stack isn't empty. 2004-08-12.txt:01:30:01: <JoeyP> it will be shitty though 2004-08-12.txt:01:30:27: <LinkMasterSab> Optimizing with large numbers causes it to use stacks you might not want it to :/ 2004-08-12.txt:01:30:51: <LinkMasterSab> Plus I couldn't figure out how the fuck to make it work with the stacks to being with. 2004-08-12.txt:01:39:26: <JoeyP> this is shitty 2004-09-14.txt:21:27:53: <ZeroOne> something has to be thought for orphan letters which probably will appear. maybe if a letter set doesn't form an instruction, it could be pushed to stack 2004-09-14.txt:21:36:51: <fizzie> was going to write a befunge variant with "define", "call" and "return" instructions. 'define' would take an (x,y) pair that defines the start of an function and a small integer 'n' which would be the "name", 'call' would pop n and go to the function, but push the return address to stack, and 'return' would pop the return address off the stack and go back. 2004-09-14.txt:21:37:10: <fizzie> not sure if I wanted a separate "execution stack" or to use the normal stack for it. 2004-09-14.txt:21:38:03: <lindi-> separate stack would be too easy 2004-09-14.txt:21:38:19: <fizzie> yes, but if I use the normal stack then delivering parameters to functions will be hard. 2004-11-07.txt:03:35:33: <slava> i'm working on stack effect inference for postfix languages 2004-11-07.txt:03:36:21: <slava> eg, the stack effect of 2 2 + is [ 0 | 1 ] because it takes no values from the stack, but leaves one 2004-11-07.txt:03:36:38: <slava> the stack effect of dup * is [ 1 | 1 ], because it takes one value, duplicates it, multiplies the two duplicates, to yield one value 2004-11-07.txt:03:37:07: <heatsink> Doesn't 2 2 + take two values from the stack and then add one? 2004-11-07.txt:03:37:48: <heatsink> so what is the stack effect of printf? 2004-11-07.txt:03:39:17: <slava> so the stack effect of 2 2 + is [ 0 | 1 ] * [ 0 | 1 ] * [ 2 | 1 ] 2004-11-07.txt:03:40:27: <jDoctor> it should lead to computer-generated stack effects, right? 2004-11-07.txt:03:41:29: <heatsink> do both branches of an if-then-else have to have the same stack effect to be legal? 2004-11-07.txt:03:42:44: <slava> since after the ifte, the stack height is constant, sonce the two branches are balanced 2004-11-07.txt:03:43:54: <slava> this is valid, since i have proofs that balanced sets of stack effects behave just like the maximimal element under pairwise composition 2004-11-07.txt:03:44:26: <slava> words that take variable numbers of arguments off the stack? 2004-11-07.txt:03:51:40: <slava> yes, but I don't infer stack effects of code involving them. 2004-12-26.txt:12:52:04: <nooga_> code space, output window and stack listener :) 2004-12-26.txt:13:55:36: <nooga_> because i dont pop from the stack when | or _ are noticed 2005-01-16.txt:12:07:01: <mtve> _ operator pops the stack 2005-01-16.txt:12:15:59: <Keymaker> will the first in stack be 0 or the one that is followed by " 2005-01-16.txt:12:16:19: <Keymaker> "hi" would there be on stack 0 h i 2005-01-16.txt:12:17:34: <mtve> and most of implementations pop zero from empty stack. 2005-02-05.txt:22:19:15: <arke> and in a loop, you can fuckit all up because you forgot to scroll once! 2005-02-15.txt:16:49:45: <Keymaker> aarrggh. public commander keen forum has been attacked with shit-eating pictures and other grotesque material :( 2005-02-16.txt:22:45:26: <Keymaker> would it be a stack, array etc... 2005-02-25.txt:00:37:24: <Rogue> cool, i like'm cuz languages like C and VB, are fucking annoying 2005-02-25.txt:00:46:02: <Rogue> a lil fuck aroiund thing 2005-02-25.txt:01:47:44: <Rogue> well, all declared variables are set in a linear array into a stack, so each variable can expand easier, you have a variable declared at code block 7,8 would beput in the next available slot on an array 2005-02-25.txt:01:54:19: <Rogue> the variablables that are in the array/stack would be the z axis 2005-02-25.txt:19:41:28: <Keymaker> "16:37:24 <Rogue> cool, i like'm cuz languages like C and VB, are fucking annoying" 2005-02-28.txt:23:32:57: <arke> teh brainfuck is teh fucking with my teh brain 2005-03-05.txt:22:07:57: <cpressey> the horrific part would be the stack management, i think :) 2005-03-06.txt:08:38:07: <calamari> cpressey: esoapi could be made to work with a stack based language as well 2005-03-06.txt:08:42:21: <calamari> If a language doesn't have a current cell.. then they'd use their stack, or whatever.. up to the language implementor 2005-03-16.txt:06:07:49: <Tefad> i'm using a stack for those 2005-03-16.txt:23:42:43: <arke> then I'm gonna change to eliminate all return stack tricks 2005-03-17.txt:00:52:20: <calamari> arke: I did something similar in a previous contest.. first I wrote it in basic, using functions.. then I removed the functions and used gosub, then I removed the gosubs, just using if/goto/stack. then I saw that someone had it to something like 37 bf instructions, and I gave up :) 2005-03-17.txt:00:57:18: <arke> I think the best bet is to use the BF pointer as a stack, in pretty much every situation 2005-03-18.txt:19:28:54: <{^Raven^}> difficult without a stack 2005-03-20.txt:06:53:31: <{^Raven^}> a TCP/IP stack written in BF 2005-03-20.txt:06:53:43: <calamari> you wouldn't need a full stack 2005-03-20.txt:06:57:19: <calamari> if you do go crazy and decide to do it, check out the network stack written for the old 8-bit computers. I think they have one for c64 and another for atari8 2005-04-04.txt:11:26:42: <graue> should using ? on an empty stack be an error, or just a nop? 2005-04-05.txt:15:37:51: <kipple> you can define custom stacks 2005-04-05.txt:15:38:59: <kipple> on the positive side, it will remove the need for the @ stack (which is an abomination) as a language feature 2005-04-05.txt:15:39:50: <Keymaker> will the output be read from @ stack before o stack? 2005-04-05.txt:15:41:28: <kipple> so the next version will add one operator and remove the special stack @ 2005-04-05.txt:15:41:49: <Keymaker> and the one operator is that custom stack? 2005-04-05.txt:15:42:37: <kipple> which lets you load custom stacks from a dll/so, a java class or a kipple file 2005-04-05.txt:15:44:53: <Keymaker> by the way, question about the + operator; so, if there are values [8 4 3] in stack b, will the code b+2 cause it to have values [8 4 5] or [8 4 3 5]? 2005-04-05.txt:15:47:04: <Keymaker> and this would be a way to clear that stack: 0>b? , right? 2005-04-05.txt:15:48:49: <Keymaker> so the only way to basically delete one value from stack is to move it to some other stack (and clear that stack where moved if one likes to) 2005-04-05.txt:15:49:54: <kipple> I usually use one of the stacks for this purpose only 2005-04-05.txt:15:50:14: <Keymaker> how big are the stacks? 2005-04-05.txt:15:50:36: <kipple> they are standard java stacks 2005-04-05.txt:15:51:41: <Keymaker> and in empty stack this code a+a would cause the stack have value [ 0 ] ? 2005-04-05.txt:15:52:50: <Keymaker> and a+b have the same [ 0 ] in a stack and nothing in b 2005-04-05.txt:16:18:08: <Keymaker> ah, i just realized that way to dublicate a value in stack is to add zero to it 2005-04-05.txt:19:42:44: <graue> the main idea was to learn C++ by making an interpreter for some stack-based language 2005-04-06.txt:12:05:47: <Keymaker> kipple: what program a-500 should do. let's assume there is for example value [1] in the stack. 2005-04-06.txt:12:19:16: <kipple> then the stack should be [1 -499] 2005-04-14.txt:20:08:15: <Keymaker> "Good shit, huh? Dozer makes it. It's good for two things: degreasing engines and killing brain cells." 2005-04-14.txt:20:23:45: <graue> i wrote some shit there to start it off 2005-04-16.txt:03:20:05: <graue> i tried programming in brainfuck, and it, like, it FUCKED UP MY BRAIN! 2005-04-28.txt:17:36:22: <fizzie> And, as said, creates buggey code. Probably one of my optimization passes. I do some stack-content-analysis to avoid writing conditional jumps that never get taken, and to do constant-folding. 2005-05-04.txt:19:18:03: <GregorR-L> * = all stack and IO operations, + = branch 2005-05-04.txt:19:44:52: <fizzie> BrainFuck (and 2l, apparently) operate on a tape, not a stack. A stack would be a FIFO structure. Other than that, looks like a language I wouldn't want to _have_ to use for some real project. :) 2005-05-04.txt:19:45:37: <pgimeno> a stack would be a LIFO ;) 2005-05-04.txt:19:50:54: <GregorR-L> Just changed stack to tape and operation to symbol 2005-05-04.txt:20:04:30: <fizzie> I think the befungey parts of blank are its stack-basedness, plus the instruction set is befunge-inspired. The program sits in a one-dimensional ring, however. 2005-05-05.txt:13:12:30: <pgimeno> anyway stack-based languages are not among my favorites 2005-05-05.txt:13:13:07: <Keymaker> i'm not such fan of stacks, probably because i have never used them before esolangs 2005-05-05.txt:13:13:39: <pgimeno> that's probably why I don't like stacks 2005-05-06.txt:13:17:26: <Keymaker> the quine works the way that first it reads it own instructions to stack (stuff inside " ") 2005-05-06.txt:13:17:53: <Keymaker> the instructions tell it to print out '"'s and the stuff there is in stack 2005-05-08.txt:18:45:49: <Keymaker> i'm not sure if the place allows to use 'fuck' in the domain name 2005-05-09.txt:23:50:27: <kipple> difficult handling multiple stacks in such a language I would think 2005-05-10.txt:04:34:53: <Keymaker> GregorG: by its stacks? 2005-05-10.txt:04:42:35: <Keymaker> but not that much, just remember that stack names are one character (a..z or @) 2005-05-10.txt:04:47:33: <Keymaker> as well remember that a stack can be "connected" with two stuff like a>b<499 2005-05-10.txt:17:07:47: <kipple> the stacks are 1 dimentional, but since there are several stacks one could perhaps argue that it is 2D? 2005-05-10.txt:17:56:21: <GregorR-L> Mainly, do I want the data pointer to just be in a stack or tape... 2005-05-11.txt:05:24:47: <GregorR> If you stack two +s, they can't be pushed 2005-05-12.txt:01:13:32: <kipple> so how do you manage to do stacks? 2005-05-12.txt:01:14:20: <GregorR-L> But their design happens to be particularly condusive to stacks. 2005-05-12.txt:01:17:27: <kipple> There is such a thing as a stack item. 2005-05-12.txt:01:17:28: <kipple> A stack item has an item below which is a stack item. 2005-05-12.txt:01:17:28: <kipple> A stack item has an item on top which is a stack item. 2005-05-12.txt:19:16:43: <GregorR-L> A 2D programming language where you draw a stack, then physically move data above it and drop it in :-P 2005-05-12.txt:19:16:59: <GregorR-L> So you have to navigate your program pointer above the stack, then do a "drop" operation 2005-05-12.txt:20:20:34: <Keymaker> GregorR: nice idea about that 2D language where you actually need to collect stuff from the stack 2005-05-13.txt:09:13:19: <lament> no shit 2005-05-13.txt:23:52:27: * pgimeno prefers fuck rather than dead 2005-05-14.txt:08:06:36: <GregorR> I can read in a kipple file and figure out what's a number, what's a stack, what's an operation, and organize it as such. 2005-05-18.txt:23:20:59: <kipple> btw, the @ stack will probably be gone in the next version... :D 2005-05-19.txt:00:21:49: <kipple> no it duplicates the top value on the stack 2005-05-19.txt:00:26:07: <kipple> public void execute() throws StackException { 2005-05-19.txt:00:53:54: <kipple> the @ stack works a bit differently, but otherwise it seems to work fine :) 2005-05-19.txt:19:24:55: <kipple> and the @ stack pads up to six (i think) zeroes 2005-05-21.txt:00:58:31: -!- wooby has quit ("[BX] Were you born a fat, slimy, scumbag, puke, piece of shit or did you have to work on it?"). 2005-05-27.txt:01:13:02: <malaprop> kipple: Well, if you're volunteering to write the TCP/IP stack... 2005-05-27.txt:01:19:12: <GregorR> The stack begot a register. 2005-05-27.txt:14:26:53: <jix> with a 3rd binary stack instructions it is turing complete (because i know how to implement a BF interpreter) 2005-05-27.txt:23:31:24: <kipple> well, the next version of Kipple will allow code modules, so then you can write a division stack once, and then reuse it... 2005-05-28.txt:00:38:44: <jix> i'm not using the input stack as a temp stack 2005-05-28.txt:00:58:18: <kipple> btw, there is NOTHING wrong with using the input stack as a temp stack! 2005-05-28.txt:22:18:53: <jix> i'm going to parse the code into a struct-structure and than execute it.. the stack functions/structures are done.. 2005-05-28.txt:22:49:45: <jix> using the stack _ poping it is reading a char and pushing it is writing a char 2005-05-28.txt:22:51:08: <kipple> the next version of the language has the ability to load customized stacks, so then you could do that 2005-05-28.txt:22:59:21: <kipple> ah, because of stack limitations? 2005-05-28.txt:23:41:26: <kipple> handling the 26 different stacks in BF would be a nightmare IMHO, but good luck! 2005-05-28.txt:23:46:06: <Keymaker> harder than the stacks would be the big numbers, i guess 2005-05-29.txt:12:41:47: <jix> hmm.. is it possible to implement the @ stack in kipple 2005-05-29.txt:12:42:31: <jix> i push a number, read from the stack, push a number, read from the stack 2005-05-29.txt:12:45:26: <kipple> a stack that adds 1 to all pushed values? 2005-05-29.txt:12:45:50: <kipple> well it can't be named a (a-z are reserved for normal stacks) 2005-05-29.txt:12:48:52: <jix> hmm.. for the @ stack every push would be optimal.. but if one would like to have the opposite of @ every pop would be better 2005-05-29.txt:12:49:25: <kipple> currently a push sets the "evaluate" flag. On a pop the code is executed if the flag is set. then the topmost value of the custom stack's o is popped 2005-05-29.txt:13:08:23: <jix> yes because adding a value and adding a value popped from a stack are two different things 2005-05-29.txt:13:12:12: <jix> but my interpreter is written for speed and it's faster if it knows if it has to add a value stored in the program or stored in a stack 2005-05-29.txt:13:13:42: <jix> i think i still have to finetune the values for reallocating the stack memory 2005-05-29.txt:13:22:21: <jix> "a<12" check 'a' is 'a' an instruction ? no.. next char: '<' .. instruction! it needs a stack on the left site.. ok end on the right site is.. a number so seek until the end of the string OR to a nonnumber char 2005-05-29.txt:13:28:20: <jix> hmm.. one for every stack .. and one for every instruction 2005-05-29.txt:13:28:48: <jix> but i inline the stack methods ! 2005-05-29.txt:13:28:51: <kipple> I have one object for every stack, instruction and operand (including numbers) 2005-05-29.txt:13:29:57: <jix> union { stack* s; int i;} op_a; 2005-05-29.txt:13:30:20: <jix> for stack and int.. op_b has also an p for a sub program (looping) 2005-05-29.txt:15:00:35: <jix> but the @ stack doesn't work 2005-05-31.txt:01:23:08: <kipple> I think it is the sub-recipes that's the problem. Each sub-recipe call results in all the stacks being copied every time 2005-05-31.txt:15:31:41: <Keymaker> so it would finally have 1 1 1 in b stack? 2005-05-31.txt:15:32:00: <kipple> no it would have 1 1 1 1 in the b stack 2005-05-31.txt:16:06:08: <kipple> all input is pushed onto the i stack BEFORE the program is executed 2005-05-31.txt:16:08:16: <pgimeno> whenever a program tries to use the input stack for the first time, the input will be read 2005-05-31.txt:16:09:11: <kipple> the problem is that the input stack might be used for other purposes (it is not exclusively for input) 2005-05-31.txt:16:11:04: <pgimeno> kipple: imagine that you keep a count of elements on the 'i' stack 2005-05-31.txt:16:11:38: <malaprop> it's be weird for the interpreter to pause for input when code tries to push onto the input stack. 2005-05-31.txt:16:13:15: <kipple> as it is now it is perfectly legal to pop from an empty stack (will return 0). so you can easily check if the program has recieved any input. this will not work if a pop will result in a getchar() 2005-05-31.txt:16:15:51: <pgimeno> if you pop from the 'i' stack and there's input, you don't receive a 0 2005-05-31.txt:16:16:36: <graue> why would the interpreter have to pause for input when code pushes on the input stack? 2005-05-31.txt:16:16:38: <pgimeno> similarly, if you pop from the 'i' stack in 'lazy input' mode, then all input is gathered and pushed and you don't receive a 0 either 2005-05-31.txt:16:16:50: <kipple> as far as I understood your solution, if you pop the i stack and it's empty, then you would trigger a getchar(), no? 2005-05-31.txt:16:19:44: <kipple> the difference being that you cannot pop the i stack, and find out if any input was passed to the program, because that would trigger input to be read 2005-05-31.txt:16:24:12: <kipple> consider the following program: it checks to see if there is any input by popping the i stack, and checking for 0. if 0 then print "please provide input!" and terminates. else it performs some operations on the input 2005-05-31.txt:16:25:31: <malaprop> print "please provide inpurt: ", pop input stack 2005-05-31.txt:16:29:04: <pgimeno> kipple: in other words, it's the implementation of the pop operation the one which reads the input: if the instruction is a pop, and the stack is 'i', and the number of elements is 0, then read the input (if any) and return the first byte (or 0 if none); otherwise perform as any other stack pop 2005-05-31.txt:16:30:08: <malaprop> pgimeno: And, if stack is empty and no input is given, the stack stays empty and future calls don't try to get input. 2005-05-31.txt:16:31:05: <pgimeno> and if it's used as any other stack but it never is popped when empty, no input will be read 2005-05-31.txt:16:45:24: <graue> how many stacks does a language need to be Turing-complete? 2005-05-31.txt:16:47:18: <graue> so a single deque would be enough, since it can be treated as two stacks, right? 2005-05-31.txt:16:49:13: <fizzie> According to some googling there is a working representation of two stacks in a single queue. 2005-05-31.txt:17:28:31: <Keymaker2> "According to some googling there is a working representation of two stacks in a single queue." 2005-05-31.txt:17:30:41: <fizzie> Well, http://jackson.cs.miami.edu/~burt/papers/1993.1/Saq-JAIIO-2.ps has a proof of the queue-automata-is-equivalent-to-turing-machine thing, but it doesn't (unless I misread, I just briefly looked at it) use two-stacks-in-a-queue, that one was a CS assignment or something. 2005-05-31.txt:18:01:14: <kipple> the problem is the copying of ALL the stacks each time a sous chef is called 2005-05-31.txt:22:05:56: <kipple> quoted from 99-bottles-of-beer.net: "What the fuck is going on here? In fact we got two Chef submissons within a couple of hours. As soon as I have some time on my hands, I will add support for showing several examples for each language cuz I don't want to be the one who decides which is the better one etc. For now I activated the first submission." :D 2005-06-01.txt:23:52:20: <graue> a literal number or string just pushes itself onto the stack 2005-06-01.txt:23:52:36: <pgimeno> I missed the stack part 2005-06-02.txt:04:36:03: <GregorR> So, stack elements are a sort of "variant," that can be either a number or a string? 2005-06-02.txt:04:49:11: <graue> an expression that is evaluated must result in exactly one value on the stack 2005-06-02.txt:21:20:10: <cpressey> or... no, even befunge has a stack, making it a PDA 2005-06-03.txt:16:34:26: <sp3tt> Basically uses a stack to print Hello world, when it can be done without one. Also demonstrates how to use userdefined vars in functions. 2005-06-04.txt:12:41:17: <kipple> graue: I've read the Sortle spec. it's not clear to me how to push values onto the stack. 2005-06-04.txt:12:41:50: <kipple> there are a list of operators that work on the stack, but I can't find how to acutally get any data on the stack in the first place... 2005-06-04.txt:13:10:01: <graue> kipple, literal numbers or strings push themselves onto the stack 2005-06-04.txt:13:11:38: <kipple> ok. so will the expression "12" push 12 or 1 and 2 onto the stack? 2005-06-04.txt:13:46:09: <kipple> i assume my interpreter will give an invalid stack identifier error or something 2005-06-04.txt:13:48:57: <kipple> hmm. here's a thought: If I allow < to be used as a stack name, then this expression could be used: a<<b (a.push(<.pop()); <.push(b.pop()) ) 2005-06-04.txt:13:51:41: <kipple> hmm. I think I will allow ANY character as a stack name in the next version, except numbers, whitespace and # 2005-06-04.txt:14:07:33: <jix> no a stack 2005-06-04.txt:14:07:49: <kipple> it's either a stack or an operator 2005-06-04.txt:14:19:26: <kipple> hmm. should I keep stack names case insensitive, or change to case sensitive? 2005-06-04.txt:17:42:19: <kipple> "k">( would give an error that ( is not a stack 2005-06-04.txt:19:02:18: <GregorR> My peptide chains will stack rather than fold, and simply based on every-other amino acid being "compatible" 2005-06-04.txt:19:50:02: <kipple> isn't fuckfuck one of those as well? 2005-06-04.txt:19:53:03: <kipple> I think we should aim to include every esolang, even ook, fuckfuck, cow etc. but those could be bunched together in one article, referenced from the BF article 2005-06-04.txt:20:13:07: <kipple> for instance: I think we should have a "stack-based" category 2005-06-04.txt:20:13:46: <CXI> stack-based meaning which languages? 2005-06-04.txt:20:14:00: <kipple> but what exactly is that? only langs with only one stack, like befunge, or including languages like Chef and Kipple? 2005-06-04.txt:20:14:36: <pgimeno> I think that including all; that makes it easier to look for a particular language which is stack based 2005-06-04.txt:20:15:01: <jix> languages that use stacks as its main/only data structure 2005-06-04.txt:20:19:32: <sp3tt> FuckYorBrane XD 2005-06-04.txt:21:41:38: <lament> but shit 2005-06-04.txt:21:55:33: <sp3tt> The program should output "Your brain is fucked" XD 2005-06-04.txt:22:06:38: <fizzie> I seem to recall some pushdown-automata-like language (single stack, no other real storage), but now I've forgotten it. How is befunge classified, btw? At least '93 has that 80x25 fixed size limit... 2005-06-04.txt:22:08:23: <lament> fuck. 2005-06-04.txt:22:48:11: <sp3tt> Ok, Brainfuck totally rocks, pwns, and is teh shit! 2005-06-04.txt:22:52:53: <sp3tt> That prints "Your brain is fucked!" 2005-06-04.txt:23:13:41: <sp3tt> And the text is a brainfuck program that outputs "Your brain is fucked". 2005-06-05.txt:00:46:53: <jix> auto converted (BF=>BOOF=>XUML) programs are going to be so fucked long 2005-06-05.txt:17:59:49: <sp3tt> It prints "Your brain is fucked!" 2005-06-05.txt:20:48:31: <graue> it seemed unclear what was or wasn't by reference, "deep copies" and "shallow copies" left my brain all fucked, so i stopped working on it 2005-06-05.txt:20:56:49: <sp3tt> graue: you mean python fucked up your brain less that bf? 2005-06-06.txt:10:06:32: <lament> a stack... 2005-06-07.txt:22:19:55: <lament> each line controls a separate stack 2005-06-07.txt:22:20:21: <lament> instructions < and > access data from neighD[D[D[D[D[D[Dbouring stacks 2005-06-07.txt:22:21:19: <graue> so the stacks run in parallel? 2005-06-07.txt:22:21:48: <lament> < gets data from the stack above (with wraparound) 2005-06-07.txt:22:21:56: <lament> > gets data from the stack below (with wraparound) 2005-06-07.txt:22:22:23: <lament> will add to both stacks the top value on the other swap 2005-06-07.txt:22:22:26: <lament> *other stack 2005-06-07.txt:22:25:42: <lament> (without the use of a third stack) 2005-06-07.txt:22:27:24: <lament> even with the third stack it's not trivial :( 2005-06-07.txt:22:28:03: <lament> with the use of the third stack, swapping values in the first two: 2005-06-07.txt:22:37:32: <lament> because you're not limited to two stacks 2005-06-07.txt:22:43:57: <kipple> when you say "# drop last value", you mean the top of the stack, right? 2005-06-07.txt:22:50:39: <kipple> does the ^ and v alter the stack above/below ,or just peek at it? 2005-06-07.txt:23:23:24: <lament> the bottom stack keeps growing? [too many lines; stopping]