00:30:08 -!- ais523 has quit (""Going home""). 00:35:54 -!- sebbu has quit ("je re"). 00:41:28 -!- timotiis has quit (Remote closed the connection). 00:43:39 -!- slereah_ has joined. 00:44:38 -!- sebbu has joined. 00:46:52 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 01:12:51 -!- oerjan has quit ("Good night"). 01:25:46 -!- calamari has joined. 01:30:16 -!- BMeph69 has changed nick to BMeph. 01:45:33 -!- Tritonio_ has joined. 01:45:41 -!- Tritonio__ has joined. 01:45:49 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)). 01:45:57 -!- Tritonio__ has quit (Read error: 104 (Connection reset by peer)). 01:46:13 -!- Tritonio_ has joined. 02:01:59 -!- RodgerTheGreat has joined. 02:08:12 Ugh, I just realized that if I do in fact make this language, I am going to make my own profiler since it cannot use C calling convention. Sigh. 02:08:40 -!- ehird has quit ("Konversation terminated!"). 02:08:44 Ugh. 02:08:59 Ugh. 02:09:23 * Sgeo has learned a LOT about DNS today 02:11:03 today, i pood, ate and coded java 02:11:19 (you figure out the parse tree.) 02:11:20 Heh, 02:11:35 I assume coding java and pooing are a single process. 02:12:17 cute, very cute 02:12:24 Eh, that doesn't make as much sense as it did in my head. 02:12:32 I apologize. 02:12:39 :D 02:13:01 sometimes i take the comp with me to the toilet. 02:13:13 if you have to ask 02:14:01 Well I was trying to make a simile between eating poo and coding java. 02:17:37 :D 02:17:50 i've made that multiple times 02:18:03 i mean 02:18:04 that simile 02:18:29 Except the words came out in senseless babble. 02:18:53 I guess that is the result of spending too much time writing a language spec. 02:19:16 My typing system is turning into a clone of C. 02:19:26 Pointers and such are exactly the same. 02:19:57 The only additional type I expect is a closure. 02:20:58 But every other aspect of the language is in no way similar to C. 02:20:59 At all. 02:22:15 is it esolicious? 02:22:57 What does that mean? 02:24:50 :) 02:25:01 ? 02:25:04 do you considered it esoteric? 02:25:24 Yes. 02:25:34 eso- is something you add when something is esoteric, -licious is just something you add when something is hot and steamy 02:25:49 the latter can also be a nop, depends on the situation 02:25:51 Heh. 02:30:50 I am trying to decide if I should even implement closures. 02:30:52 They are so slow. 02:31:24 And it isn't that much work to just create a function. 02:31:38 But it makes it even more confusing. 02:34:04 what kinda closures? 02:34:28 There is only one type of closure, no? 02:38:44 umm, closure = function copies surrounding namespace? 02:38:47 The US Government uses ZoneEdit? 02:39:09 oklofok: Basically. 02:39:46 Deformative: and that is slow because? 02:40:11 You need to stick all the local variables on the heap somewhere. 02:40:14 you just compile that into giving the params explicitly instead of taking them from the surroundings. 02:40:46 Yeah, but you need to malloc every single time you pass a closure. 02:40:57 And in my language they could EASILY become overused. 02:42:25 The user would likely end up creating a closure for the true and false of every single if statement. 02:42:34 And that is bad. 02:44:26 Plus it would massively uglify the syntax. 02:45:05 -!- Tritonio_ has quit (Remote closed the connection). 02:45:36 I am also trying to decide to have anonymous functions or not. 02:45:43 It is easily implemented. 02:45:46 But ugly. 02:50:38 anonymous functions are sex 02:50:48 you have them, and people will like you 02:53:10 Heh. 02:53:16 Yeah, I will implement those. 02:53:34 But I think closures are a nono. 02:54:43 Should I use <> or [] for function definitions? 02:54:59 I think <> so that i could use [] for arrays. 02:55:35 Even thought vice versa looks better, [] for arrays will conform with all other languages. 02:56:52 Then I will use {} for structures. 02:56:56 And I do not know what for comments. 03:03:34 <> is cute 03:03:56 i use stuff with hyphens 03:04:04 <-- --> for oklotalk, -- for most 03:04:49 -- is from haskell, <-- --> is my own invention based on haskell + nopol, but it is also a html comment perhaps 03:05:00 not sure, i've never used comments in my html :) 03:07:18 Well I cannot use <> that is function definition. 03:07:45 I guess I could use /* */ but it is so difficult to type. 03:10:29 Heh, if I could make everything with more than 2 lines of indentation commented. 03:10:37 Because there will never be more than one. 03:10:38 Ever. 03:10:40 Which is nice. 03:11:34 s/if I could/if I was stupid I could 03:13:39 nono 03:13:44 make one indentation comment 03:13:47 0 and 2 are program! 03:13:59 xD 03:18:13 Maybe ~comments~ 03:18:48 Or `comments` 03:18:59 Eh, the ` char is too small. 03:19:16 Not enough characters on the keyboard, seriously. 03:33:27 that's why they invented tokens 03:53:07 Hmm. ~comments~ would logically be not comments. :p 03:55:58 heh 03:56:05 "...colorForth can not help but be the one operating system in the world capable of being totally open and at the same time the most quickly understandable by children." 03:56:40 "...if you realize that this is possibly a once in a life time chance to make computing easier for the entire world in one project..." 03:56:49 (somebody wants to put colorForth on OLPC) 04:03:59 it's perhaps the most insane page i've ever seen. http://colorforthray.info/ 04:20:42 I'm having difficulty understanding why colors are necessary or useful in FORTH. 04:23:29 and lament- if that's the most insane page you've ever seen, you should investigate http://www.timecube.com/ 04:39:49 I like colorforth. 04:39:57 Could be better though. 05:04:33 That reminds me. . . 05:04:46 cherez: Going to do more of your dramatic readings of Time Cube? 05:06:25 Wow. The Time Cube stuff has even gotten worse recently. . . 05:07:14 The craziness goes up to eleven now. 05:09:11 the TimeCube page gets updated? 05:10:13 Yeah. 05:10:18 "Believer is far more EVIL than a False God, for Google 05:10:19 cut back my Site from 34,000,000 to 4,000,000 in 1 night 05:10:19 for the above Statement. 1 Day1God exists only as Evil. 05:10:19 I thought Google was free of such evil bias, predjudice 05:10:19 and shenanigans that block real truth from being known. 05:10:19 Once before, Google cut back my site from 89,000,000 to 05:10:21 34,000,000 in a single act for something I said, that/s Evil" 05:10:23 sorry 05:10:30 WTF is that supposed to MEAN? 05:10:41 He's now discussing +0- antipodes. . . 05:10:43 WTF is that? 05:11:18 http://uncyclopedia.org/wiki/Slime_Cube :D 05:11:39 BTW, a slime cube with a bunch of potions in it? *Dangerous*. 05:18:54 heh 05:19:23 I always figured it would digest any potions spilled within, but that could be interesting... 05:20:05 Potions activating at random. 05:20:08 *shudder* 05:24:04 knowing my campaigns, a couple random potions are instant, bottled hilarity 05:24:25 I was always proud of the "plaid potion". 05:26:24 ... Plaid potion? 05:26:33 Do I *want* to know what that does? 05:26:58 a particularly deranged alchemist made most of my players fear potions with odd, misspelled labels like the plague 05:27:05 pikhq: it does what it sounds like 05:27:59 ... it turns stuff plaid. 05:52:20 LMAO 05:52:45 * pikhq needs to know more of this campaign 05:53:35 I ran my D&D games very fast and loose, and there was a lot of comedy and running gags 05:54:25 "Melf" was a dangerously inept wizard/alchemist/probably pothead that made the craziest shit 05:55:23 sometimes my notes would be just a sheet of paper with "there are some caves, here's a random encounter table and here's a list of the insane magic items the players will find" 05:55:58 we could spend hours with them just figuring out what stuff did, fighting some goblins and solving a puzzle room or two 05:57:39 Even in the more serious adventures, it wasn't unusual to run across some "Melf's Acid Apples" or a deck of "Stinky Pete's Cards of Fortune" 06:00:09 the "bag-O-charisma" was a fun one. Strangle someone with it, and it steals a portion of their CHA, and then transfers it to the next person that dons the bag, temporarily. It took players a while to figure it out, and then caused trouble because nobody recognized the players afterwards until the effects wore off. 06:00:56 Fortunately one player, thinking quickly, beat himself in the face with a rock until he was ugly enough for the townspeople to recognize 06:01:21 good times, good times 06:04:56 y'know, I think if I could find my old notes to refresh my memory, I could make some pretty funny comics about our exploits back in the day 06:07:52 My God. 06:08:01 Hmm. 06:08:13 Of course, you need a few Decks of Everything. 06:08:27 Erm. 06:08:33 I forget the name of that again. . . 06:08:48 Deck of Many Things. 06:10:21 * pikhq goes off, sticks of Bag of Holding in a Bag of Holding. 06:10:57 Speaking of which. . . 06:11:05 RodgerTheGreat: You should have given out a bag of devouring. 06:12:09 One of my players sewed a bag of devouring into his pocket, hilariously slaying several pickpockets 06:12:46 LMAO 06:12:52 BRILLIANT! 06:13:07 and the books make it clear that storing bags of holding or portable holes in themselves or each other will tear a hole in existence and suck shit inside before disappearing 06:13:37 Fun to mess with magic objects. 06:14:41 I am *intimately* familiar with all the core rulebooks, particularly magic items. I'm good at memorizing these things, which is why I was a good DM. They're still all up here in my skull. 06:15:08 Damn. 06:15:10 After a year or two I never needed the books at all unless somebody had to roll up a character 06:15:26 Hmm. What's the funniest one you can think of? 06:15:30 just me, my notes, and dice. 06:15:37 uhm... 06:16:00 well, the hand and eye of Vecna aren't exactly funny, but they're interesting 06:16:26 * pikhq is not familiar with the magic items. . . 06:16:35 but you can't just sling those around willy nilly, because they're supposedly unique 06:16:36 Didn't come up much in campaigns I've played. ;) 06:17:14 I made loads of Vorpal quarterstaffs and intelligent +2 hafling skiprocks and goofy stuff like that 06:17:40 LMAO 06:20:19 hell, I could run an adventure over skype for old times sake someday if you can get a decent group together 06:20:44 If I can, sure. 06:21:08 what edition do you use? 06:22:02 I'm used to 3rd. 06:22:15 I might have a copy of 2nd around here, though. 06:22:20 good, good. Would you be up for trying 1st edition sometime? 06:22:30 the term "fucking brutal" doesn't do it justice 06:23:00 Sure, I'd be up for trying it. 06:23:01 I've always wanted to run an adventure for it, and I have a handful of classic modules I could snazz up 06:23:04 I lack rulebooks, though. 06:23:35 I can scan a couple pieces, explain the rest and preroll characters for people 06:23:49 I even have a table of pregenerated characters for this purpose 06:23:52 Mmkay. 06:24:12 Everyone will probably get 2 characters because they'll die like flies 06:25:08 example: in 1st edition, if you're disabling a poisoned lock and miss the DC, it stabs you. Fort save to resist poison. Fail the DC there, and your character is dead. period. stats are irrelevant. 06:25:53 Holy shit. 06:25:59 holy shit indeed 06:26:21 I wanna try that trick with the bag of devouring, though. . . 06:26:25 Hmm. 06:26:33 Something more unique would be nice, though. 06:26:36 in 1st edition a wizard's starting HP is lower than an average housecat. There is no difference between money and XP. Everything, EVERYTHING is fucking hardcore. 06:27:03 O.O 06:27:38 Melf's Acid apples are cool. Bite into one and it'll dissolve most of your head. They're best used as grenade-like things once you know what they actually are. Good for making holes in castle walls 06:27:55 (one of my inventions, btw) 06:28:34 I think the damage was like 2d10+5+ 1d4 CHA damage if you ate it. 06:28:44 but really, improvisation is key here 06:30:29 * pikhq discovers an online copy of the d20 ruleset. w00ts. 06:30:51 (and yes, I know there's a difference between CHA and Rifts-style P.B.- you're less persuasive and convincing when you don't have a lower jaw.) 06:31:21 A Cloak of Poisonousness. . . 06:31:22 Hmm. 06:31:31 That could actually be used as a deadly weapon. 06:31:36 did I mention that aside from encyclopedic knowledge of D&D I know about 6 other rulesets as well? 06:31:51 (put it on. Unless you succeed a fortitude check of 28, you die.) 06:31:53 Wow. 06:32:45 This all contributes to why I play with out books, and make up most stuff on the fly- I know how everything works, and I know all kinds of ways it *could* work. 06:33:45 eventually, you realize the books are just there to point you in the direction, and if you take enough of a running jump on your own, you can learn to fly. 06:35:21 Well, of course. 06:35:28 it's like the DM/GM equivalent of becoming "the one". The rules of a roleplaying game are just like the rules of a computer system- some can be bent. Others, broken. 06:35:38 The game is just a conduit for storytelling. 06:36:00 Most of the time, I'd play using nothing but my character sheet. . . The DM would look things up from time to time, but most of the time, it was just sheer amusement. . . 06:36:15 * pikhq remembers the final day of his first campaign. . . A giant chicken ended that. XD 06:37:25 The DM stuck a rubber chicken and some miniatures on the table and said 'There. You're fighting that.' 06:37:29 'I summon a giant bee.' 06:37:30 :D 06:37:41 A good DM knows the only rules necessary to play are the following: 1) Be consistent. 2) Be fair. 3) You want the players to succeed, but they don't have to know that. 4) keep 'em guessing. 06:37:44 * pikhq <3 druids, BTW. . . 06:38:14 follow those principles and you can have a grand time doing *anything* 06:38:18 Another campaign ended in apocalypse. For the hell of it, he was rolling an apocalypse check every time we did something really, really unlikely. 06:38:23 (3 20s in a row, for example.) 06:39:49 best moment for me as a player EVER "I rolled a 20! I succeeded" "No, you didn't" "What if he rolls a nat 20 too?" "Yeah, like that's gonna happen" (rolls a nat 20 without blinking) "... fuck you guys. It explodes." 06:40:38 "I rolled a 20. Thrice." "That. . . Can't die. . ." 06:41:11 new galleries on my site for games (http://rodger.nonlogic.org/games.php) and comics (http://rodger.nonlogic.org/comics.php), btw 06:41:13 "Fine. It dies. You see it again, behind you." 06:42:00 w00ts. 06:42:07 "I hide and make the sounds of a babbling brook to throw the owlbears off my trail" (critical failure) "BAAAASSS! BAAASSS!" 06:42:53 LMAO 06:44:24 and then there was the time my character used weighted dice and some insane bluff checks to win EVERYTHING the guards to this fortress OWNED while the other characters snuck in and locked them out. 06:44:51 http://rodger.nonlogic.org/comics/Comic019.png Brilliant. 06:45:27 "halt who goes there" "Flashbang, gnomish smith of great renown. Up for a game of chance? I have *shiny* things..." 06:45:54 I thought CL#24 would be topical 06:45:58 :D 06:47:45 have you tried out "Polyp", my new game? 06:47:50 http://rodger.nonlogic.org/comics/Comic011.png Sorry, but I won. 06:47:53 I'll have to in a bit. 06:48:09 that XKCD was so uncool. 06:48:20 I disagree. 06:48:35 I think The Game just became more positive. 06:49:30 I think ryan just has a less rigorous strain of the virus- mine is pretty explicit about what constitutes a win condition. 06:49:54 "A STRANGE GAME; THE ONLY WINNING MOVE IS NOT TO PLAY. *klick*" 06:50:40 and goddamnit why hasn't Aaron updated yet. 06:50:57 Because he must be executed. 06:51:10 Nice 'weekly' schedule, no? 06:51:25 s/weekly/semi-monthly 06:51:35 If we're lucky. 06:53:05 I gather you're starting to take my point of view on the matter 06:53:20 Yes. 06:53:28 It was one thing when he didn't update during the flu and moving. . . 06:53:40 "If you do a strip for a living, MOTHERFUCKING TREAT YOUR RELEASE SCHEDULE AS MORE THAN A VAGUE SUGGESTION" 06:53:46 But god dammit, it's halfway through March, and we've had one update in the past two weeks. 06:53:56 s/weeks/months/ 06:54:08 there we go 06:55:00 at that rate, 6 strips per YEAR. Dresden Codak is well done, but I could draw something that well blindfolded if I had two months in which to make it. 06:55:29 http://rodger.nonlogic.org/comics/Comic001.png 06:55:41 that one's a classic 06:55:45 Truly. 06:55:53 I'll need to stick that one on my wall or something. 06:56:17 based on a true story no less 06:57:46 Wow. 06:57:56 I had a fun orientation week. 06:58:39 Heheh. 07:00:22 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 07:03:21 anyway, frickin' try Polyp before I go to sleep 07:03:42 Mmkay. 07:05:31 Brilliant. 07:05:48 thankoo 07:05:56 under 700 lines of code 07:07:31 -!- calamari has quit ("Leaving"). 07:13:47 Damn. 07:14:42 feel free to download the source and fiddle. It's all WTFPLed 07:34:31 I'm out 07:34:41 -!- RodgerTheGreat has quit. 07:47:40 -!- BMeph has quit ("calls it a night"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:14:24 -!- RedDak has joined. 09:37:24 -!- Corun has quit ("This computer has gone to sleep"). 10:20:03 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 10:25:04 -!- RedDak has joined. 11:32:46 -!- marshmallows has joined. 13:14:04 -!- slereah_ has quit (Remote closed the connection). 13:14:31 -!- Slereah has joined. 13:20:56 what is a "low-order copy"? 13:21:33 it's mentioned in some befunge fingerprint specs I'm trying to implement, but I got no idea what it is 13:26:16 C ('bracelet') pops three vectors off the stack and performs a low-order copy of Funge-Space. 13:30:49 IIRC the way I interpreted that is start from the end, not the beginning, or vice versa 13:31:00 i.e. go from top left to bottom right versus bottom right to top left 14:04:16 ah so not a high order byte copy? 14:08:03 -!- RodgerTheGreat has joined. 14:08:33 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 14:09:18 -!- bsmntbombdood has joined. 14:09:24 no, probably not 14:10:37 howdy 14:10:55 yo 14:11:16 AnMaster: if I recall correctly, !Befunge does it the same way - or at least tries to, the mycology test fails 14:11:36 heh 14:12:02 Deewiant, you need to update that chart, try my last version, it got concurrency 14:12:12 I need to update it anyway 14:12:16 Deewiant, pretty fast still with my super-optimize script 14:12:29 no idea if you *want* to see it 14:12:37 probably not ;-) 14:12:52 Deewiant, it's not that bad 14:13:09 Deewiant, http://rafb.net/p/ipoHrq23.html 14:13:18 need to be run from top checkout dir 14:13:25 ie, out of tree builds = not supported 14:14:12 Deewiant, also skipping GC = saves about 0.01 seconds or so 14:14:26 * AnMaster is down around 0.077 here so :D 14:14:35 with that script 14:15:20 Deewiant, anyway what do you think? try adding your own -march and such in CHOSTFLAGS 14:15:34 I think that's overkill :-) 14:15:35 I want to know how well it performs with that 14:15:47 Deewiant, yes but I want to see how fast I can get it! 14:16:04 you haven't compared startup times yet? i.e. just replace the first char of mycology with @ 14:16:06 Deewiant, oh and you may want to add -DCONCURRENT_FUNGE to DEFINES variable 14:16:17 Deewiant, right, I'll test that 14:17:03 * AnMaster ponders optimizing if it can be determined that part of the program won't get loaded, ie, if first char is @ just quit :D 14:17:55 real 0m0.066s 14:18:03 Deewiant, hrrm, looks like loading takes most of the time 14:18:11 for cfunge at least 14:18:19 as I thought 14:18:40 the program is completely IO bound and you're optimizing CPU usage like crazy :-) 14:19:06 Deewiant, well without my optimizing it wouldn't be IO bound 14:19:19 * AnMaster goes to look at how to make loading faster 14:19:20 no, I still think it would be 14:19:41 if a program spends 90% of its time doing IO it's IO bound alright ;-) 14:20:00 Deewiant, because in CCBI the difference is much larger 14:20:19 how big? 14:20:28 real 0m0.188s for ./ccbi --disable-fprints ~/src/cfunge08/mycology/mycology.b98 > /dev/null 14:20:32 real 0m0.117s 14:20:35 and keep in mind that CCBI is always doing IO during mycology as well :-) 14:20:36 with it disabled 14:21:09 is that the latest CCBI? 14:21:29 Deewiant, well notice that I got it down from around 0.150 to 0.070 with my cpu optimizing, with -O0 -ggdb3 it takes around 0.500 14:21:54 Deewiant, no, not the very last, will download last 14:22:06 this one had the typo in --help 14:22:11 so we've got a program that used to take 0.2 seconds to run now takes 0.1 seconds to run, and it's doing IO for 70% of that :-) 14:22:23 Deewiant, for what is left yes 14:22:43 I don't know, optimizing such just seems like so much overkill :-) 14:22:53 I'd go optimize bashfunge instead 14:23:12 Deewiant, bah, it would fail at doing x 14:23:18 the way it was implemented 14:23:57 Deewiant, the last ccbi zip file from your site is slower 14:24:00 $ time ./ccbi --disable-fprints ~/src/cfunge08/mycology/mycology.b98 > /dev/null 14:24:00 real 0m0.179s 14:24:07 with @ at start 14:24:10 real 0m0.244s 14:24:13 without @ at start 14:24:14 -!- timotiis has joined. 14:24:15 heh 14:24:29 I don't know, it's about 50% faster for me :-) 14:24:37 Deewiant, probably CPU? 14:24:42 hence we see that optimizations are once again a bit... dubious 14:24:49 Deewiant, I downloaded the last ccbi_linux.zip 14:24:55 Deewiant, not if you do profiling! 14:25:04 I do do profiling 14:25:07 oh? 14:25:10 gcov? 14:25:17 that took the time for funge-space access down by 30% or so 14:25:21 here, at least. 14:25:41 Deewiant, yes indeed, changing to not pass fspace pointer around helped for me too 14:25:56 and it wouldn't be needed without TRDS I suspect 14:26:51 Deewiant, if I profile for a mycology with a @ at the start I can get time down to less than 0.06 seconds XD 14:26:57 * AnMaster runs (it was a joke!) 14:27:21 of course, what I don't do is profile-guided optimization. :-P 14:27:34 Deewiant, hehe indeed 14:28:25 I got an idea at least, hm can you get the size of a file without using stat *looks at man pages* 14:28:47 Deewiant, what I'm thinking about is doing some optimizing of initial allocation size 14:28:58 to select maybe 1.25 * program size 14:29:15 instead of hard coded defaults 14:34:34 -!- oerjan has joined. 14:54:57 Deewiant, it looks, according to gprof, like the bottle neck is inserting into hash table 14:55:09 yep 14:55:23 so, faster hash library then? 14:55:43 or admit you're at the limit :-P 14:56:06 Deewiant, nah, current hash library I selected because it was 1) lgpl 2) small 3) easy to use 14:56:34 I've seen better that are 1) custom GPL compatible 2) large 3) harder to use 14:57:04 http://www.sunrisetel.net/software/devtools/sunrise-data-dictionary.shtml <-- going to investigate that one 14:57:30 Deewiant, anyway I can speed up current hash library a bit 14:57:41 by hard coding it to handle FUNGEDATATYPE 14:57:51 instead of handling pointers to data 14:57:53 should help eh? 14:57:58 :-P 14:58:11 Deewiant, you don't think so? 14:58:37 I'm not going to say anything, I'm just going to sit here and laugh at your desperate attempts to squeeze every last bit of performance from a Befunge interpreter :-D 14:58:39 Deewiant, also it use a function pointer to a hash function, hard coding it to use one of the hash functions instead would also help 14:59:08 Deewiant, it's just a matter of seeing "how far can I take this" 14:59:28 Deewiant, it looks like most code in mycology only executes once, right? 14:59:34 so a JIT wouldn't help much 15:01:25 Deewiant, looks like gprof works sub-optimally on binaries with much inlining hrrm 15:05:17 Deewiant, without inlineing I see it is "search_in_bucket" private function of hash table that is slowest 15:10:05 here a GC function is the one that takes most time 15:10:23 AnMaster: what style of GC is the boehm one? generational, mark-and-sweep, what? 15:10:42 Deewiant, mark-and-sweep iirc 15:11:00 or some variant of that 15:11:41 yep mark-and-sweep 15:12:04 Deewiant, anyway that was a build without GC I tried to check what was going on in hash 15:12:21 looks like it does some generational collection as well 15:12:34 the search_in_bucket takes 80% of the time of running when mycology starts with a @ 15:12:37 :/ 15:12:48 and it already looks quite optimized 15:13:19 here gc.mark takes 30%, followed by input, followed by hashing, followed by input, followed by gc.fullCollect, followed by gc_calloc 15:13:31 Deewiant, calloc, hrrm 15:13:39 -!- slereah_ has joined. 15:13:45 Deewiant, anyway I did LEAK_MODE to check without gc 15:13:51 AnMaster: D always initializes all variables 15:14:03 might cause slowdown somewhere with arrays, can't be bothered to find where 15:14:06 Deewiant, aha, well I think boehm does too 15:14:54 the difference is that where you do int[40] x; D also does memset(&x, 0, 40 * int.sizeof); or something :-) 15:14:54 at least you can safely do: #define calloc(x,y) GC_MALLOC(x) * (y)) 15:14:55 iirc 15:15:03 Deewiant, ah I see 15:15:19 but I don't really use static arrays much anyway 15:15:34 static arrays would not be initialized would they? 15:15:42 that was a static array 15:15:45 and yes, it would be. 15:15:46 nor ones allocated on the stack, right? 15:15:50 hm 15:15:52 yes, they would be. 15:15:56 everything is initialized to something. 15:16:02 they wouldn't in C I think 15:16:07 well static array might 15:16:08 depends 15:16:09 correct, they wouldn't. 15:16:22 C initializes nothing implicitly. 15:16:56 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 15:16:59 Deewiant, that still doesn't explain why an array on stack ended up as { 0, 0, 0, 0 } without initializing heh 15:17:11 dumb luck 15:17:20 -!- oklofok has quit (No route to host). 15:17:41 Deewiant, probably, anyway I filled it just one line after so didn't matter, but gdb told me every time I hit it that it was that 15:19:18 * AnMaster thinks DESCRIPTION and RETURN VALUE of man memcmp are somewhat redundant, telling the same info 15:20:02 aha, gcc does a __builtin__ for memcmp, explains why that instruction took so much 15:21:19 Deewiant, btw kprof is very nice 15:22:03 Deewiant, and it turns out according to it, the real problem isn't loading when running without @, but getting from hash 15:23:58 Deewiant, of the 0.8 seconds to run without the @, about 0.4 is spent searching in hash 15:23:59 :/ 15:24:05 so not really IO bound 15:24:13 but hash table lookup bound 15:24:28 and of course insert on loading program needs to look up too 15:33:56 -!- slereah__ has joined. 15:40:31 -!- oklofok has joined. 15:40:50 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 15:44:50 Deewiant, for now I'm not going to try to optimize hash, but the way it is coded it should be easy to replace with another hash library later 15:53:53 -!- faxathisia has joined. 15:54:51 -!- marshmallows has quit (Nick collision from services.). 15:55:03 -!- faxathisia has changed nick to marshmallows. 16:00:37 -!- Slereah has joined. 16:03:30 -!- slereah__ has quit (Read error: 110 (Connection timed out)). 16:13:28 * SimonRC curses his net connection 16:18:14 Should I have whitespace separate type and var name the way C does? 16:18:40 Deformative in what context? 16:18:42 That is the only relevant whitespace in my whole language if I do. 16:18:55 marshmallows: Function definition. 16:18:58 ? 16:19:06 what does the language look like 16:19:36 who are these two people? 16:19:49 Deformative: how about a colon 16:20:03 Uhm, there is no other languages that have the same syntax as the one I am designing. 16:20:13 It has the C typing system. 16:20:16 But that's about it. 16:20:24 "var : type" is a common syntax for variable types 16:20:51 sigh, I still have no idea what the language looks like..... 16:21:07 It is the formal one, as well as the one found in Haskell, Pascal, ML-likes, etc 16:21:36 I don't think any of those languages does that.. 16:22:08 haskell uses ::, Pascal uses whitespace (sort of like C), and ML don't have explicit type annotation....? 16:22:24 pascal uses : 16:22:29 var foo : integer; 16:22:31 functionName<..., type arg, type arg> continuation(..., arg, arg) 16:22:33 okt it does 16:22:36 things like "global foo : int" 16:22:46 That is the current syntax, and I don't really like it. 16:23:16 ok yeah get rid of the <> and do it like pascal 16:23:46 ? 16:23:53 ? 16:24:12 and Haskell and ML-likes just took the two alternatives to the dilemma of : or :: for cons and : or :: for type-annotation 16:25:27 I would rather use <> for arrays and [] for function definitions, but I figured it would be better to follow the conventions of C and such. 16:31:51 why not use -> for array indexing? 16:32:12 or >>, or !!, or !, or } or some other symbol 16:32:24 All of those are from actual languages 16:32:35 where's }? 16:32:35 except the >> I think 16:32:37 Uh. 16:32:47 They are ugly, heh. And i am using {} for structures/ 16:33:09 }, or maybe it is {, is in J and K 16:33:32 Heh, J is fun. 16:33:35 I was thinking of esoteric languages and almost hit the mark ;-) 16:34:09 !! and ! are or course from Haskell, and I forget where -> is from 16:35:25 Hm 16:36:32 maybe Euphoria 16:37:55 So yeah, <> looks somewhat ugly, but I think I will use it. 16:38:15 Cannot decide for the types though. 16:43:06 Ah, I remember 16:43:24 -> and --> as indexing operators are out of Inform 16:43:42 -> is byte indexing and --> is word indexing 16:45:17 there's plain brackets, table(idx), too 16:46:19 Hmm, that is function call though. 16:51:39 hm 16:51:51 Deewiant, I think I'm close to the limit of speed with current design yes 16:52:02 so I'll concentrate on features instead 16:52:36 Deewiant, oh and I do have some idea for loading faster, the problem is the actual IO part isn't the slow bit, it is the hash table lookup that is 16:53:02 Deewiant, btw, anyone made some sort of coverage analysis for befunge? 16:53:02 yep, same here 16:53:11 all time is basically dominated for hash table + GC 16:53:17 what do you mean? 16:53:50 Deewiant, as in gcov style, shows how many time each line is executed, for befunge that would be instruction not line of course 16:54:28 I could do that right now by just compiling with -cov and running :-P 16:54:34 Deewiant, I plan to use gcov on my source to see how much of it mycology actually tests 16:54:48 Deformative: the same syntax for function calls and array indexing is fine. 16:54:51 I think I did, too 16:54:54 Deewiant, but I mean actual coverage on the befunge program itself 16:54:57 but not gcov 16:55:16 Deewiant, as in see how much of mycology is executed in CCBI for example 16:55:22 AnMaster: you mean not count how many times # is called, but how many times a particular # is called 16:55:30 Deewiant, yep 16:55:47 -!- Tritonio_ has joined. 16:55:50 basically easy to do by running your trace mode, for instance 16:55:53 After all, an array is just a function from the index to a mutable cell 16:55:56 and then just use a program which counts that 16:56:07 Deewiant, hm indeed 16:57:12 AnMaster: have you run the Fungus Befunge IDE? 16:57:20 Deewiant, err no? 16:57:41 AnMaster: it has a cool "show path that IP travelled" kind of feature 16:57:47 nice 16:57:55 it draws lines on top of the befunge program to show where the IP went 16:58:03 cool 16:58:06 by the way it seems CRC32 hash is faster than one-at-a-time hash, hm.... 16:58:19 can it draw lines over all the boundaries that the IP didn't cross? 16:58:24 Deewiant, very nice, except for mycology fingerprints it would look like a mess 16:58:27 that is more comprehensible 16:58:29 as you use common loading code 16:58:30 I was thinking of implementing something like that for CCBI, and was thinking even of a protocol so that you could map any GUI onto it 16:58:37 well, not a mess 16:58:47 the same line is just drawn a bunch of times 16:58:54 hm 16:58:59 since it's always entered from the same direction etc. 16:59:07 SimonRC: I don't think so. 16:59:11 Deewiant, well yes should be useful for coverage analysis 16:59:23 however, how does it show the line over say: #v r 16:59:55 I guess I could upload a screenie of what it does with the parts of Mycology that it can handle 16:59:58 when annotating Hunt The Wumpus, I found that lines between code to show where the IP didn't go were much easier to read than lines the showed where it did go 17:00:00 Deewiant, hm fungus site gone? 17:00:03 it doesn't look /that/ great but it's handy 17:00:18 Deewiant, and only a windows binary on your site :( 17:00:20 AnMaster: yeah, only the web archive page exists 17:00:26 and only a windows binary was ever releaased 17:00:32 Deewiant, closed source?! 17:00:40 like I say, The only closed-source Befunge interpreter I’ve come across. 17:00:41 :-) 17:01:01 Deewiant, upload screenshot somewhere, say omploader or such a picture pastebin 17:01:08 -!- Corun has joined. 17:02:18 Deewiant, anyway when do you plan to update your mycology results page? 17:03:25 as soon as I can bother :-P 17:03:39 Deewiant, you used some script to generate that table? 17:03:55 yes, of course 17:04:11 in what language? 17:04:15 haskell 17:04:34 ah, was going to ask you to send them over so I can have a look, but if it is haskell forget it 17:04:43 :-P 17:05:08 http://users.tkk.fi/~mniemenm/fungus_running.png and http://users.tkk.fi/~mniemenm/fungus_end.png 17:05:14 I mean, I don't know D, but if I read your D code I can often guess what it is trying to do, same for C++, but well with haskell it is just weird 17:05:17 like said, it's nothing special 17:05:34 Deewiant, oh, I was hoping for some opengl stuff with arrows and such 17:05:43 nope 17:05:57 hence why I was thinking of some kind of standard-ish protocol 17:06:23 Deewiant, yes if you make one I'll be sure to implement it 17:06:39 Deewiant, something over unix sockets maybe? 17:06:42 i.e. interpreter outputs "IP with ID foo and mode bar is at pos x,y with delta a,b and offset f,g" or whatever and then a frontend can draw stuff given that 17:06:44 or just stdout/stdin? 17:07:05 doesn't matter really, but ideally text-based 17:07:11 hmm 17:07:13 Deewiant, I'd prefer a more compact and easier to parse for a program format 17:07:16 like say: 17:07:22 well, of course not literally like that 17:07:25 but I mean, not binary 17:07:50 foo bar x y a b f g 17:08:07 IP=5;MODE=STR;POSX=5;POSY=7;DELTAX .... 17:08:14 that would allow 3D too 17:08:20 just add POSZ 17:08:21 but not greater than 3D 17:08:22 hm 17:08:27 Deewiant, ÅÄÖ ;P 17:08:29 which is why something like pos={5,7} would be better 17:08:35 Deewiant, yep agreed 17:08:53 fscanf(sock, "%d %d %d %d %d %d %d %d", &id, &mode, etc etc etc 17:09:11 but sloooooow 17:09:13 Deewiant, but please make it easy to parse with scanf or such, and single line for each to parse 17:09:17 the trick is how to handle stuff like mode and fingerprints, and what kind of all info is needed 17:09:45 maybe indent following lines with whitespace? 17:09:52 Deewiant, for mode you could do some string constants, say CODE,STR for the two standard ones, and some more 17:10:07 Deewiant, support for transmitting TRDS info would NOT be needed 17:10:12 I'd suggest not allowing that 17:10:17 I was just about to say what about TRDS :-D 17:10:20 so you have an ID, pos, delta, and other fixed stuff, then an indented list of properties 17:10:31 Deewiant, it's horrible, and quite pointless 17:10:32 Deewiant: lol 17:10:37 it seems like we're rapidly moving towards JSON/sexps ;-) 17:10:45 s-expressions sure 17:10:45 yaml? 17:10:50 s-expressions 17:10:54 no, XML is the answer 17:10:54 whatever, but not XML ;-) 17:10:56 :-) 17:11:01 * AnMaster is a emacs user and is used to elisp 17:11:10 so I feel at home with S-Expressions 17:11:16 TRDS would be pretty easy to support actually 17:11:33 Deewiant, I even wrote some code in C# to seralize .NET classes to S-Expressions 17:11:37 all that happens is all the IPs suddenly move to a different place 17:11:42 and space is modified 17:11:43 or rather I wrote a substantial part of that code 17:11:58 the actual parser and tokenizer someone else coded 17:12:09 TODO: prolog in befunge via TRDS 17:12:11 :-) 17:12:27 SimonRC, ERR_TRDS_TOO_STUPID_NOT_SUPPORTED 17:12:30 :P 17:12:34 actually TRDS allows IPs to meet their younger selves 17:12:44 weird name TRDS 17:12:44 I think 17:12:51 I don't get what TRDS stands for 17:12:54 AnMaster: no, very mnuemonic 17:12:55 AnMaster: TARDIS 17:12:58 http://en.wikipedia.org/wiki/TARDIS 17:13:18 Deewiant, ah, never watched that TV series 17:13:44 you missed out 17:14:54 where is the TRDS spec? 17:23:43 SimonRC: in the RC/Funge-98 readme 17:25:17 Deewiant, I find it odd some even fail at sainty.bf 17:25:37 http://users.tkk.fi/~mniemenm/befunge/mycology-output/sanity/!Befunge.txt 17:25:38 err? 17:25:51 output looks ok? 17:25:53 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 17:26:00 AnMaster: "*** Exited normally" 17:26:03 yet it is marked as bad 17:26:08 -!- Slereah has joined. 17:26:12 Deewiant, ah so it shows that at the end? 17:26:24 as you can see right there :-P 17:26:32 you can always compare to the expected 17:26:47 err but why is CCBI marked good, output doesn't match 17:26:51 CCBI shows a warning message 17:26:55 http://users.tkk.fi/~mniemenm/befunge/mycology-output/sanity/CCBI.txt 17:26:59 because it can be removed 17:27:03 by not specifying -w 17:27:13 Deewiant, ah for me it is "enable warnings by -W" 17:27:49 that's why it says for !Befunge "irremovable exit code output" - it can't be removed 17:28:00 Deewiant, hm does http://users.tkk.fi/~mniemenm/befunge/mycology-output/sanity/FBBI.txt contain something strange? I get a download box instead of it getting show inside firefox like the rest of the files 17:28:24 yeah, apparently firefox or the web server don't like txt files that contain null bytes 17:28:41 aha 17:28:53 or not null bytes, but control characters 17:29:23 and hmm 17:29:43 Deewiant, "# < jumps over <" in http://users.tkk.fi/~mniemenm/befunge/mycology-output/befunge93/BeQunge.txt why did that cause END? 17:29:50 or did it crash just after that? 17:30:04 ask BeQunge what happened :-P 17:30:13 no trace? 17:30:24 it's an IDE 17:30:37 ah probably trace then 17:30:37 and even if there were, I wouldn't bother to find out 17:31:02 Deewiant, ah but for !Befunge you would bother to check I suspect? ;P 17:31:09 but actually, no 17:31:13 # < is fatal 17:31:17 ah ok 17:31:20 as in, mycology quits afterward 17:31:32 AnMaster: yeah, if the interpreter is interesting in its own right, sure 17:31:39 but if it's just another crap implementation then no :-P 17:31:46 "BAD: 3k< takes more than two ticks" <-- hm is there no matching GOOD for that one? 17:32:11 expected.txt seems to have it 17:32:15 GOOD: 3k< takes two ticks 17:32:17 * AnMaster checks cfunge 17:32:30 oh yes it's there 17:32:30 * SimonRC realises something important about befunge... 17:32:34 SimonRC, yes? 17:32:39 that it is a bloated language? 17:32:44 that it's hard to compile? 17:32:46 You can't add new operators that look like the built-in ones 17:33:10 SimonRC, indeed, all chars between ASCII 32 and 127 are in use 17:33:23 127 isn't 17:33:24 In things like C, most stuff is in functions, and your functions look like the builtins 17:33:31 127 is a control char 17:33:35 Deewiant, sure? isn't 127 == ~? 17:33:37 * AnMaster checks 17:33:40 as SimonRC said 17:33:43 ~ is 126 17:34:10 ah yes 17:34:10 so what control char is 127 then? 17:34:15 it's called DEL 17:34:19 On my ASCII chart, it's some sort of house shape 17:34:22 aha 17:34:25 it is often typed as Ctrl-? 17:34:45 Deewiant, btw, the limit on chars in input is a bit odd for befunge 17:35:03 it is one of the two common bindings for backspadem, the other being ^H (BS) 17:35:09 "(and greater than 255 on systems where characters are stored in multiple bytes; but no greater 17:35:09 than 2,147,483,647.)" 17:35:27 seems reasonab;e 17:35:28 Deewiant, does that mean I have to handle chars greater than 255? Ie, handle utf8 17:35:35 currently I read files in assuming 8 bit chars 17:35:40 no, it doesn't 17:35:44 I originally read that so that you do 17:35:53 and made the mistake of assuming UTF-8 on input 17:36:02 hmm, on systems where there is a difference, are befunge files text or binary? 17:36:03 but note that it talks about /systems/ where characters are stored in multiple bytes 17:36:12 not about text encodings or anything like that 17:36:14 Deewiant, what such systems exist? 17:36:18 it makes a difference if you have (e.g.) Chinese strings as UTF-8 17:36:26 AnMaster: I have no clue 17:36:46 if you read further it's clear what is meant 17:36:48 That is to say, character #417 may look like a squiggle on system Foo and a happy face on system Bar, but the meaning is always the same to Funge, 'character #417', regardless of what it looks like. 17:37:32 Deewiant, also utf8 should work fine, say a char consists of {125 123}, assuming it is loaded on stack that way and the terminal interpreters it as such an encoding, it will work fine 17:37:33 so if you get 0xeb 0xbb 0xbf on input you're not to read it as char #65534 17:37:53 Deewiant, however that will depend on if you travel > or < or other direction 17:37:57 AnMaster: yes, just plain reading/writing in basic ways works if done correctly. 17:38:11 it may mess up columns 17:38:15 AnMaster: just as getting GOOD or DOOG depends on which dir you're moving in. :-) 17:38:33 yes, if you assume your editor's display is correct in that sense 17:38:35 and if you do say "ö" you would get different results depending on what way you travel 17:38:48 and it would be a PITA to write in reverse 17:39:21 just do ;#"ö";# < 17:39:28 err what? 17:39:38 for reverse 17:39:38 oh I get it 17:39:55 Deewiant, however it would break say, ip going down over line later on it 17:39:57 or, if you've got the luxury of a working j or x 17:40:00 use them 17:40:09 personally, I would store each unicode code point in one cell 17:40:09 v 17:40:09 ö > 17:40:17 that may not work as expected 17:40:18 AnMaster: like said, if you think your editor display is correct then you're mistaken. 17:40:26 Deewiant, heh 17:40:29 hmm 17:40:45 or, if you've got the luxury of a working j or x <-- yes but what is wrong with ; ? 17:40:49 SimonRC: yeah, such a mode could easily be implemented, but it'd depend on interpreter support. 17:40:52 ; is very nice for comments 17:40:57 AnMaster: if you've got more ;s 17:41:05 ; astusaddrfasdfasdfa ;#"ö";# < asdfsadfasd a; 17:41:07 doesn't work any more 17:41:10 ah true 17:41:20 Deewiant, I almost only use ; for comments 17:41:35 waitamo... 17:41:40 the few places where I comment I just put it next to the code :-) 17:41:41 how do # and space interact? 17:41:48 btw, does mycology test wrapping within ; mode? 17:41:51 SimonRC: we just talked about it above, # jumps over space 17:42:00 SimonRC, jump over, ie, doing nothing either way 17:42:10 SimonRC: many interpreters get that wrong and instead jump over the next instruction after spaces 17:42:11 ok 17:42:24 AnMaster: probably not explicitly, but it uses it 17:42:34 brb phone 17:54:04 -!- RedDak has quit ("Killed (NickServ (Comando GHOST usato da DIO))"). 17:54:26 -!- RedDak has joined. 18:00:53 back 18:01:39 ok 18:02:07 brb nuclear war 18:02:27 lol 18:02:27 SimonRC, it was just because I was in a discussion so it would seem odd if I just left 18:02:32 ok 18:02:34 otherwise I wouldn't mention it :P 18:11:29 -!- RedDak has quit (Remote closed the connection). 18:17:41 Deewiant, btw mycology fails at testing greatest point of y well, I had two errors in it, that, for mycology's case, canceled out each other 18:17:57 what kind 18:17:57 Deewiant, 1) I pushed width and breath not absolute max point 18:18:02 2) I had a off by one error 18:18:14 and least point in mycology at that point is -1,-1 18:18:27 result: my error did not show up in mycology 18:19:21 well, if I make the least point -1,-2 somebody will have an off by one and off by two error ;-) 18:19:41 Deewiant, better check once, write to a new negative value and check again 18:19:50 -!- slereah_ has joined. 18:19:59 yeah, right, you fit that in there :-P 18:20:01 Deewiant, but at least in C off by one are rather common when working with array 18:20:02 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 18:20:08 arrays* 18:20:15 yeah, I know 18:20:25 ie, brain thinks in 1-indexed, computer doesn't 18:20:38 off by two or so is not as common 18:20:52 Deewiant, as for fitting in: I prefer PIC befunge 18:20:54 much easier 18:21:02 position independent code 18:21:16 like said, I would too 18:21:21 but I started it out like that and hence it became that 18:21:26 hm 18:21:28 but I'm not going to rewrite it either :-P 18:21:47 actually is it harder to write PIC in befunge than absolute code? 18:21:50 like I said, test {}gp first and then use {} to keep stuff PIC 18:21:54 yes, it is 18:22:05 maybe some fingerprint to help that? 18:22:05 but if you have a working { and }, not much 18:22:20 no need, { and } make it as easy as can be 18:22:22 SUBR is actually worse for PIC 18:22:54 it's not meant for PIC 18:22:58 it's meant for reusing code 18:23:25 yeah, but I would prefer a mode for finding such functions that was position independent 18:23:28 hm 18:23:45 maybe register function entry point, and then jump to that name or something? 18:24:23 actually there is one thing I'd like to add in a fingerprint, just because it would so totally NOT fit with funge 18:24:29 REGS 18:24:34 emulate CPU with registers 18:24:34 XD 18:24:44 that's REFC 18:25:13 Deewiant, hm but REFC got a problem: you can't know what it returns 18:25:22 ? 18:25:27 so if you could register something under a given index 18:25:40 because then you could hard code what entries to look up 18:25:58 Deewiant, oh you mean REFC = registers? 18:26:07 or REFC = register entry points? 18:26:19 REFC = variables, which is essentially equivalent to registers 18:26:38 hm 18:27:58 I would prefer something like A = push into %bax, B = Push into %bbx, C = Push into %bcx, maybe 2-3 registers more, then have operations that multiply those and such 18:28:17 just to make it feel like registers :) 18:28:41 as befunge is a stack based language it would feel so totally wrong :D 18:30:17 is there a goot way to do a goto in befunge? 18:30:35 SimonRC, x, relative addressing to 18:30:45 or there is J from SUBR fingerprint 18:30:50 bah 18:30:54 that is jump to absolute coordinates 18:31:08 SimonRC, x sets delta 18:31:13 yup 18:31:16 so you got to reset delta after you jump 18:31:18 but it works well 18:31:21 as a goto 18:31:25 just about to say that myself 18:31:59 SimonRC, however, for "jump and go east", if you can depend on SUBR fingerprint, then I'd recommend J 18:32:02 but otherwise x 18:32:14 avoid depending on fingerprints if you can IMO 18:32:19 indeed 18:32:36 there's also j 18:32:43 well yes 18:32:43 darn, Forth rather relies on address = 1 cell 18:32:46 which is like x, but it moves once and doesn't change the delta 18:32:52 Deewiant, indeed 18:32:54 -!- oerjan has quit ("leaving"). 18:33:09 actually it does, but then it changes it back again (in my implementation, or it breaks at wrapping) 18:33:32 only the semantics matter, not how it's implemented :-) 18:33:36 as I don't want to do like CCBI and run "one forward" 9999 or whatever times 18:34:06 optimizing CPU as I can't optimize hash more yet 18:34:07 ;) 18:34:24 Deewiant, btw cachegrind looks nice 18:34:43 part of valgrind 18:34:52 looks for cache miss situations 18:34:54 go ahead 18:35:05 not using it is because it's output is hard to parse 18:35:10 heh 18:35:11 maybe when everything else is doen 18:35:13 done* 18:35:25 there are frontends for cachegrind as well, you know :-) 18:35:28 I do run valgrind and mudflap every now and then 18:35:37 Deewiant, yep, kachegrind or something like that 18:35:45 or maybe they actually left the c in for once 18:36:49 Deewiant, btw ever tried mudflap? 18:36:56 nope 18:37:03 very nice pointer debugging thing, if you enabled the mudflap useflag for gcc 18:37:06 haven't programmed that much in C/C++ 18:37:18 http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging 18:37:26 yes, I know what it is :-) 18:37:46 Deewiant, quite nice, at some things better than valgrind, at other things valgrind is better 18:38:07 oh and I've seen boehm-gc in leak check mode catch leaks neither of those two catched 18:39:23 Deewiant, btw I've been thinking of some kind of JIT for some things, but I think they may end up slower, ie. caching the matching ; for a ; and such 18:39:41 but likely to be slower as I would need to invalidate cache at p and so on 18:39:57 another thing, concurrency, ; takes 0 ticks right? 18:40:09 but how long does this take: ; blah blah;;blah blah; 18:40:14 0 ticks 18:40:17 hm 18:40:30 ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;$ takes one tick 18:40:38 assuming the semicolons match 18:40:38 for $ yes 18:42:01 btw, when cfunge is done I think I'll try to write a fast brainfuck compiler, ie, optimize and convert to speedy C 18:42:07 then compile that optimized 18:42:27 I'm not that interested in brainfuck, it's too simple :-) 18:42:41 Deewiant, so what other esoteric languages are you interested in? 18:42:58 I don't know, I've been looking for something cool but haven't found anything that special 18:43:07 Rail or whatever it was called looked nice 18:43:46 looked? or was? 18:44:05 looked 18:44:15 haven't done anything with anything other than befunge, really 18:44:15 so what was the problem with it? 18:44:18 and a bit of whitespace once 18:44:21 beats me 18:44:24 don't remember :-P 18:44:40 Deewiant, a rail -> befunge converter maybe? 18:45:04 maybe I've just had enough of esoterica for now ;-) 18:45:42 Deewiant, one thing you could do, change wrapping to allow user defined topologies, ie, load klein-funge file into CCBI 18:45:49 I'm not going to 18:45:56 but could be a nice experiment 18:46:12 can't really be done 18:46:15 oh? 18:46:18 since the wrapping function can be arbitrary 18:46:26 Deewiant, indeed it can 18:46:32 so have a parser for it 18:46:57 something that can be JIT compiled or so 18:47:15 or compiled to a *.so/*.dll even 18:47:15 and loaded 18:47:15 would need to implement a whole language there 18:47:39 actually you could just dlopen a file, with a few basic functions 18:47:39 might as well leave it to the dynamic language people 18:48:03 except that that doesn't work on windows 18:48:12 Deewiant, there are *.ddl on windows 18:48:15 that could work the same 18:48:24 yes, there are dlls 18:48:28 don't remember functions names for windows though 18:48:33 but it would require writing a lot of code to make it work 18:48:55 something like LoadLibraryExWeDidn'tGetAPIRightFirstTimeSoHereIsAnExtendedOne 18:48:55 it's trickier in D than in C, with the garbage collection and all that 18:49:07 might be easier if only loading C code 18:49:19 but still, too much trouble 18:49:25 * AnMaster finds all the *Ex API functions of Windows sad 18:49:35 they can't even get their APIs right first time sigh 18:50:56 there's stuff like tmpfile in the C/POSIX APIs as well :-) 18:51:18 oh yes tmpfile/tempfile/mktemp/mkstemp 18:51:39 Deewiant, but hardly as common 18:51:46 and when you've got a million customers you usually can't just say "stop using what you have because this new stuff is better", you're burdened with backwards compatibility 18:52:01 but yes, I admit, the design of windows could have been much better from the start. 18:52:28 Deewiant, indeed, but windows got more *Ex functions than POSIX got updated functions 18:53:45 the windows stuff also supports a lot more stuff 18:53:54 not saying that it's a good thing to have all that built in 18:54:00 indeed 18:54:09 windowing routines belongs in X API 18:54:13 not in system API 18:54:25 from what I've heard the X API is absolutely horrid 18:54:53 Deewiant, very likely, xlib is 18:54:59 http://en.wikipedia.org/wiki/X11#Limitations_and_criticisms_of_X 18:55:00 I think that new xlib replacement is better 18:55:02 forgot it's name 18:55:30 libxcb 18:55:33 that's the one 18:55:51 yeah, isn't that like a big *Ex for all of X? ;-) 18:57:51 Nope. 18:57:52 X11 sucks. 18:57:57 Regardless of api. 18:58:12 that's arguable, as well 18:58:48 It is just the 11th protocol revision, it is horrible, no matter what api they use to wrap it, it still sucks. 18:59:33 Deformative, so use motif or QT or something 18:59:42 but POSIX API is great 18:59:45 X API isn't 18:59:59 ... 19:00:03 The X API is sheer insanity. 19:00:12 pikhq, agreed 19:00:16 Motif and qt still use the 11th protocol revision. 19:00:29 Deformative, is there any 12th? 19:00:34 Deformative: *Everyone* uses X11. 19:00:39 There's not an X12. 19:00:49 (although X.org is tossing around ideas for it, actually) 19:00:50 AnMaster: freedesktop is considering it. 19:00:55 nice 19:00:59 Not really considering it, but they have a wiki with ideas about it. 19:01:01 hope they make the new API sane 19:01:10 -!- RedDak has joined. 19:01:32 really nice and sane, and provide backward compatiblity in some external library 19:01:52 I already said this, the api is not the problem, the problem is the protocol that the server and clients must follow, the packets they must send. 19:02:32 Deformative: No, the API is the problem. 19:02:39 It is *fucking insane*. 19:02:42 You can wrap this protocol in an api to make it tolerable, but it still would suck internally. 19:02:46 It makes Win32 look reasonable. 19:03:42 Deformative, nop, you could replace it with a 12th protocol revision 19:04:19 ... 19:04:28 and it would still suck. 19:06:24 If graphics contexts, window borders, and all the other useless garbage was removed from the protocol, the api would inevitably become more sane. 19:07:49 And I don't have a clue how they could fix the hell that is the icccm. 19:09:26 Or any IPC for that matter. 19:09:34 I don't know, maybe they could make a lib to handle that or such. 19:09:46 Hah, 1-bit icon pixmaps 19:10:31 Deewiant, *.xbm? 19:10:31 So, basically, "If the entirety of X11 were removed, then the API would become sane". 19:10:44 AnMaster: what the ICCCM specifies 19:10:50 ah 19:11:26 Deewiant, even back a few years that was useful, think of transparency in gif, you could threat that as a 1-bit pixmap acting as a mask 19:11:31 today we got alpha of course 19:11:49 AnMaster: sure, useful, but it's one hell of a limitation 19:12:20 Deewiant, but I can see 24-bit images or whatever it is on my screen, and I can see transparency, so I'm not sure I get the *current* problem 19:12:25 Perhaps just an *alpha channel*? ;) 19:12:45 pikhq, even they are 8-bit these days 19:12:53 AnMaster: Well aware. 19:12:54 * AnMaster doesn't use composite but... 19:15:44 AnMaster: Without using an extension to the protocol, the core protocol itself, the most colors that you can use for many things is two, for example, you can only use two colors to create a cursor using the core protocol. 19:16:17 Deformative, I see 19:16:27 but I got a 2-color cusor 19:16:28 so? 19:16:37 Are you sure? 19:16:38 I like the standard X11 cursor 19:16:41 Transparent is a color. 19:16:46 I wouldn't trade it for anything 19:16:46 That is three. 19:17:03 Deewiant, hm? so the standard cursor is 3-color? 19:17:09 Yes. 19:17:14 nah 19:17:23 only the bit's that arent the cursor are trasparent 19:17:34 Deformative, transparent and black as far as I can se? 19:17:35 see* 19:17:43 White outline. 19:17:56 hm true 19:18:00 marshmallows: Are you sure? 19:18:14 You may be right, now that I think of it. 19:18:16 Hrm. 19:18:24 not sure 19:18:32 however, wouldn't the cursor be a rectangular bitmap? 19:18:48 logically I mena 19:18:50 mean* 19:18:53 Yar. 19:19:03 so yes 3 colors then 19:19:07 It's probably stored interally as such... 19:19:16 I don't think that's relevant to how many colors it's made o 19:19:34 in that case you could probably even say it's 256 colors 19:19:53 Only if you use an extension. 19:21:47 I remember i always needed to use the xcursor extension in order to get > 2 colors. 19:22:01 If I remember correctly xrender could be used as well. 19:25:03 Hmm, you may be able to have 2 colors + a mask 19:25:05 Whatever. 19:26:00 * Deformative needs to go. 19:26:02 o/ 19:32:41 * SimonRC reads up 19:33:37 Deewiant, there? why are some of the GOOD BAD boxes on the result page for the mycology tests not links? 19:33:53 actually mostly the GOOD ones 19:34:07 because there's no point in linking to anything, they're the expected output 19:34:19 Deewiant, still some GOOD are links? 19:34:20 it does say that right above the table you know :-) 19:34:27 because they have something UNDEF 19:34:30 ah ok 19:40:36 o 19:43:56 -!- Corun has quit ("back later, with pizza"). 19:44:04 I recall there is a supposed X replacement called Y 19:44:10 It was on /. a few years back 19:44:14 * SimonRC searches 19:45:08 Don't bother. 19:45:10 It is the suck. 19:45:13 Written in sdl. 19:47:16 -!- RodgerTheGreat has quit. 19:49:11 -!- RodgerTheGreat has joined. 20:11:32 Written in sdl. 20:11:33 err 20:11:36 sdl uses X? 20:11:38 right? 20:13:47 -!- Sgeo has joined. 20:17:10 Not always. 20:17:26 It has other backends. 20:17:40 ah right, linux framebuffer 20:17:57 and wincrap 20:18:35 Yep. 20:19:05 oh and aalib it seems 20:19:06 haha 20:19:12 Installed versions: 1.2.11-r2(02.57.23 2008-01-05)(X alsa arts fbcon opengl xv -aalib -custom-cflags -dga -directfb -esd -ggi -libcaca -nas -noaudio -nojoystick -novideo -oss -svga -xinerama) 20:21:52 aalib is awesome. 20:25:40 -!- RedDak has quit (Remote closed the connection). 20:30:20 -!- oklofok has quit (Connection timed out). 20:39:06 -!- oklofok has joined. 20:40:19 UNDEF: H outputs 40 as (28 20:40:19 wtf 21:01:08 how do you in C convert an integer to a string in the given base, for decimal, octal or hexdecimal it is easy with printf, but for other ones? say base 2 or base 31 21:01:27 printf seems to only do base 8 10 and 16 21:01:32 nothing in std c does this 21:03:15 gah 21:03:34 marshmallows, so how should one do it, it is for an befunge fingerprint 21:03:43 some kind of loop on the value? 21:04:03 or what is the best way to get arbitrary base in C? 21:04:12 is there some "standard algorithm"? 21:04:40 void binary(int number) { if(number > 0) binary(number >> 1); 21:04:40 putchar(number & 1 ? '1' : '0'); } 21:04:51 >> 1 just means divide by two 21:04:56 hm 21:04:57 you can do similar for any base 21:05:09 Gotta do it by hand. 21:05:14 marshmallows, need a look for a number larger than say 1 ;P 21:05:16 s/number & 1 ? '1' : '0'/number["0123456789"]/ 21:05:21 right? 21:05:32 recursion is the loop 21:05:36 oh right 21:05:44 * AnMaster ponders how to convert to a while loop 21:06:01 :/ 21:06:06 why on earth would you do that 21:06:07 or such 21:06:17 marshmallows, recursion mean function can't be inlined 21:06:22 O_o 21:06:42 whatever :) 21:06:42 prevents optimizing 21:06:59 marshmallows, look I'm aiming to make the fastest befunge interpreter out 21:07:02 out there* 21:07:41 you know what fast code is.. good algorithms 21:07:54 marshmallows, I know 21:08:21 not ultra optimizing a proc that only works on numbers < 65536 21:08:25 marshmallows, an recursion is not a good algorithm 21:08:31 bullshit 21:08:34 marshmallows, err, it only does that? 21:08:47 fingerprint are bigger than four chars? 21:08:59 xFFFF=65535 21:09:09 marshmallows, fingerprints names have to fit into four ASCII chars 21:09:20 but that doesn't affect the fingerprint routines themself 21:09:22 ? 21:10:15 xFFFF=65535 <-- yes but range is [A-Z0-9], or maybe even [A-Z0-9a-z], not [0-F] 21:10:36 2^32 - 1 I think is the number of possible fingerprints that can exist 21:11:04 ok.. I said that.. 21:11:27 marshmallows, but that doesn't limit what the fingerprints can do 21:11:30 anyway you should stop thinking recursion is inefficient that's like poison 21:11:41 It's false and will limit you severly 21:11:44 0101000 leading 0 hm 21:11:49 (and yes I know C does not define TCO who cares) 21:12:00 TCO? 21:12:12 that's for monitors? 21:12:25 * Sgeo finds what looks like an IPv6 propaganda comic 21:12:28 * AnMaster is confused 21:12:37 Sgeo, heh? 21:12:44 xkcd map of ipv4? 21:13:01 "The adventures of Team ARIN" 21:13:02 http://www.arin.net/education/comic/index.html 21:13:13 ^_o 21:13:43 Sgeo, that's weird, like very weird 21:14:15 it sounds almost as bad as that "sorcefource" thing or of microsoft 21:14:37 At least I'm learning from this comic 21:16:39 marshmallows, your algorithm works for bases below 10, I can see that, but what about higher ones? I need to support up to 36 bases 21:16:53 up to base 36* 21:16:58 s/number & 1 ? '1' : '0'/number["0123456789ABCDEF"]/...then 21:17:04 hm 21:18:41 "Thank goodness I was able to ZING your hardware and stop your packets from moving and messing up the Internet!" 21:19:03 Sgeo, spare us from this 21:23:00 marshmallows: "01223456789ABCDEF"[number] looks cleaner to me. . . 21:23:24 I prefer it the other way, it's your code do you watn 21:29:07 pikhq: heh 21:54:22 -!- slereah__ has joined. 21:58:28 -!- Sgeo has quit ("Ex-Chat"). 21:58:45 -!- Sgeo has joined. 21:59:43 Of course, we all know the real way is "mov eax, [hex_string + number]". 22:02:15 heh 22:06:23 pikhq, doesn't handle 64-bit values 22:06:52 %rax maybe on amd64, on 32-bit no idea 22:07:11 assuming bases above. say 2^32 22:07:13 :D 22:08:18 RodgerTheGreat: i know about timecube, but colorforthray.info is possibly more insane 22:08:32 lament, what is timecube? 22:08:42 AnMaster: timecube.com 22:08:43 -!- slereah_ has quit (Read error: 110 (Connection timed out)). 22:09:10 the owner of colorforthray is actually on freenode. 22:09:21 -1x -1 = 1 IS STUPID AND EVIL >:| 22:12:11 slereah__, err, lets see that can be simplified to -1x = 2, means x = 2/(-1) x =-1 22:12:13 er 22:12:15 x = -2 22:12:48 slereah__, how is it stupid an evil? 22:16:03 -!- slereah_ has joined. 22:16:20 "Read the time cube :o" 22:16:22 Was, I sayng 22:16:46 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 22:24:16 lament: I will have to read that site 22:24:27 ColorForth is great 22:24:58 but maybe only in the way unlambda is great 22:28:25 In the way that it is totally awesome? 22:28:45 -!- Tritonio_ has quit (Remote closed the connection). 22:29:19 ?unlambda 22:30:01 Unlambda! 22:30:01 It's pretty much the best known functional esoteric language! 22:30:06 Well, then again, that's still not very known 22:30:16 Heh\ 22:30:33 I am trying to figure out if the language I am designing is "functional" or not. 22:30:50 Is it full of functions? 22:31:00 Well. 22:31:13 Define function. 22:32:43 are there first-class function-like things? 22:32:58 Is lambda a keyword? 22:33:12 I have lambda expressions. 22:33:22 And I could have closures, but I do not think I will. 22:33:22 Elaborate? 22:33:39 Functions typically need to return a value. 22:33:43 Deformative: Show me some code in it 22:33:46 And have no side effect. 22:34:03 * pikhq nods... In a purely functional language, of course. . . 22:34:14 I just got a nice idea from a language due to a typo I made in C: 22:34:23 bool bool somefunction(...); 22:34:28 marshmallows: loop<...>loop() 22:34:33 ie, a language where stuff can return several values 22:34:35 Erm 22:34:37 using such a syntax 22:34:38 marshmallows: loop<...>loop(...) 22:34:42 AnMaster: My god. 22:34:45 I mean a larger bit of code 22:34:49 pikhq, what? 22:34:53 Insane. 22:34:55 Me like. 22:34:56 did you write nothing about 20 lines yet? 22:35:12 AnMaster haha I like that 22:35:19 (technically, those are no longer functions, but rather *relations*. . . :p) 22:35:22 pikhq, no time to write specs, but basically you wouldn't have to do say bool (bool * foo); to return several values 22:35:33 but instead could return any number of values 22:35:37 marshmallows: main<...>add(..., print, 3, 4) 22:35:48 pikhq, heh? they are what? 22:35:59 marshmallows: Factorial is like 15 lines. 22:36:02 SimonRC: read it, it's fucked up. 22:36:03 But it is on the old spec. 22:36:05 AnMaster: Ignore, please. 22:36:05 cool show me that 22:36:06 I have changed it since hten. 22:36:15 pikhq, no? what? 22:36:55 pikhq: quickly, tell us! 22:37:03 wonder how assignment syntax from such a function should look 22:37:06 maybe something like 22:37:19 foo,bar,quux = somefunction(); ? 22:37:20 AnMaster: what does it mean here to retu multiple values? do you return multiple times to the return continuation, or just return a pair, or..? 22:37:40 don't wanna be a killjoy, but if it's the latter, it's not that crazy :P 22:37:51 oklofok, well not sure, you can return several values, any given amount of values 22:38:10 oh and variable amount of returns 22:38:13 well, tuple then 22:38:15 foo bar = f(); 22:38:23 marshmallows: http://pastebin.ca/945366 That is a snippet of the old spec. 22:38:30 oklofok, so: int ... myfunc(); 22:38:37 That is before anonymous functions and before the syntax changed. 22:38:37 would return n number of integers 22:38:41 But same idea. 22:38:44 where n is unknown 22:38:59 -!- oerjan has joined. 22:39:40 hi oerjie! 22:39:41 why are there so many ...? 22:39:42 oklofok, like variable argument count in C, but instead variable return arguments 22:39:54 AnMaster: i know 22:40:00 AnMaster: You could have some very interesting calling conventions with that. . . 22:40:01 oklofok, would be a procedural language I think 22:40:01 hi okly 22:40:12 oerjan: oh, stop :) 22:40:26 pikhq, oh yes, at least when you do variable both ways 22:40:35 Deformative: What does ... mean? 22:40:36 marshmallows: Because, there are no return values. 22:40:37 i feel all stoppy 22:40:43 marshmallows: Ignored args. 22:40:45 pikhq, double ... floor(double ...) 22:40:46 For compatibility with the standard calling convention, have the first return value stuck in eax, and the rest get pushed on the stack. 22:41:09 pikhq, err not eax, would rather be rax right? 22:41:16 On AMD64, it would be rax. 22:41:21 I don't understand the code enough to decide, sorry 22:41:42 But most people don't have OSes that enable long mode, so the rax register won't exist for those people. ;) 22:41:52 marshmallows: Basically, it has continuations only, no return values. 22:41:54 pikhq, anyway I could not code this heh, anyway I don't know ASM 22:42:01 pikhq, however an interpreter should work 22:42:10 So you pass a function to execute next to every function. 22:42:10 and I probably won't code this, just a crazy idea 22:42:16 It'd be trivial to code up given a simple C compiler, actually. . . 22:42:23 pikhq, oh? 22:42:33 I use the word "function" but I do not believe they can be called functions. 22:42:41 Getting it to handle the syntax would be the pain. 22:42:57 But the actual *semantics*? Trivial. 22:43:07 pikhq, anyway if the first return value is larger than 32-bit it won't fit in %rax, or if it is floating point 22:43:23 s/rax/eax/ 22:43:31 pikhq, yeah eax 22:44:12 The standard C calling convention returns the value in eax if it's 32-bit or less, and not a float. If it's a float, it's on the floating point stack instead. And, if it's just larger than 32-bit, then eax has a pointer to it. 22:44:31 -!- calamari has joined. 22:44:33 (IIRC) 22:44:40 hi 22:44:42 * pikhq should look up cdecl again 22:44:52 pikhq, amd64 calling convention doesn't do that, it returns floating point in SSE registers iirc 22:45:00 AnMaster: What is the point? Why not just return a structure? 22:45:10 Deformative, it could be interesting 22:45:29 and if you make this language has, first class functions 22:45:35 then it could be really interesting 22:45:40 AnMaster: The amd64 calling convention is different from the x86 calling convention. 22:45:41 rrreally 22:45:46 could you curry return values 22:45:52 curry? 22:45:54 not sure 22:46:36 AnMaster: Are you talking about my language or your's? 22:46:42 Deewiant, mine? 22:46:49 or rather my wild idea 22:46:58 Why not just return a structure? 22:46:59 I probably won't implement it, or write a spec for it 22:47:03 What is the point of multiple return values? 22:47:04 (x86's convention stores all arguments on the stack. x86_64 stores the first 6 arguments or so in registers.) 22:47:08 Deformative, would be cheating 22:47:23 Uh, mkay. 22:47:31 Deformative, why not ask yourself: what is the point of any esoteric language then 22:47:43 marshmallows: Still trying to understand my code or should I leave? 22:47:55 AnMaster: the prob is, what's the essential difference between returning multiple values and an n-tuple 22:48:43 oklofok, hm, also you could code this as returning multiple times, would need some kind of setjmp I suspect, but I suspect you would prefer such a way of doing it? 22:48:59 i prefer to know what you mean :) 22:49:06 oklofok, I'm not sure yet 22:49:12 Hmm. Well, you *could* define the calling convention so that it's equivalent to a C program returning a struct. . . 22:49:31 pikhq: stop being so hardware, i'm a pythonist nowadays! :D 22:49:38 oklofok, it all started as a typo I made when copy pasting a new prototype for a function into a header, and missed to remove the old bool 22:49:47 -!- oklofok has changed nick to oklopol. 22:49:49 oklofok: When discussing something C-esque, then you've got to be hardware. :p 22:50:00 i guess, i guess 22:50:07 AnMaster: i know 22:50:10 marshmallows: ? 22:50:13 i'm fairly omniscient 22:50:43 oklopol, so I ended up with: extern bool bool input_getint(FUNGEDATATYPE * value, int base); 22:51:04 however that would be even easier, as value is an out parameter here 22:51:15 * calamari made an 8 instruction assembly language today.. 3 bits for the opcode, 5 bits for a single arg 22:51:28 that could be written as bool FUNGEDATATYPE input_getint(int base); 22:51:35 wish I knew more about circuit design 22:51:58 me too 22:52:02 pikhq, also this should be supported: bool ... int ... somefunction(), that is several sets of varreturns 22:52:03 :D 22:52:09 AnMaster: Could be even worse, though. 22:52:10 pikhq, same for varargs 22:52:18 extern bool static bool input_getint(...); 22:52:33 starting to sound fun again! now support regexes 22:52:35 pikhq, oh why static in front of the second bool, what would that mean? 22:52:40 bool+ int{7,10} 22:52:54 * AnMaster rofls 22:52:54 That it would return different values depending upon the linakge. 22:53:01 s/linakge/linkage/ 22:53:02 pikhq, XD 22:53:07 very nice 22:53:21 how, if I may ask, would the return statement look? 22:53:36 or would it be implemented as some sort of co-routine? 22:53:43 extern bool static bool linked_p() {return 0, 1;} 22:54:25 hm 22:54:42 pikhq, but for say extern bool ... static bool ... int ... then? 22:54:44 No *idea* how you'd make that calling convention work, though. 22:55:10 Except *maybe* by making the linker understand this language's conventions? 22:55:12 AnMaster: No clue. 22:55:20 Hmm. 22:55:26 and what about oklopol's regexes? 22:55:30 that could be nice 22:55:49 return(0,1,0,0,1)(1,0,1,1,0)(5,6,7,8,9,10); 22:55:49 ? 22:56:04 pikhq, ok and assignment from this function? 22:56:28 say /* what here*/ = linked_p() 22:56:38 bool foo,bool bar, bool baz, int qux, int quux = this_insane_function(); 22:56:55 Well, for linked_p, it'd be easy. 22:57:00 bool foo = linked_p(); 22:57:07 pikhq, err I mean for the "extern bool ... static bool ... int ..." one 22:57:11 It returns 1 value; that value is different based upon linkage. 22:57:12 Ah. 22:57:39 pikhq, ie, to an array? 22:57:54 or discard values not fitting into number of return variables? 22:58:11 and I still think oklopol's regex for return value looks cool 22:58:17 oh and same for arguments :D 23:01:03 (oklotalk does regex-like pattern matching, you can set an assert on lambdas to return a certain type pattern) 23:01:21 (all this done in such an unclean fashion you'll want to cry <3) 23:01:21 interesting 23:01:32 oklopol, mine at least is quite clean idea 23:01:42 with all the pointer hell of C too 23:02:45 * pikhq is in shock 23:02:52 pikhq, ? 23:02:56 why? 23:03:00 Window's calling convention does not allow variadic functions. 23:03:09 pikhq, stdcall is crap yes 23:03:26 btw what do you call "varadic return"? 23:03:35 The more I know about Windows, the more I hate it. 23:03:39 varun? 23:03:46 varurn even 23:03:49 Maybe. 23:03:50 lol 23:03:56 var urn 23:04:37 pikhq, windows "falls back" to cdecl for varadic functions I think 23:08:02 * Sgeo becomes obsessed with ViolaWWW 23:08:09 what is that? 23:08:21 AnMaster, old web browser, from before Mosaic 23:08:29 Sgeo, ah I forked mosaic btw 23:08:32 http://www.xcf.berkeley.edu/~wei/viola/violaCentral.html 23:08:42 make it be able to show xhml pages 23:08:55 cool 23:09:04 even tried adding garbage collector but didn't get that work finished 23:09:17 seems like ViolaWWW had AJAX-like features way before everyone else oO 23:09:19 if you got bzr 0.92 or later installed, you could check it out from *looks for url* 23:10:16 Sgeo, yes... "http://www.xcf.berkeley.edu/~wei/viola/vw/inset_chess.v" <-- wow 23:10:39 .v ? :S 23:10:57 Think ".js for ViolaWWW" 23:10:59 marshmallows, viola script it seems 23:11:08 WAAAAAAAAAY before JS ofc 23:11:40 does not really work 23:11:45 http://www.xcf.berkeley.edu/~wei/viola/vw/chessDemo.html 23:11:50 I guess I miss plugins. 23:11:55 marshmallows, -_- 23:11:59 you didn't read anything? 23:12:05 it's for some really old browser 23:12:14 of course it doesn't work in modern ones 23:12:38 AJAX(like) in 1994! http://www.xcf.berkeley.edu/~wei/viola/vw/monitor2.v 23:12:40 Sgeo, it looks very weird, parts of it look like C code 23:13:01 yes C code with some \latexstyle commands in it 23:14:30 If the Viola code was adopted for the WWW, how much more advanced would we be right now? 23:15:02 (I mean, if we made that decision way back when, not saying we should do that now) 23:15:28 3D 23:15:32 Wha? 23:15:41 it would have support for 3D 23:16:15 Sgeo, odd question 23:16:20 and one I can't answer 23:16:26 marshmallows, where do you see that? 23:16:33 If the Viola code was adopted for the WWW, how much more advanced would we be right now? 23:16:39 I am answering this question 23:16:44 oh 23:18:42 * Sgeo wonders if he can download ViolaWWW from somewhere and play with it 23:20:40 "All objects can be individually programmed using the scripting language. Each object is essentially its own interpretive environment, and each object is its own variable scope. So, an object only affects its own variable values and can not directly affect other objects' variables, thus minimizing side effects. 23:20:40 Having an encapsulated mini environment is useful not only for organizational purposes, but is also useful for enforcing security. This is particularly relevant in the Internet scaled World Wide Web context. " 23:20:52 /usr/include/gentoo-multilib/amd64/ctype.h:#define __isctype(c, type) \ 23:20:52 /usr/include/gentoo-multilib/amd64/ctype.h- ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type) 23:20:53 nice 23:21:01 that is how isalpha and such are done it seems 23:21:22 I don't see how stopping one object on a page from interacting with others on the page improves security 23:21:35 It's OO 23:21:37 all hype :P 23:22:14 Sgeo, it does a lot 23:22:28 Sgeo, say bank login object 23:22:42 and simple game object 23:23:12 bank login object should not be reachable from either simple game object, nor trojan object 23:24:07 does not give you proof that it's not reachable though 23:24:22 marshmallows, ? 23:24:37 ! 23:24:41 ?? 23:25:00 what doesn't give proof? 23:25:55 objects 23:26:52 marshmallows, true but other security features exist I assume 23:26:57 or didn't but should 23:26:57 * Sgeo wonders if there are people who fans of ViolaWWW 23:27:01 I mean, today 23:27:07 Sgeo, I didn't fan mosaic 23:27:14 I just wanted to get it to work and try it 23:27:34 then I noted how much faster than, say, firefox it was 23:28:53 Historical Web Browsers 23:28:53 Active Worlds 23:28:58 http://www.livinginternet.com/w/wi_browse.htm 23:29:02 **facepalm** 23:29:56 Sgeo, btw I also forked original gopher client 23:29:58 :P 23:32:47 * Sgeo just wants to download VioletWWW right now