00:00:29 overall though i think how rio handles the shell is certainly far more rational than the TTY emulation behavior we are used to in *nix 00:03:47 TTY emulation is by no means considered rational. It's just a historical artifact. 00:03:56 right, which is why plan9 ditches it 00:04:00 * pikhq nods 00:05:14 ehird: btw if you are interested in persistence, i have done some simple things towards the goal of better plan9 persistence, in particular a 9p fs that can be used for 'screen' like purposes and a version of rio modified to use it 00:35:42 -!- BeholdMyGlory has quit (Remote closed the connection). 00:40:30 back 00:40:51 tty emulation is the most retarded thing ever 00:41:01 yup 00:41:02 mycroftiv: i saw that on 9gridchan i think 00:41:10 mycroftiv: do not call it screen 00:41:19 screen is for running multiple terminals in one 00:41:21 and split screen 00:41:24 detaching is a side feature 00:41:27 i was confused when reading it 00:41:37 say screen's detach feature or http://dtach.sourceforge.net/ 00:41:39 it does multiple terminals in one fs also 00:41:44 but not 'terminals' 00:42:06 its shells, its actually buffering/multiplexing file descriptors is all really 00:42:45 multiplexing is not something that belongs inside 00:42:49 it is something that belongs outside 00:42:55 inside vs outside what? 00:43:37 http://jtomaschke.blogspot.com/2009/02/plan9-ac97-driver-bug.html see in my os the process would just crash! :P 00:43:42 mycroftiv: the detacher 00:43:56 isn't detaching just >f as a matter of fact the detaching *IS* done from outside, because the structure is that the hubfs backend is just a file descriptor multiplexor, it doesnt even know what a shell is 00:44:49 meh 00:44:51 then the hubshell client program is what understands how to make hubs as files and connect them to a shell and attach/detach 00:44:53 i said multiplexing 00:44:54 not detaching 00:45:26 inferno is an rtos isn't it 00:45:36 multihatching 00:45:39 what hubfs itself does is just provide a capacity to make named pipes that can have multiple readers/writers and random access 00:47:50 * SimonRC goes 00:48:09 inferno? real time? i dont think so 00:48:15 thought it was 00:48:23 mycroftiv: how do you feel about stupid programs and traditional shells working badly with non-lowercase-without-spaces filenames? i think it's made naming more awkward for some things 00:48:56 sure filesystem name limitations (apart from certain sanity conventions) are always annoying 00:48:57 btw i think my preferred rc scrolling behaviour would be that it'd up to the program, but i understand that's not feasible 00:49:11 e.g. ls/lc if the directory is big would stop scrolling, man always would 00:49:14 well actually it is - the program can write to its own window to set that i believe 00:49:20 like how mail sets the terminal into hold 00:50:30 call it 'the shell' not the terminal to get into the plan9 naming scheme 00:50:46 since the 'no tty' is pretty fundamental 00:56:27 blah blah blah 00:56:34 mycroftiv: rio is the terminal running the shell 00:56:38 rc, the shell, can't do that 00:56:43 rio has a window with rc in it 00:56:44 no tty is nutty 00:56:46 therefore i deem it the terminal 00:57:04 i could call it "window", but i'm being explicit that it's not like a window running acme, it's pure text 00:57:07 so there 00:59:43 well, obviously everyone can define their "term"s how they choose 01:00:11 give me a better, more appropriate name for a rio text window and I'll use it 01:00:21 rc window, shell window, rio window ? 01:00:31 -!- oerjan has quit ("leaving"). 01:00:41 rio windows can run graphical programs like sam and acme, and behave differently in that case 01:00:49 it doesn't have to be rc, it can be any program 01:00:52 ditto for shell window 01:01:03 also, they're quite verbose. 01:01:41 i said you can define stuff how you want, the conventional plan9 usage is different, but im not one to argue such things, it doesnt bother me 01:02:04 yes, but i want to use a more plan9 term if i can 01:03:36 well, in the exact context you used, since you were talking about running the mail program, 'rio window' or even just 'rio' would probably replace terminal in standard plan9-talk 01:05:37 the plan9 standard lexicon maps 'terminal' strongly onto 'the physical machine with the display and keyboard/mouse devices' 01:05:38 i just realised that 90% of the difficulty of Snake is the horrible mobile buttons, not the actual difficulty of the game 01:05:39 i am humbled 01:06:01 9% is really stupid slipups caused by not thinking for a second 01:06:05 and 1% is actual hard situatinos 01:06:07 *situations 01:06:42 mycroftiv: so is a separate fileserver/cpuserver worthwhile nowadays? 01:06:54 i like the modular set up yes 01:07:03 why? 01:07:28 several reasons - it facilitates abstraction away from the hardware is the most basic I guess 01:07:36 it makes some admin tasks much easier 01:07:54 enhances reliability if you have a well designed system 01:07:55 how does it facilitate that? what admin tasks and how? 01:08:10 i don't see plan 9 crashing much :P 01:08:44 i have good luck with uptime on physical hardware also, my qemu VMs are not really 'enterprise grade' in terms of uptime *cough* 01:09:04 thats qemu fault not plan9, but still something ive had to grapple with in design 01:09:30 it seems to me like file servers made sense when hardware was slow 01:09:36 since the file server would be doing a lot of work, etc 01:09:42 in the 90s 01:09:44 i guess i will give you the most direct example - the gridtoolsplus linux toolkit that i host, which has a full modular setup set up as a venti-based clown car 01:09:52 but with the much beefier, affordable hardware today, combining the file and cpu servers seems rational 01:10:00 you start the venti, and all the clowns (plan 9 vms) pop out of the car, and then ride around on the car 01:10:07 mycroftiv: this metaphor is 01:10:08 strained 01:10:39 and it distributes the functions between the linux host running venti in p9p, a qemu VM running fossil, a qemu VM running as cpu server, and a drawterm terminal in the host os - and you can then distribute those however you want 01:10:55 if you want to run venti on one machine, fossil on another, cpu on another, term on another, the same pieces work transparently across the network 01:11:14 mycroftiv: i like how you spontaneously dropped the metaphor 01:11:47 you dont want a clown based extended metaphor of plan9 grids 01:12:10 why clowns, exactly? just curious 01:12:39 because of the clown car thing - the gridtools are distributed as venti data and minimal p9p venti binaries and scripts to start venti, then extract the VM images, which boot and then use the venti as backing store 01:12:52 so the idea of packing objects as small as possible is relevant 01:12:59 because that works because of the way venti does deduplication 01:13:09 i love how confusing you are. 01:13:30 you can fit a lot of clowns (vm images) inside a snapshot of venti data 01:13:37 stop it it hurts :| 01:13:49 you were teh one who complained when the metaphor stopped before 01:14:12 ehird: ok serious answer 01:14:14 i didn't complain 01:14:31 separating file and cpu server means that you can boot multiple cpu servers from the same file server 01:14:38 this does a huge amount of your clustering work 'for you' 01:15:05 plan 9 system = {file server, cpu server+, terminal+} 01:15:05 because each independent cpu is going to see the same static file data namespace from the fossil (prior to whatever local customizations on that cpu bootup you make etc etc) 01:15:06 correct? 01:15:25 add cpu servers for MOAR SPEED, more terminals for uh... more people... i guess 01:15:26 add venti server for archival 01:15:35 that's included in file server by my hand-waving powers. 01:15:37 but you can run fossil without venti so that set you gave is a possible subset 01:15:53 plan 9 system = {file server, venti server?, cpu server+, terminal+} 01:16:06 you can use multiple file and venti servers also 01:16:11 add a venti server for archival, add cpu servers for more power, add terminals for, well, lots of things 01:16:13 mycroftiv: >_< 01:16:22 not needed, but its all modular 01:16:40 you can freely bind whatever resources wherever so any number of each component can be used 'sanely' pretty much 01:17:01 its true that you generally think you have one huge venti, maybe a couple file servers, then a bunch of cpus, and terms for each user 01:17:04 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 01:17:25 but i like using multiple ventis personally, thats actually part of what gives me ultra reliability 01:18:02 man, multiple ventis 01:18:02 you can boot the same fossil from multiple ventis if you have replicated the data blocks, which will be auto deduped so its basically penalty free 01:18:05 that is a lot of caffeine!!!!! 01:18:13 you must have the sh*ts a lot!!!! 01:18:34 oh wait 01:18:34 Pthing is the weirdest person in here 01:18:38 i thought I was in #defocus 01:18:40 my apologies 01:18:51 i think he has bipolar 01:22:18 someone should make a pun on bipolar bears 01:22:46 http://uncyclopedia.wikia.com/wiki/Bipolar_bear 01:23:57 that was quick 01:24:08 quite 01:24:55 That disorder sucks, but not as bad as having paranoid schgrizzlyphrenia 01:25:06 -!- puzzlet has joined. 01:28:40 mycroftiv: g r o a n 01:30:12 i find it interesting how you can cat directories 01:30:22 i wish the format for dir files was plaintext 01:30:40 really cat of a dir should be about the same output as ls of a dir just not as nicely formatted 01:31:18 ls of a dir isn't nicely formatted 01:31:21 it's just a list of names :P 01:31:28 so is that the actual directory structure? 01:31:32 as in 01:31:37 is it just a file along with the dir structure 01:31:43 or is it actually the directory itself 01:32:16 unix and plan9 have always used files to represent the directory structure, its not 'the directory itself' as you mean it 01:32:38 see k & r c book for a nice simple traditional look at it 01:33:02 what i'm trying to say is 01:33:03 readdir and shit 01:33:05 do they look at that 01:33:10 or something else 01:34:14 dirstat fills a dir structure with information from the directory file 01:34:53 could a simple yes/no be given 01:35:27 hmm, not when im not sure i fully understand the question, i generally try to give a solid related fact 01:35:46 some things, like ls, stat every file in a directory 01:37:01 dirread is like ls in that regard 01:37:14 well, it goes one at a time according to the manpage 01:37:44 of course i know that 01:37:45 what i mean is 01:38:00 mycroftiv: some background — the actual directory itself is a list of files. yes? 01:38:03 that is what a directory is 01:38:09 thus, if you have a directory, this must be stored somewhere 01:38:20 when you cat a directory, is that where this is actually stored, or is it just generated from it? 01:38:22 i.e. 01:38:27 the functions that look at directories 01:38:30 do they get it from the directory file 01:38:31 that is the actual file that stores the information 01:38:34 or some metadata in the filesystem? 01:38:45 mycroftiv: ok. then my objection to making it more plaintext is that it'd be more inefficient to parse 01:38:58 yes, its obviously done the way it is for efficiency and space and optimization 01:39:55 mycroftiv: i mean, as much as i talk about doing everything as a 9p server 01:39:58 i'm really worried it'll be dog slow 01:40:49 well, for what kind of tasks? 01:41:19 everything 01:42:04 i guess i was assuming this kind of design wouldnt be suitable for something like 3d gaming/multimedia focused use 01:42:25 passing a struct pointer to a function and the like will always be faster than going through indirection to find the relevant server for that filename, composing a message, sending it, waiting for the server to compose a response, receiving it and parsing it. 01:42:33 mycroftiv: well duh 01:43:41 sure, using 9p on top of plan 9 (and then obviously especially via a network0 means you have a lot of layering 01:43:54 well just a local network 01:43:56 as in sockets 01:44:06 writing to a file's the same, pretty much 01:44:11 or reading 01:44:13 i mean 01:44:15 thaht's the process i gave 01:44:17 *that's 01:44:58 reading from a 9p file: find the relevant server, compose a message, IPC it, wait for the 9p server, IPC back the response, parse it 01:45:06 vs 01:45:07 9p synthetic fses on lan are pretty fast tho really 01:45:16 following a function pointer to the device's relevant function, like getchar 01:45:19 calling it 01:45:29 think it's obvious which will be faster by far 01:45:41 (that is (*kb->getchar)()) 01:46:03 i dont disagree with that but dont forget that in standard computer usage you wait for the disk drive etc, you dont waint for the function pointers to be referenced 01:46:11 s/waint/wait/ 01:47:10 ssd :P 01:47:13 i agree, but 01:47:16 this whole cluster stuff 01:47:22 is mainly useful, I think, for large computations 01:47:25 rather than little tasks 01:47:34 you don't need a cluster for things that don't require mainly computation 01:47:59 i use it for redundancy and hardware independence, not much heavy duty computation 01:48:18 have you ever ran into a failure where the cluster saved you 01:48:22 several times 01:48:43 you being stupid or a genuine error 01:49:19 um, most common scenario is power failure i guess, i only have my servers on uninterruptible power supplies 01:49:36 how would i detect if something is a directory in rc? 01:49:45 power failure, how minor 01:49:47 its a flag to test 01:49:53 the fix for a power failure is turning them back on again 01:49:58 mycroftiv: ~ you mean? 01:50:02 well, power failure isnt 'minor' in terms of potential data loss and disruption 01:50:08 omg, plan 9 has test, how ununixy :) 01:50:11 i was expecting 01:50:13 isdir(1) 01:50:14 etc 01:50:54 file $dir also works btw 01:51:18 a power failure that brings down a box is functionally equivalent to temporary 'complete destruction' and can also cause undesirable data or filesystem corruption 01:51:47 UPS are considered absolutely required for datacenters for a reason 01:52:07 shrugg 01:52:11 if(file / | awk '{exit(!$2=="directory")}') 01:52:18 ↑ far more elegant than test yo :P 01:53:38 so I just bound every directory in / to / 01:53:39 mwahaha 01:53:41 (as in bind -a) 01:53:50 hey, there's .links 01:53:53 dunno where it really is of course :P 01:54:04 thats quite a union 01:54:17 mycroftiv: i'd have preferred to bind every directory in the system to / 01:54:21 but hey, this works 01:54:30 mycroftiv: wow, there can be multiple files with the same name in a directory with bind 01:54:34 creepy 01:54:46 ls | wc -l → 933 01:54:59 of course, and the -a vs -b flags to the binds determine which will actually be loooked up 01:55:26 I did: 01:55:38 for(x in `{ls /}) if(test -d $x) bind -a $x / 01:56:41 oh btw let me give you a really important tip 01:56:46 window -m is your friend 01:56:55 that pops up a new window in the identical namespace 01:57:12 so if you do a bunch of complicated binds you can clone the environment easily 01:57:17 -!- calamari has joined. 01:57:22 also of course then starting a sub rio means all the new windows in it will inherit them 01:57:26 oh yeah, it's per process 01:57:30 that's why everything didn't break. 01:58:45 does anyone actually used the monospaced fonts to code in plan 9? it seems unnecessary 01:59:08 im sure some people do, acme default works ok for me though 02:00:53 * ehird looks at the fonts man -P gives again and sighs 02:00:56 such wasted potential! :P 02:05:10 "I saved a million-ish dollar new business pitch with the arcane knowledge that Apple's old ADB cables (of which I had oodles in my departments' storage closet) actually worked as SVideo cables." 02:05:10 not so much worked as as werer... 02:05:11 *were 02:09:43 -!- enikdu has joined. 02:10:05 -!- enikdu has left (?). 02:14:59 short visitor 02:18:32 hey ehird hes an example i hope you like of network transparency and synthetic filesystems - by importing a namespace across the network my customized rio can open its new windows as remote persistent shells 02:18:51 Hmm. 02:19:06 That breaks usual rio semantics — New creates a new shell, Delete terminates it. 02:19:19 its additional menu options, i didnt change the behavior of New 02:20:34 http://lambda.nirv.net/m/screenshots/20080807/montage.png ;; six fucking monitors?! 02:20:41 mycroftiv: What are the additional options? 02:20:59 Do the persistent windows have, say, a different background to mark that they're only a "view" onto the actual shell? 02:21:22 ehird: i put it on sources in my unreleased dir - no, i didnt mark them graphically 02:21:30 the prompt is usually the cue 02:21:44 No, that's a cue for the machine, not the persistency; they have different semantics to normal rio windows. 02:21:51 What are the extra menu items called? 02:21:58 I think it's a cool idea, just with some possible pitfalls. 02:22:12 one is 'Hub' which connects to whatever is bound to /n/hubfs 02:22:33 the other is a command arg that you can actually set to whatever you want - its acme by default but i usually set mine to run hubshell on a different mounted hubfs 02:22:57 it doesnt change the windows, just what app is run in them really 02:22:59 Ooh, better than changing the background would be changing the border colour. Is that possible? 02:23:01 I'd make it purple. 02:23:06 mycroftiv: Still. 02:23:20 If I Delete a window, I expect it all to be gone, usually. 02:23:21 i actually did add in rio color theming options now that you mention it, but they arent correlated to the additional hubfs persistence stuff 02:23:25 the window is gone 02:23:33 but all the window was doing was connecting to a preexisting process 02:23:46 so its not any different than any background daemon or what have you 02:24:09 Yeah, but I still think it'd catch me off guard. 02:24:23 Start an intensive process, give up on it and so Delete it... and yet... 02:24:24 interesting that i got the idea from you pretty much ;) 02:24:32 huh, really? xD 02:24:36 howso 02:24:48 your general talk of how great persistence was and how it was central to your os design 02:24:55 oh so not recent 02:24:56 coolio 02:25:04 yeah persistence is awesome 02:25:09 so to me the idea of making 'everything' persistent by default is appealing 02:25:22 mycroftiv: i have a challenge for you 02:25:52 uhoh 02:25:55 :-D 02:26:00 i just like shoving my ideas onto other people 02:26:06 who i believe are more knowledgable 02:26:41 it better be plan9 or music theory related or i dont fit that category 02:26:45 plan 9 02:27:12 write a program that takes a pid. it writes what we will call X to stdout or a specified file. Now, let's say we reboot the machine and the process is no longer running. We run the other program and give it X as input. The process tree is recreated and the processes continue from where they left off, with all their allocated and static memory intact. 02:27:23 (BORING BABY WUSS VERSION: Make it work on only single processes without children) 02:27:30 oh yeah good idea 02:27:35 caveat: this is probably quite hard 02:27:39 thats also equivalent to process migration between systems also 02:27:42 yep 02:27:44 that comes for free with the other 02:27:52 mycroftiv: don't bother making it architecture-independent, obviously 02:27:57 well let me outline my roadmap 02:27:58 that'd be near-impossible 02:28:08 mycroftiv: I would suggest that the first step is to find a way to get the kernel to stop running a process 02:28:13 but keep it alive 02:28:15 ill only be doing anything like that *after* I finish a general plan9 GUI persistence layer than can multiplex and detach rio sessions 02:28:16 so that you have a consistent state 02:29:26 you can already control a process pretty well and save a lot of state with the debugger 02:29:43 right, but not to the same degree 02:30:05 yeah i know 02:30:10 but thats a good place to start 02:30:24 no need to reinvent the wheel on the basics of manipulating process state 02:30:34 hmm, i've thought of one issue 02:30:50 the next time it runs, the memory it uses may be in use 02:30:54 and thus all the pointers would have to change 02:31:02 that is just one of a lot of issues 02:31:05 and you can't tell between a pointer and an integer with the same value, obviously 02:32:18 i think the basic steps in the process are: freeze the process, save the machine code, save the instruction pointer (make it relative to the start of the code to fix up later), save the registers, go through each allocated block of memory and save it, magic pointer munging, unfreeze the process 02:32:21 i actually got into a discussion of some similar concepts based around the idea of actually versioning everything, so you could rewind a process, even 02:32:30 oh 02:32:36 and dsome extra stubs for reopening files 02:32:38 *some 02:32:47 version all the memory it touches and and record all its operations 02:32:57 i.e., take note of all open files/sockets/what have you, and make the unthawer run that before restoring 02:33:02 the cool thing is, if it doesn't destroy the process 02:33:07 you can take snapshots of processes 02:33:11 and indeed, like you said, rewind to a degree 02:33:28 like, if you're playing a text adventure game without a save feature 02:33:37 snapshot it to disk before making a game-changing decision 02:33:39 you lose 02:33:40 unsnapshot it 02:33:43 in fact, mycroftiv 02:33:45 you could clone processes 02:34:04 9term% freeze 348 | thaw 02:35:19 yeah actually another project prior to doing kernel level process manipulation is my grid/task system that exists further up the stack 02:35:27 whoa, cloning processes would be so awesome 02:35:46 i'd add a Clone action to rio :) 02:35:54 oh wait, shit 02:36:03 its funny you say that, i have my standard 'hacked together equivalent' running right now 02:36:06 you'd have to save the contents of /dev/cons and /dev/draw and even /dev/mouse to do that effectively 02:36:10 to get a real clone 02:36:11 argh :P 02:36:15 yes, im aware 02:36:16 how about just save the entire namespace :D 02:36:24 all files in it 02:36:30 mycroftiv: how does your hacked up one work? 02:36:41 btw is there a p9 binary that lets you point-'n-click a window and it prints its pid? 02:36:47 oh its pretty crude but its amusing, its still in the land of all my rc stuff 02:37:11 what i have is a hubfs as my persistent shell but its got shells on two different machines that are reading the same input file descriptor 02:37:29 ah well of course my clone would make them separate 02:37:33 so the commands i type in my persistent shell are executed on two cpu server but they have a parallel environment 02:37:38 sort of like a fork that keeps the past 02:38:01 On operator precedence: "The proof that it's a bad idea is the fact that you can take any used copy of K&R, drop it on its spine, and it will open to page 53, with the precedence table." 02:38:46 hm, mine opens differently 02:39:05 i didn't write that 02:39:07 just thought it was funny 02:39:41 id say the 'greatest spine-break hits' are maybe the section on complicated declarations and dirdcl program 02:39:53 stuff on structures/unions/typedef 02:39:56 see, my solution to complicated c declarations 02:39:59 is to not write them in the first place 02:40:10 exactly 02:41:41 A STUPID IDEA: Multiple, separate keyboard support! 02:41:48 One rio window listens to one, another listens to another. 02:41:51 NEVER THE TWAIN SHALL MEAT 02:41:57 s/EA/EE/ 02:42:17 you can already do that 02:42:27 just import the '#c' from a different machine 02:42:33 but can you read from the two separately in one process? 02:42:39 mm... MEAT 02:42:48 you know, i make a lot of structs pointers unnecessarily just to avoid the hideous s.a syntax 02:42:53 foo->bar vs foo.bar 02:42:58 the former is much more C 02:43:14 well i guess id run two separate rios for that, not have one rio splitting kbs, i see what you mean 02:43:28 however no reason you cant change the local reference within a given window 02:43:54 i wonder how un-clike it is to unify -> and . 02:44:10 i.e. just make -> be the same as . now, except that a pointer-to-struct is automatically dereferenced if you try and access a member 02:44:34 mycroftiv: can you have /dev/consa and /dev/consb each from a different machine? 02:44:38 and access both in one process 02:45:09 erm, sort of, maybe not in exactly the way you want to 02:45:18 as in 02:45:19 i mean, they are just files, you can obviously read the files 02:45:21 right 02:45:24 that's what i meant 02:45:26 *i meant 02:45:33 any opinions on that . -> unification? 02:46:05 uhm, well the problem is how does anything know if you want the value or the reference? 02:46:29 i just realised i've been using ksh for weeks 02:46:32 cool 02:46:37 mycroftiv: explain 02:46:42 i'll restate my new semantics 02:46:45 ok, pretend -> doesn't exist 02:46:50 pretend there's just . as it is now 02:46:51 however 02:46:59 . is renamed to -> 02:47:00 and 02:47:14 if the left operand of -> is a pointer to a struct, it is automatically dereferenced 02:47:41 cool, plan 9 bc is written in yacc 02:48:22 i kind of agree, in practice i think you find most stuff ends up being written as -> anyway for fairly obvious reasons 02:48:42 in the sense of people choosing to organize their datastructures primarily via pointers 02:50:31 oh, grrr, I was trying to grep through a gzipped file, but I forgot the -c option to gunzip. Then I was wondering why my hard drive was 224MB more full, and the grep had no results :/ 02:51:28 mycroftiv: yah, but e.g. if you have a global structure 02:51:33 it's bad to have it be a pointer 02:51:38 but you do it anyway 02:51:42 because otherwise it's so ugly 02:51:49 however, automatic dereferencing seems un-Clike 02:51:56 the only similar thing is automatic array→pointer conversion 02:52:09 you know plan9's access shortcut right? 02:52:13 Gracenotes: gunzip is horrible how it does that 02:52:15 mycroftiv: what is it? 02:52:17 oh 02:52:21 the unnamed structs/unions? 02:52:31 yeah 02:52:31 that you can use for composition/pseudo-inheritance too? 02:52:32 yeah, old hat. 02:52:38 ehird: It doesn't seem like *that* big of a deal, though, because anything other than automatic dereferencing would be... Wrong. 02:52:48 ehird: compression tools in general that assume that you want "in-place" in/deflation 02:52:53 (if you had but one operator) 02:53:03 pikhq: well, yes, but the question is should you have one operator 02:53:11 Gracenotes: anything that assumes you want in-place anything 02:53:46 -!- sunrider has joined. 02:53:46 mycroftiv: does rc have any syntax to tie two programs together? that is, the first program writes to the second and also reads from it 02:53:52 and vice-versa for the other 02:53:57 if it does, you could do 02:54:14 9term% inplace foo.gz <|> ungzip 02:54:25 so inplace would read foo.gz and feed it to ungzip 02:54:34 then read what ungzip outputs, and write it to a temp file 02:54:39 then move the temp file to foo.gz 02:54:49 kinda pointless, but still fun 02:54:58 well rc can do nonlinear pipelining but im not sure that particular example is sane 02:55:08 mm :P 02:55:13 esp because of the .gz you get in result 02:55:30 if you want crazy pipelining use hubfs, thats what i wrote it for 02:55:42 it surpasses your wildest i/o fantasies, i guarantee it 02:55:53 but does it require a... hub 02:55:59 the Final Boss of named pipes 02:57:31 does plan 9 let you allocate memory beyond (ram+swap), and then go on a murderous rampage if you try to use it? 02:57:33 thought not 02:57:35 lollinux 02:57:58 *sigh* Such a stupid idea from Linux. 02:58:08 i dunno how plan9 deals with oom other than apps having error handling and usually quitting when they cant malloc, dunno what the kernel itself does 02:58:13 Is it so hard to make malloc just return NULL on OOM? 02:58:37 pikhq: seriously, if you suggest that to them they go on about how it's not the process's fault 02:58:42 as if it'll get offended or something 02:59:00 ehird: ... Murder. 02:59:08 "BUT WHAT ABOUT IMPORTANT THINGS THAT SHOULDN'T EXIT" — yes, that common real-world situation of requiring shit to still run when you're out of memory. 02:59:13 happens all the time on critical servers. 02:59:35 The things that really truly shouldn't exit will have OOM handlers that won't exit. 02:59:50 If malloc returns NULL, that is. 02:59:51 it happens in real life too. People suffer from inconvenient assassinations sometimes 03:00:16 coppro: no, seriously, no critical server is running properly on a system that's out of memory 03:00:19 Of course, with the OOM killer, things that really truly shouldn't exit MIGHT GET KILLED BECAUSE SOME OTHER PROCESS MALLOCED EVERYTHING. 03:00:23 putting it out of its misery will not make the situation any worse 03:00:29 and might make it easier to recover from 03:00:30 due to, you know 03:00:32 freeing up memory 03:00:38 when it exits 03:01:14 pikhq: I do think overcommitting is logical in one case though 03:01:15 mmap 03:01:15 ehird: And maybe giving a useful error message when that happens. 03:01:24 since it's irrelevant how big it is 03:01:24 Yes, overcommiting with mmap is logical. 03:01:28 it's on disk 03:01:33 however 03:01:35 That is, in fact, half the point of mmap. 03:01:39 if you do mmap without a backing file, I'm not sure 03:01:46 that mandates it'll be in memory 03:01:53 so maybe returning NULL if there's no backing file is logical 03:02:00 (and it's >(ram+swap)) 03:02:34 Does any program actually depend on the Linux overcommiting behavior? 03:02:42 for mmap to memory? 03:02:43 sbcl 03:02:50 No, for malloc. 03:02:54 it allocates a gigantic (multi-gig) heap with mmap 03:02:59 pikhq: not that i know of 03:03:01 that would be retarded 03:03:07 Yes, I know. 03:03:25 you only need to do larger-than-memory allocations if you know they'll only be actually allocated when used 03:03:26 i.e. mmap 03:03:39 * pikhq nods 03:03:54 if you don't need to use sbcl you can disable overcommitting with one write to /sys 03:04:09 mycroftiv: is it possible, with rio, to insert some graphical stuff next to some text in a shell window 03:04:12 but keep it a text wiwndow 03:04:14 *window 03:04:15 Amusingly, if I ran 32-bit, then >(ram+swap) allocations would be impossible. 03:04:17 think little sparkline graphs 03:04:21 (not enough address space) 03:04:25 inside mostly textual output 03:04:44 i'm seriously considering just not supporting swap in my os 03:05:00 even with my paltry 2.5 GiB of RAM (lol), eh 03:05:02 ehird: on a technical level, sure, drawing to the window is very simple and direct 03:05:09 every time a system uses swap its gui goes down the shitter anyway 03:05:15 mycroftiv: right, but cooperating with scrolling and stuff 03:05:32 hmm not as sure on that 03:05:39 i would suspect not 03:06:02 im pretty sure rio handles the rc window scrolling by moving around the view it maintains of a text buffer backscroll 03:06:40 how about in acme? 03:06:53 because it would be totally awesome to have intermingling graphics/text like that 03:07:03 blurring the lines between a textual and graphical program 03:07:06 id look at how abaco does it 03:07:21 you cant do it naively but its not impossible to implement 03:07:49 mm, i don't really like the "feel" of abaco though 03:08:10 well it has acme style windows and they display bitmap graphics so its very relevant to your question 03:08:15 true 03:08:31 but fgb describes it as a hack i think 03:09:19 mycroftiv: here's a really cool thing it could be used for: 03:09:19 9term% recentcommandswhatididexecute | rank 03:09:19 ls 645 ========================== 03:09:20 rm 100 ========= 03:09:20 etc 03:09:28 where the lines are actually coloured rectangles 03:09:55 the cool thing is that if you piped it to another program, the graph just wouldn't be there 03:10:01 ok, ok, that's what the cat-v paper warned against 03:10:01 but 03:10:08 these graphical snippets wouldn't be accessible as text anyway 03:10:11 so they're barely even "there" 03:10:14 unlike ls columnating 03:10:54 anyway, rank would just count the number of times each word appears in the input, sort by the top, and output the occurrences; then just an if(graphical) { magic inline graphics functions } 03:11:02 would add a little spice to the command line 03:11:12 also, I messed up my monospacing 03:11:14 please excuse it 03:12:09 i agree graphical objects should be freely deployable 03:12:46 i read a proposal to do that in linux by making a terminal that supported embedding X11 windows 03:12:52 tiny little ones 03:12:59 inline 03:13:22 oh, and it'd mean you could view images without popping up a new window; that might be a bad usage though 03:13:28 since piping would make no sense 03:14:51 mycroftiv: if it weren't for sam and acme i'd be a skeptic of plan 9's graphics model to the max 03:15:09 as opposed to something like acme that only shows rio terminals (so to speak), and having graphics inlined there 03:15:25 ooh, i have an idea for the scrolling thing 03:15:45 if you press shift+enter to send a command, scrolling is disabled until the next time you press enter 03:15:58 i.e. enter = normal command, shift+enter = for man and long ls/lc listings and the like 03:16:46 you know escape for hold mode on off right? 03:16:56 yeah 03:17:07 but i find that scrolling only ever applies right before running a command with a lot of output 03:17:08 erm 03:17:09 no-scrolling 03:17:12 -!- augur has joined. 03:17:30 ctrl+enter would probably be more plan 9, although keyboard shortcuts beyond ctrl+letter for text editing are un-plan9 03:17:34 but i think this would be useful 03:18:09 mycroftiv: food for thought: how does non-scrolling-inhibits-output interact with graphics? probably inhibits graphic display too 03:19:56 heh, i started to have an idea then i realised i was going into ehirdos territory 03:20:57 hm - popping back to a previous question - looks like the bitmap issue is probably annoying in rc integration because of its use of libframe which seems to be text only in what it provides 03:21:11 bollocks 03:21:31 this is just based on a very quick scan of the source code and glancing at a manpage though 03:22:11 the idea, btw, was that if you started, say, games/catclock, and were on the prompt after (it still running, of course), you could drag the catclock (like dragging an acme drag handle) into a new space 03:22:38 and it'd detach from the terminal, disappearing and leaving, like, an italic grey "moved to a (link: separate window)" 03:22:43 clicking it would pointer-warp there 03:22:45 i don't know 03:22:46 i was just musing 03:23:17 back when i first heard about plan9 i assumed you could do cp /screen/1/window/1 /screen/2/window/2 and it would copy the window to the other screen 03:23:49 basically im hoping to hack that into place with rio multiplexing and persistence 03:23:50 my brain immediately snapped back with the reasons why that doesn't work in plan 9's architecture, then i realised that was irrelevant to the idea that it should work 03:26:51 the problem with ehirdos is that it's hard to define the boundaries 03:27:23 i go all visionary, and then i realise "if i'm thinking this far i might as well just give up on ehirdos and wait for the singularity and its mind-control interfaces and near-infinite computing power" 03:27:24 and then i backtrack 03:27:28 and then i'm all grumble 03:27:30 this is inferior grumble 03:27:31 repeat 03:28:23 i know the feeling, which is why I have adopted the approach of small incremental work in Plan 9 03:29:47 the problem is that doing any actual work on ehirdos feels wrong, because this design is meant to be perfect forever and ever 03:29:52 so i just sit there designing how i'm going to design it 03:32:02 well remember any os at all is gonna be used to execute arbitrary code, so that means perfection is sort of irrelevant 03:32:18 i read that statement and it is meaningless 03:32:25 especially as there's no os/program distinction in ehirdos 03:32:27 no its not 03:32:31 os is all the base software too 03:32:42 besides, i have to create infrastructure 03:32:51 infrastructure is like 70% of os design 03:33:06 because as soon as someone writes tetris for ehirdos, they are playing tetris, and tetris is tetris, and ehirdos isnt very relevant to that experience 03:33:37 whatever perfection/imperfection there is in tetris itself becomes predominant 03:34:03 i don't base my os around tetris 03:34:13 games are unique in that they don't really interact with other entities 03:35:29 i was just trying to point out that perfection isnt possible to deliver to the user because an OS is open-ended 03:36:35 nothing is perfect except a single consciousness filling all existence constantly experiencing absolute bliss for eternity with nothing changing... and in fact that sounds like torture to me, so i can amend that to nothing is perfect. 03:36:48 welcome to the world of hyperbole, where "perfect forever" doesn't actually mean that 03:37:55 well look at networking and network protocols - an os kind of has to deal with them, and they are obviously very far from perfect, so i think you have to focus on thinking pragmatically for some things 03:38:28 am i supposed to say "ah, thanks, of course i'm an idiot and hadn't considered interaction with the outside world at all" now :) 03:39:13 i was really saying that because of the obvious segue to plan9 /net and stuff like ftpfs 03:39:55 i know that the oberon os is basically acme os 03:40:20 and the m.b.s guys were taking stuff from it 03:40:27 maybe i should look into it 03:41:10 technically acme is oberon os in a box 03:41:11 but w/e 03:41:14 (causality) 03:41:30 The Oberon OS is available for several other hardware platforms, generally in no cost versions. It is typically extremely compact. Even with an Oberon compiler, assorted utilities including a web browser, TCP/IP networking, and a GUI, the entire package has been able to fit on a single 3.5" floppy disk. The version which runs on bare PC hardware is called Native Oberon. 03:41:35 oh now that's just ridiculously compact 03:41:37 stop showin goff 03:41:40 *showing off 03:43:26 oberon is deceased isnt it? 03:43:42 well the download is still available at least 03:43:43 *at least 03:43:46 http://www.oberon.ethz.ch/downloads/index 03:43:49 you want the first native oberon one 03:44:00 Current news on the current Oberon Releases at ETH are to be announced here: 03:44:01 Dr. Felix Friedrich at ETH is currently writing the new Oberon Compiler which will be released in 2008. 03:44:01 Ulla Glavitsch finished the work on the new A2 system garbage collection in July 2008. 03:44:01 Sven Stauber has launched a new Oberon Forum (http://www.ocp.inf.ethz.ch/forum/). 03:44:02 Information on the Oberon day 2009 will be announced here. 03:44:06 doesn't sound too dead 03:44:09 huh 03:44:18 i thought so too btw 03:48:09 NIC: 3Com 3C509 Etherlink III or 3C905B FastEtherLink 03:48:09 Dialup: Standard modem (not WinModem) with SLIP or PPP internet 03:48:09 service provider 03:48:09 Sound: Soundblaster 03:48:12 Mouse: PS/2 or serial mouse (3-button recommended) 03:48:17 Processor: 80386, Pentium or compatible 03:48:18 Bus: ISA, EISA or PCI 03:48:18 Memory: 4Mb 03:48:18 Disk space: 3Mb 03:48:19 this shit is oooooold 03:49:18 sounds like it 03:49:47 i'm booted into oberon 03:49:50 the text is tiny but i'm booted 03:53:14 i need to replenish my caffeine supply, i assume you are going to have an oberon<->losethos<-plan9->tunes protoype wired together in 10 minutes when i get back 03:54:00 mycroftiv: more likely go to bed 03:54:07 it's 4 am, i have to be up at ~9:40 03:54:51 in that case, write teh source code in dreams and sleep with a pencil between your toes to write it out via involuntary twitch signalling 03:55:10 i like oberon already 03:55:18 the installer is just a bunch of text files with executable commands 03:55:33 it's like ... html shell scripts 03:57:21 ok, it won't recognise my disk 03:57:34 i'll pick this up tomorrow 03:57:43 i think oberon has just totally changed my view of programming :P 03:57:47 bye 03:57:55 -!- ehird has quit. 04:25:28 -!- puzzlet has quit (Read error: 60 (Operation timed out)). 04:26:50 -!- puzzlet has joined. 04:27:45 -!- calamari has quit ("Leaving"). 04:31:40 -!- calamari has joined. 04:34:20 nyaaaaaaaa~ 04:36:15 Gracenotes ha neko ni natta, ne... 04:37:00 nyaa nyaa pikhq nya nyaa nyaaa aru~ 04:37:56 Anata no nihongo ha chotto neko rashii... 04:38:40 sou daro nyaaa~ 04:39:41 Wan! Wan! 04:51:03 Dortse mon veitchuats? 04:53:39 Gregor: Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput! 04:55:38 HAHAHAHAHAH 04:55:41 BAAAAHAHAHAHAH 04:55:42 *gack* 04:55:47 :) 04:56:38 i'm not sure i'm following the discussion 05:05:45 oklofok: Well, you see... Wenn ist das Nunstruck git und Slotermeyer? Ja! Beirherhund das Oder die Flipperwaldt gersput! 05:07:02 "nunstruck" sounds ominous 05:07:37 You should study German, so as to understand the World's Greatest Joke. 05:08:06 i know some german, that's not german 05:08:17 although it may be enough german to be a joke 05:08:29 On a more serious note, you should study the works of Python, Monty. 05:09:08 *zombie* Yesh. 05:14:39 -!- puzzlet has quit (Remote closed the connection). 05:14:41 -!- puzzlet has joined. 05:15:37 why am i interested in everything, couldn't some things just be inherently uninteresting to me 05:18:01 fly fishing 05:18:07 do you find fly fishing interesting 05:19:47 But being interested in everything is a blessing! >.> 05:20:14 Hey, that means you'll be interested in what I want you to be interested in! >.> 05:21:25 -!- Pthing has quit (Remote closed the connection). 05:21:28 yes pretty much 05:22:46 i don't know what fly fishing is really 05:23:02 Agda is a proof system. It's inspired by Haskell; therefore, it's awesome. As far as I know, nobody has ever successfully implemented ZFC, or anything similar, in Agda. Get to it. 05:23:24 i don't implement much these days 05:24:14 I made something I thought was an implementation of ZFC. It turned out to have a flaw that had no obvious fix. So I started implementing NBG, which is like ZFC, instead, and got bored halfway through. 05:26:39 hahah "inspired by Haskell; therefore, it's awesome" this logic I do not follow 05:27:08 well it's NBG, less known 05:27:43 that's axiom 1 05:29:07 quantumEd: well, are you familiar with Haskell? 05:29:11 yes 05:29:20 You are a strange man. 05:29:56 :)¨ 05:29:59 *:) 05:30:23 You have something right... never mind, you got it. 05:30:44 höhö 05:52:33 i just realized youtube comments are pretty stupid 05:52:56 really 05:53:00 why are they stupid? 05:54:11 maarhoefe (1 month ago) Show Hide +3 Marked as spam Reply fuckin doorknockers wont convert me! the only jehovas i like are the female ones since i can violate them with my satanic lusts 05:54:33 i mean come on sure it's death metal but why be such a stereotype about it 05:54:49 I AM SATANIST I RAPE AND KILL EVERYTHING THAT BREATHES 05:55:48 I AM A SANTAIST, I SPREAD CHEER AND GOODWILL ONCE A YEAR 05:55:50 also exam soon, should probably get to uni and start preparing mentally 05:56:36 oh my god this stuff is awesome http://www.youtube.com/watch?v=4dTrIVIWqFA&feature=related 05:56:45 I AM SANTA, I SPREAD FEAR AND ANNIHILATION ONCE A YEAR. 05:57:17 if a death metal band doesn't get a smile on your face, they're doing it wrong 05:59:45 yummy stuff 06:01:59 well okay seems that song was exceptionally good 06:03:18 -> 06:07:23 pikhq: Futurama is not good for you. 06:09:26 lies 06:10:07 bum bum BUMBUM bum bum BUMBUM bum bum BUMBUM bum BUUUM bum bumbumbumbum 06:10:35 futurama is the dazzle. 06:10:37 -> 06:10:46 what's with the ->? 06:10:59 it means i'm leaving 06:11:08 it's an important part of me 06:11:13 -> 06:24:21 -!- sebbu2 has joined. 06:29:32 -> 06:32:22 Gregor: Lies. 06:39:31 -!- sebbu has quit (Read error: 110 (Connection timed out)). 06:54:09 -!- calamari has quit ("Leaving"). 07:56:18 -!- AnMaster has set topic: but tell me, hubert. http://tunes.org/~nef/logs/esoteric/?C=M;O=D | esoteric programming. 07:56:25 -!- AnMaster has set topic: but tell me, hubert. http://tunes.org/~nef/logs/esoteric/?C=M;O=D | esoteric programming languages. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:08:10 :x it is possible to do esoteric programming in non-esoteric languages 08:08:18 which means? 08:08:36 like obfuscated c? 08:08:39 yes it is possible 08:08:52 you can do non-esoteric programming in esoteric languages too 08:08:59 meaning AnMaster's topic change was... uh... well, I can't say it's any more or less apropos to what we talk about here, but it's more precise 08:09:56 Gracenotes, hit newline too early by mistake 08:10:00 thus the second change 08:10:20 ah. no deeper meaning, eh. 08:10:58 bbl 08:11:02 see ya 08:19:57 Gracenotes! 08:20:06 my dear complingqueer! <3<3<# 08:20:10 or whatever 08:20:41 hello!!1!11!!! 08:20:59 where do you go to school again? 08:21:11 although I should mention I'm not too big a fan of computational linguistics. just compsci and linguistics. 08:21:17 Stony Brook O_O 08:21:20 oh right 08:21:29 you're a cunt, now i remember 08:21:31 so! 08:21:35 linguistics 08:21:36 man 08:21:43 how fucking awesome is linguistics, huh? 08:21:46 :o 08:21:51 omg you're so mean. *cries* 08:21:59 * augur smacks gracenotes 08:22:08 wha? yeah, linguistics. word word balls up. 08:22:16 balls <3 08:22:24 so like 08:22:29 i have to write a squib 08:22:41 for syntax 08:23:47 how come I've never heard of squibs before, eh :/ 08:24:04 oh wait, I think I know.. I'm not a linguist :x 08:24:09 squibs are short little papers 08:24:22 augur 08:24:27 do you release these? 08:24:34 they often dont try to solve problems, just make note of them 08:24:36 or whatever 08:24:43 theyre minor papers 08:24:46 quantumEd: what? 08:24:57 how is that not clear :( 08:25:08 do you release these squibs (im assuming you've written more than one) 08:25:15 sounds like an interesting tradition. they're useful perhaps because linguistics has a tendency to be a static field? 08:26:00 quantumEd: yes, sometimes i release them into the wild, but they usually find their way back to the lab. squibs have amazing homing ability, you see. 08:26:17 so link to them? 08:26:46 actually, its more than linguistic phenomena are so diverse, and because of the shear amount of linguistic data we produce on a daily basis as individuals, its easy to miss things 08:27:16 infact, some very obvious things went completely unnoticed for many many years, until someone or other said hey wait a second whats this now 08:27:36 augur: hm.. I kind of see what you're talking about. I've read way too many models of aspect that were based on a subset of language, rather than comprehensively trying to establish some universal terminology 08:27:53 its not even that, right 08:27:56 its more like 08:28:41 you know, look, if you werent ever told about the oddities of depictives, would you ever notice them? 08:29:03 still, as a result, you get so many combinations of linguists and languages where "perfective" means different things 08:29:13 or the peculiar fact that all D quantifiers are conservative? 08:29:37 oh, well, sure. real linguists dont have those problems :P 08:29:52 you're probably reading silly non-theoretical types! 08:29:53 ...is this formal theory you're talking about? 08:30:02 sure 08:30:25 how purely formal? independent of any spoken language? 08:30:31 no 08:30:36 this is just data stuff 08:30:43 observations of the data. 08:31:57 well, whatever works... linguistics is still a young field 08:32:09 it is rather 08:32:13 but these facts are cool 08:32:17 and intriguing 08:32:19 and confusing 08:34:14 though, in my experience, two linguistics professors arguing can produce some of the most humorous academic discussions ever. at least to someone less well-versed 08:34:25 :) 08:35:54 you not only hear them arguing over the propositions, but also over the very definitions they're using 08:36:41 possibly peppered with references to other linguists and personal interactions 08:38:33 to be fair, computer science has existed for a relatively short time too, but our field has a rather constructivist outlook, with hundreds of years of mathematical thoroughness behind us 08:39:10 linguistics is essentially anything but constructivist 08:39:28 wut 08:40:13 :o 08:41:31 okay, you have some formal models, insofar as they play nice with data. I hope I'm not coming off as anti-linguistics, by the way.. I love the field, just don't seem to have the time to spend 08:44:10 ok 08:45:56 -!- ais523 has joined. 08:46:33 in other news, I'm leaving for my college in 2 hours and still haven't fully packed 08:46:54 in other news, hi ais523 08:47:11 hi 08:47:23 * ais523 predicts that quantumEd = ehird simply from one sentence 08:47:29 ah no, it's fax 08:47:32 :( 08:47:38 should have guessed ehird wouldn't have been awake this early 08:52:50 -!- kar8nga has joined. 09:01:18 oh man 09:01:21 i need seep now 09:01:23 night guys 09:01:58 don't seep here, I just cleaned the floor 09:02:15 :P 09:02:22 * augur seeps all over Asztal 09:02:32 good night, sirs! 09:05:08 night 09:05:22 ..gotta fall asleep soon.. wake up soon.. 09:15:38 -!- quantumEd has quit ("Leaving"). 09:41:35 -!- coppro has quit (Remote closed the connection). 09:42:04 -!- coppro has joined. 10:22:30 -!- sebbu has joined. 10:26:07 -!- Slereah_ has quit (Read error: 60 (Operation timed out)). 10:28:27 -!- Slereah has joined. 10:37:55 -!- sebbu2 has quit (Read error: 110 (Connection timed out)). 10:53:00 -!- Gracenotes has quit ("Leaving"). 10:59:59 -!- puzzlet has quit (Read error: 54 (Connection reset by peer)). 11:03:38 -!- puzzlet has joined. 11:39:59 -!- sebbu2 has joined. 11:43:23 -!- sebbu has quit (Read error: 60 (Operation timed out)). 12:05:03 -!- Gregor has quit (Read error: 110 (Connection timed out)). 12:10:33 -!- kar8nga has quit (Remote closed the connection). 13:06:36 ugh, what a confusing spam 13:07:01 it wants me to call and send my names, address, age, occupation, phone numbers to 13:07:10 either the phone number or the email, I could parse the sentence 13:07:18 but both, I'm mystified 13:07:32 looks like I won't be claiming the million pounds from the nokia lottery after all 13:08:45 and you were so close to happiness 13:11:38 strangely enough, all the names in the scam were reversed, as in surname before first name 13:11:38 even though it was a UK phone number (starting +44) and the spam specifically claimed to have been sent from the UK 13:12:41 in uk, you do first, last? 13:12:50 i wonder what we do in finland 13:13:03 you mean, you aren't sure? 13:13:20 no idea, well, both are used 13:13:27 maybe that's the answer 13:14:03 i've always thought the first name should be first 13:14:29 this conversation will get confusing if we use "first" for two different purposes 13:14:42 "given name", "family name" are unambiguous; in the UK they're pretty much always in that order 13:15:46 I thought Hungary was the only European country to use FamilyName GivenName. 13:16:40 first name is unambiguous 13:16:51 but yes, perhaps confusing 13:17:57 Asztal: yes, and it was pretty confusing when I was at a conference in Hungary 13:18:11 because half of the people had reversed their names to simplify things for the British visitors 13:18:14 and the other half hadn't 13:18:25 :) 13:18:46 the one that ends in cz is the surname 13:19:12 Hungarian doesn't have a cz, IIRC 13:19:13 my cellphone died :< 13:19:23 wait am i thinking polish or something 13:19:27 yes, probably 13:21:11 I like the idea of capital letters for the family name. 13:35:29 hi ais523 13:41:25 Asztal, camel case? 13:41:41 (based on etymology) 13:44:13 AnMaster: e.g. ERDŐS Pál 13:44:40 at least in Swedish that would work for many common names. Name combinations (translated) like this in shell syntax: {North,South,Leaf}{branch,stream,country} are pretty common 13:44:55 modulo some tiny spelling changes to make it sound better 13:45:48 (of course the list of words to combine is longer in reality, and not all combos are used) 13:45:53 -!- kar8nga has joined. 13:46:33 Asztal, my family name is of that type for example. But with a bit unusual spelling 13:46:48 anyway, the point is you could camelcase it 13:46:49 like: 13:47:11 SöderKvist (en:SouthTwig) 13:47:36 (when you think about it, most such names doesn't make a lot of sense) 13:48:14 Given that my surname is also a compound word, I guess you "could" CamelCase it too into KallasJoki if you really really want. 13:48:22 heh 13:48:28 looks like most of Japanese surnames' etymology 13:49:23 fizzie, what does it mean? 13:49:56 puzzlet, oh? compound names are common there? 13:50:15 fi:joki translates to en:river, while fi:kallas is a bit trickier to translate... it's basically a bank (as in "bank of a river", the border of water and ground) though I think it carries a connotation of an especially steep bank, not just any sort of bank. 13:50:23 "KuraMoto" literally means storage-basis for example 13:50:36 heh 13:50:37 It's a bit archaic term, I don't think I've seen it anywhere else than names. 13:50:44 puzzlet, storage-basis? 13:50:50 heh 13:50:55 it's just combination of chinese glyphs 13:51:02 Still, it's a lot better than our former family name. 13:51:05 Appparently my surname, Houghton, means "Settlement in a corner of land" but it's not really CamelCase-able :( 13:51:07 fizzie, oh? 13:51:22 it sometimes means something, like KoIzumi - small spring 13:51:59 mine is a bit hard to actually camel case due to the "change around the spelling a bit" thingy 13:52:22 I leave it as a exercise to any Swedish or Swedish-speaking readers 13:52:36 (it isn't hard to track down *shrug*) 13:52:50 AnMaster: Yes, they changed a couple of generations ago from "Kakkinen"; now, I'm unsure whether it actually means something specific, but fi:kakka is a slang/informal term for human excrement, and the -nen is a bit like a (rare-ish) diminutive suffix, so I guess you could translate it as "little shit". 13:52:51 here in Korea, almost all surnames are monosyllablic 13:53:08 Kim, Lee, ... you know. 13:53:13 fizzie, did it mean that back then? If it is slang these daus 13:53:15 days* 13:53:44 AnMaster: Possibly not, but it would not exactly be a too nice name to have now. 13:54:27 you could also camel case all those "-son" names in Swedish. Like Svensson/Svenson (spelling varies). Could be turned into SvensSon/SvenSon 13:54:42 (I guess that is the archetypical "Swedish" name) 13:54:46 (There are, in fact, 207 currently living people in Finland with that surname; that's more than us, there's only ten people with Kallasjoki.) 13:54:49 (or stereotypical rather) 13:55:01 fizzie, heh 13:56:51 And from what I hear, before Kakkinen the (original; had none before *that*) surname used to be some sort of old-Swedish g-rich word that had the meaning of "a short, barrel-shaped man"; given to some ancestor in someone's army in some war. I don't remember the details well, and they might be incorrect anyway. 13:59:18 fizzie, can't think of such a Swedish word, so I guess that word is no longer in use 14:01:17 -!- asciikierka has joined. 14:01:19 -!- asciikierka has changed nick to asiekierka. 14:01:20 hi 14:18:20 -!- augur has quit (Read error: 110 (Connection timed out)). 14:45:11 -!- oerjan has joined. 14:53:54 -!- BeholdMyGlory has joined. 15:00:50 -!- puzzlet has quit (Remote closed the connection). 15:00:54 -!- puzzlet has joined. 15:02:00 oerjan, iwc 15:02:10 indeed 15:02:25 btw what is 1/INFINITY in double floating point? 15:02:44 Assuming IEC 60559 conformance of course 15:03:01 * oerjan assumes that would be 0 15:03:14 oerjan, yeah, that or some SMALLEST_DENORMAL_NUMBER 15:03:37 cannot say i've read the standard... 15:04:30 can't say I have it, I only have C99 standard, witch refers to IEC 60559 for many details. 15:05:48 hm 15:06:01 IEEE 754 == IEC 60559 15:06:28 I would guess 0, too. MATLAB gives true to "(1/inf) == 0" and it counts with double precision by default, though it might need some strictness flags to be, well, strict. 15:08:10 hm 15:08:17 i should return to my C64 OS idea 15:08:18 fizzie, well yes that seems to be what happens. But then there is another question: Is this specified? Or could it vary between implementations? 15:08:21 but i need to look for 15:08:23 *dundundun* 15:08:25 RESOURCES 15:08:56 AnMaster: I am under the impression that IEEE 754 does not leave much wiggle-room for implementations, but that is also just a guess. 15:09:14 well, since I don't own a copy of it :/ 15:10:20 http://steve.hollasch.net/cgindex/coding/ieeefloat.html claims that n (where "n" seems to be any not-special number) divided by +inf or -inf would be well-defined as 0. 15:11:10 mhm 15:11:45 Of course you'll then have to decide whether you choose to believe some random Steve. 15:13:09 1/inf = 0 15:13:24 i swear on my mother's grave 15:13:59 that would probably sound more convincing if my mother was dead 15:14:36 heh 15:14:55 oklofok: If she's not dead, it sounds -- to put it mildly -- a bit suspicious that you have already prepared a grave for her. 15:14:56 well 15:15:04 true, true 15:15:06 1/inf == 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...............1 15:15:10 i guess 15:15:14 the dots represent infinite 0's 15:15:39 well that does make sense 15:15:39 of course rounding it to any fixed-point or floating-point format gives us 0 15:16:18 what is the range of numbers that are denormal for doubles? Again I'm unable to find that due to not owning spec. 15:16:25 fizzie: it's not _that_ unusual to reserve graves in advance... 15:16:32 It makes about as much sense as the "0.999... is not the same as 1" "proofs" you get; I've seen the hypothetical 0.000...1 number there. 15:17:10 yeah everyone knows the cauchy sequence 0.000...1 is in the same equivalence class as 0.000 15:17:11 ... 15:17:12 fizzie, um... 0.9999.... *is* the same as 1. Given that the ... means "continue forever" 15:17:16 I seen a proof for it 15:17:17 oerjan: Well, perhaps not; I imagined an already-dug open pit, just waiting for oklopol's mother, which might be a bit more uncommon. 15:17:19 trying to remember it 15:17:23 uh 15:17:26 fizzie: you'd think 15:17:32 AnMaster: Yes, but there are also a large number of "proofs" for the opposite. 15:17:42 hm 15:17:42 0.999999999999.................. rounds to 1! 15:17:43 the proof is as follows: lim sum (9/10)^i = 1 15:17:44 asiekierka: there is no final 1 in the representation of any real number 15:17:54 oklofok, for 0.999... ? 15:18:00 yes 15:18:35 its sum is 1/10 * 1/(1-9/10) = 1 15:18:40 oklofok, I think the proof I saw was a bit different. 15:18:46 1/3 = 0.333... 15:18:52 something about doubling it or such 15:18:55 0.333... * 3 = 0.999... 15:18:59 well you can write an uglier proof 15:19:03 1/3 * 3 = 0.333 * 3 = 0.999 15:19:06 oh wait. no that was another one 15:19:09 it's not exactly hard 15:19:11 1/3 * 3 = 3/3 = 1 15:19:14 0.999 = 1 15:19:52 that just proves multiplication isn't the inverse operation of division! 15:19:53 asiekierka, um? 15:20:06 0.999 = 1 and 0.001 = 0; now I get it! 15:20:11 * oerjan swats oklofok -----### 15:20:11 Hey, the bus! I'm missing it. -> 15:20:39 food -> 15:20:55 ROUGH ANIMAL SEX 15:20:56 -> 15:21:14 (also reading this book.) 15:21:19 oklofok, no it doesn't prove that. It just proves that asiekierka doesn't know how to handle numbers that aren't exactly in decimal. 15:21:57 well i have this, call it a hunch, thing, that asiekierka has absolutely no idea what real numbers are 15:22:05 0.33333... given that ... is "continue forever" is *exactly* 1/3. Multiplying it with 3 will *not* yield 0.999..., but exactly 1 15:22:10 no offense :D 15:22:14 of course that assumes it is really infinite. 15:22:24 oklofok, well yeah I think that too 15:22:27 i need to go buy that... umm 15:22:37 we call it "cucumber salad" here i think 15:22:59 okay some hits 15:28:22 You with your silly numbers, I almost missed the bus. 15:29:36 did you only have 0.000....01 seconds to spare 15:30:03 Yes, if not less! 15:30:13 err... 15:30:30 you mean 0.000...001 :P 15:30:54 Maybe 0.000...003 or so. 15:31:17 0.000...00333333... 15:31:38 your obvious attempts to make me go mad with rage are failing, just so you know 15:31:53 :D 15:32:16 do you know how hard it is to ask an analysis prof about nonstandard analysis 15:32:25 no 15:32:27 took me like 20 minutes to get him to talk about hyperreals 15:32:57 (then turned out he used to do it in his crazy youth) 15:33:53 A skeleta-number in his closet. 15:34:37 -!- Pthing has joined. 15:35:02 Now I run out of electrons too, meh. -> 15:36:19 fizzie: are you positive? 15:37:11 maybe not the best time to ask 15:37:30 hm will == always return 1 for true in C? After all, everything non-zero is counted as true 15:39:31 issue: check if two int containing the result of a logic test are the same. Need C89 here. 15:39:49 otherwise casting to (bool) should make it well defined 15:40:16 there is a bool type? 15:40:34 in C99 yes 15:40:36 in C89 no 15:40:57 oerjan, bool is usually one byte. It can store the values 0 and 1 according to the standard 15:44:51 mhm 15:46:03 oerjan, this is for a test suite. It would be a bit embarrassing if I had expected == actual and it turned into something like: 1 == 42. 15:46:46 ooh I know 15:46:48 I can do: 15:46:55 expected = !!actual 15:47:03 since return value of ! is speced to be 0 or 1 15:47:05 :D 15:48:58 -!- Guest94377 has changed nick to Cerise. 15:49:28 -!- Cerise has changed nick to Guest43821. 15:57:36 -!- ais523_ has joined. 15:57:53 To me Wave is an experiment by Google to see how long they can hold the attention of people with a product that makes no sense. 15:57:56 Discuss. 15:59:21 Can we discuss it on Google Wave? 16:00:23 hey that would be discriminating against people who have never used it and don't know what it is really about 16:01:20 AnMaster: The relational operators (<, >, <=, >=, ==, !=) are also specced to yield either 0 or 1 always. 16:01:27 oerjan: in favour of people who have used it and don't know what it is really about? 16:01:57 exactly! maybe. 16:02:20 fizzie, yeah, but since it is supposed to be a generic test suite for any function that is supposed to do the same thing basically, I can't know it isn't implemented using bitwise operators for example 16:02:56 bitstupid 16:02:57 Well, the !!x you mention is a reasonably common idiom too. 16:03:08 Bitsilly operators should exist. 16:03:15 fizzie, what would they do? 16:03:30 I don't know, something silly. Being always so serious, silliness does not naturally come to me. 16:03:34 you'd think that would be obvious from the name... 16:03:57 * AnMaster thinks C are missing some useful operators: logical xor, bitwise and logical nor/nand. And what about nxor? 16:04:13 logical xor is != 16:04:28 oerjan, 2 != 4 16:04:30 both are true 16:04:34 so not really 16:04:47 you need a !! there on either side 16:04:48 erm so you mean converting to bool first 16:05:01 oerjan, hm? 16:05:07 well you could do that or the !! thing 16:05:22 The nfoo operators aren't so popular; they're always so negative. 16:05:37 you can have just one ! on each side actually 16:05:56 And the hypothetical logical ^^ operator has the "can't be sensibly short-circuiting" problem. 16:06:13 fizzie, oh good point 16:06:20 And also the "looks like one of those anime-style smileys" problem. 16:06:29 FAIRY GODPA--- oh wait, wrong channel to put my obsesion in. 16:06:31 oerjan, yeah for this one. 16:07:05 also for nor/nand via &&/|| 16:07:14 well yeah 16:07:19 oerjan, what about nxor? 16:07:29 oh also we forgot xand and nxand 16:07:30 == 16:07:35 not that those make sense 16:07:45 but with !s there too 16:07:52 oerjan, well yes 16:08:04 oerjan, but what about bitwise ones? 16:08:14 would that be ~a == ~b? 16:08:19 instead of !a == !b 16:08:25 for nxor 16:08:29 no 16:08:34 ~(a ^ b) 16:08:43 oh right 16:08:44 good point 16:09:22 oerjan, still, we need xand. First we need to figure out a meaning, because it currently has none. 16:09:32 Isn't that usually called XNOR? Well, I guess NXOR makes as much sense. 16:10:15 yes it's called XNOR 16:11:38 I've seen NEXOR, but it was in a really old book 16:11:43 XNOR is much more common nowadays 16:11:48 or occasionally EQV 16:11:52 If you start on that road, you might as well provide all 16 bitwise ops, even the always-false and always-true ones. 16:12:01 MOV! 16:12:25 NEXNANDORXOR 16:13:10 fizzie: 14 is enough 16:13:11 xneither snow xnor rain xnor heat 16:14:11 1 is enough 16:14:12 xehird: if a variable relates to the existence of asiekierka, outputs 0 16:14:16 if it doesn't, outputs 1 16:14:45 i'd have expected some more 0 cases 16:14:51 well 16:14:54 these are all i recall 16:15:07 was just about to say that, but couldn't figure out a funny way to do it. 16:15:10 xehird: if a variable relates in any way to asiekierka, outputs 0 16:15:19 if a variable relates to the topic, unchanged 16:15:22 otherwise, 1 16:16:02 i'm not sure you got the joke 16:17:11 xoklofok on the other hand cannot possibly output just 0 or 1 16:17:32 although o is an option 16:21:05 *chirp* 16:21:22 well *you* do this integral 16:21:25 xasiekierka always outputs either 1 higher than the max number possible (for binary it's 2) or UNDEFINED. 16:21:57 for an infinite range, output *WHOOSH* 16:22:14 no 16:22:20 for an infinite range outputs INFINITY+1 16:22:47 * oerjan wonders if this counts as a meta-*WHOOSH* 16:23:16 :D 16:23:20 i don't get it, but it's funny 16:23:28 what about a range of 0 to *WHOOSH* 16:24:57 IMO it'll be *WHOOOSH* 16:25:28 plausible 16:35:59 "xoklofok" is redundant, there's only one oklofok, so it makes no sense to make the operator exclusiv 16:36:03 *exclusive 16:36:11 (excuse my Finnish) 16:41:38 -!- ais523__ has joined. 16:41:53 wait, that makes no sense 16:41:58 that's my IP address, yet I didn't join 16:42:12 also, it knows my nickserv password 16:42:33 theory: my laptop disconnected from the internet and automatically reconnected 16:43:26 and if it's correct, ais523 will time out or reset within a few minutes 16:46:05 finnish? 16:46:48 oklofok: leaving off trailing Es is a common AnMaster typo 16:46:52 when they come after a v 16:47:08 right swedish = finnish 16:47:31 (we can't have v as a suffix) 16:47:33 ais523_, hm? Where was it? 16:47:41 AnMaster: it's a typo I made 16:47:48 "exclusiv" for "exclusive" 16:47:51 ah 16:47:57 and then I thought it was your style once I'd made it 16:48:02 ais523_, I don't think I made that specific one? 16:48:08 probably not 16:48:12 some yes, but that specific one seems very strange to me 16:48:25 god i hate this course, none of the integrals can ever be calculated 16:48:26 ais523_, what about your laptop you said? 16:48:35 i mean seriously error function stuff 16:48:38 it's connected as ais523 or ais523__, possibly both 16:48:51 always some neat little trick you have to use 16:49:11 ais523_, well automatically reconnecting is a common behaviour of irc clients and bouncers 16:49:14 well,* 16:49:14 meanwhile, I'm waiting for students on this Java course to turn up 16:49:23 AnMaster: yes, but you'd expect them to disconnect the original 16:49:25 (now that is another common typo, forgetting the , after "well") 16:49:54 ais523_, well, it would possibly take a bit to timeout. Especially if your client isn't set up to automatically ghost it 16:50:10 autoghost would be insane from my point of view 16:50:21 public class JavaCourse 16:50:24 given that when one connection's being flaky, I often connect on another one 16:50:37 it wouldn't make sense for the flaky one to automatically boot off the consistent on 16:50:39 *one 16:50:58 ais523_, good point 16:51:56 -!- ais523 has quit (Read error: 110 (Connection timed out)). 16:52:49 ah good, the world is sane 16:52:52 -!- ais523_ has changed nick to ais523. 16:53:42 well, I don't mean that, that's an obviously incorrect statement 16:53:51 I mean, it's slightly saner than I feared it would be 17:02:05 okay this time a potential function existed, so there was no reason to start integrating over the closed path 17:03:11 i guess you could think of it as leading in the right direction, because the wrong direction leads to an impossible integral.... it's just kinda annoying if you don't recognize it's an impossible one 17:05:14 hm while it is possible in English to get two copies of the same word after each other ("that that" for example), is it possible to come up with one that has three copies of the same word after each other? 17:05:26 buffalo^n 17:05:41 oh true. 17:05:53 what about three "that" then? 17:06:26 who said that that that has been said, has been said 17:06:32 ...i'm not sure that's a very good one 17:06:47 oklofok, could you put out () to show parsing order please XD 17:07:10 oklofok: that's missing a pair of quotes 17:07:10 meta-discussion about that (that that)? 17:07:18 ais523: no 17:07:39 "that that has been said" just isn't very good english. 17:07:43 that which 17:07:44 -!- ais523 has quit ("Page closed"). 17:07:52 hm right 17:07:56 -!- ais523__ has quit (No route to host). 17:08:01 sigh 17:08:25 oklofok, so it is "who said that (that that has been said), has been said"? 17:08:39 there's a german example with something like '...das, dass das "das, das", das das...' 17:08:48 heh 17:08:54 i took that, and tried to remove quotes, because that's cheating 17:09:07 i mean 'eric said "that that that that that that that"' 17:09:28 oklofok, what about: "using that that that construct outside contrived examples is really irritating"? 17:09:30 and yes, that's what i meant 17:10:03 that's kinda of quoted too 17:10:05 *kind 17:10:09 oklofok, well yes 17:10:29 but outside quoting/meta-discussion I can't think of any example 17:10:44 even your first one was kind of quoting 17:11:54 oh god oh man 17:11:58 i just compiled DC for the C64 17:12:01 after a lot of getopt removals 17:12:03 it's 46kb 17:12:09 seeing as the C64 has 64kb of memory 17:12:10 this sucks 17:12:22 DC? 17:12:27 -!- ais523__ has joined. 17:12:27 Desk Calculator 17:12:28 as in dc(1)? 17:12:31 -!- ais523__ has changed nick to ais523. 17:12:36 yes i guess 17:12:45 d(esk) c(alculator) 17:12:51 the good thing is it at least COMPILED 17:12:55 asiekierka, I never heard of dc(1) being called "desk calculator" 17:13:08 i'm not sure if it's dc(1) 17:13:09 AnMaster: the that's are not at all quoted in mine, i don't refer to a that, except as a pronoun 17:13:25 3 3 + p 17:13:25 6 17:13:26 http://en.wikipedia.org/wiki/Dc_(computer_program) 17:13:28 asiekierka, that matches? 17:13:31 yes 17:13:35 right same then 17:13:38 "Dc is a reverse-polish desk calculator which ---" starts my man page. 17:13:52 DC = Desk Calculator 17:13:59 fizzie, same, except mine omits the word "desk" 17:13:59 heh 17:14:43 fizzie, actually mine as "dc" in lower case too 17:14:47 even at start of sentence 17:15:03 i'll attempt dc 1.03 17:15:24 asiekierka, don't use GNU one 17:15:30 use a BSD one 17:15:33 it will definitely be smaller 17:15:38 What sort of calculator is GNU bc, then? Blobby? ("Basic", says the WP disamb page.) 17:15:40 good idea 17:15:50 bc = bloated calculator 17:16:09 fizzie, bc is POSIX, while iirc dc isn't? 17:16:15 I might misremember that though 17:16:23 dc was in unix back in the 70's 17:16:26 that was assembler tho 17:16:41 At least bc has a POSIX man page but dc doesn't 17:17:05 The bc utility is implemented historically as a front-end processor for dc; dc was not selected to be part of this volume of 17:17:05 IEEE Std 1003.1-2001 because bc was thought to have a more intuitive programmatic interface. Current implementations that implement bc 17:17:05 using dc are expected to be compliant. 17:17:10 Deewiant, exactly 17:17:18 and that was quote from said one 17:17:27 I disagree however. dc is more intuitive 17:22:44 bc is just an awful bloody hack. 17:22:56 (seriously, compiling down to dc?) 17:23:21 pikhq, GNU bc doesn't do that 17:23:55 Yeah, it compiles down to a different bytecode to execute. 17:24:29 nothing wrong with compiling to bytecode before executing something 17:25:00 -!- kar8nga has quit (Remote closed the connection). 17:25:03 (for a start: often it makes execution a lot simpler) 17:26:27 It's a dc-like bytecode. 17:26:54 I have no idea what the internal bytecode of dc looks like 17:26:58 And decent chunks of the compilation logic are written in that. 17:27:06 wait what? 17:27:19 are parts of the compilation logic written directly in bytecode? 17:27:26 In bc, yes. 17:27:41 why 17:27:47 No good reason. 17:27:53 Just are. 17:27:59 what does the bytecode in question look like? 17:28:05 dc. 17:28:23 Except with random bits changed for no good reason. 17:28:25 pikhq, not like asm-style bytecode then? 17:28:36 Nope, not asm-style bytecode at all. 17:28:47 ... that wasn't what I meant 17:29:28 I meant as in "bytecode which has a model similar to that of, say, python bytecode, or one more like the bytecode of PCRE" 17:30:05 iirc the latter is not as "imperativeish" as the former 17:31:29 pikhq, ^ 17:42:00 -!- oerjan has quit ("Good night"). 17:50:39 back 17:51:10 well, GNU dc uses bc's libraries 17:51:16 and as bc is more advanced 17:51:20 it adds in bc's bloat 17:52:02 also 17:52:07 where can i find any source code for BSD dc 17:53:44 unix contained it since like the fourth/fifth unix edition 17:56:15 -!- Guest43821 has changed nick to Cerise. 17:57:14 -!- coppro has quit (Read error: 110 (Connection timed out)). 17:59:18 an old unix DC is 35kb of PDP-11 assembler 17:59:34 asiekierka, good luck porting that. 17:59:38 no i won' 17:59:39 t 17:59:43 i am not touching assembler 17:59:50 boring 17:59:53 Just... no 18:00:29 ATM: browsing the source for the 7th edition and seeing if it got any bette 18:00:31 r 18:00:47 YES 18:00:48 YES 18:00:50 asiekierka, write your own implementation? 18:00:52 duh 18:00:53 a 31 kb dc.c file 18:00:56 also i love porting 18:00:58 i hate coding 18:01:02 *shrug* 18:01:19 as an exercise i'll attempt porting that 18:01:20 as i'm crazy 18:01:28 oh wait 18:01:30 i won't 18:01:37 why not? 18:01:49 it looks insane 18:02:01 asiekierka, so? 18:03:04 hah. "too many errors" 18:03:07 and "obsolete feature" 18:03:13 This'll take a WHILE... 18:04:48 * AnMaster looks at fpclassify() macro. 18:05:08 Nasty, it evaluates the parameter several times in the glibc implementation 18:06:48 one thing that had to be done is move "main" to the end 18:10:38 happy australian mailman reminders day! 18:10:58 ais523, hah 18:11:08 it's a holiday that can't be missed 18:11:10 ais523, fpclassify() is really nasty 18:11:35 wait, it is 1 December already over there? 18:12:08 oh yeah, in local time I'm 20 in... uh.. 24-(19+18/60) hours 18:12:45 AnMaster: 1 December is your birthday? 18:12:48 ais523, yes 18:13:31 happy australian birthday, then 18:13:37 hah :) 18:13:38 thanks 18:14:37 oh my 18:14:43 that source code is a retarded mess 18:14:50 this is your last day of being a teenager, ever 18:15:05 ais523, I'm aware 18:15:08 ais523, is that bad? 18:15:13 probably irrelevant 18:15:29 "Can you guess what this dc program is doing? (There should be an International Obfuscated DC Code Contest...)" 18:16:05 i agree 18:16:07 IODCC 18:17:11 i'll upload the source code on my server 18:18:46 there's even old sed code there 18:19:29 -!- ais523 has quit (Remote closed the connection). 18:19:32 AnMaster: big birthday party coming up huh? 18:19:45 http://asiekierka.boot-land.net/dc-old.zip - that's for you, AnMaster, as a birthday present maybe 18:20:03 am i invited 18:20:03 asiekierka: if you want to port a light dc, maybe you have more luck with p9p version 18:20:07 http://code.swtch.com/plan9port/src/tip/src/cmd/dc.c 18:20:13 roughly 2300 lines, no asm 18:20:18 hm 18:20:23 oklofok, no, that was moved to last Sunday due to tomorrow being inconvenient. I would have been unable to attend at all for example 18:20:28 it uses some plan9 libs, but it should be easy to by-pass that 18:20:32 thank you, yiyus 18:20:34 and not a big party. Just a few relatives 18:20:37 I hate big parties 18:20:44 i think this one may roughly be related to the unix v7 one 18:21:02 yup 18:21:16 it is a port of (probably a bit newer) the version from unix v7 18:21:22 so someone did what i was doing 18:21:24 LOL 18:21:41 traditionally i've sat alone in my room during birthdays and avoided all human contact, but it's become slightly harder now that i live with a girl. 18:21:51 well, it is probably a port from the last research unix from bell labs 18:22:23 hey 18:22:24 oklofok, heh 18:22:26 but maybe i could get like a lock 18:22:26 that compiles farbetter 18:22:44 in fact, plan9 dc was a port from unix, p9p dc is a port to unix from plan9 dc 18:22:48 oklofok, oh? 18:22:50 it is an infinite loop 18:22:57 oklofok, why that extreme? 18:23:02 :D 18:23:13 well kinda hard to be alone without a lock 18:23:13 so it's a port of a port 18:23:16 while i only attempted a port 18:23:38 girls are always like uhh big day let's cuddle 18:24:04 oklofok, anything wrong with that? 18:24:49 well it's against the tradition. 18:25:12 but i lived with the chick when i had my last birthday too, so it's kinda too late. 18:25:44 also one before that was with a girl, but that was after midnight, so it doesn't count 18:26:21 but when i turned 18 it was awesome, i was alone all weekend, just coding up some random shit 18:27:12 ok, so far changed errors and fixed them 'til line 766 18:29:49 Blk* 18:29:49 div(Blk *ddivd, Blk *ddivr) 18:29:52 agh, what now 18:32:06 Variable idetifier expected (a lot) and unidentified symbols for ddivd and ddivr 18:34:28 -!- adam_d has joined. 18:37:17 -!- quantumEd has joined. 18:48:35 line 814 18:48:35 Blk* div(Blk *ddivd, Blk *ddivr) 18:48:35 3 "variable identifier expected" 18:48:35 and 2 "undefined symbol:" one for 'ddivd' and one for 'ddivr' 18:48:43 my porting is currently stuck at thi 18:48:45 s 18:51:31 asiekierka, try another compiler that shows column too? Like clang? 18:51:33 or icc 18:52:14 * AnMaster is busy with a report with deadline soon 18:53:32 i can't 18:53:35 it's for the 6502 18:53:36 geez 18:53:38 i can only use cc65 18:53:48 OR i could port an old C compiler to the C64 18:53:52 then use it to compile dcv 18:53:53 dc* 18:57:38 asiekierka, you could first make it compile with a modern one, then use that specific one? 18:57:46 assuming it is reasonably modern 18:57:56 i made it compile with a modern version of dc 18:57:58 if that's what you mean 18:58:01 asiekierka, no 18:58:01 but as it's hellabloated 18:58:05 as in modern compiler 18:58:08 oh, a modern COMPILER thing 18:58:10 maybe 18:58:15 port it to current gcc. Then port it to that thing 18:58:27 assuming cc65 isn't quite as messy 18:58:36 also porting a C compiler to C64 would be more work 18:58:46 since that isn't just "make C compiler itself compile" 18:58:59 heh 18:59:00 it is "rewrite parts of the C compiler to generate code for this system instead" 18:59:02 i know 19:01:50 well, cc65 works like this: turn C into ASM -> compile ASM :P 19:17:47 -!- Gracenotes has joined. 19:34:23 -!- ais523 has joined. 19:40:00 -!- asiekierka has quit (Read error: 110 (Connection timed out)). 19:50:05 -!- MigoMipo has joined. 20:06:56 -!- augur has joined. 20:14:29 AnMaster: Depends on the C compiler. 20:15:12 * pikhq says useless things 20:20:41 pikhq, oh? 20:20:59 pikhq, well, unless llvm has a backend for C64... 20:21:04 PCC and Small-C are easy to port, for example. 20:21:14 ... Oh, an LLVM-based compiler? That sounds painful. 20:21:20 pikhq, what? 20:21:28 pikhq, you mean like clang? 20:21:34 Yeah. 20:21:39 That'd be painful to retarget. 20:21:47 just write a new backend for llvm, and some system specific header files and you are done 20:22:11 system specific header files = stuff like updating limits.h and such 20:22:16 well you might need a few more 20:22:27 to actually tell the frontend of the sizes of those variables too 20:22:29 still 20:22:40 way easier than something like gcc I imagine 20:22:58 Small-C and PCC would be trivial to retarget. 20:23:08 Though Small-C only supports a subset of C. 20:23:40 (no structs or unions, and is K&R) 21:19:33 -!- kar8nga has joined. 21:36:18 -!- MigoMipo has quit. 22:16:56 -!- kar8nga has quit (Remote closed the connection). 22:19:13 -!- augur has quit (Read error: 110 (Connection timed out)). 22:29:54 pikhq, llvm backend is not too hard to write I think 22:30:03 considering there is a backend for PIC16 22:57:20 -!- MizardX has quit ("brb"). 23:03:24 -!- MizardX has joined. 23:18:12 -!- coppro has joined. 23:30:08 -!- augur has joined. 23:59:07 -!- BeholdMyGlory has quit (Remote closed the connection).