00:03:11 mycroftiv: well, he's right 00:03:22 look at perl — it does everything in one bag 00:03:25 no separated tools 00:04:37 right, im just not sure if he meant that he was convinced by perl that was an OK approach, or if he was just bowing to the inevitable 00:05:39 -!- oerjan has quit ("Good night"). 00:05:56 mycroftiv: aren't they identical to a cynic? 00:06:35 sure but i dont know where pike is exactly on the cynicism vs design purity continuum 00:07:38 Who knows. 00:07:41 You can be on both. 00:08:29 mycroftiv: liking go, btw? 00:08:30 being a purist certainly can lead to cynicism 00:08:50 yeah very much, to me it seems obvious that its 'better' than c++ or java as an attempt to extend C 00:09:27 I'm most interested in it for three things: shiny new language, let's find a niche!; could this be better than C for applications programming?; could this be better than rc for the things rc is good for? 00:10:04 the message passing/synchronization stuff between chans is really great, pretty similar to limbo in that regard 00:11:24 a lot of the ideas it has a similar to ones i've had but that required taking a stand on some issue of e.g. syntax or semantics as a tradeoff but one of little importance — solving all those for me in something with backing is great 00:11:36 just as a sort of "shut the hell up and use this" 00:11:49 that iota shit though? hack hack HACK 00:12:15 theres still a lot of stuff in go i havent really assimilated yet 00:14:07 my project is porting a linux client for a 9p fs i wrote 00:14:38 so ive mostly just been learning how to translate C basics 00:15:22 Translation is always a bad idea. 00:15:26 -!- Rugxulo has joined. 00:15:34 Grok the language, read the concepts of your previous program, and write a new one with the same concepts. 00:15:53 well, its nice to have a bit of instant gratification though 00:16:09 Don't you have your C program already? 00:16:26 in plan 9, i never ported it to *nix, although thats basically trivial 00:16:57 * Rugxulo just download TinyRB (tiny Ruby clone), laughing at the irony of the 750k configure script 00:17:08 id been meaning to do it anyway, so doing it in go seemed like an ok two-birds-one-stone concept, it doesnt prevent me from doing better projects tomorrow or next week 00:18:00 [[Variables can be initialized just like constants but the initializer can be a general expression computed at run time.]] 00:18:00 About fucking time! 00:18:08 Rugxulo: So how's your 1 MB disk doing 00:18:21 :-) 00:18:26 Also, that's not irony. 00:18:33 The main Ruby configure script is about that big too. 00:18:36 So it's not ironic. 00:18:41 It'd be ironic if Ruby's configure was smaller. 00:19:09 * Rugxulo doesn't have main Ruby onhand to check its configure size 00:19:23 It's almost certainly larger 00:19:30 * SimonRC wonders if anyone here has read the source of ed. 00:19:31 More support for stuff, you know, that stuff you like 00:19:33 Like old things 00:19:34 SimonRC: which ed 00:19:35 if they upgrade to 2.64, it'll shrink a lot (shell functions) 00:19:46 ehird: the editor 00:19:56 Caldera Unix ed, modern SysV derivative ed, BSD ed, GNU ed, Heirloom ed, ...? 00:20:00 BusyBox ed? 00:20:36 * ehird wonders where to put GOROOT in his system design. Maybe /opt/go. 00:20:41 (with GOBIN=/bin) 00:20:48 Maybe /lib/go... 00:20:54 * Sgeo vaguely wishes that there was a Firefox theme for Chrome 00:21:03 (not /share/go, though.) 00:21:10 And not /bin/go. 00:21:27 Sgeo: Why? 00:21:31 The Chrome UI is wonderful. 00:21:41 ah, dunno which ed 00:21:45 nvm 00:21:51 SimonRC: why did you ask? 00:22:23 -!- sebbu has joined. 00:22:26 So that I won't keep wondering if the Chrome UI is the reason I'm not doing any work for this project, because I'm not used to it 00:22:33 I mean, it's an insane thought, but still 00:22:34 I'd heard it was quite OO, based on streams and stuff 00:22:42 SimonRC: weird 00:22:46 but I don't know which version I was reading about 00:22:59 ehird: leads to compact code apparently 00:23:20 what do you mean by oo in this case 00:24:29 IIRC, each source or sink or filter of data had a couple of "methods" (function pointers) that specified how to read from or write to it 00:24:46 I can't recall much more than that 00:25:31 Autoconf 2.61, go figure 00:26:21 ehird, did you guys make any progress on ick? or AnMaster? 00:26:34 on pdp11 unix v7? 00:26:35 * Rugxulo read the logs, didn't tell everything 00:26:37 that was ais523 00:26:40 AnMaster is doing macos9 00:26:44 I know 00:26:44 unix v7 hasn't been done yet 00:26:49 i think macos9 ran into a blocker for now 00:26:49 I mean, did it ever work? 00:26:59 Rugxulo, yes some. Atm the emulator keeps crashing a lot. Works better on a real mac 00:27:06 Rugxulo, going to continue tomorrow, need sleep soon 00:27:21 Rugxulo, but several of the tools builds. Haven't got around to ick itself yet 00:27:31 yeah, you're way the heck over seas (different time zone), it's not very late here (6pm) 00:27:38 good luck~ 00:27:39 ! 00:28:04 BTW, ehird, I think I've told you before, Ardi's Exectuor is a (non-Mac ROM using) emulator 00:28:17 it sucks though 00:28:19 Rugxulo, I'm afraid it won't build fully under sheepshaver. 00:28:43 hmm... 00:28:43 /opt/go/src/cmd/goyacc 00:28:43 /lib/go/src/cmd/goyacc 00:28:44 here /lib wins, but in 00:28:44 /opt/go/lib/lib9.a 00:28:44 /lib/go/lib/lib9.a 00:28:45 /opt wins for the lack of repetition 00:28:46 as for basiliskII, I have been unable to do any sort of building with 68k at all 00:28:56 /lib, though, has the advantage of meaning I don't need another dir in / (opt) 00:29:19 ehird, use some under /lib and some under /opt? 00:29:35 ehird, but why under /lib? That is for stuff like libc and other core stuff 00:29:45 /usr/lib for stuff after /usr is mounted 00:29:47 No it isn't, it's for libraries. 00:29:50 There is no /usr. 00:29:58 ehird, oh your distro? 00:30:01 Yes. 00:30:08 I just came to hate it. I liked it before 00:30:12 but not any more 00:30:16 I don't actually, you know — give a shit. 00:31:32 AnMaster, how much RAM does your real Mac have? 00:31:43 or are you just doing this for Macs in general (e.g. emulated)? 00:31:50 Rugxulo, 64 MB 00:32:07 hmmm, might not be enough to run DOSBox ;-) 00:32:11 Rugxulo, it's a first model ibook 00:32:17 Rugxulo, I wouldn't be interested in that 00:32:32 Rugxulo, it ran virtualpc before. Good question "how" 00:32:36 I know, but Ick works there, so ... hey, I just figured it wasn't the totally worst idea ;-) 00:33:05 Rugxulo, anyway my sheepshaver instance on my thinkpad has 512 MB allocated 00:33:35 * Rugxulo really hates super duper long *nix commandlines when compiling ... 00:33:59 -!- sebbu2 has quit (Read error: 60 (Operation timed out)). 00:34:01 That's autohell's fault. 00:34:10 PACKAGE_TARNAME, PACKAGE_BUGREPORT, PACKAGE_VERSION, do those all have to be defined on the cmdline each time??? 00:34:28 Rugxulo, um they are in config.h 00:34:28 Yes. 00:34:29 so ugly ... and they hate DOS (heh), is *that* irony?? 00:34:30 Because make is shit. 00:34:36 No it's not irony. 00:34:37 AnMaster, apparently not ;-) 00:34:42 Rugxulo, what package? 00:34:46 for ick they are 00:34:47 Tiny Ruby 00:34:47 Please look up the meaning of the word irony. Also, ;-) makes you look really annoying. 00:34:49 aka, TinyRB 00:34:57 Rugxulo, well then it doesn't use config.h 00:35:01 ehird, I am annoying, deal with it 00:35:08 Rugxulo: no. 00:35:23 BTW, seriously ... I'm convinced now that you are some uber genius / child prodigy based upon your crazy knowledge but really young age 00:35:33 Rugxulo, if you can find out how to build a shared library under MPW tell me 00:35:46 By the age of 20 I will have conquered the world and my first move will be to outlaw DOS. 00:35:49 unlikely, sorry 00:35:51 ARE YOU SO SURE ABOUT THAT NOW 00:36:13 I did say "crazy knowledge" ;-) (crazy) 00:36:14 hmm... does sed have an insert? 00:36:16 yes 00:36:17 other than s//foo/ 00:36:21 yes 00:36:27 what is it :P 00:36:28 sed is basically a fork of ed 00:36:30 i\ 00:36:43 do you have to use newlines? :/ 00:36:54 ah, no 00:36:59 I don't think so, but honestly I avoid i\ because some (old) seds don't handle it perfectly 00:37:11 $ seq 1000000 | sed 'd;i a' 00:37:11 sed: 1: "d;i a": command i expects \ followed by text 00:37:12 $ seq 1000000 | sed 'd;i\a' 00:37:12 sed: 1: "d;i\a": extra characters after \ at the end of i command 00:37:13 (GNU sed is just very slow comparatively, even if superior) 00:37:16 *look of disapproval* 00:37:46 which sed? 00:37:50 gnu sed 00:37:55 also, oops 00:37:58 that won't work cuz of d ofc 00:38:09 read the Info doc then, it should give examples 00:38:59 heh 00:39:52 * ehird waits for sed to do the gruelling task of doing one million replaces 00:39:57 or seq to print out one million things, i guess 00:40:14 sed works a line at a time, so it's fairly slow 00:40:17 i don't care how big the binaries are on disk... processing one million numbers like that with a regexp is NOT hard shit 00:40:24 this could be done in a second or two 00:40:33 ed (traditionally) reads the whole file into memory, so it's not as efficient for large files but is probably faster 00:40:35 this is two thousand and fucking nine! 00:40:40 yay it finished 00:40:47 oh, and BTW 00:40:52 $ wc -l gorpn.go 00:40:52 1000004 gorpn.go 00:40:55 1,$ does replacement on every line (for ed) 00:40:57 LET'S SEE HOW FAST YOU REALLY ARE, FEEBLE COMPILER 00:41:00 sometimes % is aliased to 1,$ too 00:41:27 Well, I can certainly notice THIS compile time :P 00:41:32 not needed in sed as it always does one line at a time 00:41:46 not fast? 00:41:59 Let's try 100,000 lines instead 00:42:08 Rugxulo: it can compile 100k codebases in seconds — it's *fast* 00:42:20 I know that, but you're saying it's not true in your current experience?? 00:42:24 but methinks 1 million junk lines as one unit... not practical 00:42:43 I can't fault the compiler for this one, really :P 00:43:30 bah, TinyRB doesn't seem to build correctly, oh well 00:43:51 it's not like regular Ruby is so huge either 00:43:58 (comparatively) 00:44:14 also, 1,$ is the same as , no? 00:44:33 and even it has something called "miniruby" used to build the final "ruby" 00:44:35 also, this ed doesn't have -e 00:44:35 grr 00:44:38 dunno, but I know % typically is 00:45:28 When will Go be renamed? 00:45:36 Mu. 00:47:40 when will Sgeo be renamed? :-> 00:47:52 -!- Sgeo has changed nick to sgeo. 00:47:54 now? 00:47:55 C was hard to search for once upon a time too 00:48:08 and unix? eunuchs? These guys value puns and conciseness... nothing else. 00:48:10 ehird, it's not just searchability. There's already a Go! 00:48:28 Yes, and its author is a whining bitch on the Go issue tracker, and nobody uses his. 00:48:38 And he can't claim the right over a short English word as a name. 00:48:45 Especially if he has an exclamation mark after it and they don't. 00:49:01 Maybe no one uses it, but it's referenced in papers, iirc. Maybe Go! should be renamed to "Academic Go"? 00:49:10 Nobody really cares. 00:50:18 I agree, it's not worth complaining about 00:50:22 "go" is too common 00:50:37 * Rugxulo supports ehird for president 00:50:51 ... until the DOS outlawing, of course ;-) 00:50:56 Who uses Firebird? 00:51:02 Many. 00:52:56 * sgeo goes to try a new game 00:54:15 ehird! 00:54:17 hey 00:54:20 yo 00:56:07 * Rugxulo wonders if TinyPy compiles ... 00:56:17 What OS? 00:56:32 who, me? 00:56:42 Yes. 00:56:46 XP using DJGPP ;-) 00:57:20 wow, one whole file in /examples (julia.py) 00:57:52 doh, depends on Python for bootstrapping 00:57:57 (have it but not installed) 01:05:27 -!- clog has joined. 01:05:27 -!- clog_ has joined. 01:10:29 bah, TinyPY no dice either 01:10:36 * Rugxulo limps off to play Quake instead ... 01:11:57 what failed 01:12:17 something to do with "struct stat stbuf" (couldn't figure out size or whatever) 01:13:23 -!- sebbu2 has joined. 01:20:37 -!- clog has quit (Read error: 110 (Connection timed out)). 01:20:37 -!- clog_ has changed nick to clog. 01:26:17 * SimonRC goes to bed 01:28:08 omg, he said "go" 01:28:13 ;-) 01:28:36 -!- sebbu has quit (Read error: 110 (Connection timed out)). 01:28:37 -!- sebbu2 has changed nick to sebbu. 01:28:38 it should be "issue #9's to bed" 01:33:52 -!- puzzlet_ has quit (Remote closed the connection). 01:34:04 -!- puzzlet has joined. 01:40:18 ehird: Any news on your distro? 01:41:11 the design is resisting my mental prods attempting to change it, which is a good indicator it's solid. implementation is waiting on hardware, so, within a month or two perhaps I'll be hacking something up 01:41:29 Any reason for needing real hardware? 01:41:44 let's say something you can use as your daily driver (as long as you have contact with me at a pinch) by... may 2010? optimistically 01:42:06 pikhq: practicality — VMs are platonic in a way that probably won't lead to good results on real hardware 01:42:19 but honestly? I just don't feel like the OS X chrome would inspire me to make something good 01:43:18 ehird: Fair enough. 01:43:28 I'll have to check it out, at the very least. 01:45:16 thankfully i don't have to go to any great effort to get an installer... it'll just be "tell package manager to install whatever root package I decide into /mnt/sys" plus a dab of configuration 01:47:06 Yeah, the installer should be about as complex as Gentoo's. 01:47:21 (read: LiveCD that has tar and chroot) 01:48:03 And the package manager. 01:48:07 chroot not required, actually. 01:48:24 Just a netinstall (= run the package manager) with PKGROOT=/mnt/sys or whatever. 01:48:35 Plus quick config, and the lilo install. 01:48:49 (If you want to keep GRUB around for your existing stuff, just install lilo to a partition and make grub chainload it.) 01:49:07 Gentoo uses the chroot because it makes it a bit simpler to install packages from there. 01:49:27 (the tarball doesn't have things like "a bootloader" or "Linux"; you have to emerge them.) 01:49:59 No tarball in mine, since it'll just have a little system w/ the package manager on the CD itself. 01:50:08 Although really, CD? Get a USB stick, you bum :P 01:50:27 I've got 4 in here *somewhere*. 01:50:37 Just... Buried. 01:50:43 LIVE FLOPPY 01:50:48 Displays an ASCII tux on boot 01:54:38 ;-) 01:56:51 what's the make incantation to append to a previous rule? 01:57:37 dunno 01:57:52 helpful information, Rugxulo. 01:58:16 well, sometimes I find being ignored worse than no help :-P 01:59:03 ugh, it's :: 01:59:06 but the other one has to be :: too 01:59:07 >_< 01:59:25 honestly, makefiles are quite ugly, no wonder there are so many alternatives nowadays 01:59:31 aha 01:59:32 clean: clean2 01:59:32 clean2: 01:59:32 rm -f *.y 01:59:36 Rugxulo: they suck more. 01:59:38 apart from mk(1) 01:59:43 which is just an improved make 01:59:48 depends on what you want to do 01:59:52 nope 02:00:13 cons, scons, cmake, cbuild, makepp, etc. 02:00:28 sucks, sucks, sucks, sucks, sucks 02:03:53 http://pastebin.ca/raw/1670742 02:03:57 that was easy 02:04:16 just five lines (six including the unneeded separator newline :P) to add goyacc support cleanly to the go makefiles without editing them 02:15:34 Cons sucks, scons sucks, cmake uses Make, cbuild appears to suck, makepp suffers from most of the same flaws as does Make... 02:16:01 cbuild isn't bad unless you want to do really complex stuff 02:16:21 Waf, I think that was the improved Scons variant 02:16:24 cmake takes make and makes it suck more — truly astonishing 02:16:37 some people swear by cmake, dunno really 02:16:38 waf is useless to actually get things done, and it isn't a fork of scons 02:16:48 It doesn't do enough for you and the syntax is awkward 02:17:06 all syntax is awkward 02:17:20 A useless, false statement that adds nothing. 'grats 02:17:37 False, now there's a "real" language ;-) 02:17:48 "true", even ;-) 02:18:31 I like how the build system for most Go programs is just a few lines, only two of which you ever need to change... 02:18:34 TARG=gobf 02:18:34 GOFILES=gobf.go 02:18:34 02:18:34 include $(GOROOT)/src/Make.$(GOARCH) 02:18:35 include $(GOROOT)/src/Make.cmd 02:18:57 doesn't *BSD already do something similar? 02:19:08 You change TARG= to the name of your executable, GOFILES= to the filenames of your sources, separated by spaces... and you get "make" and "make clean" working, and cross-compiling is just "make GOARCH=arm" 02:19:14 oh, and make install, you get that too 02:19:32 "make install GOBIN=/foo/bin" installs to /foo/bin instead (it just installs the binary, you could add stuff to the install target yourself if you want) 02:19:40 Rugxulo: quite similar 02:19:43 but just for the BSD trees themselves 02:19:48 plan 9 does it too for all programs 02:19:53 and go IS by the plan 9 guys... 02:20:05 the downside is that with go you need to have a few env variables 02:20:23 $ env | grep ^GO 02:20:23 GOARCH=amd64 02:20:23 GOBIN=/Users/ehird/go/bin 02:20:24 GOMAXPROCS=2 02:20:24 GOROOT=/Users/ehird/go 02:20:24 GOOS=darwin 02:20:34 so, 5 vars 02:20:43 it's not perfect, but then it's not really a problem either 02:21:03 you can omit GOBIN if you're ok with ~/bin, GOMAXPROCS if you don't want multi-cpu stuff (this is stupid though) 02:21:15 ehird: Cmake attempts to make autoconf and automake suck less. In this goal, it will of *course* suck more than make. 02:21:28 Yes, but it USES make to make something WORSE than make. 02:21:42 Normally any attempts to make make suck more just fail; it's always at its worst. 02:21:50 autotools manages it, sure... but cmake manages it even more. 02:22:23 GOROOT=/opt/go 02:22:23 GOBIN=/bin 02:22:23 GOARCH=386 02:22:24 GOOS=linux 02:22:24 GOMAXROCS=(number of cpus on the system) 02:22:24 — distro :-P 02:22:25 * pikhq notes that there is no such thing as a good build system. 02:22:27 *GOMAXPROCS 02:22:54 Eh, I haven't had any issues with Go's so far. Admittedly it achieves that by being so fast that dependencies just... don't matter. 02:23:09 If your large project compiles in three seconds... who cares if it's all in one rule? 02:27:00 By the way, if anyone has an old box to donate that'd speed up distro development :-P 02:31:14 * Rugxulo sends ehird a UNIVAC 02:31:26 * Rugxulo sends ehird an Altair 02:31:30 * Rugxulo sends ehird an Honeywell 02:31:30 no. 02:33:15 seriously, even if I had something, it'd cost more to ship over there than it's worth :-P 02:33:41 * Rugxulo paddles across the Atlantic just to brind ehird his 486 ... 02:35:45 * pikhq sends ehird the Bombe 02:35:54 Tsar Bomba 02:36:00 * Rugxulo sends GAME.COM 02:36:09 * Rugxulo sends Game&Watch 02:36:45 * Rugxulo sends a VIC-20 ;-) 02:36:52 enjoy those oodles of RAM :-D 02:37:27 * Rugxulo would actually almost enjoy writing a Befunge93 interpreter for a VIC-20 ... if he knew how (and had one) 02:39:29 `google "vic-20" emulator 02:39:32 You can now write VIC-20 games on your PC using this complier and test them immediately on any emulator. You can even design your graphics on your favourite ... \ www.kdef.com/geek/vic/ - [13]Cached - [14]Similar 02:39:50 I know, VICE (even runs in DOS) ... still, I have no experience 02:40:22 the asm is pretty simple 02:40:32 * Rugxulo is struggling with Befunge98 ... apparently 3k$ doesn't work like he expects (i.e. at all) 02:43:57 for some reason, it seems 1k$ pops two values off the stack 02:44:10 k is the unintuitive one 02:44:25 k does that many MORE 02:44:31 i.e. afterwards it goes on to the instruction you were king 02:44:35 after doing all the repeats 02:44:46 you can understand the fun and hilarity caused by mixing k and #. 02:44:54 or rather, no, you can't understand it 02:44:57 * Rugxulo is confused 02:44:58 "abc"1k$,@ 02:45:02 prints 'a' for instance 02:45:05 why? 02:45:24 or are you saying, "it does ... then loops n times" 02:45:26 ? 02:45:44 must be, since CCBI and FBBI both behave identically 02:46:15 k, I believe, means "run the next instruction n times" 02:46:24 we can see that if n=1, "run the next instruction 1 time", it executes 02:46:28 then we go on to the next instruction 02:46:30 which is that instruction 02:46:32 so it runs again 02:46:35 so 1kX runs X twice 02:46:42 odd but apparently true 02:46:49 it may not even be intentional. 02:47:10 well, CCBI also mimics it, so ... 02:47:15 anyways, voila! I have done it! 02:47:23 (mild imaginary applause) 02:47:34 a program that tells you whether run as Befunge 93, 96, 97, or 98 02:47:35 :-) 02:47:50 what about 109?????????????????? 02:47:52 haha only joking. 02:47:57 do show it 02:48:00 not done (or so I heard) 02:48:03 of course ;-) 02:48:23 109 isn't an official standard anyway. 02:49:04 tested on various 93 interpreters, MTFI for 96 and 97 (are there others for those??? doubt it ...), and CCBI and FBBI for 98 02:49:19 1" "/#v_"8879">,1k$>,@ 02:49:21 ;$R z 3 02:49:22 I'm really digging this trackball 02:49:23 >0"39",z+ ^ 02:49:24 * Rugxulo bows 02:49:28 I'm pretty good at it after only a day 02:49:30 Rugxulo: pretty 02:49:41 enjoy, oh esoteric kings of mastery! 02:50:02 dedicated to thee and thine dedication to all arts odd ;-) 02:53:06 (note that it's two spaces in between quotes) 02:53:35 oops, forgot to test Interfunge :-) 02:54:16 err ... it obviously doesn't handle it, heh (understatement) 02:57:36 ever poised to write a program then you realise 02:57:41 i have no programs to give to the world? 02:59:04 nah, there's always some idea (even if crazy or super trivial) 02:59:29 ok, but slightly sleep deprived and lazy—— 02:59:34 think I'm gonna eat that food 02:59:36 would help 02:59:55 I must engineer myself to need less sleep sometime 03:00:16 heh, sleep is good for problem solving, though ;-) 03:00:40 like, say, be able to function normally for 3 days with vastly reduced sleep, and then be out for about 24 hours 03:00:45 I'd like thaht 03:00:46 *that 03:01:00 I both love staying in bed once I'm in there, and not going to bed when I'm not 03:01:47 join the club ;-) 03:02:05 ah, but I'm crazy enough to try and devise a schedule where that is actually possible 03:02:21 it's all chemistry 03:04:09 well, the body has its own internal clock, hence they suggest sleeping on a normal schedule for best results 03:04:15 and exercise helps too (or so I'm told, heh) 03:04:31 too much caffeine can hurt too, but a little is okay 03:04:46 The circadian rhythm is important, but there are alternate schedules that work fine with it 03:05:09 Uberman is roughly the point at where things are hardcore enough that it seems the body just gives up on the circadian rhythm. 03:05:26 So it's not an insurmountable problem. 03:05:50 no, but rest is beneficial, sometimes more beneficial than higher quantities of work 03:06:00 don't work harder, work smarter 03:06:52 Uberman delivers rest. 03:07:32 I am talking with the knowledge of the experiences of seasoned Uberman practitioners... they are extraordinarily well-rested and productive on very little sleep, and the circadian rhythm appears to just drop out. 03:07:39 It's not less rest; it's restructured rest. 03:08:02 The disadvantages being who knows what it does long-term, and also it means you have to sleep every four hours. 03:14:54 pikhq: A guy in #go-nuts just directly portrayed a false dichotomy between pkg-config and autotools. 03:14:57 pikhq: Therapy please? 03:15:25 [03:14] Amaranth: ehird: Well the other choice is for every package to require env variables :) 03:15:28 Ding ding ding! 03:15:30 False trichotomy. 03:18:33 ehird: ... So. Much. Wrong. 03:19:02 Pkg-config essentially replaces *libtool*... 03:19:28 And... That third line is WTF? 03:19:52 LET'S BE SAD ^_^ 03:26:42 -!- puzzlet has quit (Remote closed the connection). 03:26:46 -!- puzzlet has joined. 03:26:51 -!- Rugxulo has quit ("gxis revido"). 03:29:42 Anyone crazy enough to want to restructure the Go documentation as manpages with me? 03:29:46 Didn't think so. 03:38:07 Y'all suck :P 04:06:28 -!- immibis has quit ("ChatZilla 0.9.85 [Firefox 3.5.4/20091027080938]"). 04:28:45 -!- immibis has joined. 04:34:36 hmm 04:54:04 * ehird comes up with some little ideas for VCS backends 04:54:52 -!- Asztal has left (?). 05:07:36 hey, I could implement this VCS in Go! 05:44:03 hmm 05:59:30 hmmmmmmmmmmmmmmmmmm 06:00:22 hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm 06:00:23 I think it's too complicated language! I think the easiest is Visual Basic .NET 06:00:24 —comment on a blog post on go 06:00:56 "Its not different its like Java, python is more easier than of it :D" 06:03:47 -!- sgeo has quit (Read error: 104 (Connection reset by peer)). 06:03:48 -!- ehird_ has joined. 06:04:34 -!- ehird__ has joined. 06:11:16 -!- ehird_ has quit (Read error: 60 (Operation timed out)). 06:19:56 -!- ehird has quit (Read error: 110 (Connection timed out)). 06:19:56 -!- ehird__ has changed nick to ehird. 07:52:10 AnMaster: what was that minimalist pastebin you liked? 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:18:58 -!- asiekierka has joined. 08:18:59 *BAM* 08:19:21 i should make a new esolang 08:19:58 noooooooooooooooooo 08:35:55 -!- coppro has joined. 08:37:33 why noooooooooooooooooot 08:57:53 -!- immibis has quit ("ChatZilla 0.9.85 [Firefox 3.5.5/20091105041559]"). 08:58:24 becaaaaaaaaaaaaaaaaaaaaaaause 09:13:25 coppro.message[1].amount[a] != asiekierka.message[3].amount[o] 09:23:14 -!- puzzlet has quit (Read error: 60 (Operation timed out)). 09:25:33 -!- puzzlet has joined. 09:56:34 I think I'm going to write goreutils! 09:56:46 It's like coreutils, except without the bloat and also written in Go. 09:56:51 This is not a large undertaking WHATSOEVER 09:57:06 ehird: and the resulting binaries only run in the runtime environment 09:57:16 Oh no, a GC! 09:57:18 The sky is falling! 09:57:21 C++ has a runtime too, weenie. 09:57:25 ehird 09:57:31 what is the deal with go exactly 09:57:42 i watched the google video for it and came away with like 09:57:50 a significant feeling of not knowing what the fuck 09:57:59 AnMaster: what was that minimalist pastebin you liked? <-- do you mean http://sprunge.us/ ? 09:58:24 ehird: did I say it didn't? 09:58:27 Pthing 09:58:29 Pthing: it's from the people who made unix, c, and plan 9. the compiler is well engineered and _extremely_ fast. it's a systems programming language. C, cleaned up, with a garbage collector, a wonderful concurrency model (a very big point), and a nice sort-of-OO type system that makes structuring programs a lot easier. 09:58:30 hi 09:58:32 What are you doing here 09:58:39 I thought I was on Isharia& for a moment 09:58:43 Basically it's a more comfortable C for the applications level with some extra stuff, and it's from the Old Guard. 09:58:45 terrifying 09:58:52 AnMaster: yes 09:59:01 so okay 09:59:03 AnMaster: it's silly how syntax highlighting is in the resulting url though 09:59:03 i guess 09:59:11 it's an industrial grade language 09:59:16 not really 09:59:20 it's great for little hacks, too 09:59:25 explain 09:59:30 it's low-level without having lots of boilerplate 09:59:31 ehird, It could be useful for polygots I guess? 09:59:40 and its abstraction facilities are good, plus its syntax is light 09:59:45 so it ends up being quite pleasing for little hacks 09:59:52 liiike 09:59:59 it's a general-purpose language, dude. 10:00:09 give an example of a hack 10:00:10 fffffff 10:00:12 (3 marks) 10:00:16 Little programs. 10:00:19 like 10:00:22 That you'd normally do with, say, Python. 10:01:14 Wonder what are the points of Go that kill the performance (one larger-than-usual-projetwork Java program made me realize that real performance killer in Java are virtual function calls). 10:01:29 Ilari: Basically everything is resolved at compile-time. 10:01:34 Including method lookups and all that stuff. 10:01:40 Right now, the crappy GC. They're making that much betterr. 10:01:41 in the video, they said they still had some flaky library code 10:01:47 And the gc compiler doesn't do much optimisation atm. 10:01:52 (It is, however, EXTREMELY fast.) 10:02:01 Still, it's quite good now. 10:02:11 It'll be competitive with C in a while, that's for sure. 10:02:14 actually i think they called it crufty 10:02:16 but nerrrrrrrds 10:03:43 -!- ehird has left (?). 10:03:46 -!- ehird has joined. 10:03:49 oops 10:04:05 haha 10:04:05 Anyway, G is the first new language in ages that I'm interested in. 10:04:07 *Go 10:04:08 i looked in #go 10:04:13 It's #go-nuts 10:04:17 492 people 10:04:21 yeah, i worked it out via #golang 10:04:24 lawls 10:04:44 but in #go they have blah blah "about Go (the game, not the silly language)" 10:05:24 a lot of people are dismissive of it because it has the word Google in it (Bell Labs would be more accurate) and people compare it to C++ and Python and are retards. 10:05:55 the Go(ogle) thing took me a little while to get, and I was a little embarrassed it took me so long 10:06:28 the debugger-in-progress is called ogle 10:06:44 yeah, I like the name, it's good 10:06:48 it's GOod 10:06:55 you crack me up 10:06:57 like a watermelon 10:06:59 i don't like the running... mammal thing 10:07:00 logo 10:07:12 i think it's running, it might be thrown 10:07:19 it's an otter 10:07:21 i think 10:07:24 i love its little hands 10:07:25 what 10:07:30 otters don't fucking look likfffffffffffff 10:07:32 they're so helpless 10:07:33 well 10:07:35 it might not be an otter 10:07:36 i'll ASK 10:09:36 deficiencies of sprunge.us: can only post via curl, no quick paste method; syntax highlighting is on the resulting URL; syntax highlighting adds line numbers that break stuff 10:09:44 Pthing: it's a GOpher 10:11:55 final deficiency: mentions firefox on the homepage 10:11:57 oh of course 10:16:26 -!- Pthing has quit (Remote closed the connection). 10:16:53 gah. on classic macos it seems like you need to list all exported symbols from libraries 10:16:58 none are exported by default 10:17:03 that will sure make libick a pain 10:18:55 -!- oerjan has joined. 10:19:52 oerjan, iwc 10:20:57 -!- Pthing has joined. 10:22:30 I am about to write some recursive make. How evil am I? 10:22:59 evil 10:23:03 ehird: despicable spam of the netherworlds. but what has that to do with recursive make? 10:23:35 ehird, 15.23 on a scale from 0 to 10 10:24:39 (the reading is off the scale!) 10:32:36 AnMaster: no anchovies 10:32:52 oerjan, what? 10:33:12 i said, nice iwc annotation 10:33:31 oerjan, oh right, forgot that bit in it 10:33:58 oerjan, http://www.mezzacotta.net/garfield/ was.... strange 10:34:07 except that was yesterday heh 10:34:20 I can't keep track of it's updates atm 10:35:03 it's just a silly pun 10:38:37 ah. I see it now 10:39:09 * AnMaster curses the emulator again. 10:42:31 * oerjan tries emulating curses, but fails 10:42:56 * AnMaster curses libraries on classic Mac SO 10:42:57 OS* 10:43:18 you need to list all exported symbols. And they must be declared extern first. 10:44:58 -!- oerjan has quit ("Later"). 11:00:15 -!- Pthing has quit (Remote closed the connection). 11:11:28 yay I got usage output from ick 11:11:36 ick 11:11:49 coppro, c-intercal compiler yes 11:11:54 on classic mac 11:12:03 still I haven't managed to build libick yet 11:12:11 not a question 11:12:14 an expression of distaste 11:12:15 and I have to manually patch some generated code in the lexer 11:12:19 which was quite horrible 11:12:32 flex generated code depending on unistd.h 11:12:44 need to talk to ais about that 11:13:05 what does uts stand for in uname()s utsname 11:13:53 no clue 11:17:02 i wonder if it even is an acronym 11:19:04 -!- kar8nga has joined. 11:22:17 http://sprunge.us/LdaJ?c ;; fuuuuck those line numbers 11:22:51 ehird, hm drop the ?c to copy 11:23:00 yeah, but that's still a pain in the ass 11:23:01 but yeah that's an issue I never noticed before 11:23:02 *the ass 11:23:09 *it's 11:23:17 there is a way to do it without copying 11:23:19 ehird, true. I mostly used it without syntax highlighting 11:23:21 with some evil css tricks 11:23:26 but honestly? i rarely need line numbers 11:23:29 what would be useful 11:23:30 is 11:23:41 http://pastebin/f845#l47 11:23:48 ehird, i need line numbers when I get "error on line foo" 11:23:52 backgrounds line 47 as yellowish, and jumps about 15 lines above it 11:23:58 so you can highlight errors 11:24:02 http://pastebin/f845#l47-52 too 11:24:15 http://pastebin/f845#l47 <-- is that supposed to be a real one or just an example? 11:24:16 :P 11:24:19 backgrounds the whole thing, jumps about 20 lines (amended :P) above the whole block 11:24:20 example 11:24:30 github commits do this iirc 11:24:43 ehird, I'm pretty sure I seen it on other pastebins too 11:24:47 yeah 11:25:02 I should just write a POST-bin (hur hur hur) and stop whining :P 11:25:16 don't think anything has go highlighting yet though :D 11:29:11 AnMaster: ok, I just had a ridiculous idea and someone has to hear it in case it manifests 11:29:29 ehird, oh? 11:30:22 the "pastebin" actually just lets you post to http://blah/ with some text, and it gives you back a url. going to that url, say http://blah/asdf, executes the file you gave it in a sandbox. 11:30:26 The pastebin script looks like... drumroll 11:30:55 (echo "#!/usr/bin/pygments $language"; cat) | curl ... 11:30:59 I am an awful person 11:31:20 ehird, so now ick -@ works in MPW 11:31:20 :) 11:31:55 http://sprunge.us/HXKV 11:32:23 * ehird considers doing a ridiculous thing 11:32:49 that'd be ridiculous 11:32:56 heh 11:33:10 ehird, what are the chances for ais showing up today? 11:33:12 i feel kinda bad even jusst having thought the thoughts 11:33:14 *just 11:33:17 very low 11:33:17 like 0 11:33:23 ehird, damn 11:33:54 i slept 13 hours due to my new unterman sleep schedule 11:34:24 wat 11:34:32 uber <-> unter 11:34:46 yar 11:34:46 :P 11:35:06 okay i'll just go ahead and ask 11:35:17 AnMaster: should I implement rc in go 11:35:21 PLEASE SAY NO 11:35:33 ehird, wouldn't that take some time? 11:35:43 ehird, also how goes your webserver, ircd, and so on? 11:36:16 ehird: what have you implemented in go sofar? 11:36:46 make a bf interpreter ;) 11:36:51 uh, wc, and some io functions, and a binding to uname that doesn't work yet, and echo(1), and some misc code that doesn't really fit into things 11:36:55 most of my going has been in-head 11:36:58 yeah bf interp sounds good 11:37:01 MAYBE I WILL OKLOFOK 11:37:02 maybe i will 11:37:38 what does "binding to uname" mean? 11:38:00 uname() function 11:38:00 gives like 11:38:01 information about processor, os 11:38:02 pretty boring 11:38:41 but yeah 11:38:43 bf interp oh-kay 11:38:51 hmm right OKATY 11:39:00 oklofok: d'ya think I should use yacc (overkill but sorta fun) or MANUA-PARSE 2000 11:39:12 also yacc handles like... file opening and shit for me, which is nice 11:39:16 but i have to write some other boilerplate 11:39:20 but on the other hand 11:39:22 it'd look so 11:39:24 retarded 11:39:26 tiny grammar sitting there 11:39:30 if MANUA-PARSE 2000 is what go's parsing library is called, that! 11:39:38 but yeah yacc totally 11:39:40 What, a BF interpreter bound into uname(2)? That sounds quite an unexpected trick from an OS. 11:39:45 xD 11:39:58 i could make the whole thing a yacc file tbh 11:40:01 (goyacc that is) 11:40:14 "Go yacc yourself" sounds a bit indecent. 11:40:16 wait, I don't need to preparse 11:40:18 -!- rodgort has quit (Client Quit). 11:40:19 can do the dbc thing 11:40:25 OKAHY LETSS ogjodfigogIjg 11:40:27 ... 11:40:28 -!- rodgort has joined. 11:40:28 GO 11:40:30 get it 11:40:31 let's 11:40:32 GO 11:40:33 haha? 11:40:59 höhöh 11:41:05 ehird, btw it seems classic mac os supports shared libraries but not static ones. As in no *.a 11:41:12 AnMaster: ugh 11:41:17 ehird, either you link the object files directly, or you link shared 11:41:36 oh, well that's okay 11:41:38 ehird, so yes there are lots of *.o for standard library :D 11:41:41 .os are fine and stuff 11:41:44 LOTS 11:42:01 eh, just archive them up and write code to extract them, voila you invented ar 11:42:10 ehird, StdCRuntime.o is huge btw. 11:42:10 or even just make folders 11:42:18 /lib/libc/*.o 11:42:48 where huge = 56K 11:42:53 for 68k 11:43:15 huh 8K for PPC? 11:43:21 only 12k left then huh 11:43:24 oh wait, that is just a stub for the shared library 11:43:24 hyuk hyuk hyuk 11:43:31 ehird, hah 11:48:55 ehird, ick is 348K btw 11:49:26 though that was with optimisation off 11:49:54 can't rebuild it fully in emulator. need real mac for some of the files (otherwise it crashes) 12:48:05 ehird, know what Print does in the MPW shell? 12:48:41 prints a page 12:48:51 ehird, oh so you ran into that before too? 12:48:56 nope, guess 12:49:07 * AnMaster removes those *.ps from the desktop 12:55:30 As of April 2009 dotsrc.org (formerly SunSITE.dk) has been in the process of shutting down the project hosting part. Since we started open source hosting more than 10 years ago, Sourceforge, Freshmeat, Launchpad and a bunch of others have emerged. We don't see the big need for us doing this any more, and will focus on other services. 12:55:42 It occurs to me that that is exactly like committing suicide. 12:55:59 You think you're just ending your own life and no bother to anyone else and then you go and destroy the lives of everyone close to you. 12:56:06 I wonder how much code is lost forever now. 13:03:27 ehird, OUCH 13:03:46 Relax, AnMaster, an actual person didn't die :P 13:04:36 ehird, of course not. But the code... 13:05:39 Who wants to hear a terminally-tired lunatic ramble about his ideas for DVCSs?! 13:05:45 (Hint: It's me) 13:06:06 not me. I'm being "productive" atm 13:07:20 What, by fiddling with C-INTERCAL? 13:08:36 ehird, that's why I used "" around the word. 13:08:43 but I'm getting somewhere 13:08:44 [[Yiu gotta be kidding me. How can you encrease power in a smart phone? By writing something new, that uses google servers power.... dont you see that? why "put more cpu and ram" if online merchandising do it for you? what if you are fuckinf far of anything? where you gonna buy a fucking cpu? come on, be smart]] 13:08:51 AnMaster: Can I vnc? :3 13:08:53 Pretty please? 13:08:55 ^___^ 13:08:58 ehird, to what? 13:09:03 Sheepshaver 13:09:11 ehird, don't think sheepshaver supports that 13:09:18 ehird, anyway I'm doing this on a real mac atm 13:09:18 It doesn't need to 13:09:22 so tough shit 13:09:32 ehird, because sheepshaver keeps crashing too much 13:09:34 im bored guys 13:09:37 i need an idea 13:09:40 Tough shit? I need more fibre in my diet. 13:10:24 ehird, however one of the keys seems to be broken on that old ibook. Scissors style, but the things that hold the key to the scissors seems broken. 13:10:32 very annoying since it is the cmd key 13:11:07 * AnMaster swaps it with the "enter key" that is the same size but on the other side of space (why is there an enter key there at all btw?) 13:11:16 Easy answering dialogs, iirc. 13:11:21 I should get ick working on an actual Mac Plus. 13:11:23 heh 13:11:38 ehird, can it handle 32 bit stuff? I forgot 13:12:03 iirc some 68k had a 32-bit adressing mode 13:12:07 addressing* 13:12:26 Macintosh Plus can address 4 mebibytes of RAM. 13:12:31 Well. 13:12:34 It can address 8. 13:12:36 It only fits 4. 13:12:42 ehird, anyway if you want I can give you a hqx file of what I have so far 13:12:47 Nah. 13:12:57 oh? 13:13:20 ehird, I could do *.img.bin too probably. No way I could manage .dmg however 13:13:40 C'mon listen to my VCS ideas! They're... almost as weird as arch? 13:13:43 Not really. 13:14:38 http://1.bp.blogspot.com/_va9O40qIhaE/StfekoB1W8I/AAAAAAAAB70/G32jsTp_BWU/s1600-h/ottosm.jpg 13:15:24 cute! 13:17:25 ehird, btw it seems MPW has some weird file matching thing where [a-z0-9]*.c works but .*.c doesn't. Nor does *.c 13:17:34 so it is neither glob nor usual regex 13:17:40 and I can't find actual docs for it 13:21:19 There are about 20 special constructs within regular expressions, all of which are cryptically described when you execute the command line "Help Patterns" within the MPW Shell. I'll mention some of the more useful ones here. -- http://www.mactech.com/articles/develop/issue_26/mpw.html 13:21:38 "?" corresponds to the normal regex "." there. 13:22:04 So ?*.c then, I think. 13:23:20 fizzie, oh if you know MPW... What is the difference between one and two of those old-style s-es in makefile rules (those symbols that look like f) 13:23:44 : vs :: 13:23:50 :: is that all rules get executd 13:23:52 if you have duplicates 13:23:56 you need all of them to be :: 13:24:20 hm 13:25:22 ehird, you mean like foo :: bar quux bar will force bar to be built twice if it wasn't built before? 13:26:27 no 13:26:30 foo:: 13:26:39 echo hardcore anal meanderings 13:26:40 foo:: 13:26:45 echo now only half price 13:26:49 $ make foo 13:26:55 You can also read http://www.gnu.org/software/make/manual/make.html#Double_002dColon though I guess ehird's explanation made that redundant. 13:26:55 why would one have multiple such heh 13:26:56 echo hardcore anal meanderings 13:26:56 hardcore anal meanderings 13:26:59 echo now only half price 13:27:01 now only half price 13:27:04 AnMaster: different files, modules etc 13:28:54 hm 13:29:37 ehird, wouldn't you have different rule names to build different files? 13:30:39 same file 13:30:41 or phony target 13:30:48 different makefiles 13:30:49 i meant 13:30:55 different makefiles, modules of the build system 13:32:32 hm 13:32:41 ok that would work 13:33:34 * AnMaster wonders what the license would be on a short .r file with no copyright header or such that came with an MPW example 13:34:07 I just realised that might be an issue 13:34:24 Trivial things are uncopyrightable. 13:34:50 the makefile began as based on an example makefile, but it has not been completely rewritten. 13:34:54 I advise you to stop worrying; you're more likely to be bitten by the thousands of patents any program you write will inevitably violate. 13:35:11 ehird, probably 13:36:59 -!- kar8nga has quit (Remote closed the connection). 13:39:00 ehird, anyway, why can't you run sheepshaver yourself? 13:39:22 I don't have your porting work — and also, it's unstable as a dick on an. Um. dick. 13:39:24 ehird, iirc I read that it *does* work on OS X 13:40:13 ehird, "my porting work"? would that be the hqx file? 13:40:27 You modded C-INTERCAL, did you not? 13:40:28 well I could send that over easily. And yes so far things build but are mostly untested. 13:41:02 ehird, yes, custom build system + manual written config.h, plus a few minor patches to the source (in all cases code that tried to use unistd.h) 13:41:27 the most annoying change was to the *generated* parts of lexer.c 13:41:33 I'm not sure how to properly solve that 13:41:59 maybe implement a dummy isatty() for it to link to instead? 13:42:14 and dummy fileno() possibly. But it never complained about that 13:42:50 Wow, Tom Lehrer is STILL alive. 13:43:36 ehird, wow indeed. He wrote some awesome lyrics. 13:43:55 (catchy melodies too) 13:44:07 Pretty sure he pilfered a lot of those melodies :P 13:44:25 ehird, yeah probably, but probably not all. 13:51:36 -!- oklokok has joined. 14:09:37 -!- oklofok has quit (Read error: 110 (Connection timed out)). 14:12:22 ehird, in case you actually decide to be interested in it: ick-mac.img.bin is at http://omploader.org/vMnJwMw things build bure are mostly untested (and I very much suspects that ick will need some patching so it doesn't try to call a compiler, but instead prints out some MPW commands for you to run) 14:12:34 oh and that contains pre-compiled files 14:12:42 it still needs MPW since things are built as MPW tools 14:14:10 oh and that has some stuff not relevant for mac build system stripped. Could easy be added back from ick-0.29 download 14:14:28 i'll be interested if you're interested about my vcs stuff 14:14:48 ehird, sure, tell me about it 14:14:56 * AnMaster is taking a pause anyway 14:15:00 what's the catch 14:15:11 catch for? 14:15:15 this :P 14:15:23 ehird, that you *have* to try it out? 14:15:41 i said i'd be _interested_ 14:15:52 ehird, define interested then 14:16:08 attentively (as much as i can in this state) listening and taking it in and offering comment. :P 14:16:58 ehird, nah, not really worth it then. Anyway it shouldn't be hard for you to set things up. Apart from, you know, the whole thing ;P 14:17:18 methinks that i preferred it when i was sure you weren't listening 14:17:22 like, downloading those "fixes" from apple and manually apply them to the installed mpw 14:17:32 ehird, tell me, I will read it when I get back (phone) 14:17:45 too lazy. 14:25:52 back 14:26:26 * AnMaster looks up ick error messages 14:33:15 ehird, interesting. It gives different errors for files generated on mac and files generated on unix 14:33:20 so something is broken 14:38:20 ugh very broken 14:39:52 back 14:41:15 AnMaster: SO WANNA HEAR :D 14:41:25 ehird, a file with mixed CR and LF is quite painful to fix up 14:41:34 your mom is quite painful to fix up 14:41:57 beer.mac.c: ASCII C program text, with very long lines, with CRLF, CR, LF line terminators 14:42:54 those CRLF seems just to be two newlines, one mac one and one *nix one 14:43:07 * AnMaster converts all the input files on mac to CR line endings 14:44:56 ehird: 14:45:02 ICL000I PLEASE DO ,10 <- #1 14:45:02 ON THE WAY TO 2 14:45:02 CORRECT SOURCE AND RESUBNIT 14:45:08 I don't that is supposed to happen 14:45:19 * AnMaster wonders what was miscompiled in ick 14:45:32 the generated file is completely wrong 14:46:04 OI 14:46:05 DVCS 14:46:16 ehird, sure. I told you to write it before 14:46:18 *shrug* 14:46:24 okay! 14:46:36 if this gets an augur like monologue, chip in and i promise i won't ignore you 14:46:48 most modern VCSs are based on basically, trees of history 14:46:52 patch, patch, patch, patch, end 14:47:01 they don't really track changes to the code in this sense 14:47:11 they track snapshots in time, not the actual changes to where it is now 14:47:32 my idea is to sort of "inline" this history into an actual tracking, sort of like an "enhanced" nested patch sort of thing 14:47:36 anyway, the main thing is 14:47:42 ehird, what about darcs here? It isn't exactly a tree of history there 14:47:49 it's closer to my idea, yes 14:47:55 okay 14:47:56 so, each repository is this thing 14:48:01 now the interesting bit is 14:48:10 most of my operations involve multiple repositories 14:48:14 for instance, you may know the common one 14:48:24 get changes from this repository B into A, and merge if required 14:48:25 merge? pull? 14:48:30 right 14:48:32 but with mine, it's varargs, so to speak 14:48:37 err... 14:48:40 you pass it a bunch of repositories, and it will merge them 14:48:47 without favouring any 14:48:50 and with user input 14:49:08 mhm 14:49:09 so, for instance, you can select some features people have pointed you to and merge them all into the mainline in one merge 14:49:26 the interesting thing is just how independent these repositories become 14:49:36 okay 14:49:46 there's no special pulling, you just rsync the repository down (using your existing one as a base to transfer less, just as an optimisation) 14:50:00 and then it merges these repositories into a new repository C, which it replaces your original one with (in normal use) 14:50:17 so, basically, we have this unified thing that's a repository, but it's also sort of one big massive, nested change 14:50:38 and it means that operations like merging can work on an arbitrary number of repositories elegantly 14:50:54 and you don't have to do special pulling algorithms; just download the new repository and merge that one and your old one 14:50:58 uh okay 14:51:02 indeed pushing is the same 14:51:07 AnMaster: uh? any bit conffusing? :P 14:51:12 *confusing 14:51:23 ehird, how can merge work on arbitrary number of repos? 14:51:37 after all, diff2 and diff3 are rather different iirc. 14:51:49 that's true, and it will of course require user operation 14:51:51 and yes there will be conficts 14:52:04 well, that's the thing, you do these N+ repo merges already 14:52:08 you just do them as separate options 14:52:12 so you finally solve all the little conflicts 14:52:13 ehird, so what if you have 5 different conflicting changes of the same few lines? 14:52:16 and introduce a whole new batch 14:52:17 what will you show the user? 14:52:21 do you see what i mean? 14:52:23 these problems ALREADY HAPPEN 14:52:36 this is a marked improvement — once a conflict is resolved, that's it 14:52:42 no more disturbing it as you go onto the next repo to move 14:52:43 ehird, yes but you normally merge them in pairs or such first. 14:52:48 well, exactly 14:53:00 the internal algorithm *could* be just a bunch of diff2/diff3s talking to each other a lot 14:53:01 ehird, you want to merge all at once unless I misunderstood you? 14:53:04 and of course the devil's in the details 14:53:11 but I'm fairly sure it's doable 14:53:16 and the implications are great 14:53:30 ehird, when did you last use diff3? 14:53:49 compared to a diff2 it is rather confusing 14:53:52 Not sure when but I think the place was called Hell. 14:53:59 ehird, exactly! 14:54:06 Anyway, of course actually doing it is the hard part. 14:54:33 But I think if you're trying to mix 4 repositories into your mainline, resolving conflicts each time, only to have your resolvings reversed by the next merge or two isn't the way to go about it! 14:54:35 ehird, which is why I'm wondering how on earth you would represent a 4 way-or-more conflict to the user 14:54:45 we'll see :P 14:54:50 interestingly it gives a purely functional sort of vibe 14:54:57 oh? 14:54:58 everything seems to be a function of some repos to a new repo 14:55:13 you merge A, B, and C, producing ABC (let's call it D) 14:55:25 if A was your working copy, you throw it away and switch to D 14:55:29 ehird, anyway merging one at a time has an advantage: less confusion. 14:55:30 (this happens automatically of course) 14:55:40 hmm... splitting repos could be interesting 14:55:44 merging condenses many repos into one 14:55:53 splitting expands one repo into many 14:56:05 i could see that being useful for focused work 14:56:17 AnMaster: less confusing, maybe, but more tedium and hard work. Anyway, I think the internal implications will rise to other UI improvements. 14:56:24 So it's not like it's a one-trick pony. 14:56:24 why less confusion? Because you will have less code to consider. 14:56:49 I mean, the merging was just an example. 14:57:25 it's the same reason you prefer many small commits over one huge. Because it is easier to understand what you have changed. (And easier to bisect, if it comes to that) 14:57:38 AnMaster: Which is why the merge will be represented by little choices. 14:57:52 true 14:58:01 It can still just be "which of these two is right" while still making sure that doesn't invalidate another choice on another merge. 14:58:17 ehird, how would one dig back for older versions in your system? Same way as usual? 14:58:25 also, being able to merge all of them at once means that the automatic merging should work better 14:58:29 in case you want to bisect a regression or such 14:58:32 as it'll have more variations on each relevant snippet 14:58:37 (which is often very very useful) 14:58:40 and so more of an idea of the structure, you see? 14:58:49 AnMaster: probably, yes, unless I think of something better 14:59:04 one thing that'll be quite easy to do, I think, will be `svn blame` but per-character 14:59:16 as in, actually highlight the exact blocks people are responsible for and the like 14:59:17 efficiently 14:59:26 " It can still just be "which of these two is right" while still making sure that doesn't invalidate another choice on another merge." <-- what about "neither, because this change and the one 20 lines above affect each other, hand editing the whole file is needed" 14:59:30 well 14:59:36 that one is a problem with current systems too 14:59:38 Why hello there Mr. Edge Case :P 14:59:49 ehird, except I hit that more often that I wanted to. 14:59:50 :/ 14:59:55 Hopefully the merging tool will be advanced enough to handle that. 15:00:11 ehird, it would have to be aware of the language structure to do so 15:00:24 not to edit the file manually 15:00:37 although a structured VCS is an idea i'm very interested in 15:00:41 smalltalk has that, I think 15:00:46 at least I think monticello is structured 15:00:51 like know if a variable was renamed in branch A, but another use of it was added in branch A. 15:01:08 well, there isn't any strong ai so sucks to be you :P 15:01:12 and trying to handle that would be insane 15:01:30 imagine being linus, I'd sure prefer one difficult merge over 6 tedious merges 15:01:37 ehird, exactly, a hand editing file with different versions in <<<< ... ----- ... >>> style merge will always be useful sometimes 15:01:40 that I know are wasting my time with some resolutions 15:01:44 s/a hand/hand/ 15:01:56 because some cases *will* otherwise need a strong ai 15:02:57 ehird, sure try to make it as smart as possible. I'm not against that. I'm just saying that there should still be an option to do a more classical manual merge of conflicts in files. Because there will be cases needing it sometimes. 15:03:09 Of course. 15:03:16 I'm not that much of an idiot, you know, to get rid of manual merges. 15:03:26 ehird, wasn't completely sure about that ;P 15:03:47 In fact, too-smart merges are a *bad* thing: you think that merge went through fine, but it actually messed up your source by second guessing you instead of going "hey i'm confused". 15:04:50 ehird, asking when confused, but providing the "smart" merges as options would be useful maybe? 15:04:56 as in 15:05:02 Of course. 15:05:11 I'll probably have pluggagble merges. 15:05:20 If I make it. 15:05:35 "press m for manual, a for aborting merge, 1 for smart option one, 2 for other even smarter option, 3 for really cool option" 15:05:37 What's the best protocol for rsync transport, btw? (for speed). rsync://, isn't it? 15:05:59 ehird, that needs an rsync server set up and listening. And security is... bad. 15:06:09 I mean for anonymous access. 15:06:11 sure would work for anonymous pulling 15:06:22 ssh+rsync for developer access though 15:06:23 Well, you can't do rsync over http can you? 15:06:31 ehird, not afaik 15:06:42 zsync — Optimised rsync over HTTP 15:06:42 This document describes the thinking behind zsync, a new file transfer program which implements efficient download of only the content of a file which is ... 15:06:42 i wish i never said anything 15:06:49 Anyway, ssh isn't really an option for anonymous pulling. 15:07:04 ehird, isn't it? I have seen anonymous ssh 15:07:15 iirc it was openbsd or netbsd ports/pkgsrc thing 15:07:20 that I pulled over anon ssh 15:07:23 Well, ssh is slow, bulky, and there's always that risk of an exploit... 15:07:27 anon ssh + cvs iirc 15:07:50 I guess rsync:// for public and ssh:// for private is best. 15:08:00 ehird, you can use another sshd. One that doesn't need to run as root. 15:08:16 iirc launchpad uses such a one 15:09:12 Eh. 15:09:20 Why bother if rsync is faster and uses less resources? 15:09:39 Well, to be fair, my distro will probably use http://matt.ucc.asn.au/dropbear/dropbear.html for the ssh/sshd by default. 15:09:46 ehird, depends on how paranoid you and your users are 15:10:02 If it's public it's public :P 15:10:12 One thing that needs to be supported is only using ssh:// for stuff that needs authentication. 15:10:22 e.g. have a "push" location as separate. 15:10:58 if it is for a distro you could just sign every package 15:11:21 and send it over plaintext 15:11:52 I just meant that I'll be operating the server on my distro. 15:12:01 So technically rsync wouldn't really be lighter than dropbear sshd. 15:12:08 ehird, maybe a signed listing with the checksums of all rsynced files? that would provide some security against tampering with the rsynced data 15:12:19 Are we talking about package distribution now? 15:12:28 ehird, no, about repos 15:12:37 If I wanted to sign the packages I'd GPG-sign a file with checksums of all the files in the tree. 15:12:41 AnMaster: Ah. 15:12:49 rsync:// can be tampered with in transit? 15:12:53 ehird, to make sure that the anon checkouts weren't tampered with 15:12:57 ehird, man in the middle attack? 15:12:59 Anyway, I don't see why you'd trust data from me anyway. :P 15:13:04 to fake your server or such 15:13:16 Ah yes, the ever-trustable, professional ehird website. 15:13:25 My reputation is through the roof. 15:14:16 AnMaster: Anyway, I could just GPG-sign the hash of the commit. 15:14:24 *PGP-sign. GPG is just an implementation... 15:14:31 ehird, no, but I might want to trust the original devs of some project using ehirdvcs. And if I happen to live in some country where someone could want to tamper with source code I want to check out and run... 15:14:32 The hash is calculatable from the commit, so... 15:14:41 AnMaster: does any other vcs handle this? 15:14:47 most anonymous checkouts are git:// or http://. 15:14:54 ehird, well, those that do it over https or ssh could I guess 15:15:02 yeah but how many open source projects are that? 15:15:19 ehird, hm let me check my current checkouts 15:16:14 Anyway, nothing would stop you setting up an anonymous ssh account for it if you really wanted to. 15:16:19 You'd be silly, though. 15:16:27 For most things. 15:16:44 URL: https://desmume.svn.sourceforge.net/svnroot/desmume/trunk/desmume 15:16:47 that's one at least 15:17:40 Ah yes, DS emulators. 15:17:50 The most trust-needing pieces of software known to man. 15:17:58 ehird, well no. 15:18:00 :P 15:18:05 I don't know why it is that way 15:18:17 ehird, anyway I assume this would work for any sf.net project 15:18:28 Yeah, but nobody uses sf.net. 15:18:47 Seriously, I rarely end up there nowadays, and it's usually a last-resort grab for obscure software. 15:19:44 true 15:20:31 ehird, I think I saw a few more too. Might have been llvm (don't have a trunk checkout of it around currently) 15:20:36 or something else 15:24:09 great. error on a line but the line number not matching 15:24:16 in fact I can't find anything like that line nearby 15:24:18 go doesn't geet that :P 15:24:19 *get 15:24:31 ehird, this is the MPW C compiler. 15:24:38 complaining on line 2229 15:24:41 all c compilers get it 15:25:06 ehird, there is no #line directive in the file. And there is nothing close to it even nearby 15:25:30 AnMaster: have you tested cfunge with tcc? 15:25:55 ehird, yes, some time ago, failed to handle some C99 thing. I think it was for (int i = ....) 15:26:18 that is, declaring the variable there instead of at the start of the function 15:26:28 Well, can I try it? :P 15:26:37 bzr branch lp:cfunge right? 15:27:43 should work 15:27:48 why the hell is: 15:27:56 ick_createdata icd[]={ 15:27:57 }; 15:28:01 considered invalid 15:28:04 by the MPW compiler 15:28:08 BECAUSE YOUR MOM 15:28:10 it barfs on }; 15:28:18 it's sad 15:28:19 "Error expression expected" 15:28:21 }; 15:28:30 * ehird compiles tcc with gcc, installs, compiles tcc with tcc, installs 15:28:36 ehird, that's an expression, a sad one 15:28:40 so that error makes no sense then 15:28:45 Oh wait, tcc is elf only >_< 15:28:57 Well, and coff 15:29:24 ehird, mac os 9 seems to use xcoff and PEF 15:29:26 for PPC code 15:30:14 PEF is for executables and shared libraries. xcoff is for object files, executables and shared libraries 15:30:18 PEF is default 15:30:31 * AnMaster isn't sure why have two overlapping ones 15:30:54 Oi AnMaster, wget http://download.savannah.nongnu.org/releases/tinycc/tcc-0.9.25.tar.bz2; tar xf tcc-0.9.25.tar.bz2; cd tcc-0.9.25; ./configure --prefix=~/tcc; make; make install; cd ..; rm -rf tcc-0.9.25; tar xf tcc-0.9.25.tar.bz2; cd tcc-0.9.25; ./configure --prefix=~/tcc --cc=tcc; make; make install 15:30:55 :P 15:31:11 ehird, I would use ~/local/tcc 15:31:14 and busy atm 15:31:16 Then... do so :P 15:31:33 ehird, plus does it really work as 64-bit? 15:31:43 * AnMaster forgot 15:31:47 TCC version 0.9.25 is the first that supports the x86-64 target. Thanks to Shinichiro Hamaji for this. 15:31:51 shinh of golf.shinh.org 15:31:55 our beloved anarchy golf 15:32:03 I have quite some trust in his skills, at least. 15:32:21 Or you could just build the "cross compilers". tcc itself should run on amd64 just fine. 15:33:09 ehird: you fight considerably less with AnMaster these days, same thing happened with you and me, do you learn to love idiots, or just eventually realize at some point they won't change? 15:33:20 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 15:33:25 -!- oklokok has changed nick to oklofok. 15:33:34 oklofok, there might be a third option 15:33:39 and what's that 15:33:48 that they change? yeah right 15:33:49 oklofok, that one would just upset ehird 15:33:50 maybe you're all growing up and becoming less stupid 15:33:57 oklofok, no that he changes 15:34:00 no,* 15:34:05 that would be (a) 15:34:05 i know what you meant 15:34:12 oklofok already said that 15:34:24 -!- puzzlet has joined. 15:34:24 ehird, not really. 15:34:30 deep, man. deep 15:34:39 sure (a) is a subset of (c) 15:34:40 anyway i don't really argue argue with oklofok, it's more like, you know, killing each other 15:34:41 or it could be b 15:34:49 and that 15:34:52 AnMaster is like, ripping out his mother's eyeballs and stomping on them and feeding them to satan 15:35:04 anyway the change here would be in like "you becoming more mature" 15:35:17 AnMaster doesn't make it easy does he 15:35:39 oklofok: have you noticed that the option AnMaster is proposing is a thinly-veiled "you finally realised with increased maturity that i am right" 15:35:50 iiiiiinteresting 15:36:02 ehird, I didn't say that. No one is static. 15:36:08 everyone changes. 15:36:14 i actually only noticed i have a hamburger i could be eating 15:36:21 AnMaster is now a zen buddhist 15:36:27 but maybe that is a subset of hamburger? 15:36:29 * oklofok gets -> 15:36:34 maybe 15:36:35 a superset 15:36:40 there are more hamburgers you could be eating 15:36:43 than there are hamburgers 15:38:27 actually this seems to be an ick bug 15:38:34 -!- coppro has quit (Read error: 145 (Connection timed out)). 15:38:37 int foo[] = {}; 15:38:40 isn't valid C89 is it? 15:38:52 why not 15:39:10 ehird, what is the size of that variable 15:39:40 -std=c89 -pedantic with gcc gives: 15:40:04 0 15:40:05 beer.c:2228: warning: ISO C forbids empty initializer braces 15:40:05 beer.c:2228: error: zero or negative size array 'icd' 15:40:16 ehird, sorry synergy copy-paste issues 15:40:19 it took some time 15:40:36 ehird, you can't have a 0-sized variable! 15:40:45 void *foo; 15:40:46 sure you can 15:40:49 it's called *foo 15:41:03 ehird, only as a pointer to. But that wasn't what happened above 15:41:05 (TURKEY_BOMB) 15:41:07 anyway this is an ick bug 15:41:09 yes, and *foo is size 0 15:41:11 your mom is an ick bug 15:41:18 ehird, the actual pointer is not size 0 15:41:44 ehird, you can't have void bar; 15:41:45 either 15:41:50 in standard C at least 15:41:56 "You're complaining about C++ taking time to compile and link? That's hard to believe." 15:41:58 void* bar yes 15:42:02 fig a. cracksmoker 15:42:18 ehird, eh, that is unrelated to this right? 15:42:28 yes 15:43:18 "This is one of the reasons Lisp doesn't get anywhere. The trend to promote features so clever that you stop thinking about your problem and start thinking about the clever features. CL's loop is so powerful that people invented functional programming so that they'd never have to use it." 15:45:00 ehird: hard to believe because it's like complaining about an idiot being stupid? 15:45:15 no he told him to uses precompiled headers and a fast disk 15:45:17 *use 15:45:26 -_- 15:45:28 the post was about go by the creator of bittorrent 15:45:37 they remarked how shitty C++ was for compiling so much more slowly than go 15:45:59 so yeah maybe that C++ can build in 30 seconds with that precompiled shit and the expense on a fast disk, meanwhile go did it in less than a second 15:46:10 (go builds its entire standard library, with one core, in less than ten seconds...) 15:47:11 ehird, does it do much optimisation? 15:47:15 or just basic stuff 15:47:55 It does some optimisation, but the minimalist bent of the libraries and the good design mean they it's fast even with minor optimisation. 15:47:57 if that includes stuff like interprodecural optimisation, I'm extremely impressed. 15:48:06 ehird, hm 15:48:08 It turns out that most optimisation... really doesn't make much of a difference at all. 15:48:44 ehird, does it compile to machine code or byte code? 15:48:45 Oh, and the linker is really fast too... 15:48:48 AnMaster: Machine code. 15:49:01 Object code format is not .o, though. 15:49:14 ...is it .go? 15:49:14 Libraries are .a, binaries are binaries, but intermediate objects are .N where N is the number for the architecture 15:49:32 8 = 386, 8g is compiler, 8l linker, .8 objects, 8.out default obj name 15:49:35 so has anyone implemented go in go yet 15:49:37 same for 6 = amd64, 5 = arm 15:49:38 i mean the game 15:49:41 it's the plan 9 toolchain 15:49:48 5 for arm? huh? 15:49:50 i mean... i could be named gogo. 15:49:56 it's the actual plan9port linkers modified a bit, and compilers written in the same style as the plan 9 c compilers for the go 15:50:00 AnMaster: it's arbitrary :P 15:50:06 ehird, yes very 15:50:08 8 is from x86 and 386 15:50:11 6 is from 64 15:50:13 5 who knows 15:50:16 they're just names 15:50:30 ehird, is it faster than tcc? 15:50:32 Anyway, the linker is really fast. 15:50:39 We're talking like instant fast. 15:50:41 what's interprocedural optimization? 15:50:42 AnMaster: Hell yes. 15:50:53 ehird, tcc is fast at compiling though 15:50:59 It is probably one of the fastest compilers for a "real" language in existence. 15:50:59 ehird, I think it did ick in like 5 seconds. 15:50:59 Maybe the fastest. 15:51:01 or less 15:51:10 AnMaster: Whole. Standard. Library. Including creating the .a's. 15:51:13 i mean can i see an example of dat 15:51:15 In less than 10 seconds. 15:51:24 Including make overhead. Recursive make. 15:51:29 ehird, no preprocessor I guess? 15:51:29 AnMaster: The stdlib is >100k lines of Go. 15:51:32 In about 9 seconds. 15:51:42 ehird, cached in memory I assume? 15:51:46 Nope. 15:51:48 From disk. 15:52:03 So, basically, the gc Go compiler can process something like 10,500 lines of code a second. 15:52:07 ehird, fast disk then. or all in a few files 15:52:10 was it SSD? 15:52:23 It may have been SSD, but I don't think so. These times are similar to those by others. 15:52:25 And no. 15:52:27 It's split into many files. 15:52:30 It was a laptop. 15:52:35 So a regular disk or SSD. Probably disk. 15:52:43 Regardless, the source files are quite small. 15:52:51 ehird, not a lot of seeking then 15:52:57 Well, not that small. 15:53:01 because disk seeks sounds like the main oerhead here 15:53:04 Are you just trying to find excuses to say it's bad or not fast? 15:53:10 10,500 lines of code a second. 15:53:17 No other compiler for a real language comes anywhere near close. 15:53:18 ehird, no. I'm just wondering how fast. 15:53:32 Remember that this is from the guys who brought you C, Unix and Plan 9. 15:53:38 They're *really* good at compilers and operating systems. 15:53:45 ehird, how long did it take when the source files was cached in memory already? 15:53:46 Probably the best in the world. 15:53:48 that's more interesting 15:53:51 AnMaster: I don't know. 15:53:57 http://golang.org/pkg/ 15:54:00 That's the whole stdlib. 15:54:04 Look at the package list. 15:54:16 >100,000 lines of code, in 9 seconds. Seriously, you've gotta be impressed. 15:54:25 ehird, yes. But question is how impressed. 15:54:41 Past the minimum bound it's so high anyway it doesn't really matter. 15:55:48 AnMaster: I mean, no other compiler really comes close. 15:55:59 It's not like a second or so difference will knock it off top spot. 15:56:25 ehird, wc -l claims ick ends up at 20998 lines. tcc managing that on a pentium3 in about 5 seconds, including link time and such isn't too bad. 15:56:46 True. 15:56:53 But whatever, Go is really fast. 15:56:56 that is, time for make on clean but configured source tree. 15:56:58 Okay, rewatched the video. 15:57:09 Go tree is about 120,000 lines of code, build took 9.231 seconds. 15:57:23 Which comes to 12999.675 ~= 13,000 lines of code a second. 15:57:25 ehird, which is indeed impressive. But what specs was that 15:57:32 a bit better than a pentium3 I bet 15:57:39 It's a MacBook Pro of some description, I think the 15" model 15:57:44 Google-supplied, almost certainly 15:57:51 Since they're not really Mac guys, I'd guess 15:57:58 So not too high specs 15:58:11 ehird, would be better than an old dell pentium3 system with a slow pata disk in any case 15:58:34 Okay, I concede, Go is nothing special, tcc is totally kicking awesome. Happy now? 15:58:44 ehird, I'm not saying Go is not special 15:59:07 I agree it is impressive. But I just want to point out that it isn't *that* special. tcc manage quite well 15:59:16 go seems faster than tcc still 15:59:26 from some quick estimates. 15:59:50 comparing to gcc the difference is extreme 15:59:53 You also have to remember that Go is much more intensive to compile than C. 15:59:57 For instance, the method lookups. 15:59:58 and to any C++ compiler.... 16:00:02 The concurrency stuff. 16:00:04 etc. 16:00:06 ehird, what about preprocessor? 16:00:18 No preprocessor, but it does do a lot of clever dependency stuff, which is more cost. 16:00:24 So you can't really compare it to a C compiler. 16:00:24 true. 16:00:36 Especially not on such a pathological codebase as ick. 16:00:42 ehird, still include files seems to take quite some time when there are many and deeply nested. 16:00:56 ehird, nice wording :) 16:01:10 I was considering "Cthuolic" :D 16:01:27 (Fun fact: The Go compiler is probably fast at least in part because it doesn't use libc.) 16:01:44 (It uses plan9port's lib9; the Plan 9 libc ported to Unixes.) 16:01:52 -!- puzzlet_ has joined. 16:01:55 ehird, I think that is too extreme. It is quite ok C. At least in the compiler itself. Less so in the generated code of course 16:02:05 What is quite ok C? 16:02:09 Oh, ick. 16:02:13 True. 16:02:14 ehird, parts of the compiler itself 16:02:17 It certainly is pathological, though. 16:02:28 ((Russ Cox, the plan9port maintainer, is part of Go, but I imagine they used lib9 before that, being Plan 9 weenies)) 16:02:30 ehird, the generates parts I agree are "Cthuolic" 16:02:43 that is, oil generated files, and generated c code for intercal programs 16:02:53 oil is *definitely* "Cthuolic" 16:03:13 ehird, is Russ Cox part of Go? 16:03:14 huh 16:03:23 Yes. And Ken Thompson. 16:03:24 what file is he in? 16:03:26 And Rob Pike. 16:03:28 :P 16:03:30 AnMaster: hardy har har 16:03:35 ricer.c 16:03:51 ehird, it actually took me several seconds to figure out you meant "go team" 16:05:13 is libc really that slow? 16:06:33 Nah, but it's certainly bloated, even BSD libc. 16:06:52 Plan9port's lib9 is very lean and mean in comparison, especially since it does away with a lot of legacy interfaces and adds some of its own. 16:07:03 (http://swtch.com/usr/local/plan9/src/lib9/ btw.) 16:08:39 wow bash just crashed on me 16:08:40 in ubuntu 16:08:47 double free 16:09:43 ha 16:09:57 fun how minimalist the plan 9 c compilers are 16:10:01 no -l, you just pass in the name of the .a 16:11:55 ick_lose(IE000, 304, "PLEASE ""KNOC""K BEFORE ENTERING\n\ 16:11:55 "); 16:12:00 messy 16:14:12 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 16:22:30 -!- ais523 has joined. 16:22:45 hi ais523 16:22:47 AnMaster: 16:23:08 ais523, hi 16:23:11 found some bugs in ick 16:23:15 let me pastebin a list 16:23:22 hi both of you 16:23:45 ais523, see http://sprunge.us/TDPZ 16:24:11 ais523, there is a rather serious code gen bug at the end 16:24:12 is that a pastebin? 16:24:20 no 16:24:22 it's a porn site 16:24:29 ais523, yes it is 16:24:38 he'll never click on any of your links again, AnMaster 16:24:39 ehird: Things like the GNU binutils ld (and by extension, gcc) cheerfully accept plain old ".a" files too; the difference there (I think) is that if you say "libfoo.a", it'll just add all object files in foo.a, and you need "-lfoo" for the more intelligent "include objects only if they contain symbols that other files refer to" thing. 16:24:45 does appear to be a pastebin, after all 16:25:04 Phew. It could have been ASCII porn. Your w3m was at risk. 16:25:12 maybe it's a pornbin, but AnMaster doesn't know how to use it 16:25:24 Quick, paste in the indecent (.)(.) and provide a link! 16:25:32 ais523, the point of it is that the way to add a paste is: cat ick-mpw-issues.txt | curl -F 'sprunge=<-' http://sprunge.us 16:25:35 or similar 16:25:43 Wow. 16:25:47 Useless use of cat and curl feature. 16:25:49 Let me fix that for you. 16:25:58 curl -F 'sprunge= ehird, you could use < yes for example 16:26:07 You could realise what <- actually means. 16:26:13 "Get form value from... stdin" 16:26:31 ah. 16:26:45 ehird, so I shall need to adapt the function for it a bit 16:26:48 AnMaster: that last bug is serious, but trivially fixable 16:27:03 I could just add an extra element at the end full of NULLs 16:27:03 ais523, I don't know what the right thing is 16:27:15 ais523, well, what about the lexer.c bug 16:27:20 that one is harder to fix it seems 16:27:47 also, there aren't any shared libraries in ick, it's all static linking 16:27:56 the lexer.c bug looks nasty 16:28:09 which 16:28:16 ais523, would need to go upstream to flex? 16:28:25 AnMaster: maybe not 16:28:28 ais523, also ick too has line ending problems 16:28:41 why use flex 16:28:42 use lex 16:28:43 AnMaster: seems rather unlikely given that \r and \n are equivalent in INTERCAL 16:28:53 ehird: the output of lex can't legally be redistributed 16:29:07 what, caldera lex? 16:29:09 I doubt _that_ 16:29:11 it's BSD-licensed, iirc 16:29:26 ehird: Solaris lex, at least 16:29:28 Though traditionally proprietary software, versions of Lex based on the original AT&T code are available as open source, as part of systems such as OpenSolaris and Plan 9 from Bell Labs. Another popular open source version of Lex is Flex, the "fast lexical analyzer". 16:29:53 ais523, well, I get different compiler errors for the output files depending on line endings in ick-wrap.c syslib.i and beer.i 16:30:10 ais523: have i mentioned to you that go is cool 16:30:13 hmm... the isatty problem can be fixed simply by defining it to always return 0 if autoconf says that isatty isn't present 16:30:15 ais523, in no case is the output of ick on mac the same as ick on *nix 16:30:23 ehird, even when stripping the compile command line 16:30:24 err 16:30:25 ais523, ^ 16:30:39 always 1, surely 16:30:43 mac os has no file redirection 16:30:57 or does it do cursor movement stuff 16:31:08 ehird, MPW emulates redirection 16:31:58 ehird: b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 16:31:58 ais523, sure, but mac doesn't use autoconf, so I'll need to update config.h I guess 16:32:04 and we want yy_is_interactive to be 0 in that case 16:32:17 ais523: I told you autotools was unacceptable 16:32:19 but did you listen?! 16:32:21 ehird: no, it isn't 16:32:27 it doesn't support mac os! 16:32:33 platforms on which it doesn't run can have their own config.h bundled 16:32:42 you could have written a nice, portable k&r c configurator with just a few times more work and provided an EQUAL EXPERIENCE TO EVERYONE 16:32:45 ais523, http://sprunge.us/UIaA 16:32:45 -!- ehird has left (?). 16:32:49 -!- ehird has joined. 16:32:50 ais523, tell me how bad that diff looks 16:33:04 ais523, one is generated on *nix the other on mac 16:33:07 i'll shut up if y'all help me find out how to get files into a vm so i can get ick working 16:33:08 ... 16:33:08 .. 16:33:10 . 16:33:11 16:33:13 WITH SYSTEM 6 16:33:17 AnMaster: the ick_abstained line looks very wrong 16:33:24 ehird, do you have a volume called "unix"? 16:33:28 in the vm 16:33:35 ehird, or maybe that needs system 7 16:33:37 I haven't set it up yet 16:33:39 AnMaster: ooh, it looks like the mac version isn't linking in syslib 16:33:44 ehird, otherwise hmount to mount and copy it over 16:34:03 ais523, it should be. it complained about that first but I copied syslib to the current directory, and it stopped complaining 16:34:25 also, the mac version has an E000 error on /every single line/ 16:34:37 ais523, yes. Any idea what might be wrong basically 16:34:53 lexing failure 16:35:00 or possibly a really persistent parsing failure, but that's less likely 16:35:07 ais523, anyway tht isatty line, I think it complained about fileno too. something about fileno prototype not matching 16:35:11 it didn't link syslib because it was unreferenced 16:35:27 #define isatty 0 16:35:28 ais523, oh and things complain about getc being defined in standard library as well as in lexer.c 16:35:30 problem solved 16:35:32 Here we go. 16:35:38 sorry, 16:35:42 #define isatty(x) 0 16:35:42 ais523, saying that it is undefined which is called 16:36:00 ugh, I /knew/ that getc hack would come back to bite us more than once 16:36:17 it wasn't me who wrote it originally, but it's really hacky and looks really problematic 16:36:19 ais523, what does that getc thing do? 16:36:29 that the normal one doesn't 16:36:32 AnMaster: basically, getc is a macro 16:36:36 so C-INTERCAL #undefs it 16:36:40 and substitutes its own getc 16:36:59 this has already lead to a problem once with the new getc calling itself recursively, which I fixed by bypassing stdio on file read 16:37:08 ais523, no it isn't iirc. the mac claims it is a function in the libc thingy 16:37:15 but it seems it's lead to another one where getc isn't actually a macro 16:37:55 * ehird installs System 6 16:37:57 you could fix it using the C++ keyword hack 16:37:58 ais523, why not just rename the function if you need the special version... 16:38:03 AnMaster: I have no idea 16:38:13 I didn't write C-INTERCAL originally 16:38:22 probably because it would be too hard to get traditional lexen using some other function 16:38:42 anyway, #define getc overriden_getc should work 16:39:00 if you can get it to the top of lexer.c somehow 16:39:12 ais523, huh? what does c++ has to do with this 16:39:15 AnMaster: did you run sheepshaver at >original speed? 16:39:25 ehird, eh? I never saw that option 16:39:30 mini vmac does 8x unless you change it, which is nice but doesn't feel kosher :P 16:39:37 ehird, I use the svn version of sheepshaver with experimental JIT support 16:39:53 circa 2006 16:39:53 not very svn 16:39:53 which is quite reasonably fast 16:39:53 ok so fast then 16:39:54 ehird, well yeah 16:40:19 ehird, it runs about the same speed as my old ibook. A little faster for some stuff (boots faster, probably due to faster disk) but a little slower for some other stuff 16:40:25 like graphics 16:40:30 as in, game graphics 16:40:35 the GUI is snappy 16:41:32 ais523, anyway, I did get beer.c generated on unix and with that code gen bug fixed to compile on mac against libick. Worked. As an MPW tool too 16:41:33 ImportFl is an application to use in Mini vMac (version 3.0.0 or later) to import files into the emulated computer from the real computer. 16:41:33 When ImportFl is the active application running in the emulated computer, then any of the methods normally used to mount a disk image will instead import a file. For example, dragging the icon of the file to be imported into the Mini vMac window. 16:41:33 warning: When attempting to use ImportFl, if you see a dialog asking if you want to initialize the disk, choose “Eject”, not “Initialize”! This will happen if ImportFl is not actually the active application, in which case the file you are attempting to import is treated as a disk image. Choosing “Initialize” will turn it into a valid disk image, destroying parts of the previous content. 16:41:36 ImportFl is mostly useful for importing archives, since it only imports the data fork of a file, not Macintosh specific information such as the resource fork, the file type, the file creator, and comments. 16:41:39 Sweet! 16:41:58 ais523, so if I can get the odd bug in that diff fixed so it can actually generate correct code itself.. 16:42:09 but I have no clue what could be wrong there 16:42:49 that could be wrong where? 16:43:27 OHO, found it 16:43:47 damn, running MPW will be such such fun in this tiny, black-and-white display 16:43:55 newline mapping for ick: \n becomes \n, \r\n becomes \n, \r\r becomes \r, \r on its own becomes a null string 16:44:03 this is correct for Windows and DOS, but not classic Mac 16:44:17 ais523, indeed. Where does one fix it. Needs to be fixed for ick and for oil 16:44:31 bin2c seems to work fine 16:44:51 for ick, it can be fixed inside getc by swapping \n and \r immediately before the if (bangflag) check 16:45:03 (that's in lexer.l) 16:45:09 ais523, um I have both CR and LF files 16:45:18 so I need it to handle both 16:45:25 AnMaster: what bbedit lite do you have? 16:45:30 AnMaster: does ick work on a CR INTERCAL file? does it work on an LF INTERCAL file? 16:45:34 ehird, 4.6, why? 16:45:38 darn, too new 16:45:45 The Wayback Machine is down for scheduled maintenance. 16:45:46 RAGE 16:45:52 ais523, neither. But "doesn't work" in different ways 16:45:58 what are the two sorts of error? 16:46:11 the diff you showed me is clearly the wrong line ending, as none of the lines parsed at all 16:46:26 which would hide all the other errors; if you're compiling every line into a syntax error, most of the code never runs 16:46:30 the error in the other case would be more interesting 16:46:35 ais523, with \n it seems like those comments containing the original intercal each contain the whole original file with newlines stripped 16:46:43 I didn't look too closely 16:46:45 found it! 16:46:48 * ehird downloads bbedit 16:46:56 ais523, remember that \r and \n are swapped by the standard library 16:47:10 AnMaster: ooh 16:47:16 that makes a lot of sense, actually 16:47:26 it's failing to parse both ways roudn 16:47:28 *round 16:47:37 but the error message is the /line/ of the original source that wasn't parsed 16:48:02 AnMaster: can you run a simple file with \r line endings through ick -d, and paste the corresponding debug output? 16:48:07 a simple INTERCAL file, that is 16:48:08 ais523, yes. And I only tried all LF and all CR. I guess I could try all possible combos for ick-wrap.c syslib.i and beer.i 16:48:20 ais523, give me a short one then 16:48:27 beer.i is long 16:48:34 ais523, shortest possible one would be nice 16:48:58 AnMaster: pit/tests/limits.i is probably about the right length 16:49:10 Size: 872K 16:49:10 Type: Evaluation Copy 16:49:10 Registration Fee is $30.00 after 15 days 16:49:10 Minimum Requirements: 16:49:11 · System 6 16:49:11 Download Time: 5 minutes at 28.8 kbps 16:49:12 This software is Year 2000 compliant. 16:49:14 —http://download.mindspring.com/mac/stuffitlite.html 16:49:27 ehird: are you planning to pay the reg fee? 16:49:31 ais523, so -c -d ? 16:49:37 or exactly what flags 16:49:39 AnMaster: -d implies -c 16:49:40 ais523: I don't think they'd let me even if I wanted to. 16:49:42 do just -d by itself 16:49:44 ais523, right 16:49:50 "StuffItLite36_Installer.sit" 16:50:06 * ehird facepalm 16:50:10 ais523, it is spewing output to my mpw worksheet. Guess I'll redirect it 16:50:23 Guys, laugh. 16:50:23 ehird: if that means what I think it means, I agree 16:50:31 .sit is indeed the Stuffit format 16:50:35 ehird, :P 16:50:43 ais523, is that stdout or stderr? 16:50:55 AnMaster: I can't remember offhand 16:51:00 probably stderr, though 16:51:02 * ehird picks up an hqx bbedit until that conundrum is sollve 16:51:07 s/sollve/solved/ 16:51:16 Argh. 16:51:21 hqxs just turn into .sits 16:51:43 huh? 16:51:48 "turn into"? 16:52:05 OS X expanding them 16:52:07 so they contain .sits 16:52:08 ais523, both 16:52:09 so forget that 16:52:14 AnMaster: what stuffit you got 16:52:16 ais523, and I can't redirect both to same file it seems 16:52:24 redirect them to different files then 16:52:28 ehird, 7.something 16:52:29 the relative order isn't all that important 16:52:34 sigh 16:52:54 ais523, do you want the file itself too? 16:53:09 just the stderr/stdout output 16:53:18 cat them together to save pastebin space 16:53:23 http://www.jagshouse.com/software/StuffItExpander351.sea 16:53:26 .sea, that sounds better 16:53:29 Self-extracting archive 16:54:16 For *really* old .sit files you can just use the "macunpack" tool from the "macutils" collection to unpack. (Personally it hasn't eaten most web-downloaded .sit files I've found, though.) 16:54:17 No luck. 16:54:30 ais523, stdout: http://sprunge.us/WNGO 16:54:32 Guess I need the rfork. 16:54:43 ais523, stderr: http://sprunge.us/NDVB 16:54:52 ais523, probably uses CR those files 16:55:10 "yylex: bad char 0xd" 16:55:16 that explains the errors, at least 16:55:30 ais523, that was CR. I'm pretty sure 16:55:53 solution here seems to be to set both 0xa and 0xd to the same value in the parser 16:55:55 *lexer 16:56:04 ais523, sounds hackish? 16:56:09 but okay 16:56:15 not really 16:56:22 W [\ \t\n]* 16:56:23 D [0-9][\ \t\n0-9]* 16:56:29 in those lines in lexer.l, change \n to \n\r 16:56:39 given that "W" means "whitespace", it's OK to consider \r as whitespace i think 16:56:41 *I think 16:56:48 ais523, lexer.l? 16:56:52 AnMaster: src/lexer.l 16:56:55 right 16:56:56 it's what you compile to create lexer.c 16:57:32 change it over on a Linux system, then do make repoupdate 16:57:38 ais523, well yes of course 16:57:38 to get a new prebuild lexer.c 16:57:43 what is D? 16:57:59 digits followed by optional whitespace 16:58:15 ais523, my lexer.c differs in more than that from the pre-built, it has some IA64 #ifdefs now 16:58:16 heh 16:58:25 heh 16:58:26 oh and right, I need to change the isatty to 0 again 16:58:29 That looks more like "digits with maybe whitespace between them too". 16:58:41 fizzie: oh, ofc 16:58:48 INTERCAL has its own attitude to whitespace insensitivity 16:59:15 A bit funny that "12 \n\r\r\r\n 34 \n\n\n\n" is a single token. 16:59:41 YES 16:59:42 A BIN 17:00:13 sdhf 17:00:17 but the resource fork won't copy 17:00:36 ais523, still the getc warning 17:00:47 fizzie: sorear's interpretation of the INTERCAL spec is that whitespace is allowed even inside comments 17:00:47 about it being defined in StdCLib 17:00:58 AnMaster: write #define getc getc_override just after #undef getc 17:01:00 in lexer.c 17:01:09 hm ok 17:01:10 AHA 17:01:11 Rename to .dmg 17:01:13 And you can mount it 17:01:35 ais523, so what should I test now? 17:02:07 AnMaster: whether you can now compile that test program and get something other than infinite syntax errors 17:03:32 ais523, now I get the same error as on unix. that is the code gen bug 17:03:46 will manually fix that empty array and retry 17:04:07 try with -c 17:04:11 and see if the resulting C file is reasonable 17:04:47 Okay, got Stuffit and BBEdit Lite. 17:05:01 Hey! That "use mkisofs/genisoimage to make a HFS cd image so that I can get my separate 'foo' data and '._foo' resource forks joined together" trick I did with Glider 4 was probably unnecessary; I just noticed that the "macstream" make-a-MacBinary-file has a support for split files; if an input file ends with .info, it reads the corresponding .data and .rsrc files too. 17:07:15 ais523, beer now works 17:07:17 ais523: do you think 4 megs of ram is enough to compile ick? 17:07:21 as an mpw tool yes 17:07:28 ehird: yes, probably 17:07:34 AnMaster: yay 17:07:36 ais523, -c will always be needed on classic mac btw 17:07:42 -c? 17:07:47 ehird: generate C, not a binary 17:07:49 ais523, and it should output the commands to compile it to stdout 17:07:57 i'ma gonna put some stuff on my totally p!!mp!n mac and then yeah mpw it up 17:08:00 ais523, reason is that MPW tools can't invoke other MPW tools 17:08:21 commands to compile are already available 17:08:30 although I forget which variable they're in 17:08:56 ais523, well the standard ones won't work. like you can't do -Ifoo/ you do -i :foo: 17:08:59 the space is required 17:09:12 looks like we'll need a #ifdef somewhere for the platform 17:09:12 as for -L I haven't found that 17:09:17 you must give full path 17:09:25 actually no 17:09:30 you should use the standard variables 17:09:58 like "{PPCLibraries}"PPCToolLibs.o 17:10:01 for that library 17:10:18 ais523, and you need to specify the c library to the linker 17:10:23 oh and compiler can't call linker 17:10:31 let me copy over the commands I used to test that 17:12:13 ais523, http://sprunge.us/JVAa 17:12:16 that is what it looks like 17:12:45 ais523, ick-wrap.c and syslib.i were in current directory 17:13:18 -!- adam_d has joined. 17:13:58 ais523, and beer is compiled as an MPW tool. Which might be a suboptimal solution. Possibly a free standing program is better. To prevent it from locking up MPW in case of bugs 17:14:11 hmm 17:14:44 ais523, could use that SIOW thing which does IO in a window for you. To emulate a "glass teletype" I think the term was in the docs for that bit 17:19:17 AnMaster: It's on Mac. Bugs can lock up the whole OS. 17:19:22 ... And kill your cat. 17:20:07 pikhq, well, as in "waiting for IO means you can't quit it" 17:20:24 Ah. Simpler bugs than "while(true);" 17:21:49 I heard a story somewhere about macs that kept breaking a certain computer network 17:21:58 (ages ago) 17:22:32 Nice hex editor... 17:22:33 it turned out they didn't respond to the network while a user was looking at a menu 17:22:37 causing lockups 17:22:37 Will install this XLisp thing then go on to 17:22:38 DUN DUN DUN 17:22:40 MPW 17:23:08 AnMaster: Speaking of the emulators (BasiliskII, SheepShaver), did you happen to try out the networking parts? 17:23:36 BasiliskII can do tcp/ip i believe; there's a twitter client 17:24:09 Okay, slight issue. 17:24:13 Does MPW actually run on System 6? 17:24:23 Yes. 17:24:46 3.1 and under were System 6-only, even. 17:26:42 This XLisp seems quite good. 17:26:58 Calculated (fact 100) and all. 17:26:59 BasiliskII can do networking, in theory, but it's awfully outdated. There's a custom kernel module (sheep_net) to make it attach to a real Ethernet interface, but I'm not sure it'll compile with anything modern; there's also an ethertap-based virtual networking thing, but it tries to use the obsoleted /dev/tapN devices (nowadays you have to open /dev/net/tun and do an ioctl); and the third option is a bit undocumented thing that sort-of seems to send all the 17:26:59 outgoing ethernet packets tunneled in broadcast UDP packets, which is not very standard (or easy-to-plug-into-routing) either. 17:27:13 Maybe there are some modernization patches in the webs, though. 17:27:26 -!- lifthrasiir has quit (Read error: 60 (Operation timed out)). 17:28:45 Okay, time for serious stuff. 17:29:36 ais523: are you ready to support a user with an emulated Mac Plus with 100 MiB of DISK, 4 MiB of RAM (8 MiB maximum addressable), Macintosh System Software 6.0.8, Macintosh Programmer's Workshop something and a copy of the latest-'n-greatest C-INTERCAL? 17:30:04 probably not, but I'll probably try anyway 17:30:23 With a black-and-white 512x342 display, at that. 17:30:25 Very infuriating. 17:30:37 ais523: When did C-INTERCAL originate? 17:30:59 * ais523 checks 17:31:05 AnMaster: Speaking of the emulators (BasiliskII, SheepShaver), did you happen to try out the networking parts? <-- yes 17:31:07 worked fine 17:31:12 slirp or something like that iirc 17:31:33 version 0.3, the earliest I've managed to find, was dated 12 May 1990 17:31:52 Same year as the last update of this System 6! If only esr was a Macintosh user. 17:31:59 erm 17:32:00 this as in 17:32:02 the copy I have 17:32:13 gah, this means I'm older than C-INTERCAL 17:32:17 there's something wrong with that 17:32:31 dude, I'm younger than Agora 17:32:33 that's freakier 17:33:11 i'm younger than my own father 17:33:16 ! 17:34:11 hm 17:37:19 fizzie, slirp works fine for internet explorer 5.1 btw 17:37:32 AnMaster: what files did you download to get mpw? 17:37:34 err 4.x maybe 17:37:48 ehird, the main mpw img (iirc) plus various updates to it 17:37:50 see apples page 17:37:52 sec for link 17:38:00 but it's too recent 17:38:10 ehird, that's what I used 17:38:14 http://developer.apple.com/tools/mpw-tools/ 17:38:31 ehird, if it is too recent or not wasn't in the original question 17:38:34 http://lists.apple.com/archives/MPW-Dev/2003/Jan/msg00029.html >_< 17:38:52 http://www.macintoshgarden.org/apps/macintosh-programmers-workshop-30-31 17:38:54 fucking 17:38:54 ACE 17:39:49 Wow, it's a CD-ROM. 17:39:53 Seedy ROM. 17:40:26 AnMaster: what's SADE 17:40:34 ehird, ? 17:40:44 mpw 17:40:48 never heard of SADE 17:40:48 macbugs, mpw, resedit, sade 17:40:52 some debugger thing 17:41:24 MPW 3.1 + ResEdit 1.2. 17:41:27 I hate debuggers. 17:41:31 Copy time! 17:42:49 ehird, macsbug breaks under sheepshaver, because it needs better emulation of hardware 17:43:03 sheepshaver and basiliskII both take some shortcuts with the MacOS ROM iirc 17:43:09 so they don't have to emulate all hardware 17:43:38 ehird, not sure if macsbug work under basiliskII 17:43:39 ResEdit is there but not MPW. I'll try copying again. 17:43:45 AnMaster: Mini vMac is full emulation 17:43:47 ehird, I have resedit 17:43:50 which is why you can't futz with the screen res etc 17:43:51 ehird, true 17:44:00 ehird, um. why? 17:44:14 AnMaster: Right, my BasiliskII README just doesn't say anything about it; now that you mention it, I guess I remember seeing it in the config dialog thing. MacTCP or OpenTransport inside, though? 17:44:15 Because it requires ROM hacks, and it's meant to be authentic (it breaks some shit). 17:44:35 fizzie, sheepshaver. OS 9. That means opentransport is the only thing 17:44:37 You use Mini vMac with ROMs straight from a real Mac, fully-emulated. 17:44:42 fizzie, never tried network under basiliskII 17:45:08 ehird, right. 17:45:35 XD 17:45:39 MPW was right behind the system folder 17:45:44 ehird, hah 17:46:00 AnMaster: Ah, okay. I was thinking of this System 7; I installed both MacTCP, OpenTransport and the "Network Software Selector", and I remember it working just fine in the Performa (there was a control strip thing that could be used to select the TCP stack), but in this emulated thing I don't seem to be able to find the selector, just the MacTCP parts. 17:46:02 Oh, non-icon view. Why didn't I switch to that earlier? 17:46:27 Oh, there it is. 17:46:31 -!- oerjan has joined. 17:46:35 AnMaster: what app do you start to start MPW? MPW Shell? 17:46:49 Holy fucking shit... 17:46:57 Last modified Friday, December 15th, 1989. 17:47:01 ais523: ↑ 17:47:13 heh 17:47:18 ais523: It's somehow more intimidating than the vintage Unix. 17:47:25 It's ... so close that it must be so ... far? 17:47:48 AnMaster: what app do you start to start MPW? MPW Shell? <-- yes? 17:48:09 ehird, actually no, I double click my makefile, so current working directory is correct 17:48:10 Aaaand we're loaded 17:48:20 but that opens in mpw shell 17:48:26 Shall I try a hello world mmhm? 17:48:48 ehird, sure. You will need SIOW or MPW tool for it to work under 68k 17:48:58 otherwise the output goes nowhere 17:49:04 This is pre-PPC. 17:49:16 All anyone had was 68k. 17:49:16 *has was 17:49:16 ehird, yes. But SIOW is for 68k too 17:49:19 What is SIOW? 17:49:26 ais523: even C is an oddity, as these macs did Pascal 17:49:41 ehird, some code to wrap a portable C app so standard IO goes to a window 17:49:47 to/from I guess 17:49:54 ehird, you can't pass command line parameters 17:49:54 Ah. 17:50:05 Third-party code, I guess? 17:50:05 if you need that, MPW tool is your only option 17:50:13 Does MPW tool have any downsides? 17:50:14 ehird, there is an example included with both MPW and one with codewarrior 17:50:44 ehird, yes: you run inside mpw, so you can't call another mpw tool, and memory leaks will as far as I understand affect mpw 17:50:49 oh and you can easily lock up mpw 17:51:19 ehird, however you can use a normal program + some resources for it. At least under PPC. Not sure if it works the same for 68k 17:51:32 ais523: would you accept a patch to C-INTERCAL that let you configure that args are from stdin? 17:51:34 instead of argc and argv 17:51:39 in config.h 17:51:52 yes, patches to make things configurable are always fine 17:52:01 as long as they don't change the default 17:52:02 ehird, um. ick as MPW tool works fine 17:52:04 just fine 17:52:04 ... 17:52:10 and don't do anything else ridiculous 17:52:10 ais523: zzo38 would have a field day 17:52:12 and I will soon prepare my patch to ais523 17:52:15 AnMaster: But I want separate apps! 17:52:27 ehird, for a compiler it is useful as an MPW tool 17:52:31 for the generated apps it isn't 17:53:08 ais523, anyway, what about a patch for lexer.c? 17:53:10 "Drag the source file to the Compile with Ick icon. A new icon should appear, named INTERCAL Application. Rename it to what you want and drag it somewhere." 17:53:14 you mentioned autoconf stuff 17:53:31 Why is iit useful as an MPW tool? 17:53:34 *it 17:53:36 ehird, you can't call the MPW C compiler from outside MPW iirc 17:53:45 so you need to somehow open MPW and run it there. 17:53:51 maybe applescript could do it 17:53:53 not sure 17:53:53 But you said it doesn't work calling the cc anyway. 17:54:12 ehird, well as an external app you could possibly do it 17:54:18 if you have multitasking back there 17:54:27 ehird, oh btw does your MPW have something called "toolserver"? 17:54:33 if so you might have a chance 17:54:51 if not, and no apple script you can pretty much forget calling compiler for the user 17:54:52 How would I find out? 17:55:14 ehird, toolserver would be in same dir as mpw shell 17:55:16 at least for me 17:55:17 You have ick as an MPW Tool and it can't call cc you said. 17:55:19 i don't like kanye west's music. 17:55:19 So that's not an advantage. 17:55:31 And didn't you say the arguments had to be existing files? 17:55:57 You have ick as an MPW Tool and it can't call cc you said. <-- no but command line args work, and you can use the make stuff in mpw and so on. It integrates just like the C compiler does 17:56:31 You have to write support code though, right? 17:56:37 ehird, and arguments = existing files was for normal programs 17:56:40 not for mpw tools 17:56:44 Ah. 17:56:46 ehird, not much actually. 17:56:47 Fine, then. 17:56:53 How do I make an MPW Tool Hello World? 17:56:58 This interface is inscrutable. 17:57:03 ehird, there is an example with my mpw version 17:57:20 Example projects, certainly; I just don't know how to go about creating one of my own. 17:57:43 ehird, I figured that out from the example programs though :P 17:57:53 Anyway, what will my output applications do? 17:57:58 ehird, standard C program, compile C file, some special linker flags, some special resources (Using Rez) 17:57:58 Use that other one? 17:58:18 Also, I don't even know how to say "Here, give me a new project". 17:58:19 ehird, IO goes to MPW shell. 17:58:29 ehird, there is no project. Write a makefile 17:58:29 Yes... you said MPW Tool is good for ick... 17:58:32 Not the resulting programs... 17:58:56 * ehird creates Six:Code 17:59:02 ehird, well bad for resulting program because standard input is weird for them. And it is easy to lock up MPW 17:59:17 So... why not make it non-MPW Tool? 17:59:22 so far I did them as MPW tools however. For reasons of ease of testing 17:59:28 ehird, what would that be? 17:59:29 Well, okay. 17:59:32 The other thing. 17:59:39 ehird, free standing apps? 17:59:43 No. 17:59:44 with the SIOW thing? 17:59:46 Yes. 17:59:51 ehird, that's a free standing app 17:59:54 ... 17:59:56 I mean 17:59:59 I misunderstood. 18:00:03 SIOW is some stuff you link to your app 18:00:08 Anyway, what do I write first? I have Six:Code:Hello MPW. 18:00:10 Makefile? C file? 18:00:10 I haven't looked into the details of that yet 18:00:14 (Open MPW?) 18:00:26 ehird, open mpw and create a c file and a make file? 18:00:29 ... 18:00:37 now I'm busy preparing a patch. Kay? 18:00:44 See, that's kind of the thing in that I don't have a clue how. 18:01:10 Also there are projects 18:01:14 "Projects → New Project..." 18:01:25 *Project → 18:02:39 ehird, didn't use that 18:02:46 Okay. 18:03:03 So, File → New... "hello.c", I guess. 18:03:23 ais523, what about oil needing \r in the *.oil file? 18:03:36 Does my C file need special magic or can I just stdio 'er up? 18:03:36 ais523, how would I fix it to work with both 18:03:39 AnMaster: you could probably fix that much the same way in oil.y 18:04:02 ais523, that is not lex. that's yacc. That's different isn't it? 18:04:15 oil.y doesn't use lex at all 18:04:18 it has a hand-built lexer 18:04:38 ais523, so I guess that is where it needs to be fixed? 18:05:07 Does my C file need special magic or can I just stdio 'er up? 18:05:47 -!- coppro has joined. 18:05:49 AnMaster: yes 18:06:23 ais523, I'm afraid the mac makefile probably requires CR line endings. I'm not sure. Still patch doesn't like it very much... 18:06:57 AnMaster: even if you tell it to ignore whitespace 18:06:59 ? 18:06:59 * AnMaster tests 18:07:00 oi 18:07:11 ehird: I have no idea what you mean, if that question was directed at me 18:07:17 nope 18:08:11 ais523, actually MPW seems happy with LF line endings heh 18:08:19 AAAAAAAAAAANMAAAAAAAAASTER 18:09:44 AnMaster: ^ 18:10:09 ais523, what about ick_numerals being defined in both cesspool.c and numerals.c ? 18:10:21 ais523, got a huge warning about that 18:10:24 Deewiant: don't bother, I think he's ignoring me either mentally or technologically 18:10:27 I thought that was correct, maybe not though 18:10:38 Does my C file need special magic or can I just stdio 'er up? <-- try it and see? 18:10:55 ais523, maybe they should be static? Or one should be extern? 18:11:09 can't remember offhand, and I'm busy with something else 18:11:11 AnMaster: Well for one I have no idea what fucked up makefile syntax is used... 18:12:44 ehird, look at examples in MPW? That's what I did 18:12:54 I tried to but the interface makes no sense. 18:12:59 I based mine on that and then rewrote it and rewrote it 18:13:01 ehird, what interface? 18:13:05 MPW 18:13:07 the editor window? 18:13:15 ehird, it's just an editor window for the makefile 18:13:29 ehird, the worksheet is like a cross between a crippled shell and *scratch* in emacs 18:13:41 cmd-enter to execute current line or selected textr 18:13:44 text* 18:15:28 ais523, the patch is at http://omploader.org/vMnJxeg (didn't want pastebin due to possible stripping whitespaces and such, this should be binary-safe) 18:15:53 It's called ick 18:15:56 ais523, note that this still needs some fix for lexer.c's isatty() and for oil 18:16:19 ehird, eh? yes ick is called ick 18:16:30 * ais523 downloads it 18:16:36 +# ICK Makefile for MPW 18:16:43 ais523, and it would need some handling for "not invoking compiler" too 18:17:23 ais523, still this works for me on a real mac. Sheepshaver crashes on compiling convickt.c, but it works fine to use an object file from a real mac for that one 18:17:39 and yes work in progress. But it is a beginning 18:17:41 convickt's optional, you could just remove it altogether without affecting the main program 18:18:32 ais523, and yes this needs syslib.i and such copied around. There is no real concept of install targets anyway. But yes some work on that needs to be done. Still a first milestone is reached :) 18:21:28 "The application 'unknown' has unexpectedly quit, because an error of type 3 occurred." Heh. 18:21:37 fizzie, what did you do? 18:22:18 Tried to run Ircle 3.1.2 68k in BasiliskII, to test out that networking thing. 18:23:04 -!- Sgeo has joined. 18:23:14 hm 18:23:40 going off to get dinner, I'll be back in a bit 18:23:45 ais523, cya 18:24:16 ais523, anyway sheepshaver likes to crash at least once during a full build anyway. Just not 100% reproducible. 18:24:27 and file system isn't journaled no 18:24:46 I ended up having to boot from a cd image once today to fix things 18:25:22 turned out desktop db file was badly damaged. Oh and a few tiles object files have been half written or such. 18:26:58 ehird, did you figure out that Project menu? 18:27:08 nah 18:27:22 ehird, I think it is for some old and obsolete source control system 18:27:24 Heh, Ircle 3.1f3 68k: "Sorry, a system error occurred. "ircle 3.1 British 68k" numeric overflow [Restart]". I have a feeling that emulator is not the stablest piece of work ever. 18:27:28 -!- adam_d has quit (Read error: 110 (Connection timed out)). 18:27:32 I think I read something about that somewhere 18:27:44 fizzie, you only now discovered that? 18:28:01 AnMaster: Hey, it ran my Glider game just fine. Besides, after a restart starting ircle seems to work. 18:28:51 I guess you could rewrite it to a codewarrior project, but I don't think you can generate files as you go along then 18:29:13 and it would be a PITA for everyone to find that and install 18:29:27 what with not being freely available easily 18:29:41 back 18:33:04 ais523, I can't find where in oil.y to add \r 18:34:22 lines 383 and 700 18:34:27 I think 18:36:29 ais523, hm now this always confuse me in C. Operator precedence between == and &&. Can never remember that. 18:37:09 == binds tighter 18:37:21 why is that one hard to remember? logical operators are lowest of all 18:37:34 the possibly confusing relation is that == binds tighter than &, maybe that's what was confusing you 18:37:44 (well, ?: and , are even lower. but not ==) 18:38:19 -!- ehird has quit. 18:38:32 -!- fizzircle has joined. 18:39:02 Yay, MacTCP was a much better choice. 18:43:22 fizzircle: are you online from a mac 18:43:24 or emulated one? 18:46:09 -!- augur has quit (Read error: 104 (Connection reset by peer)). 18:46:24 -!- augur has joined. 18:50:21 ais523> An emulated one, with BasiliskII. 18:50:32 Hm, the colon is not where it should be. 18:51:02 ais523, that oil fix seems to work 18:51:15 fizzircle, I had to rewrite the keymap file for sheepshaver a lot 18:51:20 to get anything to work 18:51:34 oh and it tries to use keysym by default. Doesn't work well at all 18:52:17 This has some rendering issues in the input line window: http://zem.fi/~fis/ircle.png 18:59:09 ais523, what about the getc_override? Is it generic enough to work on *nix too? 18:59:21 yes, although it's probably worth guarding it anyway 18:59:30 as it's liable to break other things at random, being a rather crude hack 18:59:40 admittedly, the existing situation is /also/ a crude hack... 18:59:41 -!- Rugxulo has joined. 18:59:56 ais523, can't you rewrite it to not be such a crude hack 19:00:00 ais523, bbiab food 19:00:14 ais523: is Interfunge supposed to accept input in Befunge programs? 19:00:50 Rugxulo: yes 19:00:58 although, note that the input program must be /exactly/ 80x24 19:01:05 pad lines with spaces if needed 19:01:21 eh? 19:01:41 it seems to work on normal Befunge93 programs but not with "~" or "&" 19:02:57 &:*.@ 19:03:09 doesn't work 19:03:26 5:*.@ 19:03:28 does 19:03:36 -!- BeholdMyGlory has joined. 19:06:17 Rugxulo, um. Did you pad it up to the required size first? 19:06:38 the Befunge program itself?? I just now tried that, it didn't seem to help 19:06:46 mhm 19:07:13 although it's hard to tell if I did it correctly or not (since either way it didn't work) 19:08:35 ais523, I have no idea how to go about the isatty thingy in autoconf. I could do a MPW specific hack. Or I could let you do it, 19:08:46 ais523, note that fileno inside it is unistd.h too 19:09:16 err 19:09:20 *is POSIX too* 19:09:22 is what I meant 19:09:34 for some reason that didn't give any error on the mac though. Maybe it has the function, it might or might not do the same thing 19:13:01 ais523, ick is still broken for LF input. The huge comment thing still applies 19:13:13 ah, ok 19:13:20 that sort-of makes sense 19:13:39 ais523, it treats the entire thing as one line if input is in LF 19:13:44 ais523, so why did that happen 19:13:54 beacuse the entire thing is one line 19:14:21 you'd think that would explain it 19:15:40 I think I dislike Hive Rise 19:15:43 Not enough people play it 19:15:52 I'm going to fiddle with Shattered Galaxy 19:16:24 BTW, shouldn't ick have at least one Befunge and one Unlambda example to test the interpreters (interfunge.i, unlambda.i) ?? 19:16:34 ais523, well I thought the lexer was supposed to understand both CR and LF now after the change? 19:16:43 it does 19:16:49 ais523, so why doesn't it work then. 19:16:49 but, that doesn't change the definition of what a line is 19:16:50 where? 19:16:59 n/m 19:17:01 ais523, which is? 19:17:06 AnMaster: between newlines 19:17:10 (or between \r on a Mac) 19:17:18 ais523, and how do you fix the lexer to handle that? 19:17:39 ais523, so newlines can be any of \r \n and \r\n 19:17:47 after all cfunge manages it, can't see why flex shouldn't 19:18:05 -!- Dav1d has joined. 19:18:17 AnMaster: it is not wrong 19:18:25 ais523, um. What? 19:18:30 displaying all of a program with no newlines as one line is not wrong 19:18:35 if \r is a newline on a Mac, \n isn't 19:18:49 ais523, well also it generates wrong code. A huge ick_lose for the whole thing 19:19:05 surely that is more than just "displaying" 19:19:07 -!- Dav1d has left (?). 19:19:26 but it generates correct code with correct newlines? 19:19:40 ick isn't like cfunge, it wants input files to use platform-appropriate newlines 19:19:45 ais523, hm 19:24:34 ais523, but what if a platform uses both? 19:24:52 no platform uses inconsistent newlines 19:25:05 ais523, as in "both is allowed" 19:25:13 no platform does that 19:25:19 because it would make no sense 19:25:22 ais523, oh and there seems to be a compiler option for this \n <-> \r translation 19:25:28 so yes it can be inconsistent 19:25:43 ais523, if I use it only for some of the files 19:25:45 :P 19:26:19 ais523, also can convickt do CR<->LF? 19:26:26 it would seem fit for old mac 19:27:00 AnMaster: not yet, but it would be easy enough to code it to do so 19:27:10 hm 19:27:15 does old mac use ASCII? 19:27:28 ais523, yes but not ISO-whatever 19:27:31 it uses MacRoman 19:28:09 ais523, for example åäö are encoded differently 19:28:26 -!- BeholdMyGlory has quit (Read error: 60 (Operation timed out)). 19:28:37 http://en.wikipedia.org/wiki/Mac_OS_Roman 19:30:19 ais523, the makefile syntax makes use of some of those 19:30:37 as you might have seen in that patch 19:31:10 http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/cpi/old/cpimac12.zip ;-) 19:32:00 Rugxulo, hm? 19:32:13 oh nothing, just DOS spam 19:32:27 completely irrelevant to making the convickt mapping 19:33:21 ais523, I have no clue how to make the convickt mapping. Since it isn't a 1:1 mapping with any charset I assume you have to go by unicode 19:33:51 AnMaster: all you really need is equivalents for the characters used by INTERCAL 19:34:04 ais523, is that pure ASCII? 19:34:08 * AnMaster forgot 19:34:12 AnMaster: not quite 19:34:19 some characters are represented differently in different charsets 19:34:26 e.g. mingle is ¢ in EBCDIC and $ in ASCII 19:34:56 ais523, so what is not available in ASCII? As the lower 127 chars in MacRoman are identical to ASCII 19:35:17 AnMaster: not quite, \n and \r are the other way round 19:36:19 ais523, not really. It is just that which one is used for newline has changed. And that the C compiler does the same sort of tricks as is done on windows for \n <-> \r\n 19:36:45 ais523, so you have a \n <-> \r\n mapping for windows too? 19:37:10 no, I just ignore lone \r characters 19:37:17 as in, \r not followed by \r 19:37:24 so \r\n becomes just \n 19:37:35 ais523, do you do that even on linux? 19:37:42 if so, that seems wrong. 19:37:46 since that isn't the native newline 19:37:50 that you mentioned above 19:39:03 -!- BeholdMyGlory has joined. 19:41:48 ais523, well? do you do that on linux too? 19:41:56 yes 19:42:13 ais523, wrong. If LF should be forbidden on mac it should be consistent at least for all platforms. 19:42:18 IMO 19:42:32 lone CR's forbidden on Windows and Linux... 19:42:48 ais523, but \r\n should be forbidden too on windows 19:42:51 err 19:42:54 i assume it would be hideously un-INTERCALish to borrow the python universal-newline convention :D 19:42:54 on linux 19:42:58 and only be allowed on windows 19:43:17 ais523, by the same logic 19:43:37 hmm, maybe 19:43:42 if you don't change it to act that way, you are just being completely inconsistent. 19:43:44 there isn't windows/linux detection code in there yet 19:43:48 in fact, I haven't built it on Windows for ages 19:44:00 even GCC can now handle various newlines 19:44:12 Rugxulo, this is INTERCAL. Shush. 19:44:23 still I don't find this restriction very intercal-ish 19:44:46 BTW, Esolang wiki page on Nouse has a broken link (Geocities), i.e. any Geocities links are dead now and should be changed or removed 19:44:53 ais523, anyway does intercal make use of any code above 127? 19:44:59 I didn't get a straight answer to that one 19:45:07 AnMaster: depends on the charset 19:45:16 ais523, normal. Native one on linux 19:45:20 without the CLC-INTERCAL charset option, no 19:45:23 with that option, yes 19:45:38 ais523, so what apart from the \r\n swap would be needed. 19:45:41 AnMaster: nothing 19:45:50 ais523, oh? and the CLC thing? 19:45:56 unless some of the MacRoman extra characters happen to map onto the INTERCAL charset, in which case they should change 19:46:08 ais523, which ones would those be? 19:46:15 AnMaster: Princeton syntax characters are accepted if they happen to be in Latin-1 or UTF-8 19:46:26 ais523, do you happen to have a list of them handy? 19:46:37 AnMaster: see lexer.l or the appendix to the Revamped Manual 19:46:42 they're both lists of what characters are involved 19:46:46 but neither is particularly easy to read 19:46:58 ais523, easier way: are there any of them in the table at http://en.wikipedia.org/wiki/Mac_OS_Roman 19:47:29 Rugxulo: we like to check if things are on wayback before removing them entirely 19:47:46 WayBack or Reocities (although when I checked it didn't have some stuff) 19:48:05 just a friendly warning that some links will be broken now :-/ 19:48:53 yes: ¢ £ ¥ € 19:49:20 ais523, mhm 19:49:21 ¥ will be a fun one, because Latin-1 ¥ maps to ? and UTF-8 ¥ maps to $ 19:49:30 well, and/or ¢ 19:49:42 ais523, huh? How does one write one of them .bin files? 19:49:54 AnMaster: it's basically a list of characters 19:49:59 although I can't remember exactly how it works 19:50:10 ais523, where is it documented? 19:50:26 probably in its source, if anywhere 19:50:49 ah yes 19:50:54 ais523, what about that empty array thing. How would one fix that? 19:50:54 long comment at the top of src/clc-cset.c 19:50:59 AnMaster: by putting an element in it 19:51:29 ais523, I mean, properly in the ick compiler 19:51:53 AnMaster: by getting the ick compiler to put an element in it 19:52:05 ais523, would this be in the RTL layer or such? 19:52:23 either in the code-generation in perpet.c, or in the wrapper 19:52:53 ../src/feh2.c: fprintf(fp, "\")))\n\t{\n\t ick_createdata icd[]={\n"); 19:53:00 ais523, that seems like where it is output? 19:53:09 yes 19:53:15 well, just after that, I suspect 19:53:17 over the next few lines 19:53:26 you basically want to add an empty element to the end of the array 19:53:28 ais523, so always add a null entry to the end? or only if there is no other ones? 19:53:37 second would be slightly neater 19:54:50 fprintf(fp, "\")))\n\t{\n\t ick_createdata icd[]={\n"); 19:54:50 prunknowncreatedata(np, fp); 19:54:50 fprintf(fp, "\t };\n"); 19:54:51 hm 19:55:07 which is a function that calls itself 19:55:13 ins.i seems to only do decimal input? hmmm.... 19:55:15 ais523, would always putting it there break anything? 19:55:31 I don't think so, but I can't remember 19:55:42 ais523, what the heck is that array for at all 19:56:03 ais523, the code comment says you wrote it (so you can't blame it on it being there before :P) 19:56:32 it holds the information about the variables used in a just-in-case compiled command 19:56:38 so adding an extra one seems unlikely to break anythign 19:57:01 I've just checked that sizeof(icd) is never used 19:57:22 so it can't possibly iterate over all entries in it then 19:57:26 heh, what is the point of it 19:57:41 AnMaster: to look up individual elements 19:57:58 as in, the second element gets overloaded onto .1602 19:58:00 for instance 19:58:11 ais523, how would you find the end of the array so you don't go past the end by mistake then? 19:58:24 I think it's stored in a separate variable 19:58:48 either that, or if accessed from C code (as opposed to INTERCAL code) I think it just segfaults, which is intended behaviour 19:58:54 because that's what going off the end of an array does in C 20:00:09 ais523, what sort of crazy indention scheme are you using in the generated code... 20:00:18 * AnMaster can't figure it out 20:00:28 AnMaster: mostly it's just ordinary indentation 20:00:43 ais523, so 1 tab per level? 20:01:02 oh, I think it's a mix of spaces and tabs 20:01:07 that looks correct with tab=8, as it always should be 20:01:54 tab=4! 20:02:36 coppro, yes. 20:02:46 ais523, so how many spaces for each level? 20:02:57 but tabs are dumb anyways 20:03:16 not sure offhand, IIRC it's 4 spaces for one level, one tab for two levels 20:04:01 tab-space mixing is such a truly horrible idea 20:04:22 if you use tabs properly, everything will still look right to someone with a different tab setting 20:04:50 ais523, so what should the dummy entry be? 20:05:09 tab-space mixing means that you get stuff that looks like 20:05:11 something like {0, 0, 0, 0, 0} ? 20:05:13 coppro: any tab setting but 8 is wrong and broken 20:05:27 this is why tabs should never be used alone for indentation, they're too wide 20:05:28 ais523, most of the world doesn't agree with that 20:05:31 sa 20:05:33 sdf 20:05:35 lsakdjf 20:05:46 coppro, oh emulating mixed mode I see 20:05:47 right 20:05:54 yeah it's horrible I agree 20:05:54 ais523: why is any setting other than 8 broken? 20:06:22 coppro: because every terminal in existence has tab=8 20:06:46 and the vast majority of editors, too, unless they're customised to something different (why that setting exists I don't know...) 20:06:48 that's not a good reason 20:07:00 as I said, if tabs are used correctly, then you shouldn't care what the setting is 20:07:00 {0, 0, 0, {NULL, NULL}, 0} 20:07:06 ais523, is that correct? 20:07:10 AnMaster: {16, 0, 0, {NULL, NULL}, 0} 20:07:17 ais523, 16? 20:07:23 0 isn't currently a legal value for the first element of an ick_createdata 20:07:24 of course, emacs users have their retarded mixed mode, so things look hideous when viewed by people with narrower preferences 20:07:46 coppro: the tab width setting is going to matter whenever you use spaces 20:07:54 ais523, well I have not the foggiest idea how it works even after reading the struct definition 20:07:58 * SimonRC starts a campaign to make people use US to sperate groups of statemetns, RS to seperate each declaration, and GS to separate higher-level things like classes 20:08:04 ais523: tabs indent the line, spaces line up beyond that 20:08:08 AnMaster: it contains all information about an expression needed to get and set its value 20:08:14 coppro: tabs are too wide to indent a line 20:08:18 that is there purpose just as much as tab's purpose is indentation 20:08:22 they're designed for table cells! 20:08:22 ais523: turn down your tab width then 20:08:27 ais523, are you *sure* it won't break something? 20:08:32 AnMaster: pretty sure 20:08:36 (elastic tabstops are another matter altogether, and they are pretty darn awesome_ 20:08:39 coppro: no, because then tabs wouldn't be wide enough for their intended purpsoe 20:08:41 *purpose 20:08:43 huh 20:08:48 and elastic tabstops are awesome, but not a sort of tab 20:08:48 coppro: how do I change my terminal tab woiidth 20:08:48 ? 20:08:52 ais523, but what variable is 0 then? 20:08:53 they're used for indentation 20:08:56 tabs aren't 20:08:57 ais523: then indent with spaces and spaces only 20:09:00 wait hm 20:09:02 no 20:09:07 AnMaster: a placeholder meaning that there isn't a legal variable there 20:09:16 coppro: that's what I mostly do nowadays, to handle people with broken editors 20:09:22 coppro: tabs are too wide to indent a line <-- not at all 20:09:25 ais523: but why would anyone use table cells? if you mean making a 2d table of things 20:09:27 I use tab to indent, spaces to adjust 20:09:31 just like coppro explained 20:09:32 SimonRC: depends on what you're using 20:09:34 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 20:09:37 ais523, and it works just fine 20:09:37 (any editor that allows you to set tab to anything but 8 is suspicious, any editor that /defaults/ to anything but 8 is simply broken) 20:09:45 tabs are not 8 by definiton 20:09:49 yes they are 20:09:51 coppro: a variety, over ssh often 20:09:52 (any editor that allows you to set tab to anything but 8 is suspicious, any editor that /defaults/ to anything but 8 is simply broken) <-- why. 20:09:53 -!- Sgeo has joined. 20:10:01 AnMaster: because tabs go to a multiple of 8 characters 20:10:05 ais523, why 20:10:13 printf("\n\tThis line starts 8 characters from the margin.\n"); 20:10:24 ais523, because you just defined emacs and vim as suspicious. 20:10:34 um, what? 20:10:38 AnMaster: yes, people wouldn't insist on using that option if it didn't exist 20:10:40 ah 20:10:49 ais523, I would drop that editor then 20:10:57 and use one that had it 20:11:00 SimonRC: setterm 20:11:15 coppro: you'll break all the applications that assume that tab=8 if you do that 20:11:23 ais523, yes because those apps are broken 20:11:25 e.g. --help output often uses 8-space tabs 20:11:35 ais523, --help uses spaces in my experience 20:11:52 maybe some pathological cases uses tabs 20:11:54 ais523: by table cells do you mean like excel but in ascii? 20:12:03 oklofok: pretty much 20:12:11 tab was invented on typewriters, where you set the tab stops by hand 20:12:14 why in hell would you want that 20:12:20 by putting little bits of metal in the appropriate places 20:12:27 to make it faster to type tables on a typewriter 20:12:37 and to reduce the chance of mistakes because you didn't need to keep pressing the spacebar 20:12:38 why not use a program for it, and set tab to something that's useful 20:12:58 then when they came to computers, they quickly standardised on 8-space tabs anywhere but word processors 20:13:10 coppro: will that confuse things that use termcap and terminfo? 20:13:16 ais523, typewriters are legacy. And if you are suggesting we set them manually, the tabs=8 spaces is just pure wrong 20:13:17 (before tables as tables were common, tabs for tables were common, and tab stops were generally 8 spaces apart by default but you could set them wider0 20:13:21 *) 20:13:32 and realized a few weeks later they should've made it smaller everywhere else too, but some idiots decided 8 should stay? 20:13:34 SimonRC: not sure 20:13:37 and ever since, tab has moved to a multiple of 8 20:13:42 typewriters are legacy but we still use its keys!! 20:13:42 ais523, instead every user should set some virtual metal bits at the top of the terminal emulator to define their tabs 20:13:43 clearly 20:13:56 except that certain /editors/ seem to let you change it; note that nothing but editors has it set to anything but 8 by default 20:14:18 so if you use tabs alone for indentation, you end up in the stupid situation where you can't read the program in anything but an editor 20:14:27 ais523, setterm? 20:14:33 where else would you want to read a program? 20:14:38 * Rugxulo sees lines in code that start with 10 tabs or more ... 20:14:45 also, because of wanting to restrict lines to 80 columns so they fit on the screen, having variable-sized tabs means that you have no idea where to split your lines 20:14:46 ais523, as coppro suggested above 20:14:47 kinda extreme 20:15:06 also, because of wanting to restrict lines to 80 columns so they fit on the screen, having variable-sized tabs means that you have no idea where to split your lines <-- you don't. 100 columns is just fine. More than that isn't I agree 20:15:10 AnMaster: presumably that was added to cope with the broken editors 20:15:20 ais523, now you are just being silly 20:15:24 AnMaster: I can fit about 83 characters horizontally on my screen, on a half-screen-width window 20:15:39 so substantially more than 80 just annoys me as I can't see two bits of code side by side 20:15:50 also, 80x24 is still the standard UNIX terminal size (80x25 and/or 80x50 on DOS) 20:15:52 anyway i'm just saying tables aren't actually a good reason to *keep* tabsize at a default of 8, because no one makes, and no one should make, tables using tabs 20:15:57 so you won't be able to read the code in a standard terminal 20:16:03 DOS can handle up to 132x32 (VESA) 20:16:09 IIRC 20:16:16 oklofok: agreed; the reason to keep tabsize at a default of 8 is because that's what tabs have been for ever, and what a tab actually means 20:16:21 ais523, mine opens at 150x120 iirc 20:16:21 Rugxulo: yes, but that isn't standard 20:16:24 or something like that 20:16:30 wait, no 120x150 I think 20:16:31 ais523: because it depends on your video card 20:16:36 since it is taller than than it is wide 20:16:58 that i can agree with. not that i do, but i don't not agree either. 20:16:59 wait, forget that, chars are not square 20:17:01 80x43 is for EGA, 80x50 is VGA, so 80x25 must be for older (Hercules? MDA? CGA?) 20:17:03 150x120 it is in fact 20:17:32 oklofok: agreed; the reason to keep tabsize at a default of 8 is because that's what tabs have been for ever, and what a tab actually means <-- what a tab actually means says who? 20:17:39 I feel we have [citation needed] here 20:17:42 and a few other ones 20:17:48 says more or less every program in existence, apart from a few editors 20:17:52 wait actually i definitely do disagree, why keep them at 8, if they are completely useless with size 8 20:17:54 seriously, try that printf statement I pasted above 20:17:56 oklofok: they aren't 20:17:56 http://www.emacswiki.org/emacs/TabsAreEvil 20:17:58 :-)) 20:18:02 oklofok, exactly 20:18:09 ais523: what are they useful for, then? 20:18:10 they let you abbreviate spaces for indentation, although that's become less useful nowadays because we're no longer massively pressed for space 20:18:15 makefiles! 20:18:17 you said tables, i said no, you said indeed not. 20:18:27 also, I most recently used tabs for table-making a couple of weeks ago 20:18:28 as part of my jobs 20:18:30 *job 20:18:31 ais523, so why not convert all of ick to just use spaces. 20:18:35 and that relied on tab=8 20:18:41 AnMaster: it's used the \t forever 20:18:45 since before I took it over 20:18:56 further evidence that tab should equal 8... 20:19:05 ais523: if you made a small table, you could've pressed tab twice. 20:19:23 ais523, ick is not recommended practise at all 20:19:27 oklofok: the point was, I wasn't sure how wide each of the columns would be 20:19:33 ais523, or we would be using setjmp and longjmp a lot more 20:19:34 and what not 20:19:41 but you happened to know they were less than 8? 20:19:51 oklofok: yes 20:19:56 they were all either 6 or 7 characters long 20:19:56 ais523, seriously if you suggest that ick code is a good example you *must* be joking 20:20:01 ugh 20:20:07 AnMaster: I'm suggesting it's a typical example of its age 20:20:10 GNU indent, anyone? 20:20:20 ais523: that's not very convincing. 20:20:31 and still, you could've used a program 20:20:35 that's actually meant for that 20:20:41 ais523, and for tables: it isn't even one tab between each column always 20:20:44 you wouldn't have had to rely on at most "6-7" 20:20:50 sometimes you need two on one line and one on another line 20:21:00 ais523, oh and it seems MPW defaults to tab = 4 20:21:06 and I can't find anywhere to change it 20:21:08 indent assumes that tabs are placed at regular intervals of both input and output character streams. These intervals are by default 8 columns wide, but (as of version 1.2) may be changed by the ‘-ts’ option. Tabs are treated as the equivalent number of spaces. 20:21:28 ais523, actually in the worksheet tab = 1 20:21:37 http://www.emacswiki.org/emacs/UntabifyUponSave 20:21:40 presumably it doesn't support tabs 20:21:50 so just renders them as spaces 20:21:54 ais523, and in Makefiles it is tab = 4 20:22:02 so yes it clearly does 20:22:07 and yes they are one char 20:22:13 you can see that with the cursor key 20:22:46 ais523, so there is the same sort of "proof" that tab should be 4 that you had for it being 8. 20:23:00 ais523, seriously, a program shouldn't expect tab to be any specific size 20:23:03 AnMaster: you could prove that newline should be \r the same way 20:23:07 well, in this case I think it's just luck ... he's right, 8 is way more "standard" or common 20:23:11 did you read my paste from man indent? 20:23:13 ais523, yes indeed it should! 20:23:24 it assumed tabs = 8 without even a customization option until 1.2 20:23:27 ais523, also that's GNU software 20:23:28 and still, nowadays, uses tab = 8 20:23:32 -!- Slereah_ has quit (Read error: 60 (Operation timed out)). 20:23:35 AnMaster: it did the same thing on SunOS 20:23:38 ais523, it's like saying GNU cat is some role model for all cat's 20:23:41 cats* 20:23:45 (I don't have access to that SunOS system any more, so that's from memory...) 20:23:49 that's weird, actually, doesn't GNU coding style prefer tab width of 2? 20:23:58 ais523, and? Sun made Java. What did you expect? 20:24:28 AnMaster: http://docs.sun.com/source/820-4180/man1/indent.1.html 20:24:29 Rugxulo, I have no clue. I keep well away from gnu coding style 20:24:34 assumes tab=8 with no way to customize 20:24:46 -in The number of spaces for one indentation level. The default is one tab stop, -i8. 20:24:50 resistance is futile! ;-) 20:24:51 ais523, yes and they invented java 20:24:53 what do you expect. 20:25:12 AnMaster: err, I expect them to have followed industry practice at the time? 20:25:25 Java is full of good practice to an extent more than most other languages, it's what makes it so insufferable 20:25:26 ais523, anyway you might prefer tabs to be 8. But 98% of the world that cares doesn't agree. 20:25:38 (most of course doesn't even know what a tab is) 20:25:45 AnMaster: anyone who doesn't use a programmer's editor has tab set to 8 20:25:50 they probably don't realise it, but they do 20:25:54 ais523, MS word? 20:25:57 what does it use 20:26:03 AnMaster: it doesn't even set it to an integer 20:26:04 "HT Horizontal Tabulation" -- http://wps.com/projects/codes/X3.4-1963/index.html 20:26:08 that's about all it says 20:26:17 ais523, there you go then. That is probably the most common one 20:26:19 (page 6) 20:26:29 AnMaster: no, because Word isn't a text editor 20:26:35 Excel, incidentally, sets it to one cell 20:26:43 which makes sense, because it's tab for tabulation 20:26:48 -!- asiekierka has quit (Read error: 110 (Connection timed out)). 20:27:02 ais523, yes. point is. tab=8 isn't a very common opinion any more 20:27:03 -!- Slereah has joined. 20:27:12 as for tabs being evil page on emacs wiki 20:27:16 just set it in the mode line 20:27:17 to be 4 20:27:29 no, because that would be setting it to the wrong value for no good reaosn 20:27:48 ais523, correction: "that which ais considers wrong" 20:28:02 AnMaster: what possible reason do you have for assuming tab != 8? 20:28:23 given that this is a traditional flamewar, you can't go looking for a page that advocates one side of the flamewar, because there's bound to be one 20:28:32 ais523, well. because apart from ick and nethack I can't remember any code depending on tab == 8. Either it is tab = 4 or spaces always 20:28:42 AnMaster: tab = 4? where do you get that from? 20:28:48 2 and 3 tend to be more common, 4 is a Pythonism 20:29:12 ais523, is it? 3 I have seen once. 20:29:14 and all versions of indent we've found depend on tab=8 20:29:15 2 a few more times 20:29:18 but 4 a lot more 20:29:57 ais523, astyle seems to default to 4 spaces for indention 20:30:12 and I haven't used indent for years, because it did such a bad job at C99 code 20:30:19 I saw 3 once too, thought that guy was a little weird for that ;-) 20:30:31 so astyle is what I use, which still fails at some C99 things, but much less 20:30:47 * Rugxulo thinks AnMaster is very trendy 20:30:49 AnMaster: it defaults to 4 spaces, yes 20:30:55 Rugxulo, trendy? 20:31:03 if you ask it to indent using tabs, it assumes tab=4 because that gives the same indent size, but that isn't spaces 20:31:07 Befunge98, 64-bit, C99 :-P 20:31:21 ais523, yes I always asked it to indent with tabs 20:31:38 A lot of our speech recognizer code is indent-two-spaces with assumed-8 tabs in the indentation somewhat randomly. 20:31:38 ais523, 20:31:39 astyle --indent-preprocessor --indent-namespaces --indent-labels --one-line=keep-statements --indent=tab=4 --max-instatement-indent=40 --brackets=linux --min-conditional-indent=1 --unpad=paren --indent-switches --pad=oper 20:31:41 is what I use 20:31:44 incidentally, reading the blurb at the start of the man page, astyle was designed specifically to format code so it looked correct for people who didn't set tab=4 20:31:49 *tab = 8 20:32:06 tabwidth=5 20:32:08 ;-) 20:32:11 nonono 20:32:22 tabwidth=13 20:32:34 ais523, well yes. I make sure my code always look correct with any tab width. How wide each indention level is should be up to the user 20:32:47 if he/she prefers 8 per level, fine, set tab=8 20:32:50 if not, set tab to something else 20:32:53 bah 20:32:55 -!- Rugxulo has left (?). 20:32:57 still it doesn't end up like: 20:33:02 blah 20:33:04 bsdasjd 20:33:08 blah blah 20:33:09 and such 20:33:16 with any tab width 20:33:18 it's not as if ther are any places where one could view code that don't let people change the tab width 20:33:41 SimonRC, indeed. even the terminal lets you change easily 20:33:44 setterm 20:34:00 I guess some old old terminal that didn't allow it might exist 20:34:08 but good luck hooking that up to anything modern 20:34:53 * SimonRC gets out his soldering iron; and the documentation for several popular HTML renderers. 20:34:56 SimonRC: DOS edit? Notepad? less without having to type out the -x option every time you view a file? 20:35:16 more, fwiw, which doesn't have -x? 20:35:23 Set tabstops at all prime number offsets; that should be good. 20:35:26 LESS Options which are passed to less automatically. 20:35:30 TBH I don't know whether I was being serious or using deadpan sarcasm there 20:35:45 printing via a standard printer when you don't know the ESC codes to change its tabstops? 20:35:47 ais523, export LESS='-x4' 20:35:50 issue solved 20:35:54 ais523, wait, what? 20:36:00 ais523, you need cups to use a printer anyway 20:36:03 so how would that work 20:36:04 AnMaster: that doesn't solve the issue, in fact it introduces an issue, that being that the tabstops are no longer 8 20:36:13 AnMaster: umm, until very recently, you could just cat a file to a printer 20:36:15 and it printed 20:36:20 I used to do that all the time under DOS 20:36:21 ais523, you got this wrong. Tabstop NOT being 8 is *NOT* an issue 20:36:37 I suppose tabs can be converted into spaces quite easily, for those things that can't adjust the tab width 20:36:37 ais523, you end up with something like a semi-circular argument here 20:36:54 AnMaster: umm, until very recently, you could just cat a file to a printer <-- where? /dev/usb/something? 20:36:54 what a printer driver does, mostly, is let you print "graphics", or set the font 20:37:06 AnMaster: the serial or parallel port 20:37:10 you just sent the data there, and the printer printed it 20:37:21 ais523, I'm pretty sure the Apple StyleWriter didn't allow it 20:37:26 which is the oldest printer I used 20:37:33 it used to be that all printers worked like that 20:37:34 I never used a parallel port one 20:37:38 ais523, before my time. 20:37:42 AnMaster: wow, how young are you? 20:37:45 stylewrite was an inkjet 20:37:46 clearly the only solution is to head off to the quintessential plane and go and measure the Platonic ideal HT character. That will resolve the issue once and for all. 20:37:51 ais523, 20 in december 20:38:03 so 19, but less than a month until 20 20:38:10 AnMaster: how old are you? 20:38:14 ais523, and I grew up with mac 20:38:16 SimonRC, I just said 20:38:18 read up 20:38:18 so old == young? 20:38:22 ok 20:38:33 AnMaster: well, I'm confused, because I'm 22 20:38:38 so the older one gets, the younger one gets 20:38:40 * SimonRC is bored 20:38:44 and yet, when I was young, printers were all either parallel or serial 20:38:52 ais523, Apple Stylewriter was able to print pictures. Greyscale only yes 20:38:53 but still 20:39:04 AnMaster: basically, to print pictures, you sent a really long escape code 20:39:12 yeah 20:39:14 if you didn't send an escape code to a printer, it just printed text 20:39:24 printer drivers were mostly responsible for converting graphics into escape codes 20:39:27 ais523, there was no printer device as such on the mac 20:39:27 I recall the days when printers came with documentation of their escape codes 20:39:36 ais523, remember that is a *MAC* we are talking about 20:39:44 AnMaster: I think you're missing the poin 20:39:45 *point 20:39:49 and example BASIC programs to demonstrate 20:39:51 I'm talking about what data was sent over the cable 20:40:05 SimonRC: I've never seen one with example BASIC, but I've seen at least two manuals documenting the escape codes 20:40:06 ais523, and that was some pre-rendered image I guess? 20:40:07 and actually used them 20:40:17 AnMaster: say you want to print out a Word document, or whatever 20:40:19 ais523, because even when you printed text files on macs they had formatting 20:40:37 ais523, if it was postscript I guess it downloaded font and such first? 20:40:37 Word works out what each pixel should be, then the driver converts that to escape codes and sends it to the printer 20:40:44 so although you're printing text files, you're printing in graphics mode 20:40:57 ais523, yes I suspect that always happened on mac 20:40:58 postscript's much more modern than all this, and therefore mostly irrelevant in this conversation 20:41:09 AnMaster: it's happened at least since Windows 3.1, too 20:41:16 ais523, apple's laserwriters were all postscript from the beginning 20:41:21 but, the point is that if you just catted a text file down the printer cable, it would print it in text mode 20:41:26 ais523, used windows 3.something *once* 20:41:33 I'm happy to have grown up on mac 20:41:37 things just worked there 20:41:47 and there was no terminal 20:42:16 ais523, in fact I typed "print" instead of "echo" in the mpw shell by mistake yesterday. Spewed postscript files all over my desktop 20:42:34 now one can wonder why the hell MPW would have such a command of course 20:42:35 ais523: Apple's StyleWriter is a pretty unconventional printer; according to the README.txt of the Unix driver of it, it has absolutely no built-in fonts. The driver only prints raster images. 20:42:52 fizzie: ok, that is interesting 20:42:56 What about Postscript printers? 20:42:58 and explains AnMaster's resistance 20:43:14 SimonRC: I'm not actually sure what happens if you send them a plain non-PS text file 20:43:28 it could be fun to cat a PDF to them, IIRC PDF is a subscript of PostScript 20:43:42 ais523, suset* 20:43:44 subset* 20:43:53 IME, PDF's have gribble in them, suggesting they aren't PS 20:43:56 *PDFs 20:43:59 AnMaster: well corrected 20:44:00 ais523, and yes but it won't work out of box, due to some PDF specific headers or such 20:44:12 SimonRC: apparently the subset used in PDF is really non-idiomatic in PS 20:44:24 ais523, citation? 20:44:36 AnMaster: I'm not sure offhand 20:44:44 as in, I can't remember where I know that from 20:44:48 but PDF uses a lot of blobs, etc 20:44:53 yeah 20:44:55 whereas postscript is a lot more like a programming language 20:46:09 I do think it's a subset only in the logical sense, not in the sense that the down-to-bits file formats would really be all that compatible. 20:46:24 fizzie, indeed 20:47:19 Why is UserFriendly on such a dark topic? 20:47:52 Sgeo, why would we know? 20:48:32 AnMaster: You could be Illiad in disguise. 20:49:03 why on earth does Mac OS 9 font suitcases contain DLOG resources according to resedit 20:49:07 * AnMaster lookas at them 20:49:07 Certainly it seems a bit [http://tvtropes.org/pmwiki/pmwiki.php/Main/CerebusSyndrome Cerberus Syndromeish]. 20:49:11 didn't CAD have a random storyline about a miscarrage that everyone took the piss out of them for? 20:49:14 "enter the network address for the server"? 20:49:16 or was that QC? 20:49:18 what the fucking crap 20:49:21 SimonRC: CAD, yes. 20:49:23 has that go to do with a font? 20:58:59 Oh, and speaking of printers still: a friend had a networked PostScript laser printer that included a FTP server. You could log in and upload plaintext or postscript files; after the upload, they would come out of the printer. I don't really know what sort of heuristics it used for sniffing out postscript, but it did not treat everything as plaintext. 20:59:07 I think the same applied to the telnet server it had. 21:00:45 "did not treat everything as PostScript", I mean. 21:00:58 -!- fizzircle has quit ("Quit"). 21:01:12 Hoh, completely forgot about that Ircle. 21:03:57 fizzie, heh 21:04:33 fizzie, why would a printer have a FTP server like that 21:04:37 seems completely pointless 21:07:14 Actually, we made use of it; for some reason, "proper" printing from Netscape (this was quite a while ago) on one of their computers was utterly broken, but since Netscape at that time had a "print by giving a postscript file to the following program" option, we got network printing with a script that used ncftp to upload the Netscape-provided file to the printer. 21:08:11 Secunia advisory SA13170 from 2004-11-12: "Justin Rush has reported a weakness in HP PSC 2510 Photosmart All-in-One printer, which can be exploited by malicious people to cause a DoS (Denial of Service). 21:08:11 The printer reportedly has an undocumented feature that prints files written to a write-only directory, which is anonymously accessible via a FTP service." -- see, it's not so uncommon. 21:08:24 Except that it was properly documented in that printer. 21:08:49 (And configurable, so you didn't have to allow printing to everyone.) 21:09:47 Here's a link I got from elsewhere in the irc, and so it's probably been all around the world already, but still: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 21:10:08 At least it has nice use of Unicode combining characters. 21:18:32 fizzie, I get lots of boxes there 21:19:19 That's a shame; I had no boxes, but there's too many characters to start looking for from where they come. 21:21:30 The renderization is not exactly pretty here either: http://zem.fi/~fis/comb.png 21:25:11 that's about what I get 21:25:53 -!- immibis has joined. 21:28:37 * SimonRC goes away. 21:38:18 * oklofok thought perl regexes Can Do It 21:39:56 You can put arbitrary Perl in Perl regexes, and Perl can parse XML, so it sounds likely that they could. 21:41:16 depends on what the perl does inside the regex, it could be it can't touch the string being parsed, so you'd just be parsing something using perl, while you're parsing a regex 21:41:45 i mean if it can't be an Inherent Natural Part of the regex 21:41:50 the perl code 21:42:47 fizzie, I strongly suspect PCRE could do it though 21:42:51 what with the recursionb 21:42:54 recursion* 21:45:18 With embedded Perl, it's a bit debatable. I'm not sure it has the string-being-parsed (and especially the-location-where-we're-at) available somehow; if it does, you could use the (??{...}) thing -- "evaluate ..., interpret it as a regex" -- to return something like .{x} where x is the calculated length of the next regex part. 21:45:25 s/regex part/xml element/ 21:47:03 fizzie, maybe someone should post that there 21:47:13 of course it would be ugly as fuck 21:48:20 Not sure if a plain old extended-with-recursion thing is theoretically powerful enough; I guess it could be. Especially if it has Perl's (?(condition)yes-pattern|no-pattern) extension 21:48:51 Perl's regex engine has a settable-at-compile-time-default-is-50 limit of the recursion depth for regexps, though. 21:49:21 haha. Almost 300 votes in under 24 hours. 22:01:45 indeed 22:01:51 I wish I had written an answer like that :( 22:02:12 oh wow, one of my answers hit 50 votes :) 22:15:00 My highest is two at 29. 22:21:12 ais523, so did you do something about the autoconf check for isatty? 22:21:17 no, I didn't 22:21:19 I was eating lunch 22:21:23 well, dinner 22:21:32 ais523, and what would the correct solution be? 22:22:42 AnMaster: persuade GNU to fix flex 22:22:51 if you can't manage that, you'll have to rely on hacks 22:23:26 ais523, it doesn't seem likely that I will manage does it? 22:23:33 yse 22:23:35 *well, no 22:23:43 so you'll need to find some hacky way to do it 22:23:46 so likely they won't fix it? 22:23:47 hm 22:23:52 like a #define on isatty(x) to define it to 0 22:24:04 that's triggered by an autoconf check 22:24:16 ais523, I can't write the proper autoconf bit for this 22:24:25 ais523, and on mac autoconf doesn't work anyway 22:24:41 so I would need to update config.h after someone adds a correct autoconf check 22:24:57 AnMaster: add isatty to the line "AC_CHECK_FUNCS(gettimeofday gethrtime strdup strtol strtoul snprintf vsnprintf)" in configure.ac, then rerun make 22:25:09 C-INTERCAL's dependency system is set up so it changes everything to allow for that change 22:25:22 apart from actually conditioning on HAS_ISATTY or whatever the resulting macro is called 22:25:40 ais523, and then? where would that be defined? In the *.l file directly? 22:25:53 let me try that, so I can give you more detailed instructions, or a diff 22:26:16 ais523, anyway, according to docs fileno() is also *nix only 22:26:27 doesn't matter if it's inside the isatty 22:26:45 ais523, true 22:28:46 -!- adam_d has joined. 22:30:20 hmm, this build system doesn't seem to like autoconf version bump 22:30:38 how about we stop using autoconf 22:31:14 coppro: because if used correctly you can actually make it work 22:31:18 just nobody ever uses it correctly 22:31:30 ais523: I know you can make it work if you use it correctly 22:31:53 ah, just run autoreconf, and it updates all the version numbers, nice 22:32:21 heh the stdio.h includes a line about _POSIX_THREAD_SAFE_FUNCTIONS 22:32:25 a bit unexpected 22:32:35 so it seems they picked some parts of POSIX that they liked 22:32:58 /* Define to 1 if you have the `isatty' function. */ 22:32:59 #define HAVE_ISATTY 1 22:33:03 ais523, what is your new version? 22:33:15 of autotools 22:33:28 AnMaster: 2.64 of autoconf 22:33:32 1.11 of aclocal 22:33:35 2.63 and 1.10.2 are the ones I have 22:33:40 anything newer in the patch will be a pain 22:33:46 well those wouldn't be versioned 22:33:56 only the non-generated files would be 22:34:10 ais523, right? 22:34:18 or do you still version configure itself and so on? 22:34:19 AnMaster: the build system works fine even if you have an old version of autoconf 22:34:26 configure itself knows what version it was created with 22:34:36 ais523, yes but you get warnings then sometimes 22:34:38 and the build system just prints a warning if you change configure.ac and have the wrong version, and doesn't update configure 22:34:53 the warning's useful, it lets you know that your configure.ac changes weren't applied 22:35:04 ais523, exactly. But since configure itself isn't versioned this will be no issue 22:35:16 I don't know what you mean by that 22:35:22 configure itself doesn't depend on autoconf 22:35:29 the makefile does, but only if you change configure.ac 22:35:41 ais523, that the darcs repo would not contain generated files like configure, Makefile.in and so on 22:35:42 and even without it it doesn't crash, just uses the existing configure 22:35:44 only the source files 22:35:44 AnMaster: ah 22:35:48 like configure.ac and Makefile.am 22:35:55 I thought the darcs repo did contain configure 22:36:00 as well as the prebuilt stuff 22:36:02 ais523, if it does it shouldn't 22:36:05 but meh 22:36:08 AnMaster: so people can run from a copy of the repo 22:36:13 there's even a make repoupdate command 22:36:18 ouch 22:36:23 to copy the currently built versions back to the prebuilt directory 22:36:30 ais523, did you find somewhere else to host it then? 22:36:38 no, but it's darcs 22:36:38 ais523, surely your university provides some web space or such 22:36:41 so the repo still exists, if only locally 22:36:50 and my university does, but I couldn't sensibly put it there, it's unrelated to my research 22:37:07 ais523, fizzie seems to manage that very well though 22:37:28 ais523, anyway maybe fizzie could host this for you on his own server. it seems stable and such 22:37:36 ever considered asking? 22:38:40 no, I haven'y 22:38:41 *haven't 22:38:46 apart from general requests to the channel 22:39:21 is it public information what your research is about btw? 22:40:08 no, because I don't know myself yet 22:40:13 but that's the only reason 22:40:22 it's vaguely in the area of hardware compilation and game semantics 22:40:40 i'm having trouble seeing how to combine those 22:40:42 ais523, you could put nomic stuff on there then 22:41:05 AnMaster: I don't think you understand what game semantics is 22:41:15 it's basically a formalisation of programming, with some really tortured metaphors involved 22:41:18 i probably don't either 22:41:22 ais523, no clue what it is, so I was joking 22:41:36 but it turns out to be a really suitable one for generating hardware with 22:42:16 hmm, i've never heard about that 22:45:55 wow, the Wikipedia article about it is really awful 22:46:03 although it does explain to some extent where the terminology came from 22:46:13 ais523, link? 22:46:28 AnMaster: it's a Wikipedia article about game semantic 22:46:31 *semantics 22:46:34 you can probably guess the link 22:46:39 although, it's http://en.wikipedia.org/wiki/Special:Search?go=Go&search=game_semantics 22:46:46 I actually have an IRC macro for Wikipedia links... 22:46:55 I couldn't have guessed the full search thing for it 22:47:57 ais523, how is game semantics related to hardware though 22:48:15 AnMaster: you can basically embed nearly all of it into wires 22:48:29 most of the basic constructions turn almost exactly into wires, with minimal circuitry 22:48:49 AnMaster: you can basically embed nearly all of it into wires <-- why? 22:48:51 the only really difficult component is the one that can be written as lambda x: [x, x] 22:48:57 as in, making two copies of something 22:48:59 why would I want to embed it in wires 22:49:06 AnMaster: to compile a program into hardware 22:49:13 as in, you get the game-semantic model for a program 22:49:16 ais523, yeah but why *games* for that 22:49:18 uh 22:49:19 wait 22:49:23 I think I missed that bit 22:49:26 the whole game thing is a tortued metaphor 22:49:30 which should be ignored 22:49:43 the terminology's full of words like "game" and "arena" and "strategy" which basically don't mean anything 22:49:56 ais523, so what exactly does it not have to do with games 22:50:04 AnMaster: everything? 22:50:08 -!- ais523 has left (?). 22:50:08 ah 22:50:10 -!- immibis has quit (Remote closed the connection). 22:50:15 huh 22:50:20 that must have been a mistake 22:50:23 too abrupt 22:50:27 must've 22:50:34 oklofok, huh 22:51:07 huh? i just repeated you 22:51:08 -!- ais523 has joined. 22:51:12 ais523, wb 22:51:23 ais523, wrong button? 22:51:32 no, I was leaving in exasperation 22:51:51 sort of like /ignoring people, just easier for other people to know what was going on 22:52:11 AnMaster: it means he sneezed 22:52:19 exasperation 22:52:40 also why does this deck keep giving me 9 and 8 of spades next to each other 22:53:14 i mean i explicitly put them in different parts of the deck, twice, and both times they magically find each other 22:53:25 oklofok, ask the game semanticist in here. 22:53:29 (ais that is ;) 22:53:34 :D 22:54:12 the name is an unfortunate one 22:54:19 it's about as accurate as "biscuit semantics" would be 22:54:23 we get that 22:55:36 my brain is weird, if i lay down 6 cards, and take a glance, then turn them face down, i can't remember a few of them, usually; but if i put them face down, and go over them once, trying to guess what they are, i will remember them on the second round 22:56:14 ais523, new file extension for c++ I found today: 22:56:17 .cp 22:56:26 seems not uncommon on classic mac os 22:56:53 even though i've looked at them a smaller amount of time, it's just i don't automatically memorize them if they're face up, but i do if i put them face down, and *then* look at each of them separately 22:57:27 " i can't remember a few of them, usually"? 22:57:29 and putting them face down i can pretty easily go up to 15 or such 22:57:30 you meant "can"? 22:57:33 AnMaster: yes, i forget a few. 22:57:51 oklofok, forgot a few what? 22:57:54 usually i remember 5/6 22:57:56 cards. 22:58:02 anyway, for game semantics into hardware, think of the IP being an actual impulse on a wire 22:58:10 and you can multithread by having more than one of them 22:58:15 and bits of code know to run when the IP turns up 22:58:29 ais523, heh. what about thread local dat? 22:58:31 data* 22:58:42 AnMaster: doesn't work like that 22:58:49 variables work as in OCaml 22:58:53 ais523, so how does the IPs avoid running the same code 22:58:57 -!- adam_d has quit (Read error: 110 (Connection timed out)). 22:58:59 ais523, I don't know ocaml 22:59:10 AnMaster: you make sure they don't run the same code via static analysis, before hand 22:59:13 my master's project was about that 22:59:20 ah 22:59:57 oklofok, that seems pretty common however 23:00:27 AnMaster: it's not interesting how many i remember, as this is not how many i remember if i actively try 23:00:41 this is just how many i remember if i lay cards down without thinking, turn them face down, and try to remember what i saw 23:00:49 oh 23:00:54 the amount is different depending on how i look at them 23:01:12 oklofok, what if you try to remember from the start? 23:01:30 if i look at each of them, so that all are already turned, i remember less than if i look at each in turn, always having the other face down 23:01:46 i guess that sounds obvious, i focus better if there's just one thing to focus on 23:01:54 but it feels like i'm doing the exact same thing 23:01:58 looking at each card. 23:02:12 AnMaster: obviously i can just memorize the whole deck 23:02:22 oklofok, hm 23:02:25 not obvious 23:02:32 anyone can remember a deck 23:02:58 make a song about it, "THIIIIIS HERE IS MISTER JACK, HE'S A HEARTY HEARTY DUDE" 23:03:00 oklofok, anyone? 23:03:07 anyone. 23:03:20 oklofok, without reservation? 23:03:45 anyway if you add time limits, i can memorize 15 pretty much without work, atm 23:04:07 without work = without system, without major effort making up a system on the fly 23:04:13 just looking at cards and turning them 23:04:38 oklofok, even an idiot savant who is savant at something completely different? 23:04:38 ;P 23:04:40 also for 9 cards, i can keep track of simple permutations... but still a noob at this 23:04:51 AnMaster: well any human 23:05:12 oklofok, they are human 23:05:16 ... 23:05:18 i actually define human as the ability to memorize a deck of cards 23:05:20 oh 23:05:24 that's true... 23:05:27 i'll have to think about this 23:06:38 AnMaster: oklofok, they are human <<< oh lol i read "then you are human" 23:06:44 thought it was a reference to my not being human 23:07:03 i suppose idiot savants are technicaly human 23:07:07 *technically 23:07:12 my kb is borken 23:11:41 i actually now also realize your "then you are human" comment would've been before my definition of human 23:11:53 major brainfart 23:12:06 i bet none of you humans can do that 23:13:09 indeed my farts usually appear in the other end 23:13:36 that sounds disgusting! 23:14:00 no wonder you're never invited to the intergalactic gala of greatness 23:14:13 wait, did i just make a fart joke? my humor must be deteriorating even further! 23:14:25 :) 23:14:47 were you planning on that continuation btw? 23:14:52 nope 23:14:58 good 23:15:11 what is this "planning" thing you are speaking of 23:25:16 memory is so weird 23:43:08 Hm. 23:43:24 Chrome's "Close tabs opened by this tab" only goes 1 level deep 23:44:23 well otherwise it would have to recurse. and that would require recursion. 23:45:22 i'm not sure i get that 23:45:28 something which would necessitate a recurrence step. 23:45:47 is this another fart joke? 23:46:27 oerjan, and that's bad how? 23:46:55 because the smell would be horrible 23:47:51 oklofok: unlikely. although who knows what one might find at the base step. 23:48:23 also, Sgeoosh 23:48:45 YOU TELL ME WHAT THE JOKE WAS ABOUT THIS INSTANT 23:48:52 and don't say okloosh 23:49:19 but that would require me explaining what the point of the joke is! 23:49:28 ... 23:49:33 grrrrrrr 23:50:08 unless the joke actually had nothing to do with chrome 23:50:09 beware of the oklobear 23:50:15 just recursion? 23:50:57 that seems a distinct possibility. except it certainly started out relevant for a second. 23:53:19 today, we learn that sometimes people missing the point of a joke can be funnier than the joke itself 23:53:27 -!- Pthing has joined. 23:53:44 i'm going to grr you dead. 23:53:48 not Pthing, oerjan 23:54:09 * Sgeo grrs oklofok to half-death 23:54:45 a grrrsome death, i assume 23:55:33 seriously, what was the joke 23:56:03 I assume it was about describing recusion using variants of the word recursion 23:56:10 recursion. which should be obvious because of the recursion. 23:57:22 well come to think of it there needs to be no chrome reference because recursion already is a tab closing reference 23:57:54 now you're just trying to be incomprehensible back. 23:58:09 no not really! 23:58:48 and i tell you there _was_ a chrome reference. 23:59:19 "Sgeoosh"? 23:59:20 to close descendant tabs more than 1 level deep, what do you need? 23:59:41 ..recursion? 23:59:54 *ding ding ding*