< 1299110415 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Narration will generally be polite, but not necessarily, and dialog will be, well, entirely natural. < 1299110450 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299110464 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, the transformation from casual to merely *polite* form is actually fairly trivial. < 1299110544 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's the higher forms of politeness that are somewhat difficult, courtesy in large part to having to replace certain verbs with more humble or honorific verbs. < 1299110582 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(though even then, it's *maybe* 20 verbs that do that, and for the rest it's a regular transformation?) < 1299110587 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/?/./ < 1299110625 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And, as I said, that feature of Japanese seems to be in the process of dying out. < 1299110687 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anyways. Yeah, Tae Kim seems quite misinformed on Heisig. But his guide on grammar I still find to be an invaluable resource. < 1299110713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Rite. < 1299110789 0 :cheater-!~cheater@g229028024.adsl.alicedsl.de JOIN :#esoteric < 1299110944 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Really, most everyone's idea on how to introduce basic Japanese grammar is motherfucking retarded. < 1299110951 0 :cheater00!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299110970 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :BTW, regarding oil prices, it seems that WTI prices are exceptionally low (in the past, WTI and others have been highly correlated, but seems that the correlation has broken a bit lately). < 1299110979 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hrm. < 1299111082 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299111284 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So, Other again failed to realize that it was me texting. < 1299111925 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299112005 0 :pumpkin!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299113144 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Y'know, ICANN *really* need to be made independent of the US. < 1299113155 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Needs, even. < 1299113281 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :For those who are unaware, ICANN *contracts with the US federal government* to administrate DNS. I am not fucking kidding. < 1299113341 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Oh, and all of IANA. < 1299113491 0 :pumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299113560 0 :Ladyboy_Who_Smel!~Anon@cpe-98-154-37-244.socal.res.rr.com JOIN :#esoteric < 1299113578 0 :Ladyboy_Who_Smel!unknown@unknown.invalid PRIVMSG #esoteric :helu < 1299113634 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It boggles the mind that the US could, if sufficiently insane, bring down DNS. < 1299113651 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1299113697 0 :mtve!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299113707 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi Ladyboy_Who_Smel < 1299113738 0 :Ladyboy_Who_Smel!unknown@unknown.invalid PART #esoteric :? < 1299113745 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Alas poor Ladyboy_Who_Smel. < 1299113761 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I knew him and/or her and/or it well. < 1299113923 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I mean, gah, the President of the United States could order the Department of Commerce to distribute an empty root zone, and bam. DNS is down. < 1299114038 0 :mtve!~mtve@65.98.99.53 JOIN :#esoteric < 1299114074 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :M T V E, M T V E < 1299114082 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Dammit, that didn't come out as I wanted < 1299114190 0 :comex!unknown@unknown.invalid QUIT :*.net *.split < 1299114448 0 :comex!comex@c-67-188-10-190.hsd1.ca.comcast.net JOIN :#esoteric < 1299114507 0 :pumpkin!unknown@unknown.invalid QUIT :Quit: Computer has gone to sleep. < 1299114572 0 :comex!unknown@unknown.invalid QUIT :*.net *.split < 1299114681 0 :GreaseMonkey!~gm@2001:4428:251:1:21f:16ff:fe68:a55 JOIN :#esoteric < 1299114681 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Changing host < 1299114681 0 :GreaseMonkey!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1299114911 0 :comex!comex@c-67-188-10-190.hsd1.ca.comcast.net JOIN :#esoteric < 1299114956 0 :Behold!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299115144 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Would this be a fair way of describing what happened: < 1299115159 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"I either win the lottery or I don't. Therefore, I have a 50% chance of winning" < 1299115416 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Clearly fallacious. < 1299115476 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, is that pretty much what he did, or is there any merit in the claim that it somehow depends on whether it's discrete or binomial (and the lottery question is an example of just one of those)? < 1299115522 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: It's a straight-up fallacy. < 1299115583 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: The presence of two possibilities *in no way* indicates that there is a 50% chance of either one. < 1299115618 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think whatever his "clarification" on Monday is, I'll present it here. Until then, I'm going to continue assuming he's an idiot. < 1299115872 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299116245 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :copumpkin, how do you deal with idiot professors? < 1299116253 0 :copumpkin!unknown@unknown.invalid PRIVMSG #esoteric :I don't < 1299116321 0 :copumpkin!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1299116363 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1299116575 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Huh. < 1299119484 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299120228 0 :augur!~augur@pool-108-56-53-195.washdc.east.verizon.net JOIN :#esoteric < 1299120719 0 :comex!unknown@unknown.invalid QUIT :Quit: ZNC - http://znc.sourceforge.net < 1299120743 0 :comex!comex@c-67-188-10-190.hsd1.ca.comcast.net JOIN :#esoteric < 1299122289 0 :bsmntbombdood!~gavin@c-24-9-98-117.hsd1.co.comcast.net JOIN :#esoteric < 1299123123 0 :IntelMeth!~otter83@CPE-121-212-246-241.static.nsw.bigpond.net.au JOIN :#esoteric < 1299123340 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299123837 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1299126423 0 :Mathnerd314!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299126723 0 :elliott!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1299126848 0 :RodgerTheGreat!~rodger@71-13-218-144.dhcp.mrqt.mi.charter.com JOIN :#esoteric < 1299126857 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hey dudes < 1299126881 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's been a while since I stopped by, but I just finished a project you folks might be able to appreciate < 1299126913 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :It's a simple Forth VM and compiler written in PostScript: https://github.com/JohnEarnest/Four.Ps < 1299127548 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What a coincidence; elliott (was ehird) (seems to have pinged out and probably went to sleep) has been trying to get an x86 Forth in a boot sector. < 1299127593 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though, given that it's elliott, he may have given up on that. < 1299127622 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1299127645 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, 512 bytes is *probably* enough for at least a bootstrap compiler < 1299127646 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And given that that's insanely tiny even by Forth standards, well, I wouldn't blame him. :P < 1299127699 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the main challenge is that most designs require some sort of basic dictionary to begin with, and they can eat up a lot of space < 1299127729 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Be a bit easier if there were enough space to get a decompressor going. < 1299127733 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1299127745 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :UPX was my next thought < 1299127757 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I think that only eats up a little over a hundred bytes < 1299127766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Really? Dang. < 1299127771 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lemme see < 1299127852 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://upx.hg.sourceforge.net/hgweb/upx/upx/file/8a3a08e9ed7f/src/stub/src/i086-dos16.exe.S ? < 1299127873 0 :IntelMeth!unknown@unknown.invalid PART #esoteric :? < 1299127980 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The actual decompression code is probably big. < 1299127997 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's hard to find good numbers < 1299128021 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :but I know a modified form of UPX has been used in 4k intros, so the decompression stub is pretty tiny < 1299128106 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :there is also Crinkler, which reportedly has a decompressor that is about 220 bytes: http://crinkler.net/ < 1299128206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Possible issues: not bare metal. < 1299128264 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :as in you think crinkler takes advantage of windows stuff, or are you pointing out that a bootloader has to kick into protected mode, etc in addition to whatever work you want done? < 1299128301 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's likely it takes advantage of Windows stuff. < 1299128323 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :IIRC elliott had getting into protected mode down to something pretty tiny. < 1299128364 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I think it's usually only a handful of instructions, but they would probably have to go outside the decompressor < 1299128376 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :which makes them comparatively more expensive < 1299128800 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :anyways, if anyone thinks my postscript thing is spiffy just let pikhq know and I can drop by again later < 1299128808 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :'night all < 1299128811 0 :asiekierka!~asiekierk@078088172176.elblag.vectranet.pl JOIN :#esoteric < 1299128826 0 :RodgerTheGreat!unknown@unknown.invalid PART #esoteric :? < 1299129585 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :For those confuséd, RodgerTheGreat and I still have an IRC channel in common. < 1299129758 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :s/confused/who care/ < 1299129918 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299130120 0 :pikhq_!~pikhq@71-219-204-161.clsp.qwest.net JOIN :#esoteric < 1299130124 0 :pikhq!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299130595 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1299131469 0 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1299132969 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299133117 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299134865 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299134983 0 :Sgeo_!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299135667 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299135747 0 :Sgeo__!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299135843 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299135915 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299135931 0 :Sgeo_!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299135990 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299136041 0 :Sgeo__!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299136173 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299136912 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1299137370 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : I'm sure the conspiracy is to cover up how powerful term rewriting is. < 1299137390 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(x): -> (x)(x), (x)^ -> x, bitches! < 1299137419 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :THWART THE GOVERNMENT, PUT THAT ON T-SHIRTS! < 1299137481 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :15:43:35 * Lymia sees insane people < 1299137481 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :15:43:38 Nothing out of the ordinary. < 1299137493 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's the dead insane people you should be worried about. < 1299137649 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : Can anyone give me a rationale for defining many different objects and reïterating, except much more tediously, that they form a group, a monoid, a field, etc., before teaching those damned concepts? < 1299137687 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well i think maybe you need at least a couple examples first to show that the general concepts are _useful_. < 1299137884 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299137884 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : "I hope this ranks #1 in google for “Heisig douche bag” (Updated)" < 1299137891 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sadly just #3, it seems < 1299137964 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait #2 < 1299138064 0 :Sgeo_!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299138550 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : pikhq, is that pretty much what he did, or is there any merit in the claim that it somehow depends on whether it's discrete or binomial (and the lottery question is an example of just one of those)? < 1299138559 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :binomial _is_ a form of discrete. < 1299138699 0 :uniqanomaly_!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299138922 0 :cheater-!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299139072 0 :cheater-!~cheater@e181131218.adsl.alicedsl.de JOIN :#esoteric < 1299139199 0 :clog!unknown@unknown.invalid QUIT :ended < 1299139200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1299139290 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Quit: The Other Game < 1299139434 0 :uniqanomaly!~ua@dynamic-78-8-217-114.ssp.dialog.net.pl JOIN :#esoteric < 1299139508 0 :wareya_!~wareya@cpe-74-70-142-220.nycap.res.rr.com JOIN :#esoteric < 1299139725 0 :wareya!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299140271 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299140298 0 :uniqanomaly!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299140300 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299140574 0 :uniqanomaly!~ua@dynamic-78-8-212-201.ssp.dialog.net.pl JOIN :#esoteric < 1299140801 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1299142125 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299142307 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299142440 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1299143901 0 :Behold!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1299144037 0 :MigoMipo!~John@84-217-7-59.tn.glocalnet.net JOIN :#esoteric < 1299144129 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299144354 0 :quintopia!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299144361 0 :Behold!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299145174 0 :myndzi!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299145213 0 :pingveno!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299145555 0 :pingveno!~pingveno@c-98-246-133-8.hsd1.or.comcast.net JOIN :#esoteric < 1299148640 0 :cheater-!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299148668 0 :cheater00!~cheater@g230228008.adsl.alicedsl.de JOIN :#esoteric < 1299149613 0 :fizzie!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1299149618 0 :fizzie!fis@iris.zem.fi JOIN :#esoteric < 1299149982 0 :cheater00!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299150072 0 :cheater00!~cheater@e181135061.adsl.alicedsl.de JOIN :#esoteric < 1299150414 0 :myndzi!myndzi@c-76-28-158-10.hsd1.wa.comcast.net JOIN :#esoteric < 1299150814 0 :pikhq!~pikhq@174-22-185-163.clsp.qwest.net JOIN :#esoteric < 1299150828 0 :pikhq_!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299151444 0 :pikhq_!~pikhq@71-219-247-59.clsp.qwest.net JOIN :#esoteric < 1299151497 0 :pikhq!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299153133 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1299153226 0 :pikhq_!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299153236 0 :pikhq!~pikhq@71-219-214-16.clsp.qwest.net JOIN :#esoteric < 1299153563 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299153594 0 :Patashu!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299153903 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1299157772 0 :webquint!803d3160@gateway/web/freenode/ip.128.61.49.96 JOIN :#esoteric < 1299157786 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :aw damn < 1299157796 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :quintopia really is offline < 1299157817 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :must have waited too long to pay >.> < 1299157958 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :is there a way to start a process, and then later connect other processes' stdout to that process's stdin temporarily? or is this the sort of thing one must use sockets for? < 1299158029 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You could use a named fifo as the stdin of the first process; then you can write into it from different sources. < 1299158154 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :oh wait! fifos! couldn't i have a process watch /several/ fifos? < 1299158180 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :also, how does one create a fifo from C? < 1299158269 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you're writing the code that is to be the process, sure, you can watch multiple pipes if you like. < 1299158291 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also, if you're doing all the process creation from within a single program, you can just use pipe(2) and unnamed pipes. < 1299158327 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :no, i want to be able to start all processes separately from the command line < 1299158351 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well... you can use mknod(2) to create named pipes. < 1299158391 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :With mknod(pathname, S_IFIFO, 0). < 1299158409 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A nitpicker would say this is POSIX and not C, though. < 1299158508 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :heh, ias long as my target system has it, i don't mind using it < 1299158569 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :this man page is hard to read < 1299158654 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :does the creator become the listener on this pipe or the sender? < 1299158696 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, for pipe(2)? < 1299158711 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: mknod(2) < 1299158729 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, don't you mean mkfifo(3) then? < 1299158739 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: i will < 1299158757 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :eh? < 1299158773 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, you will what? < 1299158779 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: i will use mkfifo(3) instead < 1299158829 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, anyway as far as I can see, you need to open the newly created fifo after the mknod/mkfifo call < 1299158834 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :right < 1299158850 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, you probably want to use open() not fopen() < 1299158869 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :okay but here's my new quandary < 1299158894 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1299158896 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :i only want one process to read it, but a bunch of processes to write it. will the file system handle the locking for me? < 1299158928 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, I don't know if that is possible < 1299158940 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :if X opens it to read, then Y open it to write, writes, and closes it and then Z opens, writes, and closes, will X read both messages? < 1299158943 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :multiple writers sound like it wouldn't be supported < 1299158953 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299158970 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :okay then what would be the best way to do that? < 1299158970 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, see fifo(7) < 1299158979 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299158980 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, well it depends on what you want < 1299159027 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :mkfifo equals mknod with S_IFIFO, but I guess it's more clean w.r.t. intent. < 1299159043 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, maybe a multiplexer program handling multiple fifos and then mixing the data up in one output fifo (if you need to work with programs you didn't write for the input and final output this might be easiest) < 1299159053 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, or you might prefer unix sockets < 1299159067 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or maybe even shared memory < 1299159089 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :i want a central "server" process that any process, upon being started, can notify of its existence. < 1299159091 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also, writes of less than PIPE_BUF bytes are required to be atomic, when it comes to multiple concurrent writes. < 1299159106 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: shared memory. how to do that? < 1299159107 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, then the question follows: to what end? < 1299159110 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(On Linux I think that's one page, i.e. 4k bytes.) < 1299159162 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so you can do multiple writers to a single fifo? < 1299159167 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes. < 1299159172 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :well then webquint can use that < 1299159184 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1299159187 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :actually, i think i'm required to use that. < 1299159192 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :but how does it work. < 1299159199 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, "required"? < 1299159203 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :some assignment? < 1299159208 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299159217 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and then the question follows: required to use what? pipes? shm? < 1299159220 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But the writes can get interleaved if they are more than PIPE_BUF bytes and happen at the same time. < 1299159236 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, right. You have to adjust your data format for that < 1299159280 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, anyway it looked like you needed your fifo reader in non-blocking mode if I understood " if X opens it to read, then Y open it to write, writes, and closes it and then Z opens, writes, and closes, will X read both messages?" correctly < 1299159314 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why that would need a non-blocking pipe. < 1299159331 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm maybe not < 1299159334 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But the FIFO reader needs to not give up on EOF, since I think a pipe reads as EOF if all the write ends are closed at the moment. < 1299159349 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: "All of the data carried in this service must be done in shared memory." < 1299159360 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, so it *is* an exercise. < 1299159361 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, if you only want to notify (no payload data) simply sending SIGUSR1 or should would be easier < 1299159369 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, which type of shared memory? < 1299159379 0 :webquint!unknown@unknown.invalid PRIVMSG #esoteric :i don't know? < 1299159423 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :shm_overview(7) on linux. You could use mmap as well. < 1299159427 0 :quintopia!~quintopia@74.117.158.92 JOIN :#esoteric < 1299159427 0 :quintopia!unknown@unknown.invalid QUIT :Changing host < 1299159427 0 :quintopia!~quintopia@unaffiliated/quintopia JOIN :#esoteric < 1299159428 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's a rather strange assignment if they don't tell you. < 1299159435 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :there are yet other ways < 1299159443 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :there i paid the bill :P < 1299159459 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Wasn't the SysV shared-memory API also included in POSIX? < 1299159476 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, possibly. I haven't used shared memory much < 1299159498 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :webquint, in all cases with any sort of shared memory you will need some sort of locking unless you do cleaver atomic stuff < 1299159511 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :cleaver as in "tricky to get right" < 1299159517 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: http://pastebin.com/uXBDHGXm this is what i am given. suggest a good structure < 1299159518 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Cleaver as in meat-cleaver. < 1299159523 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :err typo < 1299159549 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :especially since you, no offence meant, seem a bit clueless about these sort of things... < 1299159594 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, *ahem* It *is* your exercise. Also xen? < 1299159601 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1299159616 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Xen's just an example there. < 1299159628 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: yes it is < 1299159636 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: and i'm going to do it myself, ain't i? < 1299159641 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, you could go with POSIX shared memory and message queues, that sounds like a reasonable fit. < 1299159642 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :just looking for suggestions! < 1299159653 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :how does posix shared memory work? < 1299159661 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, first: I have no idea about the QoS stuff there. < 1299159674 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You create a shared memory object, then map it into the memory space of more than one process. < 1299159675 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :eh i know what to do with that < 1299159678 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Then they all see the same things there. < 1299159681 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1299159689 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what about shm with mmap? < 1299159691 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and i have to handle all the mutexes myself? < 1299159709 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, likely :P < 1299159713 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :POSIX has semaphores for that; a mutex is just a special case for a semaphore, after all. < 1299159727 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But you do need to use them explicitly, yes. < 1299159728 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, of course you might get away with compare and exchange and such, depending on what you do. < 1299159744 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, can't you send fds over unix sockets I seem to remember? < 1299159769 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :As for POSIX message queues, I guess whether you can use those or not depends I guess on how literally you read the "all of the data" part of the assignment. < 1299159798 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: i take it to mean "any data bigger than a uint" :P < 1299159811 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so, complex data structures < 1299159842 0 :pikhq_!~pikhq@71-219-232-101.clsp.qwest.net JOIN :#esoteric < 1299159852 0 :pikhq!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299159863 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, in that case you could use message queues to pass around pointers into in-a-shared-memory-block requests, to get at least a queue abstraction for free. < 1299159868 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I know of three shared memory mechanisms in a POSIX environment: shm, mmap with shared flag, the stuff that happens between threads. Especially the first two look like duplicated functionality to me < 1299159899 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so message queues i can do with fifos, but what is the interface for creating process-shared memory? < 1299159921 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Read that shm_overview man page for that. < 1299159945 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, message queues are a special thing I *think* < 1299159971 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :not sure though < 1299159980 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Message queues are special, yes. But you could use a pipe as a message queue as well if you like that more. < 1299160003 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Message queues have the priority thing there. < 1299160027 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :okay what are they? < 1299160033 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Probably not useful at all for the QoS fairness thing; it's just that it's a priority queue instead of a FIFO queue. < 1299160042 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1299160059 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Read mq_overview if you want to use them; but it doesn't really buy you that much over a pipe, I guess. < 1299160066 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i was planning on using multiple-queues-per-process to get the fairness-by-slice stuff < 1299160093 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It does do the "divide the stream into messages", but if all your messages are of fixed length, that's not much of a win either. < 1299160117 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so how does one-reader-many-writers work again? < 1299160138 0 :webquint!unknown@unknown.invalid QUIT :Quit: Page closed < 1299160197 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I < 1299160216 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, why would you need a pipe at all btw? Isn't shm alone enough? < 1299160247 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: so that new processes know where to find the shared memory when they start up? < 1299160257 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Not really; you need to notify the server process somehow of a request. It can't exactly keep polling the shared memory for changes. < 1299160260 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm can't you name shm objects? < 1299160262 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1299160277 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :also what fizzie said < 1299160281 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You could use a shm object + a POSIX semaphore for signaling, I guess. < 1299160282 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you could sleep on a mutex on a shm page, no? < 1299160291 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but that's not "shm alone". < 1299160307 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it is all on top of shm however < 1299160320 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't start hand-building a mutex, though. < 1299160334 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, but doesn't posix have that already? < 1299160350 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway another way if you just want to wake up the server would be sending something like SIGUSR1 < 1299160379 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway you still need a mutex... what if the server is processing another request already when you try to touch the shm? < 1299160384 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Signals aren't "shm alone" either; and no, I don't think POSIX has "addess in a shared-memory" style mutexes, just the POSIX semaphores, which are a different object. < 1299160396 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes, that's why I said a shm object alone isn't enough. :p < 1299160425 0 :asiekierka!~asiekierk@078088172176.elblag.vectranet.pl JOIN :#esoteric < 1299160426 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, but fifos + shm wouldn't help since you could still get the multiple requests at once scenario < 1299160439 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also: mutexes are just a special case of semaphores < 1299160451 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :as you said above too < 1299160464 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : POSIX has semaphores for that; a mutex is just a special case for a semaphore, after all. < 1299160467 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1299160474 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(I was looking for that in the backscroll.) < 1299160507 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, fifos + shm is probably enough if you let the calling process be responsible for managing the shared memory, and use a separate SHM object for each "connection". < 1299160528 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's a bit awkward if the reply will end up needing more space than the client provided, though. < 1299160611 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm. see output of ipcs(1). I once ran into an issue with something fcgi-ish crashing and leaving stale open objects... (forgot which type)... Found out when I got an error it couldn't create a new one XD... Thus I'm strongly against one shm per connection < 1299160633 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway you might get away with cmpxchg on an shm page < 1299160662 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so here's what i wanted to do: when a process starts, it notifies the server, and the server replies telling it where the shared memory is and where any queues are that it is watching. when a client has a request, it puts it in a queue and includes to some pointer to where it expects the answer. the server constantly loops over all of its queues, responding to the top request in each one by putting its reply in the specified place and then wr < 1299160707 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: That sounds like a recipe for cpu-wasting polling. < 1299160709 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :split a page/number of pages into request slots. Have a byte at the start indicating if they are in use. You could do CAS on that to atomically allocate a request slot < 1299160720 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if you limit yourself to linux there are futexes iirc. < 1299160724 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(not a typo) < 1299160738 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :just for wake up < 1299160766 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :does that sound like a reasonable arrangement? < 1299160767 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There are, but they're not especially pretty. < 1299160772 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :or a recipe for disaster? < 1299160773 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and I'm pretty sure modern CPUs support MWAIT which iirc means wait for write on system bus on given address. That might be kernel only though < 1299160774 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: You got cut off at "wr". < 1299160788 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :iting a "message processed" message back to the requesting process. < 1299160858 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If the reply sizes are hard to guess in advance, you might want to make the server responsible for all memory management, so that it just tells the client where (in shared memory) the answer can be found. < 1299160884 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :eh, i get to decide what the service is < 1299160904 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i can fix reply sizes to be...an int :P < 1299160907 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, also your solution doesn't seem to sleep when there is nothing to do: "the server constantly loops over all of its queues" < 1299160942 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: good point. should the clients send a sigusr1 also? < 1299160957 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That depends on what the queues are built from, really. < 1299161012 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, there are many ways to do wakeup. signal is one of the easier ones certainly. Not sure what happens when you get a SIGUSR1 while you are processing another though < 1299161014 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :ah...fifos? :P < 1299161016 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :do they queue? < 1299161056 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what's another way to do wakeup? < 1299161061 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If the queues are pipes, you can just select()/poll() over the whole set, and easily receive the "these K queues out of the set of N have requests pending" info. < 1299161082 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1299161086 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and if it comes up zero < 1299161090 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :sleep a bit? < 1299161099 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, the select/poll will already sleep until something happens. < 1299161109 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(You can set a timeout though.) < 1299161111 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :ah explain < 1299161125 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :how to do it over the whole set i mean < 1299161134 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :IF you can limit yourself to linux it looks like there is a system call to sleep on a specific address < 1299161154 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :HOWEVER: < 1299161155 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :NOTES < 1299161155 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : To reiterate, bare futexes are not intended as an easy-to-use abstraction for end-users. (There is no wrapper function for this system call < 1299161155 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : in glibc.) Implementors are expected to be assembly literate and to have read the sources of the futex userspace library referenced below. < 1299161171 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: Well, for poll(2), you just build an array of struct pollfd's, and then call poll() on that. It will wait until something happens or your timeout expires. < 1299161181 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: That's why I said "they're not especially pretty". < 1299161195 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :"there is no wrapper function" should definitely put you off this. I just think it should be included for completeness < 1299161266 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh i like that < 1299161288 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :that seems the way to go for sure < 1299161299 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, sometimes I have to say that working closer to hardware is nicer. I mean, wouldn't it be nice to just write an interrupt handler into a table and then execute some sort of sleep instruction :P Of course it would be hard to make that work efficiently on a PC in a multitasking environment... < 1299161378 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and i could fill the "events" and "revents" fields with request ids. < 1299161389 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, you can't decide those. < 1299161398 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1299161406 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i'm confused what they do then < 1299161407 0 :Sgeo_!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299161408 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You just fill in what sort of events you are looking for in .events, and get a bitmask of which ones happened in .revents. < 1299161425 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh nvm < 1299161426 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1299161438 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299161548 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it seems like it would be easier to just use a semaphore and then when you wake up scan the queues and process any requests, then go back waiting. Hopefully this won't miss requests that come in while you are processing < 1299161572 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(as in, if there were any such it would wake you up from waiting on the semaphore right away) < 1299161582 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :it looks like i set events by ORing together a bunch of these POLLIN POLLOUT POLLPRI etc. things, and revents is set by poll when it returns? < 1299161588 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I know this can be done with threading stuff at least < 1299161590 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :s/when/before/ < 1299161610 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I don't see how that's at all easier than an old-fashioned poll/select when the requests are coming in from file descriptors. Especially with that "hope you don't miss any wakeups" problem. < 1299161631 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least poll will unambiguously say "there's data waiting in this here pipe" to you. < 1299161657 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well that bit is solved by poll and such < 1299161658 0 :Sgeo_!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299161717 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :so: wakeup, read a number of bytes, process anything you find. go back to poll. The data in the pipe wouldn't matter < 1299161778 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, still this has the issue of allocating requests in the shared memory... hm < 1299161782 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What's this "wakeup" from? I mean, if you "go back to poll", do you mean "wake up from poll"? < 1299161797 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, wakeup == wakeup from poll telling you there is stuff on the pipe < 1299161801 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1299161849 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Nurr, so confused. So if that's what you advocate -- and it's exactly what I said, too -- how exactly is using a semaphore easier? < 1299161861 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :bah, i don't see any reason to actually use shm anymore. i think i could just run all data through the queues :P < 1299161887 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Shared-memory communication can theoretically speaking be a bit more efficient. < 1299161896 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No need to copy things via a pipe buffer and so on. < 1299161930 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :good point < 1299161939 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i'll go ahead and use it < 1299162003 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : Nurr, so confused. So if that's what you advocate -- and it's exactly what I said, too -- how exactly is using a semaphore easier? <-- conceptually it is! < 1299162012 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :practically it is not < 1299162120 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Regarding the far-earlier thing about Unix domain sockets and file descriptors, yes, you can pass the latter over the former. (So you could build a system where the Unix domain socket is the way how your client finds the server; and then the server pipe(2)s some unnamed fifos for per-client communications, and sends those over the socket to the client.) < 1299162132 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure how much that feature is actually used. < 1299162145 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Certainly haven't run across any system doing it. < 1299162178 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm what is the function for sending a fd? < 1299162187 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :"The only portable use of mknod() is to create a FIFO-special file. If mode is not S_IFIFO or dev is not 0, the behav- ior of mknod() is unspecified." < 1299162189 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A shm_open()'d handle is, I think, technically a file descriptor too, so you could pass those too instead of using names. < 1299162195 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :in other words UDS is not portable < 1299162204 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, uds? < 1299162226 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :qi probably could get away with using it, though < 1299162227 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oh. unix sockets < 1299162231 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :but you don't use mknod for unix sockets afaik < 1299162240 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :sure you do < 1299162243 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Unix domain sockets are created with socket() and bind() and friends, portably. < 1299162249 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1299162255 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :hrm < 1299162268 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1299162269 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway I can't find the function for sending a fd < 1299162270 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, as portably as they go; it's not called "Unix" domain socket for nothing. < 1299162270 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what are the advantages of that solution? < 1299162285 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if I knew it I would nm -D /usr/bin/* and grep for it < 1299162323 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I think it's done with sendmsg() and some of the struct msghdr fields, but I'm not entirely sure how. < 1299162348 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That "ancillary data" mechanism. < 1299162348 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1299162351 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: does it make more sense to use the socket to register new clients? < 1299162385 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I only see stuff for sending uid there < 1299162392 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: See SCM_RIGHTS. < 1299162399 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :meh strange name < 1299162401 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"Send or receive a set of open file descriptors from another process." < 1299162429 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oh well, hard to grep for that < 1299162436 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: More sense than to use what? < 1299162463 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :a multiple-writers fifo with a commonly-known name < 1299162483 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, the socket does let you send some answers back more easily. < 1299162491 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A fifo is strictly one-directional, after all. < 1299162529 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you want to answer with something like "here's the queue just for you, and here's the shared memory object name I want you to use", or whatever. < 1299162605 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh, it didn't occur to me that the client would have anything to send to the server upon appearing < 1299162609 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1299162644 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :still can't think of anything the client would need to say to the server actually < 1299162651 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :Is there a way to *search* the channel logs (without downloading them and running grep) < 1299162672 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :google < 1299162684 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :You don't have permission to access /~coreyr/ on this server. *sigh* < 1299162691 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: "multiple-writers fifo" == your clients hold the write end; the server can't say anything to the clients via that. < 1299162701 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1299162703 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1299162710 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what i meant was multiple-readers < 1299162729 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and yeah < 1299162738 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i just thought of some things they might want to tell the server < 1299162742 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i'll go with the socket :P < 1299162849 0 :copumpkin!unknown@unknown.invalid QUIT :Quit: Computer has gone to sleep. < 1299163031 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1299163043 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299163072 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so socket with AF_UNIX creates a UDS...seems like datagrams would be sufficient here...it's been so long since i've used these functions O_O < 1299163301 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299163305 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Then you usually bind() it with a sockaddr_un structure that has a path name in it. < 1299163314 0 :yorick!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1299163387 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :aka, a path on the filesystem? < 1299163411 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and then the client connects using connect() with the same path? < 1299163448 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, with datagram sockets you don't need to connect() them necessarily. < 1299163498 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :meh - script + grep works < 1299163571 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: it looks like you need to in order to use a socket on the client end? how else would it work? < 1299163634 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If it's a SOCK_DGRAM socket you can send without connecting, with sendto or sendmsg with the name field specified. < 1299163653 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A connect() call just sets a default target address for it. < 1299163707 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and how would the client receive dgrams from it? poll(2)? < 1299163722 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :eh that can't be enough < 1299163724 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh, you just recv/read. < 1299163726 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1299163768 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not quite sure how it works with unnamed datagram unix sockets and reply-sending, actually. < 1299163796 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1299163843 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :With stream sockets, your server would listen() + accept() a second socket that would represent a connetion between the client and the server. < 1299163893 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you just send a datagram from an unnamed socket, I'm not sure if it can be replied to. < 1299163904 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :the goal for the client would be to write to it then immediately block on reading from it. the goal for the server would be to read from it next opportunity it gets, and write back to it. < 1299163962 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but I don't know how you "write back", since you certainly can't just write back to the server socket you've bound to the well-known path. < 1299163975 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since that socket isn't connected to anything. < 1299164002 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :wharrgarbl. if i were to switch to connection-based sockets, then what's the point of using fifos to begin with? might as well do everything over the socket! < 1299164032 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You might, yes. :p < 1299164058 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since you already have a nice bidirectional queue there. < 1299164098 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :a server like that is usually handled by having a different thread for each connection < 1299164108 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :which means i could kill two birds with one stone here < 1299164127 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not really; single-threaded select/poll-driven servers are pretty viable too. < 1299164139 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :is there a pre-built way to do QoS with pthreads? < 1299164144 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1299164159 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :a nice standard fractional scheduler? < 1299164177 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The assignment description makes the server sound pretty single-threaded. < 1299164220 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299164220 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :it might be...but that's up to me isn't it? :P < 1299164229 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :As for pthreads, I think the thread scheduling is pretty implementation-defined. < 1299164241 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i will do it single-threaded if that's the only way to do QoS < 1299164358 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i have to go think. bbl. < 1299164613 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ARRRRRRRRRRRRRRGH < 1299164615 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :SOMALIAAAAAAAAAAAAAAAAAAAAA < 1299164693 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The pthread scheduling functions I can see seem more related to the realtime threads; there's the SCHED_FIFO/SCHED_RR schedulers, but they're I think the same as sched_setscheduler, and for usually-superuser-only realtime-ish threads, not for some sort of inside-a-process fractional scheduling. (Besides, the assignment descrption makes it sound like you have to count requests, not amount of time used to service those requests.) < 1299165001 0 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1299165015 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: May I suggest, incidentally, using my IPC library I wrote for an earlier course? It does between-process communication by sending morse code with SIGUSR1 and SIGUSR2. It's the obvious choice when efficiency is at premium. < 1299165369 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :APNIC down N/A: 16k to Indonesia, 2k+1k to Japan, 3x512k+2x256k to China, 1M+256k to India, 512+256 to Thailand. No IPv6 allocations. < 1299165401 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Another day, another ~0.20 burned. :-/ < 1299165435 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What's the N/A there? (I've wondered this earlier.) < 1299165459 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :In this case, the figure does not seem to be available yet. < 1299165493 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299165504 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Ah, just got it: 0.21. < 1299165546 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And why it's "No IPv6 allocations" every day?-) < 1299165563 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, for the more with sigusr1/usr2 do you do some feedback? iirc duplicate signals can merge < 1299165570 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. :-) < 1299165604 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, I just do it slow enough. < 1299165612 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, unreliable < 1299165644 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you should send a sighup back for every signal you get. Unless you use FEC? < 1299165664 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So's UDP. You can do an app-level protocol for that. < 1299165693 0 :pumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299165700 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, when you said morse, did it encode using morse or did it just use them for 0/1 ? < 1299165751 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, udp still does checksum though, no? < 1299165793 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : SOMALIAAAAAAAAAAAAAAAAAAAAA <-- what about it? (should I check the news today?) < 1299165805 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: SOMALIAAAAAAAAAAAAAAAAAAAAAAAAA < 1299165805 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1299165826 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It does the morse code encodings with USR1 = short, USR2 = long, and then timings (pauses) for symbol boundaries. < 1299165826 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, why Somalia as opposed to, for example, Sudan? < 1299165839 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes but does it use the morse alphabet I meant < 1299165842 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: SOMALIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA < 1299165848 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1299165862 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so you have to base64 or something first to send binary data? XD < 1299165877 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, I conclude it is just you being random then < 1299165883 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Should've used just USR1 with timings tho. < 1299165888 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Now away. < 1299165892 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1299165906 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: People have already figured out why I'm screaming SOMALIAAAAAAAAAAAA < 1299165935 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, that is a very generic statement. What set of people? < 1299165955 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :SOMALI MINISTRY OF POST AND TELECOMMUNICATIOOOOOOOOOOOOOONS < 1299165998 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, people here < 1299166008 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :SMPT, If it had worked out to SMTP... < 1299166048 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION links Vorpal < 1299166089 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits < 1299166110 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Not that type of link < 1299166111 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1299166116 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, I see < 1299166121 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :bbl < 1299166320 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh god, what's Sgeo been saying? < 1299166357 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :lrn2logread < 1299166360 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, Gregor's ultimate aim in life is to own libc.so. < 1299166393 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Oh come on, let him fgure it out himself < 1299166398 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I gave a crappy hint.. < 1299166410 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1299166419 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You can't really figure it out without having seen it mentioned. < 1299166599 0 :MigoMipo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299166599 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Eh, somebody could figure it out maybe :P < 1299166714 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :"Hotels and other businesses have hired private security militias to provide protection and ensure the normal course of business." Somalia sounds like an awesome tourist destination. < 1299166793 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299166864 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/AskReddit/comments/fwdb3/maybe_an_odd_question_but_what_exactly_are_these/ < 1299166871 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The number of times I've asked that question... < 1299166912 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :lollercopters < 1299166960 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I'm $AGE, my dad is an accountant and my mom is a teacher, and I've worked in cubicles my whole life. My question is, what ARE these labor jobs? How do you work all day lifting, breaking, cutting, carrying, or building things? < 1299166964 0 :pumpkin!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299166991 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Well, that bit is a bit stupid, but I have never actually learnt what such people *do*. < 1299167657 0 :poiuy_qwert!~poiuy_qwe@unaffiliated/poiuy-qwert/x-0506151 JOIN :#esoteric < 1299167743 0 :Sgeo_!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1299168659 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1299168790 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1299168805 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does anyone here happen to know of any good open source Algol 60 compiles? < 1299168807 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*compilers? < 1299168813 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :lolwut < 1299168816 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I'm guessing no, but hoping...) < 1299168834 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: we're trying to work out whether call-by-name Fibonacci is faster in hardware or software < 1299168849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(we had it physically running on an FPGA a few minutes ago) < 1299168852 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : Vorpal, Gregor's ultimate aim in life is to own libc.so. <-- oh that. For some reason it seems I tried hard to forget that.. :P < 1299168869 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the issue is, where are we going to find a call-by-name programming language for the software test? < 1299168896 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Maybe http://www.gnu.org/software/marst/ < 1299168940 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I'm not filled with confidence based on the homepage, but I'll likely try it anyway < 1299168973 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, neither am I :P < 1299168981 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :But beggars can't be choosers :P < 1299169002 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : (we had it physically running on an FPGA a few minutes ago) <-- I suspect there are ways much more suited to an FPGA to calculate Fibonacci.. Such as a simple iterative algorithm counting up. < 1299169022 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: there are < 1299169031 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the point isn't that it's a good way to do fibonacci, because it isn't < 1299169031 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have here somewhere a book about how you manually and mechanically translate an ALGOL-60 program to FORTRAN-II or FORTRAN-IV. But I wouldn't exactly suggest that. < 1299169062 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how comes you have such a book!? < 1299169071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's that it's a terrible way to do fibonacci, but it works on hardware anyway even though it's really badly suited to it < 1299169108 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Got it for 2 EUR or 5 EUR or something like that from the university library's semi-annual "let's get rid of some old books we have that nobody needs" event. < 1299169121 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's mostly full of computer-model-specific stuff. < 1299169138 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ais523, of course it works on hardware, since software runs on hardware that means it must be possible in hardware if it is possible in software. < 1299169165 0 :ais523_!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1299169166 0 :ais523!unknown@unknown.invalid QUIT :Disconnected by services < 1299169169 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1299169173 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : ais523, of course it works on hardware, since software runs on hardware that means it must be possible in hardware if it is possible in software. < 1299169190 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: yes, but I mean without cheating by embedding an interp < 1299169196 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah okay < 1299169241 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, this seems to work < 1299169245 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :next step: learn algol 60 < 1299169252 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ais523, haha < 1299169255 0 :HackEgo!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1299169285 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't be too bad, because I deal with idealized algol, the mathematical idealization of it, all the time < 1299169292 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :all I need to do is learn pointless things like syntax < 1299169313 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ais523, idealized algol? pseudo code? < 1299169327 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it's algol minus all the things that make it practical < 1299169339 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why do you use that!? < 1299169342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, lambda calculus, plus a few imperative things like if and while, plus variables < 1299169346 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1299169356 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and because it's a good model for imperative and functional programming < 1299169367 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1299169586 0 :ais523!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299169605 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1299170529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :here we go: http://sprunge.us/APhW < 1299170532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that didn't take long to write at all < 1299170549 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the main issue was placing semicolons in the wrong places, because Algol and C use them with different meanings < 1299170575 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, the indentation there is weird, I fear that's what GNU indentation style looks like for Algol 60 < 1299170936 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: thanks < 1299170953 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the homepage seems a little out of date, seven years to be precise < 1299170958 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the compiler's moved on at least slightly since then < 1299170966 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it worked just fine < 1299170987 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :more surprisingly, the resulting C, while obviously generated, I didn't find too hard to read, and it corresponds to the Algol program relatively literally < 1299171004 0 :wetneb!~berthe@dan75-6-82-239-12-53.fbx.proxad.net JOIN :#esoteric < 1299171347 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :That is surprising. < 1299171369 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if it's intended as an Algol->C transition tool more than a Algol compiler that happens to use C. < 1299171404 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it < 1299171412 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's full of thunks and that sort of thing < 1299171416 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Mmm < 1299171496 0 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1299171649 0 :azaq23!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299171707 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299171835 0 :Wamanuz3!~Wamanuz@78-69-168-43-no84.tbcn.telia.com JOIN :#esoteric < 1299171856 0 :Wamanuz2!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299171995 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: rofl. thanks for the offer. i would if external code were permitted ;P < 1299172036 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I notice FFSPG is still on top (where they belong) < 1299172225 0 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1299172256 0 :azaq23!unknown@unknown.invalid NICK :45PABVJ9N < 1299172342 0 :asiekierka!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299172392 0 :fungot!unknown@unknown.invalid QUIT :*.net *.split < 1299172456 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I tried to find the book and couldn't; weird. I did find two other books from the same place: Seven-Place Values of Trigonometric Functions, compiled by Dr. J. Peters (contains sin and tan in 0.001 degree increments with 7 decimal digits of accuracy, printed in 1942) and Automata Theory: Machines and Languages. < 1299172520 0 :fungot!~fungot@momus.zem.fi JOIN :#esoteric < 1299172582 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The trig-table book has this on a sticker inside the front cover: "This book has been presented to Finland by the Government of the United States of America, under public law 265, 81st congress, as an expression of the friendship and good will which the people of the United States hold for the people of Finland." < 1299172585 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So, y'know, thanks for that, people of the United States on-channel. < 1299172587 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :yw < 1299172592 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1299172647 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :" During the years 1950-67, Finnish academic libraries received books, periodicals, and other materials, such as microfilm readers, as gifts in excess of $650,000 from the United States. The activity was based on a law passed by the U.S. Congress that had turned Finnish payments on the interest and principal of loans acquired from the United States after World War I into a fund. Out of the fund, grants for travel in the United States were given to Finnish rese < 1299172647 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :archers and specialists so that they could acquire American scientific and scholarly books as well as technical equipment for Finnish higher education institutions. " < 1299172709 0 :Phantom__Hoover!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1299172738 0 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1299172777 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :How noble. < 1299172804 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so yeah < 1299172815 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :thanks for paying your debts < 1299172822 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Have some books. < 1299172872 0 :fungot!unknown@unknown.invalid QUIT :*.net *.split < 1299172886 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :tl;dr: US ♥ Finland, Finland ♥ USA < 1299172913 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Also US ♥ USA. It's sort of a love triangle. < 1299172957 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :no, it's a ? triangle < 1299172980 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh neat < 1299172994 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :did not know compose < 3 gave a heart < 1299173001 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :? compose key < 1299173135 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1299173214 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299173333 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Your hearts show up as "?" signs to me; while Gregor's are hearts. < 1299173365 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ACTION blames irssi. < 1299173390 0 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1299173397 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :(They're ?s to me too, I'm pretty sure they actually are just ?s though :P ) < 1299173412 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :? < 1299173473 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais ian;t here again fff < 1299173477 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :♥ < 1299173485 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh dear god rodgerthegreat came back < 1299173507 0 :Phantom__Hoover!unknown@unknown.invalid PRIVMSG #esoteric :NOOOOOO < 1299173514 0 :Phantom__Hoover!unknown@unknown.invalid PRIVMSG #esoteric :HE WAS AS UNTO A BROTHER UNTO ME < 1299173551 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :21:19:45 For those confuséd, RodgerTheGreat and I still have an IRC channel in common. < 1299173556 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm very confuséd. < 1299173636 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i can see both mine and gregor's hearts... < 1299173650 0 :sebbu2!~sebbu@ADijon-152-1-6-35.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1299173680 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: if it's not utf-8, you are as unto a murderer < 1299173730 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :05:35:49 Vorpal: "All of the data carried in this service must be done in shared memory." < 1299173731 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :05:36:00 Oh, so it *is* an exercise. < 1299173737 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i see #esoteric has finally become #homework-help < 1299173899 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :06:30:51 Is there a way to *search* the channel logs (without downloading them and running grep) < 1299173902 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :variable: download them and run grep < 1299173912 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :but this may be because i can't send unicode because i recode it to ISO_8859-1 before sending... < 1299173912 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :variable: use Gregor's hg repository < 1299173916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's only about 70 megabytes < 1299173916 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :iunno < 1299173917 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Your hypothesis, it is reasonable. < 1299173938 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so the way i'd go about using shm is 1) shm_open some commonly known named memory object 2) have each process mmap that object and sem_init a semaphore at the beginning of it 3) have each process sem_wait on that semaphore before writing, and when that returns 0, it means that process has locked the object and can write it? < 1299173947 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299173947 0 :shachaf!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299173948 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1299173969 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :06:44:58 meh - script + grep works < 1299173973 0 :shachaf!~shachaf@208.69.183.87 JOIN :#esoteric < 1299173975 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :variable: don't use a script, use the hg repo :P < 1299173986 0 :45PABVJ9N!unknown@unknown.invalid QUIT :Write error: Connection reset by peer < 1299174024 0 :sebbu!unknown@unknown.invalid QUIT :Changing host < 1299174024 0 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1299174136 0 :azaq23!~derivecto@p4FF68FA2.dip0.t-ipconnect.de JOIN :#esoteric < 1299174137 0 :azaq23!unknown@unknown.invalid QUIT :Changing host < 1299174137 0 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1299174226 0 :sebbu2!~sebbu@ADijon-152-1-6-35.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1299174226 0 :sebbu2!unknown@unknown.invalid QUIT :Changing host < 1299174226 0 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1299174371 0 :fizzie!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299174406 0 :Zuu!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299174442 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299174443 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1299174454 0 :Zuu!zuu@unaffiliated/zuu JOIN :#esoteric < 1299174510 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :09:22:37 no, it's a ? triangle < 1299174510 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :09:23:00 oh neat < 1299174511 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :09:23:14 did not know compose < 3 gave a heart < 1299174511 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :09:23:21 ? compose key < 1299174513 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Your client, it is the broken. < 1299174554 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :no. your attitude is broken and i don't appreciate it. < 1299174560 0 :pikhq!~pikhq@71-219-212-87.clsp.qwest.net JOIN :#esoteric < 1299174592 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: Your face is broken. < 1299174604 0 :pikhq_!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299174614 0 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1299174615 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i can send ♥ just fine when i want to < 1299174626 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Bluh bluh bluh < 1299174741 0 :Phantom__Hoover!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299174741 0 :cheater00!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299174747 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : -l nnn, --linewidth nnn < 1299174747 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : desirable output line width (50 <= nnn <= 255); < 1299174747 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : default: -l 72 < 1299174754 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm, marst must be at least partly meant to be a readable translator < 1299174791 0 :fizzie!fis@iris.zem.fi JOIN :#esoteric < 1299174835 0 :cheater00!~cheater@e181135061.adsl.alicedsl.de JOIN :#esoteric < 1299174879 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1299174891 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :here's a nifty feature i didn't know my client had < 1299174924 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: can you see this: ♥ < 1299174928 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1299174932 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1299174965 0 :comex_!comex@c-67-188-10-190.hsd1.ca.comcast.net JOIN :#esoteric < 1299174975 0 :Zuu!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299174975 0 :comex!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299174975 0 :Ilari_antrcomp!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299175018 0 :Ilari_antrcomp!~user@2002:5870:3714:0:20e:a6ff:fe6f:2288 JOIN :#esoteric < 1299175043 0 :Zuu!zuu@77.215.149.86 JOIN :#esoteric < 1299175043 0 :Ilari!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299175049 0 :Zuu!unknown@unknown.invalid QUIT :Changing host < 1299175049 0 :Zuu!zuu@unaffiliated/zuu JOIN :#esoteric < 1299175057 0 :BeholdMyGlory!~behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1299175059 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Changing host < 1299175059 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1299175157 0 :Ilari_antrcomp!unknown@unknown.invalid NICK :Ilari < 1299175278 0 :Ilari_!~user@2002:5870:3714::1 JOIN :#esoteric < 1299175367 0 :asiekierka!~asiekierk@078088172176.elblag.vectranet.pl JOIN :#esoteric < 1299175526 0 :Ilari!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299175560 0 :Ilari_!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299175596 0 :Zuu!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299175658 0 :Zuu!zuu@77.215.149.86 JOIN :#esoteric < 1299175763 0 :Ilari!~user@2002:5870:3714::1 JOIN :#esoteric < 1299175864 0 :pikhq_!~pikhq@71-219-212-87.clsp.qwest.net JOIN :#esoteric < 1299175954 0 :iamcal!~cal@c-24-4-207-72.hsd1.ca.comcast.net JOIN :#esoteric < 1299176003 0 :Ilari_!~user@2002:5870:3714:0:20e:a6ff:fe6f:2288 JOIN :#esoteric < 1299176008 0 :pikhq!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299176010 0 :SimonRC!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299176012 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299176012 0 :cal153!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299176013 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :03:17:40 There was a good brainf*ck debugger somewhere? < 1299176016 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ha ha, fizzie is the prude. < 1299176018 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*prudes. < 1299176022 0 :Zuu!unknown@unknown.invalid QUIT :Changing host < 1299176022 0 :Zuu!zuu@unaffiliated/zuu JOIN :#esoteric < 1299176029 0 :Ilari_!unknown@unknown.invalid NICK :Ilari_antrcomp < 1299176039 0 :p_q!~poiuy_qwe@CPE001f5b00390f-CM001225d878d0.cpe.net.cable.rogers.com JOIN :#esoteric < 1299176039 0 :p_q!unknown@unknown.invalid QUIT :Changing host < 1299176039 0 :p_q!~poiuy_qwe@unaffiliated/poiuy-qwert/x-0506151 JOIN :#esoteric < 1299176062 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :elliott: where is the hg repo ? < 1299176084 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1299176186 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1299176380 0 :pingveno!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299176381 0 :olsner!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299176387 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1299176407 0 :tswett!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299176513 0 :pingveno!~pingveno@c-98-246-133-8.hsd1.or.comcast.net JOIN :#esoteric < 1299176841 0 :tswett!~Warrigal@thay.Stanford.EDU JOIN :#esoteric < 1299177127 0 :olsner!~salparot@c83-252-161-133.bredband.comhem.se JOIN :#esoteric < 1299177140 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: are you running forth code yet? < 1299177150 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: no < 1299177159 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :why!? < 1299177224 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: haven't got keyboard input working yet :) < 1299177238 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: scancode->ascii is going to take quite some bytes unless i'm reaally smart < 1299177259 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :well, just store everything as scancodes? :P < 1299177269 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: text memory is in ascii < 1299177284 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, didn't think about that < 1299177313 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :took me a minute to realise too :) < 1299177334 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :getting vga to display scancodes as text may very well be harder than translating scancodes to ascii to start with < 1299177345 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :indeed :P < 1299177426 0 :wetneb!unknown@unknown.invalid QUIT :Quit: Leaving. < 1299177468 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :BIOS has the translation table somewhere, most likely, since it needs to offer keyboard handling routines. < 1299177476 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Even though you can't call them, you could lift data from there. < 1299177487 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: That sounds, er, portable X-D < 1299177506 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes, you just provide different builds for each BIOS vendor/version/build/hotfix combination. < 1299177530 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :maybe you could run the BIOS's keyboard interrupt handler in VM86 mode? :D < 1299177546 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: getting in and out of vm86 mode seems like it'd take a lot more code than anything else :P < 1299177573 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, and you can even quasi-portably perhaps lift the interrupt handler address from the interrupt vector table you see at boot-time. < 1299177601 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Alternatively, just use the scancodes as ascii, and tell the user your system is using an "improved" keyboard layout. < 1299177639 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1299177644 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1299177649 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :couldn't i call the bios in real mode? < 1299177651 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :you could have code to switch back and forth between PM and RM and use the bios' read character function < 1299177657 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's just flipping the relevant bit of cr0 twice per bios call < 1299177675 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1299177677 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*unreal mode < 1299177686 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I think it's not quite that simple, but not THAT much harder < 1299177713 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :the bios is likely to change a lot of segment registers to get its work done < 1299177726 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :(so it's a lot like the original bootstrap switch to PM) < 1299178080 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: I could easily make "protect" a routine :P < 1299178098 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: I don't think the BIOS clobbers segments, though < 1299178109 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :clobbers, but restores < 1299178113 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: then it's no problem < 1299178119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :people use unreal mode for the express purpose of flat memory with bios calls, after all < 1299178147 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it can't restore them to the unreal-mode segments < 1299178165 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: why not? < 1299178185 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :because the meaning of loading a value into a segment register changes depending on which mode you're in < 1299178198 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: but the bios is magical, isn't it? < 1299178204 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it'll just set the shadow things directly < 1299178241 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :if it reads out the selector "8", stores (address/16), then stores back "8", that now sets the base to 8*16 and the limit to 64k :) < 1299178264 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :no, the bios is not magical :) it's just code < 1299178328 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it might use unreal mode internally, I guess, or even system-management mode, but I think it still can't possibly tell that the 8 (or whatever) you gave it is supposed to be an offset in a GDT < 1299178410 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :so unless it makes sure not to touch any segment registers at all, bios calls should mess up unreal mode < 1299178431 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: the bios is magical code! < 1299178446 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: anyway the whole _point_ of unreal mode is to use the bios < 1299178448 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so i doubt that < 1299178483 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Also, the bigger DOS apps already run in 32-bit mode and just pop back to real mode when needing the BIOS." < 1299178592 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :yeah, actual real mode is simple < 1299178611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1299178621 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1299178655 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1299178663 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: maybe I'll write a program that takes an {input,output} table and tries to write the shortest-assembling x86 code to map them < 1299178683 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1299178702 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :sounds like fun actually :) < 1299178710 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :UNDECIDABLE PROBLEM HURF DURF < 1299178718 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sounds incredibly non-trivial... are there any executable semantics of x86? :-D < 1299178720 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :("Yeah, bochs!") < 1299178741 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :you can choose a subset of useful instructions and their flags < 1299178744 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: turingmachineologist! < 1299178772 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: I have a feeling US scancodes and ASCII are unrelated enough that it'd basically end up as big as a table < 1299178781 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mind you, i don't need a full table < 1299178788 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :0-9, a-z, maybe A-Z, some punctuation < 1299178789 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's it < 1299178828 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I think the scancodes are just whatever bits come out of the keyboard matrix when you press those keys < 1299178833 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :more or less, anyway < 1299178839 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: well, yes < 1299178856 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: which is why i doubt there's a convenient table < 1299178867 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because of qwerty being so random :) < 1299178871 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :maybe if i made the alphabetical keys be alphabetical < 1299178875 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :then digits and alphabet would be fine :P < 1299178878 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but typing would be a bitch < 1299178898 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :On the other hand, all the important scan codes are small numbers. < 1299178903 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So you don't need a full table. < 1299178911 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :with only a-f and 0-9 you can input hex < 1299178932 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: That's true. < 1299178939 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I don't even need the return key. :p < 1299178940 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :a-z and A-Z are the same scancodes, anyway. < 1299178944 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1299178947 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And who needs uppercase? < 1299178957 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Unfortunately I do need to handle shift for some punctuation... < 1299178962 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :actually i might be able to avoid that < 1299178968 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :map [ and ] to @ and ! < 1299178973 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :; to : and ' to ; < 1299178978 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :\ to . < 1299178980 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :err < 1299178981 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1299178984 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :. has its own unshifted key :D < 1299179053 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you do scancodes up to space (57), you'll end up getting pretty much everything in the "main block", plus esc. < 1299179079 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :so, 58 bytes of scancode map? < 1299179099 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :are there *any* that map to consecutive ranges of ascii? < 1299179107 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: the digits? < 1299179114 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :123456789 are. < 1299179119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, I don't need tab, or caps lock, or any modifier keys. Backspace would be nice. < 1299179120 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The 0 comes after 9 in scan code order. < 1299179147 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If it really takes about 75 bytes (optimistic guess) to read and translate keyboard input, then that's like 130 bytes for keyboard and protected mode. < 1299179157 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Leaving only a worrying 380 for, you know, Forth. < 1299179190 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The tabs and enters and ctrls like that are interspersed in-between the qwe, asd, zxc rows, annoyingly. < 1299179225 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: At least I can just put dud entries in there... < 1299179229 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What's the first "useful" character, say, 1? < 1299179236 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i.e. how many bytes can I chop off? < 1299179242 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I would guess pretty low, alas. < 1299179318 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :must be more than, say, three to make sub foo,n pay off < 1299179336 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Well, I expect the F-row comes first. < 1299179338 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But what do I know. < 1299179356 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I suspect so too, depends on if it's row-major or column-major? < 1299179377 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : The tabs and enters and ctrls like that are interspersed in-between the qwe, asd, zxc rows, annoyingly. < 1299179383 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I would guess row. < 1299179397 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, it's ESC first, but then almost instantly digits. < 1299179400 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Argh. < 1299179416 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Preferably* the F-keys and the like would just do nothing, but I would also accept random behaviour and crashes if it saves bytes. :p < 1299179417 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The Fx keys come after the main block, for some reason. < 1299179440 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, there are three sets of scancodes though < 1299179465 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :apparently the keyboard controller automatically translates to set 1, but I wonder if that can be turned off :) < 1299179477 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Define "almost" instantly, anyway. :p < 1299179503 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I can handle backspace in a few bytes, I think < 1299179516 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :either just decrementing the result string pointer, or restarting the read-word procedure < 1299179523 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Backspace is for the weak. < 1299179530 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Real men don't make mistaks. < 1299179546 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Indad. < 1299179553 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :maybe you can handle Esc to clear all input and restart < 1299179562 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmmhmm, word names. The alphabet fits into 5 bits. < 1299179577 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So I could pack 6.4 letters-plus-a-bit into one word. < 1299179598 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, actually, that gives me 6 free characters. < 1299179607 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I could do some fancier encoding. < 1299179623 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :That .4 letters is really valuable. < 1299179631 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Totally. < 1299179657 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Quite a lot of the standard Forth words have non-alphabetic names (@, ! and so on) but of course you can just ignore that. < 1299179673 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :26 < 32 < 1299179676 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: In reality it's 6 32-choices plus a 4-choice < 1299179680 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :He still has space for some non-alphabet < 1299179685 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. < 1299179709 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Like I was saying, if I had some "fancier encoding", I could even make those have less-than-five-bit representations. But that maybe isn't worth it. < 1299179722 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Of course, is the process of converting that to/from ASCII for read/display more expensive than storing it that way? < 1299179725 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :In fact, I could make the dword be [two flags][name as 6 x 32-choices]. < 1299179734 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Dunno what the flags would be, though :P < 1299179749 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Well, obviously the name field won't be in ASCII. < 1299179750 0 :azaq23!unknown@unknown.invalid QUIT :Quit: Leaving. < 1299179761 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :@ is 'A'-1 btw < 1299179762 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Arguably read-word should return a name thing. < 1299179771 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But I do need to turn things into ASCII eventually. :p < 1299179775 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :For, you know, display. < 1299179779 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Yeah, 's my point :P < 1299179807 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, what's a Forth dictionary entry again usually? < 1299179811 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :you could just store ascii-64, and 0 will be @ < 1299179816 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Name, pointer to interpreter, plus code? < 1299179823 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Where "code" is likely to be a list of words or whatnot. < 1299179832 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Or in fact valid asm threaded code.) < 1299179838 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: heh < 1299179849 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: that wouldn't fit all the stuff I need into 5 bits, I don't think < 1299179861 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Also, he does still need NULL completion ... < 1299179869 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :s/completion/termination/ < 1299179878 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Or SOMETHING termination anyway. < 1299179886 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Since not all words are exactly 6 characters long. < 1299179888 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yeah, I was planning to reserve 0 for termination. < 1299179890 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Something-padding, maybe. < 1299179914 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :6 characters should be enough anyway, so just make every identifier exactly 6 characters long? < 1299179928 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Alternatively, I could terminate with "a"s. < 1299179936 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :*30 bits long < 1299179941 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So @ = @a = @aa = @aaa = @aaaa = @aaaaa. < 1299179942 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1299179958 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :elliott: That's not terrible, but maybe use something a tad more obscure than 'a' < 1299179964 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Possibly :P < 1299179975 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Note that this character set doesn't include digits... < 1299179979 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :36 > 32. < 1299179985 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But OTOH, the only time you really need digits is for actual integer literals. < 1299179987 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :using 'a' for that is plenty obscure I think < 1299179989 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Digits are for pussies. < 1299179993 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And you could consider them as not actually real words. < 1299180004 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :colorForth does this packing-name-into-a-word thing, but it uses Shannon coding or something similarly fancy. < 1299180018 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Rather than a string of 8-bit characters, colorForth interprets pre-parsed words. A word starts with 4 bits that indicate its color and function - text, number, etc. Then 28 bits of left-justified, Shannon-coded characters, averaging 5.2 bits each. Numbers are stored in binary. Each word occupies 1 or more 32-bit memory locations. < 1299180038 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hey, one of those two free bits could be used to indicate "integer". < 1299180045 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So integer literals would be 30-bit. < 1299180050 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or even < 1299180053 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :1... -> 31-bit integer < 1299180055 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :0x... -> word < 1299180058 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Where the x is a flag for... something. < 1299180073 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :olsner: But how will I gag lady gaga? < 1299180087 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Name, interpreter pointer, code -- what else goes into a Forth dictionary entry again? < 1299180090 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Apart from a "next" pointer. :p < 1299180107 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(I think I might make my dictionary an actual contiguous array, to avoid all those expensive pointers and whatnot.) < 1299180136 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: looks like you were cut off after "But how will I g" ... < 1299180147 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : olsner: But how will I gag lady gaga? < 1299180153 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Oh, lol < 1299180157 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But a isn't a terminator < 1299180160 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You could say < 1299180162 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"abc" < 1299180165 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and it'd just turn into < 1299180168 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"abcaaa" < 1299180175 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :The point is that you'd just compare words for equality directly. < 1299180184 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Just that whenever read-word encounters a space, it "a"s out the rest :P < 1299180223 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Which is all fine and dandy, I just think that 'a' isn't sufficiently obscure since I want to gag lady gaga (I actually couldn't find any other ambiguities like this X-P ) < 1299180257 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, if I'm doing qwerty, maybe "q" would work as a terminator somehow. :p < 1299180264 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If I keep letters in qwerty-order. < 1299180274 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :gagqqq, gagaqq < 1299180304 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Keeping letters in QWERTY-order. < 1299180307 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Best idea ever? < 1299180324 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Well, it's how the keyboard sends them X-D < 1299180355 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Is that still true? I thought that true layout scancodes had dropped off. < 1299180363 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: olsner: CONFIRM/DENY < 1299180370 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Well, it translates them into the "common" scancode format before sending, I think. < 1299180376 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :At least olsner implied that! < 1299180384 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It might not be true for an USB HID keyboard, physically speaking. < 1299180404 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I am no hardware guy, don't trust me :P < 1299180405 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :USB uses the same scan code set actually < 1299180409 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Right. But I'm talking ports and stuff. < 1299180412 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Which is, like, so PS/2. < 1299180417 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ridiculously enough < 1299180514 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you don't mind having only 5 letters per word, you could just store lowest 6 bits of the scancode to make the reading part slightly simpler... but not by much, assuming you actually want to provide keyboard echo for the user. < 1299180540 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Either way he's going to have to translate to ASCII, but he doesn't want to store in ASCII. < 1299180560 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :So storing in 6-bits-o-scancode or 6-bits-o-ASCII is basically equivalent :P < 1299180569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I'm thinking that I'll make the reading for "hello" go like qqqqqq -> hqqqqq -> heqqqq -> helqqq -> hellqq -> helloq, internally. And I'll just have some kind of "replace-screen-line-with-word". < 1299180573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So read-word will basically go: < 1299180579 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Read char; merge in; replace screen line with word; repeat. < 1299180585 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That handles keyboard echo and also "output". < 1299180599 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Actual string output is left as an exercise to the reader, but you will probably be able to do something like < 1299180601 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :6 bits of scancode has more reasonable values, I think. But of course 6 bits of ascii-64 is very good too. < 1299180602 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :12345 emit < 1299180605 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And maybe it'll do what you want :P < 1299180607 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299180641 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Mm. < 1299180645 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What about five bits of ascii-64? :P < 1299180647 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Wait. < 1299180650 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That requires ASCII translation. < 1299180657 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Any such trickery should be done with scancodes only :P < 1299180665 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What's 5 bits of scancode like, apart from terrible? < 1299180673 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I might be able to do without the letter "m"!!! < 1299180695 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Scan code 31 is S. < 1299180709 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :In which Chuck Moore doesn't understand compression: < 1299180710 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Incidently, the resulting bit string is not only compressed, but encrypted. A casual viewer can make no sense of it. Without this description and appropriate software it is not comprehensible. Looking at a dump of the bit string is extremely confusing. I'll prepare some examples of decompressed and compressed code soon." < 1299180713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*encryption: < 1299180715 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So you'd get qwertyuiopas from the alphabet. < 1299180721 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Perfect! < 1299180725 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ewit < 1299180731 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :swap < 1299180736 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :tup < 1299180741 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ower < 1299180748 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ouer! :P < 1299180769 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What's the BIOS thing to read a key from the keyboard? < 1299180775 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :qwertyuiopas sounds like a rather bad disease to catch < 1299180784 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm gonna see if going into unprotected mode will "work" X-P < 1299180833 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'd say "look it up from Ralf Brown's interrupt list", but that thing is so huge finding anything is a chore. < 1299180850 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Well, yes, I'm trying that. < 1299180856 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :/keyboard/ in both the 10 and 13 lists yields naught. < 1299180862 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I've done this before tho :P < 1299180870 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*though; what an annoying abbreviation. < 1299180871 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ffffffffuu, "character bios" has a meaning in the other world < 1299180878 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Which other world... < 1299180880 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh < 1299180881 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :X-D < 1299180883 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Nice. < 1299180891 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The "bios" category is sensible. < 1299180897 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"read key with bios" helps a little bit. < 1299180907 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I'm just using an interrupt-number-indexed list with garish background. < 1299180916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://www.ctyme.com/intr/int-10.htm < 1299180917 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://www.ctyme.com/intr/int-13.htm < 1299180919 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Int 09h, AH=0. < 1299180921 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :wikipedia says there is such a thing as int 16h, function 00h < 1299180933 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://www.ctyme.com/intr/int-09.htm < 1299180935 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Er, you sure?" < 1299180939 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, 16h, yes. < 1299180946 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :16h. Huh. < 1299180951 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :​09h​ IRQ1: Called after every key press and release (as well as during the time when a key is being held) < 1299180955 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://www.ctyme.com/intr/rb-1754.htm < 1299180957 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I can't read them pages. < 1299180963 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :One wonders if this actually yields ass-key. < 1299180977 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :the IRQ could also be used, of course :D < 1299180991 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1299180997 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :http://webpages.charter.net/danrollins/techhelp/0229.HTM < 1299181001 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The get-keystroke gives scan codes. < 1299181006 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"The BIOS scan code is usually, but not always, the same as the hardware scan code processed by INT 09. It is the same for ASCII keystrokes and most unshifted special keys (F-keys, arrow keys, etc.), but differs for shifted special keys." < 1299181012 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I swear there's a convenient BIOS ass-key function for this ... < 1299181020 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I swear I've _used_ it < 1299181034 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :That page says: AL ASCII character code or extended ASCII keystroke < 1299181047 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : Expects: AH 00H < 1299181047 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ < 1299181050 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ! < 1299181061 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ah, it gives both. < 1299181072 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Return: < 1299181072 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AH = BIOS scan code < 1299181072 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AL = ASCII character < 1299181076 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hrm. < 1299181091 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I do remember a biographies function that did it rather than going straight to the keybored. < 1299181095 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(biographies = BIOS. Obviously.) < 1299181117 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I will teraye it though. < 1299181124 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :There I go again with my funny spe-lungs. < 1299181187 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if 16h may depend on IRQ1 being serviced < 1299181193 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mov eax, cr0 < 1299181195 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and al, ~1 < 1299181197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :mov cr0, eax < 1299181199 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :FUN. < 1299181207 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :xor al,1 < 1299181212 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or that, yes. < 1299181267 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, it waits for my key then reboots. :-) < 1299181268 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :~1 should also work though, nasm evaluates constant expressions < 1299181284 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Except in Bochs it waits for my key and... wait, what < 1299181296 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :OK, it's HLTing and complaining that I'm hlting, but I "sti" before doing the interrupt. < 1299181299 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :WHAT IS THE MEANING OF THIS. < 1299181361 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :03.01.21:02:12:04 ah, re befunge, just wrote an interpreter with forth. so our unofficial befunge-interpreters-in-obsolete-but-non-esoteric-languages project now has forth, fortran-77, algol-60, plus few less interesting ones. maybe should do cobol next. < 1299181361 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :03.01.21:02:13:12 fizzie: go to #forth and say it's obsolete, i dare you < 1299181364 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: HEAR HEAR < 1299181392 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :BEGIN ESOTERIC-SECTION. < 1299181419 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :04.02.10:16:14:35 btw, what languages do we have befunge interpreters in? I know of implementations in C, javascript, algol (algol60?), fortran (two, actually) and forth, plus two unfinished ones (sed, 6502-assembler-for-8bit-nes-nintendo). any others? < 1299181419 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :04.05.27:08:07:58 kinda. oh, and it includes a "system information" command, which has the side-effect (can't remember if this was in the standard) that you can use it like the PICK word from forth. < 1299181424 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Funge-98, what is even that! < 1299181469 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oh, the sed one is unfinished? sed needs more fun stuff < 1299181485 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Well, *my* sed one is unfinished; there might well be a finished one. < 1299181834 0 :Sgeo!~Sgeo@137.125.181.62 JOIN :#esoteric < 1299182674 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299183068 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, wait. < 1299183082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: If I go into protected mode and don't set up interrupt handlers, then deprotect and do "sti", it's still gonna fail on any interrupt, right? < 1299183087 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Because the "default" interrupt handler is GONE FOREVER < 1299183124 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants Seph < 1299183135 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, no, I think the real-mode interrupt handlers are at a fixed address (like 0) < 1299183151 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :the vectors anyway, not the handlers < 1299183205 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: well I say this because < 1299183220 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :[deprotect cr0] sti; xor ah, ah; int 16h; cli; [protect cr0] does this in bochs: < 1299183228 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, no, there is an IDTR, dunno what happens to that register when you switch modes :) < 1299183233 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it starts up, hangs, bochs warns about "omg hlt when blah blah!! it will never finished!" < 1299183234 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I press a key < 1299183235 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nothing happens < 1299183237 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but in qemu: < 1299183238 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it starts up, hangs < 1299183240 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I press a key, it reboots < 1299183446 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1299183465 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :based on the information I have, this all points to something having been done wrong < 1299183516 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: I suspect that the bios calls HLT as part of its keyboard code < 1299183539 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: And that the interrupts don't get fixed by disabling protection. < 1299183686 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I think you should add a couple of long calls to reset cs to/from real-mode < 1299183754 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Why, can't I use the bios from a 32-bit cs? :) < 1299183755 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :dunno if that's the problem, but that could cause the incoming keyboard interrupt to mess things up instead of neatly returning to after the hlt < 1299183756 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Looking at number of diffrent blocks allocated by APNIC in December-Feburary: 8M: 1 (8M), 4M: 1 (4M), 2M: 4 (8M), 1M: 16 (16M), 512k: 16 (8M), 256k: 28 (7M), 128k: 25 (3.13M), 64k: 48 (3M), 32k: 22 (0.69M), 16k: 33 (0.52M), 8k: 42 (0.33M), 4k: 50 (0.20M), 2k: 63 (0.12M), 1k: 85 (0.08M), 512: 20 (0.01M), 256: 58 (0.01M). < 1299183774 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :(the hlt presumably in the bios' int 16h) < 1299183786 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :(which is probably waiting for IRQ1) < 1299183817 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Added some long jmps, still doesn't work :( < 1299183826 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: I swear that interrupts won't work after deprotecting :P < 1299183864 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :why wouldn't they? < 1299183887 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299183900 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Because going into protected mode gets rid of all that magical interrupt goodness? < 1299183910 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And I doubt flicking cr0 back adds the magic again. < 1299183959 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :you could try a lidtr to explicitly reset back to the real-mode interrupt vectors < 1299183977 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: yeah, but what are the vectors? < 1299184019 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :should be at 0, since 8086 didn't even support moving them < 1299184029 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lidtr [0], or < 1299184031 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lidtr [foo] < 1299184032 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :... < 1299184035 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :foo: dd 0? < 1299184040 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :assuming it's dd, i forget lidtr.. < 1299184045 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :something like that < 1299184057 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :which :) < 1299184067 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :... though I don't think it should be necessary at all < 1299184089 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :still reboots even with that :) < 1299184089 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :in qemu < 1299184091 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i'l ltry bochs < 1299184093 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*i'll try < 1299184118 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"getHostMemAddr vetoed direct read, pAddr=0x000a2722" < 1299184119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: w a t < 1299184125 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*"prefetch: getHostMemAdrr < 1299184129 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Addr < 1299184154 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmmm! < 1299184174 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :idtr: dd 0 < 1299184174 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :;; gdt < 1299184174 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :gdtr: dw gdt_end-gdt-1 ; limit < 1299184177 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't like something there, at least < 1299184182 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :idtr is just one val right? < 1299184185 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, none of this new information changes my previous theory < 1299184197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :idtr: < 1299184197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : dw 0 < 1299184198 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : dd 0 < 1299184203 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :the idt has a limit, at least in protected mode < 1299184215 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :same error though, even with that idt < 1299184560 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :do you disable A20? < 1299185037 0 :pikhq!~pikhq@71-219-238-212.clsp.qwest.net JOIN :#esoteric < 1299185089 0 :pikhq_!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299185323 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299185418 0 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au JOIN :#esoteric < 1299185517 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299185712 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Isn't the IDT descriptor the same 6-byte thing than the GDT; two bytes for the limit and four for the base? Which would mean dw 0, dd 0 makes a zero-size limit and any interrupt would then go outside it. (But I don't really know if the IDT is checked for real-mode interrupts.) < 1299185752 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it does in fact check IDT in real mode. < 1299185780 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And as far as I can tell it only uses the base address. < 1299185808 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So dw 0, dd 0 should be reasonable. But if you don't relocate it anywhere with an earlier LIDT, I suppose it shouldn't move anyway. < 1299186000 0 :Patashu!unknown@unknown.invalid QUIT :Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 . < 1299186028 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Someone's example code does do LIDT [RealModeIDT] with RealModeIDT: dw 0x03ff, dd 0x0000. < 1299186062 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Perhaps my reboot is for Other Reaz0ns. < 1299186069 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Does the keyboard thing take parameters? :P < 1299186092 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :not according to that page I found at least < 1299186114 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it should, no. Well, except for the AH = 00h function-selector part. < 1299186125 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1299186126 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: you should probably do a 'show int' before going into the bios < 1299186133 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :to print interrupts that happen < 1299186140 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: er, is that an instruction or something? < 1299186144 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :in bochs' debugger :) < 1299186146 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i haven't used bochs bugger < 1299186147 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :scares me < 1299186148 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :... < 1299186149 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1299186150 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nice typo < 1299186386 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What did your code look like? < 1299186417 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :After flipping the bit in CR0, you do need at least that far jump, I believe. < 1299186452 0 :Mathnerd314!~mathnerd3@dsl.6.28.53.206.cos.dyn.pcisys.net JOIN :#esoteric < 1299186459 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Indeed. < 1299186460 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I far jump. < 1299186461 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sec. < 1299186465 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Busy warring with pigs < 1299186503 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :warting the hogs? < 1299186565 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Thwarting them, I'd guess. < 1299186591 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The thwarthog: bane of everyone with goals. < 1299186629 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :Thwarthog Goalsbane < 1299186678 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sounds like something that drops rares. < 1299186685 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Is that a term?) < 1299186709 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :rares? rarities maybe < 1299186830 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :About 2,500 results (0.23 seconds); if it's a term, it's not a very wide one, I guess. < 1299186850 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"wich monsters drops rares ??? hey can anybody telle ma about all drops possible out of monsters in looting plz :D :D :)" < 1299187023 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :you should do like the guy in HHGG who has to insult every living being in the universe, visit every site on the internet and ask that question < 1299187038 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :doesn't have to, just wants to < 1299187068 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :right, whatever :) < 1299187082 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :seemed like an obsession to me, but I guess it is voluntary < 1299187176 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, he wanted a project to keep himself busy. < 1299187182 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : Thwarthog Goalsbane <-- sounds like a boss in some sort of parody game < 1299187202 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I could imagine a Thwarthog Goalsbane high-level monster in Munchkin. < 1299187235 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, isn't munchkin rather parody though? ;P < 1299187337 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So. The USA is an officially secular state and has "In God We Trust" on its currency. The UK is an officially Christian state and has Darwin on the £10 note... < 1299187360 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I get the feeling that a state religion isn't necessarily a bad thing. :P < 1299187382 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I get the feeling that state religion is pretty much disconnected for actual state of affairs :P < 1299187399 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, for your conclusion to be valid I think you need some more evidence < 1299187406 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :like how it works in other countries. < 1299187431 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes, yes, I'm aware that in the UK, like *most* European countries with a state religion, only has the state mandated religion in existence for hysterical raisins... < 1299187443 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :doesn't sweden have state religion < 1299187476 0 :uniqanomaly!unknown@unknown.invalid QUIT :Quit: uniqanomaly < 1299187481 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Sweden has no official state religion (since a number of years. 15? 20? something like that) and we have... no god mentions on our money < 1299187511 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, but yes hysterical raisins indeed < 1299187513 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299187517 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: In 2000 the Church of Sweden ceased to be the state church. < 1299187524 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oh that recently, heh < 1299187588 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think officially the Evangelical-Lutheran Church of Finland is not a "state church" either, but I think it still enjoys some special privilege bits. < 1299187642 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :sweden is a bit odd, though < 1299187643 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"The main Lutheran and Orthodox churches are constitutional national churches of Finland with special roles in ceremonies ..." < 1299187660 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess they still count since they have special mentions in some laws here and there. < 1299187665 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Finland has *two* state churches, then. < 1299187667 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :in that if the king wants to convert from lutheranism, he must abdicate < 1299187676 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I think there is some special privilege related to being able to perform marriages that only the church has over here < 1299187689 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :so for other religions you need to get a non-religious marriage < 1299187699 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: captains of ships have that right too, here, as do certain secular officials < 1299187700 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: And if you get a non-Lutheran king in the first place? < 1299187704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: http://blog.tanyakhovanova.com/?p=311 seems connected to your recent string subsequence stuff < 1299187710 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: we're aiming to go from "a bit odd" to "odd" within the next 3-year period < 1299187710 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : in that if the king wants to convert from lutheranism, he must abdicate <-- is that still the case? heh < 1299187710 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that can't happen in Sweden (I'm not Swedish) < 1299187724 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: yes. < 1299187726 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :(hopefully) < 1299187729 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's bullshit. (not the claim itself, the state of affairs) < 1299187762 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not that it matters *too* much; the monarch is a mere symbol of the state at this point, anyways. < 1299187778 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I guess that means some portion of the king's tax-paid allowance is guaranteed to go to church tax < 1299187785 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299187786 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, yes indeed. Besides our king is dyslexic and what not. < 1299187788 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1299187823 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, hah. The monarch isn't required to be *Lutheran*. Any Protestant denomination will do. < 1299187833 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1299187860 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: hm, you sure? < 1299187883 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: does that include the church of the flying *protestant* spaghetti monster? < 1299187887 0 :SimonRC!~sc@fof.durge.org JOIN :#esoteric < 1299187892 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: norway is in the process of abolishing our state church, however the king himself insisted that they keep his requirement to belong to it in the constitution < 1299187904 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :there's actually an odd thing in Finnish public broadcast legislation re: that < 1299187911 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, heh < 1299187929 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : there's actually an odd thing in Finnish public broadcast legislation re: that <-- oh? < 1299187935 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: We have a new-ish "Freedom of Religion Act" (from 2003; I mean, we had one before, but this is the latest revision) which says basically that anyone can belong to any "religious organization" that they wish, and that a "religious organization" is either the Evangelical-Lutheran or the Orthodox Church, or any organization registered according to law X; and that the two official churches have some legislation controlling how they operate. < 1299187952 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Argh, no, not really. "Art. 4. In accordance with the express provision of Article 2 of the Instrument of Government of 1809 that The King shall always profess the pure evangelical faith, as adopted and explained in the unaltered Confession of Augsburg and in the Resolution of the Uppsala Meeting of the year 1593, princes and princesses of the Royal House shall be brought up in that same faith and within the Realm. Any member of the Royal Fami < 1299187977 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(translated version of the "Successionsordningen", on Wikisource) < 1299187981 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: one may not broadcast religious services from non-trinitarian congregations as tohugh they were services. < 1299188009 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :that is, there's a specific concept of televised service, which only extends to trinitarian christians :| < 1299188013 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :The royal fam! < 1299188029 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk, heh < 1299188037 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: pure evangelical faith is clearly lutheranism there. < 1299188040 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :poor members of the royal famine < 1299188045 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: Yeah, quite clearly. < 1299188055 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You Europeans really need to go further with this whole seperation of church and state thing. < 1299188064 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: actually, I think it's done us a world of good < 1299188065 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, "Augsburg"? < 1299188085 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And meanwhile Americans need to get the concept *beaten into their freaking head over and over again*. < 1299188090 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : (translated version of the "Successionsordningen", on Wikisource) <-- they have a translated version of that? < 1299188102 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes, http://en.wikisource.org/wiki/Act_of_Succession_of_Sweden < 1299188109 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: see, this way, the state has had an option of influencing the churches (by making sure to require that the clergy has reasonable education, etc) < 1299188112 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, ... why on earth < 1299188125 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it's apparently the official translation by the Swedishgovernment. < 1299188131 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1299188132 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Erm, add space as appropriate. < 1299188138 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :tht way, I think the european state churches (at least in northern europe) have helped making europe relatively secular < 1299188159 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :this way, also, we've gotten spared from idiots like ... uneducated clergymen arguing against interracial marriage and such < 1299188180 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: The issue is that you guys have gotten rid of insane religiosity without getting rid of actual church-state ties. < 1299188185 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :yes, but < 1299188189 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :some of our clergymen have no trouble arguing against gay marriage, mind you < 1299188192 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: And we've gotten rid of actual church-state ties without getting rid of insane religiosity. < 1299188195 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :olsner: true. < 1299188207 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yes, and I much prefer the previous alternative there < 1299188217 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oh, that was probably a reply to oerjan? < 1299188223 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And people don't even accept the *existence* of seperation of church and state here. < 1299188233 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*Literally do not believe that that is how things work*. < 1299188254 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :if we now got rid of the church-state ties in a badly thought out way, the chances of greater amounts of stupid appearing in the majority church is overwhelming < 1299188269 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :such stupid does exist in the non-state-churches, like the baptists and the free lutherans and such < 1299188501 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I still find it incredible that people in the US do not merely advocate against the seperation of church and state, but advocate that that *is not even the state of affairs*. < 1299188596 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299188610 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: Just out of curiosity, can you provide citations for the religious service broadcast thing. The obvious search ("jumalanpalvelus*") in Finlex doesn't really hit anything relevant. < 1299188635 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :maybe it's not in the law then < 1299188640 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :maybe it's in yles charter or somesuhc? < 1299188649 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :it's just a recollection < 1299188657 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :from years back < 1299188753 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: the only churches with the relevant size in the US to be able to make any claim for state-church status would be like southern baptists and the catholics, no? < 1299188783 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :wonder how well the catholics gaining that status would go over with the protestants :) < 1299189001 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :elliott: where is the hg repo ? < 1299189006 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :variable: Err < 1299189010 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :codu.org/something < 1299189012 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: ping < 1299189050 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: You'd probably only get state churches for individual states. < 1299189075 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :that'd get weird < 1299189088 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :does Germany have state churches? < 1299189100 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: people believe what they want is what is and what was. This is well known in cognitive psychology < 1299189245 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Zwaarddijk: Aside from an ability for sufficiently large religious organizations to be able to have a church tax taken out, there is not a state church in Germany. < 1299189289 0 :Behold!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1299189305 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :They did have that "blasphemy" bit in the criminal code, but in 1998 the section was renamed to "disturbance of religious peace"; it still does mention "God", but also in the same sentence "or other similar religious observances" or some-such. < 1299189333 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Seems that the seperation of church and state was first enacted in the Weimar Republic. < 1299189438 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1299189561 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :oh right, there's one ~federation-like thingy with state churches, how could I forget < 1299189565 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :the UK. < 1299189584 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :germany has state churches < 1299189723 0 :mileva!~millosa@212.203.98.114 JOIN :#esoteric < 1299189768 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds it silly that we still have 'god' in our pledge of allegiance - but meh < 1299189884 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1299190086 0 :Phantom___Hoover!unknown@unknown.invalid PRIVMSG #esoteric :> 9*3*64 < 1299190087 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 1728 < 1299190107 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299190121 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :variable: People use that as reasoning that this is a Christian nation and that as such we should make laws based on their interpretation of Christianity. < 1299190149 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :3^3 * 2^6 ? < 1299190160 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: don't get me started on logical fallacies by theists. < 1299190170 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :(unless of course you care :-]) < 1299190178 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :Eq x=x+1, x=? < 1299190186 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :variable: As a recent convert to atheism, I'm still at the point where I give a crap! :P < 1299190249 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :42? < 1299190399 0 :copumpkin!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1299190515 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :hmm... I should switch to NixOS < 1299190550 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1299190551 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :hmm... i'have to learn it < 1299190693 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :Mathnerd314: website isn't loading < 1299190759 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :it used to... < 1299190880 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :down < 1299191139 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299191255 0 :Mathnerd314!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299191421 0 :p_q!unknown@unknown.invalid QUIT :Quit: This computer has gone to sleep < 1299191488 0 :Phantom___Hoover!unknown@unknown.invalid PRIVMSG #esoteric : variable: As a recent convert to atheism, I'm still at the point where I give a crap! :P ← really? < 1299191519 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :agnosticum vitae forman milos < 1299191553 0 :variable!unknown@unknown.invalid PRIVMSG #esoteric :I can't find that googling it < 1299191725 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom___Hoover: Really what < 1299191785 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :variable: I find the entire contect of a pledge of allegiance (allegiance to a cloth design, even) to be rther silly < 1299191834 0 :Phantom___Hoover!unknown@unknown.invalid PRIVMSG #esoteric :If you listed the things about the US that everyone else finds silly you'd be there all day. < 1299191839 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :like, what is allegiance to a flag? < 1299191847 0 :Zwaarddijk!unknown@unknown.invalid PRIVMSG #esoteric :how does one violate such an allegiance? < 1299191850 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :so, it's maybe like a fish as the science, kindof bycicle usefull to birds ? < 1299191860 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mileva: are you human? < 1299191921 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1299191943 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the evidence isn't quite convincing yet... < 1299191960 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :maybe i do not understud all :( < 1299191964 0 :fungot!~fungot@momus.zem.fi JOIN :#esoteric < 1299191979 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Something just reminded me of fungot.) < 1299191980 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: that is just a pair of trousers by sewing. :p < 1299191999 0 :Phantom___Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I don't understud all either. < 1299192077 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :yup :~) < 1299192174 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Phantom___Hoover: ? < 1299192198 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: are YOU human? < 1299192199 0 :Phantom___Hoover!unknown@unknown.invalid PRIVMSG #esoteric : maybe i do not understud all :( < 1299192217 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Yes. < 1299192231 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty shure, i do not undertud the entire world :) < 1299192284 0 :wareya_!unknown@unknown.invalid NICK :Alex_Megaroide < 1299192303 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: You are sure? < 1299192356 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :turing is an apple's ghost < 1299192363 0 :poiuy_qwert!~poiuy_qwe@unaffiliated/poiuy-qwert/x-0506151 JOIN :#esoteric < 1299192387 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :newton's apple < 1299192387 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Rather. < 1299192407 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Please go on. < 1299192425 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :yep, like G.Tell on his son's head ? < 1299192453 0 :Mathnerd314!~mathnerd3@128.198.97.175 JOIN :#esoteric < 1299192466 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: じゃ、教えろうね。僕は人間で生まれたので、人間だと思う。 < 1299192629 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :soio, tokyo hostel, myo-cardio bouldu buldou fidjii < 1299192644 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: なぜあなたは、あなたが今の人間だと思う人が生まれた私に言うのですか? < 1299192657 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: That. Doesn't. Parse. < 1299192696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Please go on. < 1299192718 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The Japanese you pasted was... Unparsable. < 1299192744 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Oh, i pasted was unparsable. < 1299192767 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Why did you, you now-human think person birth I to said?" < 1299192794 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Oh, i i nowhuman think person birth you to said. < 1299192795 0 :mileva!unknown@unknown.invalid PRIVMSG #esoteric :#include "Sha2.h" < 1299193167 0 :mileva!unknown@unknown.invalid QUIT :Quit: Leaving < 1299194138 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1299194457 0 :Phantom___Hoover!unknown@unknown.invalid QUIT :Remote host closed the connection < 1299195270 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :le sigh < 1299195285 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :IokeHurricane is spamming #ioke < 1299195288 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How typical < 1299195369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: olsner: I bet what you're thinking is, "I really want to look at elliott's terrible asm and debug it". < 1299195977 0 :cheater-!~cheater@g224202225.adsl.alicedsl.de JOIN :#esoteric < 1299196158 0 :cheater00!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1299196795 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: waiit < 1299196799 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: the long jump won't work in real mode