←2010-05-03 2010-05-04 2010-05-05→ ↑2010 ↑all
00:02:08 <oerjan> that cannot be the original text surely
00:02:47 <alise_> I love the name Diet
00:02:49 <alise_> the national diet of japan. everyone must eat according to it!
00:02:56 <alise_> oerjan: why not?
00:03:02 <alise_> apart from being translated, obviously
00:03:11 <alise_> His Majesty the Emperor
00:03:11 <alise_> At Trondheim
00:03:11 <alise_> Cruising along the canal,
00:03:11 <alise_> From the windows
00:03:11 <alise_> Of houses are people
00:03:11 <pikhq> I haven't a clue why it's "The Diet".
00:03:12 <alise_> Seen smiling and waving hands.
00:03:15 <alise_> that is a really shitty poem
00:03:45 <alise_> also referring to himself in his poem what
00:03:46 * pikhq shall look to see if the Japanese can be found
00:03:48 <oerjan> i vaguely recall it's a borrowed word
00:04:00 <alise_> you are STUPID mr. emperor
00:04:05 <alise_> oerjan: why do you not think it is the original text?
00:04:10 <oerjan> alise_: well translation's what i meant
00:04:17 <alise_> The word diet derives from Latin and was a common name for an assembly in medieval Germany. The Meiji constitution was largely based on the form of constitutional monarchy found in nineteenth century Prussia and the new Diet was modeled partly on the German Reichstag and partly on the British Westminster system. Unlike Japan's modern constitution, the Meiji constitution granted a real political role to the Emperor, although in practice the Emperor's powers
00:04:18 <alise_> were largely directed by a group of oligarchs called the genrō.[16]
00:04:20 <alise_> oerjan: right
00:04:52 <oerjan> alise_: i don't think he's referring to himself, sheesh
00:04:58 <oerjan> that's just the section title
00:05:12 <pikhq> Oh, that'd do it.
00:05:20 <alise_> oerjan: oh :P
00:07:45 <pikhq> Found the actual original.
00:07:50 <pikhq> "トロンハイムの運河を行けば家々の窓より人ら笑みて手を振る"
00:08:57 <pikhq> alise_: No, he is not referring to himself.
00:09:11 <pikhq> The English translation is *adding* a lot.
00:09:25 <alise_> Translate it for us then plz?
00:10:35 <pikhq> "Trondheim (of) canal (obj) going houses (of) windows, people-group laughing, hand wave"
00:10:38 <pikhq> There's a gloss for you.
00:10:59 <Mathnerd314> hmm... my fonts are missing half those characters.
00:11:05 <Mathnerd314> any recommendations?
00:11:43 <pikhq> Or. "Going through Trondheim, at their windows, people are laughing, waving."
00:11:54 <pikhq> Erm.
00:12:03 <pikhq> s/laughing/smiling/ in that actual translation.
00:12:36 <oerjan> well the _theme_ of that year's poetry was "smile"
00:13:12 <pikhq> 平成18年歌会始お題「笑み」
00:13:25 <pikhq> That's more "Laughter" than "smile".
00:13:52 <pikhq> Though, it's more of a "happy-gleeful" sort of laughter than mocking sort of thing.
00:14:00 <oerjan> ok
00:14:00 <pikhq> Translation is a bitch.
00:15:07 <pikhq> http://www.kunaicho.go.jp/culture/utakai/utakai-h18.html This page also has a *lot* more poems than the English.
00:16:43 <alise_> Mathnerd314: what OS?
00:16:57 -!- Sgeo has joined.
00:17:11 <alise_> pikhq: he is a bad poet.
00:17:19 <pikhq> alise_: It's not bad in Japanese.
00:17:31 <pikhq> It just loses a lot in the translation.
00:17:35 <pikhq> And it's not *great*. :P
00:17:44 <Mathnerd314> alise_: aren't fonts are OS-independent... ?
00:17:52 <alise_> Mathnerd314: Just answer the question :P
00:18:01 <Mathnerd314> ok... Windows
00:18:04 <pikhq> Seems to be... Everyone in the royal family, every prefecture head, and... A Brazilian diplomat?
00:18:05 <alise_> (Yes they are, mostly, but--)
00:18:13 <alise_> Mathnerd314: Put in your Windows install CD, go to keyboard settings, go to I think the third tab.
00:18:19 <alise_> Click install Japanese/Chinese fonts.
00:18:27 <alise_> Which is the reason I asked.
00:18:32 <Mathnerd314> oh.
00:18:33 <alise_> They won't be antialiased but who cares. They'll work.
00:18:46 <alise_> Mathnerd314: If you don't want to do that, dunno.
00:18:50 <alise_> Google "windows asian fonts".
00:18:55 <alise_> Speaking of which, pikhq: what are some good antialiased Asian fonts for Linux?
00:19:02 <alise_> Also I have to be up at 9am sigh.
00:19:17 <pikhq> alise_: I'm using Takao.
00:19:24 <pikhq> Crap for Chinese though.
00:19:51 <alise_> So there aren't any good ones? :(
00:19:54 <pikhq> (you need a seperate font for Chinese and Japanese, as the ways of writing them have changed a bit.)
00:20:10 <alise_> Also, will shit automatically use it when the current font fails hard? I assume so.
00:20:19 <alise_> ...and how can it detect /that/?
00:20:37 <pikhq> In HTML, you can specify the used language.
00:20:44 <pikhq> Outside of HTML, "you're fucked".
00:20:54 <alise_> Okay.
00:21:10 <alise_> "Gothic"?
00:21:18 <alise_> I assume that doesn't mean that.
00:21:36 <pikhq> "Gothic" is an old term for "serif".
00:21:40 <pikhq> Erm.
00:21:44 <pikhq> Sans-serif.
00:21:46 <alise_> Right.
00:21:56 <alise_> I am not up-to-date with the olde typographical termies.
00:22:14 <pikhq> It's still used in Japanese to describe sans-serif fonts.
00:22:35 <pikhq> Mincho should be your serif font.
00:23:20 <oerjan> no, _this_ is gothic http://www.wulfila.be/gothic/browse/text/?book=1
00:23:24 <pikhq> "Mincho", meaning "the style used in the Ming dynasty".
00:24:23 <pikhq> (when the printing press became common in China)
00:24:40 <pikhq> Erm. Japan.
00:25:14 <pikhq> The type style actually was made in the Song dynasty, and so it's called a Song typeface in Chinese.
00:27:33 -!- cheater2 has quit (Read error: Connection reset by peer).
00:27:48 -!- cheater2 has joined.
00:28:41 * pikhq would really like to figure out what font *is* being used for Chinese here, because it looks awful.
00:31:46 <alise_> no takao in ubuntu :(
00:32:49 <pikhq> Kochi mincho is also nice looking.
00:33:15 <pikhq> The only reason I use Takao is because it's more readable at 9pt.
00:33:29 <alise_> That's in, yay.
00:33:35 <alise_> Gothic and Mincho, which is superior?
00:33:53 <pikhq> Sans-serif and serif, which is superior?
00:34:32 <oerjan> serious people use serif
00:34:58 <pikhq> http://www.nihongoresources.com/language/writing/typefaces.html Here. You look and see.
00:36:17 <alise_> I have no idea how you put serifs on Japanese.
00:36:46 <alise_> Text book print style, block style, flowing/semi-cursive, and cursive/grass are all nice... >__>
00:36:51 <alise_> s/>__>/>_>/
00:36:58 <alise_> But I don't really like Ming or Gothic. Ming is better though.
00:37:03 <alise_> So Gothic is sans-serif, not serif.
00:37:16 <pikhq> Yes.
00:37:29 <alise_> ttf-kochi-mincho is already the newest version.
00:37:31 <alise_> Is it bitmap, then?
00:37:37 <pikhq> No.
00:37:40 <alise_> Also, you said serif :P
00:37:44 <alise_> Then how do I tell fontconfig to use it?
00:37:52 <pikhq> I then corrected myself.
00:37:59 <pikhq> Erm.
00:38:02 <alise_> Ah, you did.
00:38:04 <pikhq> Yeah.
00:38:05 <alise_> *Ah, so you did.
00:38:11 <pikhq> Dunno how to get fontconfig to use it.
00:38:41 <pikhq> The semicursive there looks pretty much like my Japanese handwriting, except written by a neater person. :P
00:38:55 <pikhq> ... And with a brush...
00:39:37 <Mathnerd314> alise_: so I see you've named some language called UniCode?
00:39:44 <alise_> yes; a non-existent one
00:40:12 <pikhq> Grass script is really hard to read.
00:40:17 <Sgeo> alise_ is here!
00:40:26 <Sgeo> And doesn't have an iProduct tag in eir name!
00:40:42 <alise_> Yes, until Tuesday.
00:40:44 <alise_> Bank holiday Monday.
00:42:20 <Mathnerd314> but see, I think all you need for Unicode to be turing-complete is a "duplicate next few codepoints" character
00:43:06 <Mathnerd314> or some other form of decision
00:43:17 <alise_> I was just using Unicode for the character set.
00:43:19 <alise_> Also, that is false.
00:43:50 <Sgeo> Why? Does Unicode already have ifs or something?
00:44:26 <alise_> nope
00:44:36 <MizardX> {papna} You can write good programs in all sorts of awful languages.
00:47:33 <Sgeo> N1 will get 2.2 first?
00:51:14 <Sgeo> wrong channel
00:51:36 -!- Gracenotes has joined.
00:54:50 -!- augur has quit (Read error: Connection reset by peer).
00:58:03 -!- MizardX has quit (Ping timeout: 276 seconds).
00:58:20 * alise_ notes that conventional proof by contradiction /does/ work in intuitionistic logic
00:59:10 <oerjan> naturally, since not a is defined essentially as "a implies a contradiction"
00:59:12 <fax> uh no it doesn't
00:59:14 <alise_> specifically, the (P -> ~P) -> ~P kind; just not the (~P -> P) -> P kind
00:59:22 <alise_> Theorem reductio_ad_absurdum (P : Prop) : (P -> ~P) -> ~P.
00:59:23 <alise_> intros; intro.
00:59:23 <alise_> set (H1 := H H0).
00:59:23 <alise_> contradiction.
00:59:23 <alise_> Qed.
00:59:23 <alise_> Yes it does.
00:59:39 <fax> ummmmm that's reductio_ad_absurdum
00:59:55 <alise_> Close enough.
00:59:58 <fax> proof by contradiction is ~~P -> P
01:00:06 <alise_> We take a to be true; we show that it cannot be so, thus contradiction. Therefore not a.
01:00:07 <alise_> Q.E.D.
01:00:08 <oerjan> i thought those are synonyms
01:00:15 <fax> oerjan, classicaly they are
01:00:19 <alise_> It's a subset of proof by contradiction.
01:00:20 <oerjan> hm...
01:00:25 <alise_> It's the /majority/ of proofs by contradiction.
01:00:31 <alise_> And I said /conventional/ proof by contradiction.
01:06:17 <oerjan> proof by majority contradiction.
01:06:25 <alise_> [[Put yourself in this situation: You are a UK hacker writing a program, using, say, curses, where all the constants are written in US English (MAX_COLORS, etc.). Now you want to write a function that returns a random colour. Now consider this paradox: Do you call it randomColour, making the integrity of names suffer? or do you call it randomColor, making it look ugly in your own eyes? Now with ncurses it's not a problem, there are only few variables that
01:06:25 <alise_> you can easily #define and put into void.h. But with OpenGL, there's a crapload of that and I don't know what to do.]]
01:06:28 <alise_> Err... Isn't the answer obvious?
01:06:30 <alise_> Like, to everyone?
01:06:44 <fax> troll thread
01:06:56 <alise_> i dunno
01:07:04 <alise_> /prog/ usually isn't that subtle
01:07:06 <fax> this is a good reply "Oh fuck off you fucking polaczky przeciętniaczky "
01:07:07 <alise_> port-has-set-port-position!? -- R6RS
01:07:09 <alise_> impressive
01:07:21 <alise_> should have used an interrobang
01:07:25 <oerjan> couleursRandoms
01:08:52 <alise_> lol my browser is totally frozen; too many tabs
01:09:28 <oerjan> tabs on ice
01:09:38 <Sgeo> What's the "obvious" answer? Consistancy?
01:09:43 <alise_> consistency, yes.
01:09:45 <alise_> also there is an unclosed <i> on /prog/
01:09:49 <alise_> shiichan really sucks
01:11:46 <Sgeo> http://arstechnica.com/apple/news/2010/05/apples-compiler-policy-may-land-it-in-hot-water-with-ftc.ars
01:12:49 <pikhq> In other news, the FTC still enforces antitrust laws. Who knew?
01:13:17 <alise_> apple aren't in a monopoly position
01:13:30 <alise_> Q.E.D.
01:14:31 <alise_> so, yeah.
01:15:06 <alise_> wtf:
01:15:09 <alise_> http://esolangs.org/w/index.php?title=User:Phantom_Hoover&curid=3152&diff=17461&oldid=16700
01:16:30 * alise_ emails
01:16:41 <alise_> You must be logged in and have a valid e-mail address in your preferences to send e-mail to other users.
01:16:42 <alise_> grr...
01:16:47 <alise_> can someone else ask if he is ok?
01:17:23 <Sgeo> Trying to login
01:17:45 <Sgeo> Time for a third account, I guess
01:18:03 * alise_ verifies his emal
01:18:04 <alise_> *email
01:19:01 <Sgeo> Um, if you're asking, does that mean I shouldn't ask?
01:19:06 <Sgeo> Or should I ask anyway?
01:19:13 <alise_> whoever asks first wins a cookie.
01:19:19 <alise_> and tells the other by pinging them so they don't bother
01:20:11 <Sgeo> "I saw your change to your userpage, and just wanted to be sure, is everything ok?"
01:20:14 <Sgeo> Is that good?
01:20:30 <alise_> sure
01:20:42 * Sgeo hopes it doesn't get filed as spam
01:22:38 <Sgeo> Subject was "Hey. Everything ok?"
01:22:53 <Sgeo> No, Gmail, the copy I had sent to me was not forged
01:24:26 -!- coppro has quit (Ping timeout: 240 seconds).
01:24:57 * Sgeo also hopes that the Esolang wiki didn't make it look like the email was sent if it wasn't due to confirmation issues
01:25:02 <Sgeo> Time for Sgeo3 just to be sure
01:25:47 <alise_> it wasn't
01:25:48 <alise_> it tells you if not
01:26:10 <Sgeo> ok
01:31:50 -!- Gregor-L has joined.
01:34:29 <alise_> hi Gregor
01:34:36 <alise_> hi Gregor-L
01:35:01 <Gregor-L> I'm on stolen 3G 8-D
01:35:42 <alise_> ...Stolen? How?
01:36:24 <Gregor-L> IREX has free unlimited 3G (for buying eBooks)
01:36:45 <alise_> heh
01:36:47 <Gregor-L> Gregor has mad hax0r skills (and a sudden immediate need for Internet, as my apartment is flooded and I'm without my usual access lawlz)
01:36:57 <alise_> Flooed? sux2bu lol
01:38:04 <Gregor-L> Actually, for all the suxiness, 1) it's clean water, not sewage or something, 2) they're putting me up in a real nice hotel (modulo lack of wifi) while they fuck with my apartment and 3) it gave me a great excuse to really clean my apartment before I leave it for the summer :P
01:39:46 <Mathnerd314> !haskell main = print ([1..] == [2..])
01:39:48 <EgoBot> False
01:39:53 <Mathnerd314> !haskell main = print ([1..] == [1..])
01:40:40 <Mathnerd314> oh... what happens to infinite loops?
01:40:41 <Gregor-L> Yes, we all love the magic of laziness :P
01:40:51 <Gregor-L> It gets killed after (IIRC) 30 seconds.
01:41:12 <Sgeo> Mathnerd314, patch Haskell so that will always terminate.
01:41:22 <Mathnerd314> Sgeo: that's the plan
01:41:56 <Mathnerd314> or construct a better language where it terminates
01:42:13 <Sgeo> After that, will you donate some of the $Infinite prize to us?
01:42:19 <Sgeo> For having done the impossible?
01:42:44 -!- alise_ has quit (Ping timeout: 252 seconds).
01:42:45 <Gregor-L> It's not impossible if you special-case it, just useless.
01:43:08 <Mathnerd314> well, you have definitional equality
01:43:15 <pikhq> Mathnerd314: That won't terminate in any language.
01:43:20 <Sgeo> JMOD sucks
01:43:29 <Mathnerd314> say "f a == f a by definition"
01:43:34 <pikhq> However, in non-lazy languages you won't finish constructing the first list.
01:43:39 <pikhq> :P
01:43:49 <pikhq> Except that [1..] is not the *same* list as [1..].
01:44:00 <fax> no it doesn't
01:44:07 <Sgeo> But [1..] was defined in an identical manner to [1..[
01:44:10 <Sgeo> [1..]
01:44:55 <pikhq> "let x = [1..] in x == x" won't terminate either.
01:45:10 <pikhq> Because "==" does not mean what you think it means.
01:45:37 <Sgeo> I think Mathnerd314 wants to change the definition of ==
01:45:49 <Sgeo> So that it uses definition, and not equivance
01:46:00 <pikhq> In a way that it can only work in certain cases.
01:46:21 <Mathnerd314> no, you just have overloaded ==
01:46:54 <pikhq> Won't work for "[1..] == (map (+1) . map (-1) $ [1..])"
01:47:17 <Sgeo> pikhq, but those are defined differently
01:47:26 <Sgeo> So that's the point, I think
01:47:32 <Sgeo> Fewer cases where == doesn't return
01:47:33 <pikhq> Sgeo: But they are obviously equal.
01:47:37 <Mathnerd314> well, you'd need (+1) . (-1) . x == x
01:47:58 <Sgeo> Define "obvious"
01:48:27 <Sgeo> That doesn't typecheck
01:49:02 <oerjan> sure it does, it just lacks an instance >:)
01:49:32 <Sgeo> I meant Mathnerd314's thing
01:49:35 <Sgeo> Not the == thing
01:49:43 <Sgeo> erm, forget the "not the == thing"
01:50:08 <oerjan> !haskell :t \x -> (+1) . (-1) . x == x
01:50:09 <EgoBot> \x -> (+1) . (-1) . x == x :: (Eq (a -> b), Num (b -> b), Num b) =>
01:50:14 <Sgeo> Wait, forget everything I said during and since "THat doesn't typecheck"
01:50:17 -!- Gregor-L has quit (Quit: Leaving).
01:50:22 <oerjan> 02:49 =EgoBot> (a -> b) -> Bool
01:51:15 <oerjan> oh (-1) isn't a section
01:51:40 <oerjan> so you cannot use map (-1) as you'd think
01:53:20 <Mathnerd314> !haskell :t (+-1)
01:53:33 <oerjan> that's a syntax error
01:53:40 <Mathnerd314> !haskell :t (+(-1))
01:53:42 <EgoBot> (+(-1)) :: (Num a) => a -> a
01:53:50 <Sgeo> !haskell :t (`sub` 1)
01:54:09 <Mathnerd314> !haskell :t flip (-) 1
01:54:11 <EgoBot> flip (-) 1 :: (Num a) => a -> a
01:54:14 <oerjan> !haskell :t (subtract 1)
01:54:16 <EgoBot> (subtract 1) :: (Num t) => t -> t
01:54:25 <Mathnerd314> !haskell flip (-) 1 2
01:54:26 <EgoBot> 1
01:55:14 <Mathnerd314> !haskell (subtract 1) 2
01:55:18 <EgoBot> 1
01:56:25 <Mathnerd314> !haskell :t \x -> (+1) . (+(-1)) $ x == x
01:57:31 <oerjan> hm
01:57:59 <Mathnerd314> @type \x -> ((+1) . (+(-1)) $ x) == x
01:58:08 <Mathnerd314> !haskell :t \x -> ((+1) . (+(-1)) $ x) == x
01:58:10 <EgoBot> \x -> ((+1) . (+(-1)) $ x) == x :: (Num a) => a -> Bool
01:58:21 <Mathnerd314> lambdabot gives much better error messages
01:58:30 <oerjan> heh
01:58:55 <oerjan> i don't know why that wouldn't type
01:59:00 <oerjan> !haskell :t \x -> (+1) . (+(-1)) $ x == x
01:59:15 <Mathnerd314> because ($) has higher precedence than (==)
01:59:19 <Mathnerd314> *lower
01:59:34 <oerjan> i know, but i _still_ don't know why it wouldn't type >:)
01:59:42 <Mathnerd314> so it's like @type \x -> (+1) . (+(-1)) $ (x == x)
01:59:52 <oerjan> i _know_
01:59:56 <Mathnerd314> and Num has no Bool instance
02:00:10 <oerjan> also, i got no error message in private either
02:00:27 <oerjan> that is of no consequence for :t, it should just ask for Num Bool
02:00:41 <oerjan> !haskell :t False + 1
02:01:02 <oerjan> apparently it refuses to do that...
02:01:39 <Mathnerd314> yeah, it needs to know what to do fromInteger 1 with
02:01:49 <oerjan> and +
02:02:34 <oerjan> oh well
02:06:06 <Mathnerd314> anyways, there you go
02:10:15 <Mathnerd314> (map (+1) . map (+(-1)) $ [1..]) == [1..] reduces to \x → (+1) . (+(-1)) $ x == x, which then gets reduced by some theorem-proving system to true
02:12:42 <Mathnerd314> or maybe I inverted that
02:13:06 * Sgeo wonders if he should play with OpenLaszlo
02:13:20 <Mathnerd314> I think this language comes closest: http://sage.soe.ucsc.edu/
02:14:52 <oerjan> i wouldn't be _very_ surprised if ghc reduces (map (+1) . map (+(-1)) $ [1..]) to [1..] internally
02:15:16 <oerjan> it does the map f . map g = map (f . g) reduction, surely
02:16:44 -!- nooga has quit (Read error: Operation timed out).
02:46:47 <pikhq> oerjan: GHC performs stream fusion.
02:47:08 <pikhq> It transforms *most* composed list functions into a single iteration over the list.
02:49:08 <oerjan> that's what i meant
02:51:29 -!- Oranjer has quit (Read error: Connection reset by peer).
02:51:59 -!- Oranjer has joined.
02:59:05 -!- calamari has joined.
03:10:10 -!- myndzi\ has joined.
03:10:21 -!- cal153 has joined.
03:13:22 -!- myndzi has quit (Ping timeout: 264 seconds).
03:19:22 -!- oerjan has quit (Quit: Good night).
03:38:33 -!- coppro has joined.
03:42:38 <Sgeo> "Every hobby requires an outlay of funds."
03:42:39 <Sgeo> LIES
03:43:47 <calamari> Sgeo: yes, you had to buy lotion & tissues
03:45:38 <uorygl> I use neither lotion nor tissues. I use nothing at all, in fact.
03:45:59 <calamari> uorygl: tmi, it was a joke
03:46:11 <uorygl> Meh.
03:46:46 -!- cap11235 has joined.
03:47:33 <calamari> argh I don't know what is wrong with OSS, but this skipping audio is annoying
03:48:01 <cap11235> Why are you using OSS instead of ALSA? Also, what kind of sound card/chip do you have?
03:48:15 <calamari> because alsa doesn't seem to be working
03:48:19 <uorygl> You know, hardware description languages are the worst ever. There's no dynamic allocation of memory whatsoever; the amount of memory a program uses is constant. There's no flow control, either; everything runs all the time.
03:48:26 <pikhq> cap11235: OSSv4 is a usable replacement of ALSA.
03:48:29 <uorygl> And it even always reads from and writes to the same place.
03:48:31 <pikhq> calamari: Get you OSSv4.
03:49:19 <cap11235> pikhq: Does it have an ALSA to OSS layer?
03:49:29 <pikhq> I think so, yes.
03:49:33 <uorygl> The benefit of an HDL, of course, is that it runs really fast.
03:49:33 <cap11235> Awesome.
03:49:40 <pikhq> Of course, *everything* has an OSS backend anyways.
03:49:53 <cap11235> Include Flash?
03:49:56 <cap11235> *including
03:49:59 <calamari> cap11235: Aureal Semiconductor Vortex 2 (rev fe)
03:50:05 <pikhq> Flash *still doesn't support ALSA*.
03:50:20 <cap11235> Now I am even more despondant about Adobe...
03:50:32 <cap11235> So it just uses OSS?
03:51:07 <pikhq> Yeah.
03:51:10 <calamari> cool, my chipset is on the supported list
03:51:29 <pikhq> I may need to try OSSv4 some time.
03:51:48 <cap11235> pikhq: The more you know.... %%%%%%%%%%?
03:51:56 <cap11235> What, no Unicode?
03:52:25 <pikhq> No, there's Unicode. Your IRC client may not be able to use it, though.
03:53:14 <cap11235> I'm using mIRC...
03:53:41 <pikhq> いいえ、ユニコードがある。でも、あなたのIRCクライアントは使えなさそう。
03:53:47 <cap11235> Yup, that works.
03:54:01 <cap11235> I guess it just didn't like my character. Though it worked in Firefox...
03:57:08 <calamari> brb installing ossv4
03:57:11 -!- calamari has quit (Quit: Leaving).
04:00:14 <cap11235> So, what would you say the best known esolang after BF is?
04:00:23 <pikhq> INTERCAL.
04:00:51 -!- Oranjer has left (?).
04:01:08 <cap11235> What I want to do is write a forth enviornment for some esolang, but it needs to be able to run arbitrary code at runtime.
04:01:38 <cap11235> I could make a BF interpreter in vanilla BF, then add some self modifying capability, but the overhead would be pretty bad.
04:03:43 <cap11235> Hmmm, I think I could just sort of translate BF commands to apply to a stack instead of the tape...
04:06:03 -!- calamari has joined.
04:06:20 <calamari> apparently that list is wrong.. hardware not recognized
04:06:34 <cap11235> Have you just tried googling your chipset?
04:08:32 <cap11235> What happens when you run 'modprobe snd_au8830' as root?
04:09:19 <calamari> FATAL: Module snd_au8830 not found.
04:09:32 <cap11235> Try 'modprobe snd-au8830'
04:09:36 <calamari> that's strange, because I'm sure that a module siilar to that used to be there
04:09:50 <calamari> nope
04:09:56 <cap11235> Hmmm... What distro?
04:10:06 <calamari> ubuntu karmic
04:10:41 <cap11235> What about lsmod?
04:10:44 -!- fax has quit (Quit: Lost terminal).
04:11:07 <calamari> oss_usb 125332 0
04:11:08 <calamari> osscore 603524 1 oss_usb
04:11:19 <calamari> not sure why it thinks I have a usb soundcard
04:11:24 <coppro> poll: should I learn vi or emacs this summer?
04:11:31 <calamari> vi
04:11:32 <cap11235> Both.
04:12:08 <calamari> as a bonus some of your vi knowledge will help in less :)
04:12:35 <cap11235> I use emacs for programming, and vim for everything else.
04:13:09 <cap11235> Vi is pretty simple to learn, I think.
04:13:25 <cap11235> Emacs is hellish, but nothing is better than Inferior Haskell Mode...
04:13:43 <calamari> [DUO] /lib/modules/2.6.28-18-generic>where *8830*
04:13:43 <calamari> ./kernel/sound/pci/au88x0/snd-au8830.ko
04:13:56 <calamari> maybe I just need to downgrade my kernel to get my audio working again
04:14:23 <cap11235> You could go to the kernel source directory and run 'make modules_install'
04:14:40 <calamari> I didn't compile this kernel
04:14:51 <cap11235> Oh.
04:15:05 -!- coppro has quit (Quit: reboot).
04:15:10 <calamari> maybe I should hehe
04:15:31 <cap11235> I know you can use modprobe with a path, but it might require some extra flags.
04:15:40 <calamari> that's for the wrong kernel tho
04:15:54 <cap11235> Could I see your 'uname -a'?
04:16:19 <calamari> Linux DUO 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 04:38:19 UTC 2010 x86_64 GNU/Linux
04:16:49 <cap11235> Well, try modprobe'ing it anyway. In the worst case, you just reboot.
04:17:51 <cap11235> If modprobe doesn't throw any errors, it should be fine, I think.
04:18:19 <pikhq> cap11235: That's insmod.
04:18:21 <pikhq> :)
04:18:30 <cap11235> Oh, right.
04:18:59 <calamari> insmod: error inserting '/lib/modules/2.6.28-18-generic/kernel/sound/pci/au88x0/snd-au8830.ko': -1 Invalid module format
04:19:05 <cap11235> Ok...
04:19:06 <calamari> doesn't look like it wants me to do that
04:19:10 <pikhq> ...
04:19:11 <cap11235> Do you have apt-file installed?
04:19:21 <pikhq> I... Do believe you have a 2.4 insmod.
04:19:24 <pikhq> Which is a solid WTF.
04:19:28 <calamari> no but I can
04:19:42 <cap11235> His uname said it was 2.6.31
04:19:56 <cap11235> apt-get apt-file, then run 'apt-file update' as root
04:20:06 <pikhq> Ah. Yeah.
04:20:25 <pikhq> You would do well to use modules for your kernel.
04:20:52 <cap11235> He is using a premade kernel.
04:21:07 <pikhq> Yes, and he's using modules for a different such kernel.
04:21:18 <pikhq> 2.6.28 != 2.6.31
04:21:46 <cap11235> Yeah, but the 2.6.31 doesn't seem to have the module for his audio.
04:21:55 <cap11235> apt-file will answer it...
04:22:00 <calamari> pikhq: nah.. just that the kernel/sound directory is missing in my 2.6.31
04:22:30 -!- Oranjer has joined.
04:24:31 <calamari> okay apt-file is done updating
04:25:07 <cap11235> "apt-file search snd-au8830.ko" as root
04:25:35 <calamari> oh.. you can use packages.ubuntu.com to do that too :)
04:25:52 * cap11235 learns something new everyday
04:26:02 <calamari> nice, though.. lots of results
04:26:45 <calamari> interesting.. seems like it sound be installing.. checking
04:27:50 <calamari> err that was not coherent, sorry
04:28:03 <cap11235> You are installing linux-image-2.6.31-14-generic?
04:28:25 <calamari> linux-image-2.6.31-21-generic
04:28:31 <calamari> looks like an upgrade
04:30:16 <calamari> anyhow, upgrading.. it's possible that the ossv4 install is what wiped out the modules
04:30:29 <cap11235> Unlikely, though.
04:30:32 <calamari> I had sound before, it was just crappy
04:31:15 <cap11235> Well, we will see. Will you go with OSS or ALSA after?
04:31:40 <calamari> I never had any trouble with alsa until recently, dunno what happened
04:32:04 <cap11235> Maybe pulseaudio was just being a bitch?
04:32:10 <calamari> the only way I could get audio to play was oss, otherwise it was just noise
04:32:37 <calamari> I tried uninstalling pulseaudio and using esound instead, and neither
04:32:46 <calamari> afk reboot
04:32:51 <calamari> thanks for your help btw
04:33:14 -!- calamari has quit (Quit: Leaving).
04:37:15 -!- augur has joined.
04:47:55 -!- bsmntbombdood has joined.
05:16:27 <Sgeo> This chain mail can't even decide if it wants you to pass it on to 5 or 10 people
05:16:50 -!- Oranjer1 has joined.
05:17:02 <cap11235> 15!
05:25:39 -!- Oranjer has quit (*.net *.split).
05:29:44 -!- Oranjer1 has left (?).
06:06:20 <bsmntbombdood> til chain mail over the usps 1) used to exist and 2) is now illegal
06:10:54 -!- Deewiant has quit (*.net *.split).
06:16:20 -!- Deewiant has joined.
06:36:16 -!- bsmntbombdood_ has joined.
06:36:23 -!- bsmntbombdood has quit (Disconnected by services).
06:36:25 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
07:00:49 -!- tombom has joined.
07:00:53 -!- FireFly has joined.
07:07:39 -!- bsmntbombdood has quit (Remote host closed the connection).
07:24:38 -!- kar8nga has joined.
07:29:05 * Sgeo :( at Network Headache becoming unimplemented
07:29:17 <Sgeo> I should make an Erlang implementation!
07:47:48 <pikhq> We should use Chinese characters for writing everything. (我 should 使 漢 字 for 書ing 毎物.) Why? Because I said so dammit. (Why? Because 私 言d so dammit!)
07:48:08 <pikhq> In other news, it is late and I am moderately silly and should go to bed.
07:53:29 -!- tombom has quit (Quit: Leaving).
07:58:47 <Sgeo> Ninight all
07:58:56 <Sgeo> Actually turning my computer off tonight.. it seems a bit hot
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:26 -!- Sgeo has quit (Ping timeout: 265 seconds).
08:18:16 -!- Gracenotes has quit (Remote host closed the connection).
08:30:12 -!- FireFly has quit (Quit: null).
08:30:49 -!- Gracenotes has joined.
08:31:43 -!- calamari has joined.
08:31:53 <calamari> well that was fun lol
08:32:07 <calamari> lost video.. but I solved it
09:02:35 <pineapple> hmm?
09:13:25 -!- Tritonio_GR has joined.
09:30:20 -!- calamari has quit (Quit: Leaving).
10:12:26 -!- lereah_ has joined.
10:26:28 -!- hiato has joined.
10:50:35 -!- kar8nga has quit (Remote host closed the connection).
10:57:11 -!- BeholdMyGlory has joined.
11:29:43 -!- oerjan has joined.
11:30:51 -!- ais523 has joined.
11:42:30 <Gracenotes> my paper about Turing machines http://bit.ly/cL93k3
11:42:50 <Gracenotes> 23 pages, and I'm still gauging how finishing it screwed up my sleep schedule
11:43:17 <oerjan> completely, or just a lot
11:45:10 <fizzie> I've just spent the last night writing a case note on the SCO v. Novell case for the "Law in Network Society" course. Not that one less than sleepy night will have any long-lasting effects, but right now the tiredness. Especially with that particular topic.
11:46:09 <Gracenotes> oerjan: not sure. I might still be able to recover, but I woke up at 3 AM (3.75 hours ago) and I'm just going with that for now
11:46:18 <fizzie> Courteous of SCO to keep doing the insane, though; their latest (April 27th) filings means I'm oh-so-topical.
11:46:33 <Gracenotes> the paper does have pretty diagrams though. if you like visualizations of tape or nicely formatted state diagrams
11:46:37 <oerjan> SCO, or suing a dead horse
11:46:56 <oerjan> (there's your title)
11:47:23 <oerjan> oh i guess it needs to be in finnish
11:47:29 <fizzie> No, English.
11:47:33 <oerjan> ah.
11:48:41 * oerjan notes that SCO "dead horse" gives about 3410 google hits.
11:48:56 -!- Tritonio_GR has quit (Ping timeout: 265 seconds).
11:49:00 <ais523> fizzie: that isn't the latest filing any more
11:49:08 <ais523> the latest is about them selling off lots and lots of little stuff
11:49:13 <ais523> like domain names, laptops and forklift trucks
11:49:37 -!- Tritonio_GR has joined.
11:49:50 <fizzie> ais523: That's part of the bankrutpcy case, though, not SCO v. Novell.
11:49:57 <ais523> oh, good point
11:50:19 <fizzie> Though like I complained a moment ago; "One has to wonder about the whole bankruptcy mechanism. I was under the impression that the idea was that the company's creditors would get, in a reasonably fair manner, as much out of the company as possible; I'm not sure how well that is served by feeding $100k/month to some sort of "crisis management" company."
11:51:13 <fizzie> I had to focus a bit; summarizing the whole SCO story in three pages would have been a bit too ambitious, so I just covered the parts related to the "who owns Unix" question.
11:53:27 <fizzie> It has aspects of the farcical; after losing in court, they appeal and demand a jury trial; the court of appeals surprisingly-ishly agrees and grants that; the jury unanimously says the same thing the court did; so now they want either a special overrule-the-jury judgement, or a new jury, because "the jury simply got it wrong" (direct quote).
11:54:28 <fizzie> It's possible they're just not very good losers.
11:55:42 -!- BeholdMyGlory has quit (Ping timeout: 265 seconds).
11:57:03 <fizzie> The most recent thing of list of sold stuff is a funny read too, though. Purchaser: "Deseret Industries", "Canon Copier - not functional", consideration: $0, "donated".
11:57:33 <fizzie> They've also sold 2 boxes of tape for $399 via eBay to a "Bouz1956".
11:58:05 <fizzie> And donated 50 file cabinets to "Farm Equipment business".
11:58:57 <ais523> the Supreme Court made a filing in that case recently, btw, giving SCO more time to respond to Novell's case
11:59:21 <ais523> why are they donating when they're in bankruptcy, I wonder?
12:00:21 <fizzie> Possibly no-one would have paid them for a broken copier, and junking it would've actually cost money.
12:00:50 <fizzie> Though I would assume you could get at least nominal compensation for 50 file cabinets.
12:01:30 -!- ais523 has quit (Read error: Connection reset by peer).
12:02:50 -!- ais523 has joined.
12:10:33 -!- hiato has quit (Quit: underflow).
12:11:33 -!- hiato has joined.
12:13:29 -!- BeholdMyGlory has joined.
12:16:58 -!- nooga has joined.
12:31:59 <Ilari> That encoding: Split the program to segments, splitting at '[' and ']'. There will be 2k+1 segments (possibly empty), where k is number of loops.
12:33:03 <Ilari> Then for each segment, write it as base-6 number (least-signficant first, using some mapping of 6 remaining instructions to digits).
12:34:45 <Ilari> Then add (6^(l+1)-1)/5 (where l is length of segment) to number obtained in order to make encodings of different length segments unique.
12:35:23 <Ilari> Every possible different segment gets different number and every non-negative number corresponds to some segment
12:36:46 <Ilari> Then take 1st (LSB) bit of 1st segment, 1st bit of 2nd segment, ..., 1st bit of 2k+1st segment, 2nd bit of 1st segment, 2nd bit of 2nd segment and so on. Concatenate bits in this order to get new number (X_2)
12:36:50 <oerjan> and? you still haven't gotten to the hard part...
12:37:14 <oerjan> ..darn.
12:37:58 <oerjan> actually, still not...
12:38:23 <Ilari> Make ordered tree that has root node and node for every loop. For nested loops, node for nested loop is child of node for nesting loop. Encode this tree using bijection to nonnegative integers (I haven't worked this out yet) to get X_1.
12:39:06 <Ilari> Actually, that X_2 has 1st bit of 1st segment as LSB (the order goes that way).
12:39:47 <Ilari> Then take 1st bit of X_1, 1st bit of X_2, 2nd bit of X_1, 2nd bit of X_2 (and so on), concatenating (1st bit of X_1 winds up as LSB). Resulting X, the encoding of program.
12:40:21 <Ilari> As said, I haven't fully solved encoding ordered trees...
12:41:24 <oerjan> that X_1 encoding is inefficient if segment lengths vary widely, as discussed yesterday.
12:41:39 -!- ais523 has quit (Read error: Connection reset by peer).
12:41:59 <Ilari> X_2 you mean?
12:42:04 <oerjan> what the
12:42:24 <oerjan> i tried to correct that 1 to 2 at _least_ twice O_O
12:42:35 <oerjan> i have _no_ idea how it got through :D
12:43:13 -!- ais523 has joined.
12:43:26 <Ilari> Encoding Lost Kingdom, with any reasonable way to get X_1, X_2 will be much larger, yielding final number with 80M-90M digits...
12:43:40 <oerjan> you know, X_1 is just an encoding of the [ and ] only
12:43:52 <Ilari> oerjan: Yes, it is.
12:44:35 <oerjan> it is possible that one of the already used methods will be good enough for that
12:44:46 <oerjan> there isn't that much extra to blow things up
12:45:32 <Ilari> There are C_k (kth catalan number) different structures for program with k loops...
12:45:41 <oerjan> oh those again right
12:47:04 <Ilari> That can be used to simplify(?) problem to encoding ordered trees to encoding ordered trees with k nodes to [0, C_k - 1].
12:47:38 <oerjan> also, X_1 will likely be much smaller than X_2, again wasting 0 bits
12:47:41 <oerjan> i think
12:48:10 <Ilari> One could vary spacing of X_1 bits (as long as the positions form fixed sequence).
12:48:31 <Ilari> But that can get at most almost half of the bits.
12:48:51 <oerjan> we already have the triangular method for combining two numbers
12:51:06 <oerjan> hm it's possible that _too_ is actually unbalanced when the size difference is large.
12:51:45 <oerjan> the combined number is on the order of (m+n)^2/2
12:51:46 <fizzie> Ilari: Also a minor nit; you say "add (6^(l+1)-1)/5" -- so the length 0 segment maps to (6^(0+1)-1)/5 = 1, the 6 possible length 1 segments to numbers starting from (6^(1+1)-1)/5 = 7, etc; I guess you mean without the "+1" in the exponent?
12:52:10 <Ilari> Ah yes.
12:54:09 <oerjan> mn is about what you'd get by concatenating the bits, this is twice that for equal numbers but much larger if m is 1, say
12:54:46 <oerjan> n^2/2 vs. n
12:55:01 -!- MizardX has joined.
12:55:54 <oerjan> in fact the triangular method may have about the _same_ size as the bit interleaving method, come to think of it.
12:56:21 <oerjan> for one number very small, both waste about the number of bits of the other
12:56:40 <fizzie> oerjan: Do you want to generalize the so-called "triangular" method formulas to some sort of hyperpyramidal method so that it combines N numbers at once? That sounds like it'd be funky.
12:56:51 <oerjan> fizzie: already did that
12:56:59 <fizzie> Oh, I had missed that.
12:57:43 <oerjan> never looked much at reversing it, that would seem to involve nth roots at least
12:58:25 <oerjan> C(x1+x2+...+xn,2) + C(x1+...+x(n-1),2) + ... + C(x1+x2, 2) + x1
12:58:30 <oerjan> er no
12:58:41 <oerjan> *C(x1+x2+...+xn,n) + C(x1+...+x(n-1),n-1) + ... + C(x1+x2, 2) + x1
12:58:55 <oerjan> i guess x1 = C(x1,1)
13:01:07 <Ilari> It appears that triangular numbers might be sightly smaller (at most 1 bit difference per combining).
13:02:20 <ais523> what's the purpose of this discussion, btw? finding a way to compress Lost Kingdom as far as possible?
13:02:22 <oerjan> difference to what?
13:02:26 <Ilari> If numbers are approximately equal, they come even. So unbalanced case is the better case.
13:02:29 <oerjan> ais523: heh
13:02:58 <Ilari> ais523: Bijection of BF with natural numbers.
13:03:05 <ais523> Ilari: aha
13:03:08 <oerjan> Ilari: no, unbalanced is horrible for both, assuming you'd want the combined number of bits to be approx. the sum
13:03:37 <oerjan> or do you mean just the difference between triangular and interleaving
13:05:13 <Ilari> Actually, there might be more difference. 1st number being 2^100 and 2nd being 2^500 would give 1002 bit number with interleaving. The triangular number would be 1/2 * (2^500 + 2^100) * (2^500 + 2^100 - 1) + 2^500. This is approximately 1/2 * 2^1000 = 2^999. So 2 bit difference.
13:06:27 <oerjan> what about if one number is about square root of the other...
13:06:34 <oerjan> 2^100 and 2^200 say
13:06:59 <oerjan> (so as far from both the "one tiny" and "about equal" cases as possible)
13:07:31 <oerjan> interleaving, 401 i assume
13:08:21 <oerjan> !haskell 1/2 * (2^100 + 2^200) * (2^100 + 2^200 - 1) + 2^200
13:08:24 <EgoBot> 1.2911249390434543e120
13:08:29 <oerjan> er
13:08:37 <oerjan> !haskell logBase 2 $ 1/2 * (2^100 + 2^200) * (2^100 + 2^200 - 1) + 2^200
13:08:38 <EgoBot> 399.0
13:08:58 <oerjan> so still not much difference
13:10:11 <oerjan> !haskell logBase 2 $ 1/2 * (2^500 + 2^1000) * (2^500 + 2^1000 - 1) + 2^1000
13:10:13 <EgoBot> Infinity
13:10:16 <oerjan> darn
13:11:09 <fizzie> You're the necromather, why don't you figure out something that gives you the sum of their sizes?
13:11:36 <fizzie> (Okay, so I just wanted to get to use the word "necromather".)
13:11:52 <oerjan> i had that fibonacci thing, but it has a logBase phi 2 overhead
13:11:56 <Ilari> For hyperpyramidal thing, I get difference in order of k log_2 k bits... Which would be about 650kb with 42k segments (Lost Kingdom-sized program)...
13:12:54 <oerjan> well the initial C(x1+...+xn, n) term obviously dominates
13:12:58 <Ilari> Not a lot of difference, considering that number will have 150M-160M bits anyway...
13:13:13 <oerjan> oh hm
13:14:25 <oerjan> well, later.
13:14:30 -!- oerjan has quit (Quit: leaving).
13:16:18 <Ilari> So variable spacing in interleaving X_1 and X_2 saves much more (Easily 100Mb with Lost Kingdom) than using hyperpyramidals instead of simple bit interleaving (hardly even 1Mb).
13:16:56 <Ilari> And bit interleaving is probably way faster.
13:23:09 <fizzie> Bit interleaving is perhaps a bit (no pun intended) inelegent to write in the usual arithmetic operations provided. At least compared to the triangles.
13:29:40 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:55:51 -!- base3 has joined.
13:56:38 <base3> does anyone know if there's a freenode channel for discussion of literate programming?
14:16:21 -!- augur has quit (Ping timeout: 265 seconds).
14:40:43 -!- augur has joined.
14:48:18 -!- FireFly has joined.
15:05:04 <AnMaster> ais523, hi there, I don't remember if you told me (or if I even asked) about delay simulation back when I asked about vhdl simulation for linux several weeks ago. ghdl seems to only do "logic" simulation with no delay (which is of course also useful).
15:05:23 <ais523> AnMaster: it does delay simulation, but you need to write the delays into the source
15:05:26 <AnMaster> ah
15:05:30 <ais523> e.g. a <= b OR c after 10 ns
15:05:52 <ais523> that's how other delay simulators work too, just the commercial ones have tools to automatically write all the delays into the source
15:06:00 <ais523> and that's commercially sensitive information, pretty obviously
15:06:15 <AnMaster> what about delay simulation as in "delay of this stuff from the syntheis program output" kind of stuff?
15:06:29 <AnMaster> hm
15:06:36 <AnMaster> ais523, so those tend to be windows only?
15:06:47 <ais523> AnMaster: actually, they mostly run on Linux too, they're just very expensive
15:06:50 <AnMaster> ah
15:06:55 -!- base3 has left (?).
15:07:09 <ais523> presumably enough commercial microchip design companies use Linux that it's worth supporting it on that
15:07:45 <AnMaster> ais523, isn't the manufacture of the FPGA interested in selling the hardware rather than the development software?
15:07:56 <ais523> nah, they make money from both
15:08:20 <ais523> normally there's a crappy free version of the dev software, and a very expensive professional version that contains all the features that businesses actually need, like delay annotation
15:08:33 <AnMaster> hm
15:10:33 <AnMaster> ais523, what about universities? There should be an interest in getting students familiar with your products rather than those from the competitors. Looks like conflicting interests there when it comes to deciding what the price should be
15:10:51 <ais523> AnMaster: universities generally get copies for free, that's how I got mine
15:11:04 -!- kar8nga has joined.
15:11:30 <AnMaster> right, but students don't spent all the time in the lab, wouldn't it make sense to be able to do some such work from home as well and so on
15:12:24 <AnMaster> ais523, also ghdl seems strange in some respects. For example what is the point of that work-obj93.cf file...
15:12:38 <AnMaster> And it looks like it should be very hard to make ghdl behave nicely together with makefiles
15:12:41 <ais523> AnMaster: VHDL's compilation method is bizarre
15:12:53 <ais523> because you can define one entity in more than one way
15:12:59 <AnMaster> ais523, yes I know about that
15:13:13 <AnMaster> not fully about the reasons for it though
15:13:15 <ais523> I think it's designed to allow hot-swapping bits of the program
15:13:39 <ais523> you'd have, say, a delay-annotated architecture as an autogenerated second architecture for your entities
15:13:51 <AnMaster> ais523, the reason I heard was "sometimes you can't synthesise your original variant, so you write another alternative one"
15:14:00 <ais523> that as well
15:14:01 <AnMaster> there are some issues with that reason too though
15:14:09 <AnMaster> as in, why not just replace the old one instead
15:14:29 <ais523> often you have a synthesis design that can't be simulated, and a simulation design that can't be synthesised
15:14:33 <ais523> both bought from a third partyt
15:14:34 <ais523> *party
15:14:35 <AnMaster> hah
15:14:51 <ais523> because the simulation design looks like C or an imperative language like that
15:15:07 <ais523> and the synthesis design is along the lines of "set bit 123 to 1, set bit 124 to 0, set bit 125 to 1..." which is no use to anyone
15:15:16 <AnMaster> also wtf at the file name here (from ghdl tutorial, just to check that the install works): e~hello.o
15:15:21 <AnMaster> ~ in a filename wtf
15:16:27 <AnMaster> ais523, hm, wouldn't it be "set bit 123 to bit 2 xor bit 43" or such? or what do you mean
15:16:46 <ais523> AnMaster: no, I mean the individual control bits inside the FPGA
15:16:49 <AnMaster> oh right
15:17:12 <AnMaster> ais523, but isn't that more like the binary file? As in, it isn't vhdl any more then
15:17:14 <ais523> this stuff's all deliberately undocumented, just to add to the fun, so you /have/ to buy the code from a third-party rather than writing it yourself
15:17:20 <ais523> and yes, it's basically just a binary file
15:17:45 <ais523> although sometimes they get converted to ASCII and it's just a long list of numbers separated by commas
15:17:52 <AnMaster> ais523, someone should make an open source fpga or such, or at least a well documented one.
15:18:09 <ais523> setup costs are too high
15:18:15 <ais523> it'd cost millions to get the things manufactured
15:18:26 <ais523> but yes, I don't understand the FPGA market at all
15:18:28 <AnMaster> presumably that would actually be a competitive advantage, you can claim you, unlike all others, don't do vendor lock-in
15:18:49 <ais523> AnMaster: effectively that would be vendor lock-in, on the basis that all the /other/ vendors are locked in and won't accept your programs
15:19:42 <AnMaster> ais523, well, sure, but this avoids bitrot presumably. Even if the vendor stops maintaining software to work with very old no longer produced FPGAs, third parties could still do it
15:20:16 <ais523> AnMaster: I think it would be hilarious to put you in the same room as a manager in an FPGA company
15:20:24 <AnMaster> hah
15:20:28 <ais523> eventually you'd give up talking to each other because you didn't speak the same language
15:20:58 <AnMaster> ais523, anyway, I don't understand ghdl's compilation procedure, as in. It makes no sense at all
15:21:09 <AnMaster> why for example ghdl -a first
15:21:18 <ais523> let's just say, it makes a lot more sense than the commercial ones, and leave it at that
15:21:23 <AnMaster> and how on earth does one make this work with a makefile
15:21:34 <ais523> you just do the -a -e and so on in order
15:22:01 <AnMaster> ais523, what about that work-ob93.cf?
15:22:18 <AnMaster> ais523, it seems to break make -j2 if you have many files for ghdl to compile in a project
15:22:22 <ais523> AnMaster: everything in VHDL is namespaced
15:22:28 <ais523> and "work" is the default namespace
15:22:31 <AnMaster> okay...
15:22:33 <ais523> compiling something puts it /into/ that namespace, permanently
15:22:39 <AnMaster> eh okay...
15:22:43 <ais523> so you can reference it from other VHDL files in the same directory
15:22:57 <ais523> therefore, obviously, parallel make doesn't make sense unless you carefully separate the namespaces in advance
15:23:24 <AnMaster> ais523, so things need to be compiled in the right order? What would happen if I ran ghdl -a on a file that uses another one, before I ran it on that other file
15:23:56 <ais523> IIRC it's like compiling and linking; so long as all the entity declarations are available, you can do -a on everything then -e on everything
15:24:10 <ais523> but it doesn't work if you do -a -e on each file individually
15:24:22 <AnMaster> ais523, I was thinking something like ghdl on each file to create some intermediate format (could be done in parallel) then linking (not parallel of course)
15:24:29 <AnMaster> but this seems to completely break here
15:24:48 <ais523> AnMaster: no, the analysis is just basically looking for signatures
15:24:55 <ais523> and the elaboration looks at the actual code
15:25:05 <AnMaster> ais523, so that shared file is only touched by -a or?
15:25:37 <ais523> here's a nice mnemonic: -a looks at the entities, -e looks at the architectures
15:25:41 <AnMaster> right
15:25:45 <ais523> and I think it's written by -a and read by -e
15:26:05 <AnMaster> that will be one very messy makefile still
15:26:30 <ais523> yes
15:26:35 <AnMaster> you can't make the .cf file depend on anything properly
15:26:42 <ais523> now, for added fun, the commercial tools generate makefiles, then run them via cygwin
15:26:46 <ais523> at least, the Xilinx ones do
15:26:53 <AnMaster> because if two files were changed that will not do the right thing...
15:27:10 <AnMaster> ais523, wtf
15:27:32 <ais523> even more fun, because presumably they've paid Cygnus for a license for all this
15:27:41 <ais523> (Cygwin is GPL if you don't pay, license of your choice if you do)
15:28:04 <AnMaster> ais523, but what about the software in cygwin? cygnus doesn't own gnu make and so on
15:28:09 <ais523> current theory: the tools date from before Windows existed
15:28:22 <ais523> and I actually don't know, maybe it isn't GNU make they're using, but some other make
15:28:28 <AnMaster> heh
15:28:35 <AnMaster> why do you think the tools are that old btw?
15:29:05 <ais523> I can't think of any other plausible explanation
15:29:15 <ais523> also, the fact that they don't run properly on 64-bit systems or windows 7
15:29:19 <AnMaster> ais523, you mean they were written for *nix?
15:29:21 <ais523> we had to set up a Windows XP VM just to be able to use them
15:29:27 <ais523> yes, I think they were originally written for *nix
15:29:35 <AnMaster> also ouch at 64-bit
15:29:40 <ais523> which would explain the Linux support, and the arbitrary and unexpected use of cygwin
15:29:49 <ais523> AnMaster: there's a 64-bit version, but it's missing loads of features
15:29:57 <AnMaster> I see..
15:30:23 <AnMaster> ais523, and the 32-bit version doesn't run on 64-bit windows?
15:30:39 <ais523> correct
15:30:41 <AnMaster> ais523, the only reason for that would be that they use 16-bit code...
15:30:52 <ais523> wait, actually it does, but many of its features are missing if you do
15:31:06 <ais523> possibly only in later versions of windows, though
15:31:06 <AnMaster> since you can no longer run such code when in long mode on x86_64
15:31:14 <AnMaster> oh another ghdl wtf: ldd indicates that the compiled program links against libgnat...
15:31:24 <ais523> AnMaster: that doesn't surprise me
15:31:28 <AnMaster> why?
15:31:31 <ais523> VHDL was intentionally designed close to ADA
15:31:35 <AnMaster> ah
15:31:40 <ais523> it wouldn't surprise me if some of the libraries were, as a result, virtually identical
15:31:48 <ais523> and thus linking against libgnat was easier than rewriting it
15:31:49 <AnMaster> it also links libz
15:31:58 <AnMaster> which when you consider it, is even more wtf
15:32:00 <ais523> oh, that's so you can output the wave file compressed
15:32:10 <ais523> which is needed, considering how big and repetitive the things are
15:32:36 <ais523> (ghdl's major use is to run the resulting program to produce a wave file, then look at it on gtkwave or something)
15:32:40 <AnMaster> oh and now to figure out which files a make clean target would remove. I still haven't figured out how to properly do dependencies for generated files...
15:32:52 <AnMaster> presumably it would be a timestamp file for every file to make it work
15:32:56 <ais523> AnMaster: just delete the entire directory and restore the source from backup
15:33:02 <AnMaster> haha
15:33:14 <AnMaster> ghdl --clean? Do I dare ask what that does...
15:33:23 <AnMaster> hm
15:33:27 <AnMaster> or how it does it rather
15:33:44 <ais523> it's described as "remove generated files", presumably it's the inverse of the compile process
15:34:00 <AnMaster> ais523, wait a second, why restore? Doesn't ghdl support out of tree builds? Or at least separate object file directory or such
15:34:24 <AnMaster> bbiab, phone rang... annoyingly
15:34:31 <ais523> AnMaster: the concept of "out of tree builds" probably doesn't exist in VHDL generally
15:34:56 <ais523> the commercial tools make it rather unclear that anything exists besides the project, source and generated files and binaries and etc are all bundled together in arbitrary entities
15:35:05 <ais523> and you have to look at the directory structure by hand to figure out how it's done
15:43:41 <AnMaster> back
15:43:46 -!- hiato has quit (Quit: openttd time).
15:44:05 <AnMaster> ais523, it does make version control somewhat annoying presumably
15:44:21 <ais523> they come with hand-rolled version control
15:44:27 <ais523> which is basically a menu option to make a checkpoint
15:44:34 <ais523> which spends around half an hour backing up the entire project
15:44:53 <ais523> I /think/ it's actually just bundling it all into a .tgz behind the scenes, and the huge length of time is because it's backing up thousands of binaries as well as the sources
15:45:10 <AnMaster> half an hour?
15:45:14 <AnMaster> how large is the project then
15:46:16 -!- Tritonio_GR has quit (Quit: Leaving.).
15:52:57 <AnMaster> ais523, anyway, when does a file need to be re-analysed?
15:53:02 <AnMaster> as in ghdl -a
15:53:16 <ais523> when you change the entities in it, I think
15:53:20 <ais523> I just always reanalyse it, it saves trouble
15:53:24 <ais523> and it's not like it takes that long
15:53:27 <AnMaster> true
15:53:50 <AnMaster> are non-manual incremental builds even feasible at all?
15:56:25 <AnMaster> ais523, how does programs decide which of the defined implementations (or whatever the term is) of a given entity to use?
15:56:33 <ais523> I have no idea
15:56:33 <AnMaster> programs as in simulations and synthesis
15:56:49 <ais523> presumably there's some way to specify one, otherwise it picks one arbitrarily
15:57:00 <ais523> but so far I've never been able to specify one, just had to go with the one it happened to use
15:57:05 <AnMaster> how often have you used multiple implementations?
15:58:10 <ais523> only when told to by the teachers to prove I could
15:58:30 <AnMaster> I presume it would be interesting to test multiple ones to compare that they do the same thing (for all valid inputs if combinatorial at least, a bit harder if you have something with state)
15:58:31 <ais523> otherwise, there isn't much of a point unless you're doing automated annotation, etc, or have to buy simulation and synthesis implementations from a third party
15:58:47 <ais523> or worse, one synthesis and three simulation implementations designed for different sorts of simulations
15:58:53 <AnMaster> heh
15:59:10 <AnMaster> how do you get 3 different ones?
15:59:26 <AnMaster> two I can imagine: with/without delay
15:59:36 <ais523> there's more than one sort of delay you can measure
15:59:50 <ais523> sort-of "delay in theory" vs. "delay with this particular place-and-route"
16:00:12 <ais523> the second is basically like profile-guided optimisation, except instead of optimising the compile with the results from a run, you simulate the source with the results from a compile
16:01:09 <AnMaster> ais523, how can you do delay in theory without knowing the routing?
16:01:20 <ais523> it's approximate I think
16:01:25 <AnMaster> do you just consider the delay in gates, but not in wires?
16:01:41 <ais523> not sure, it's not like there's any documentation on how the stuff /works/
16:02:12 <AnMaster> ais523, it seems useless if you don't know what it actually simulates.
16:02:28 <ais523> oh, the info's bound to be available somewhere
16:02:43 <AnMaster> okay
16:02:44 <ais523> probably by phoning up a friend you have at Xilinx and asking them directly, that's how we got most of the actual useful information we use
16:02:52 <AnMaster> XD
16:03:31 <AnMaster> ais523, don't they wonder at any point: "Hmm, will this crappy stuff make us look bad?"
16:03:38 <ais523> theory: this is meta-job security, people making sure that if they're fired from Xilinx or Altera they'll always be able to get a job just consulting at companies to explain htf you use their products
16:03:46 <ais523> AnMaster: no, because it's par for the course
16:03:53 <AnMaster> from what I heard so far I concluded to avoid that brand if possible
16:03:53 <ais523> they look bad, but not any worse than any of their competitorss
16:03:55 <AnMaster> ah
16:03:55 <ais523> *competitors
16:05:04 <AnMaster> ais523, and yet no one tried to increase their market share by making themselves look better than their competitors?
16:05:22 <ais523> no, because their customers care more about features than usability
16:05:38 -!- Gracenotes has quit (Ping timeout: 240 seconds).
16:05:52 <ais523> for some reason management care more about the advertised list of features when buying hideously expensive microchip synthesisers/simulators
16:06:01 <ais523> rather than the actual usability for the employees who have to use the things
16:06:20 <AnMaster> and what do we learn from this? I think one of the things may be "free market is yet again proved not to work"
16:07:19 <AnMaster> ais523, are most of those feature actually that useful though?
16:07:30 <ais523> no, what did you expect?
16:07:38 <AnMaster> sigh
16:07:55 <ais523> half are actually counterproductive, in that you're told to use the feature rather than doing it the way you'd do it by hand without the feature, which would have been easier
16:08:19 <AnMaster> ais523, what do big companies like, say, IBM or such do then? Don't they at least have a bit more sense.
16:08:37 <ais523> no, they just make their own internal documentation for other people's products, I imagine
16:08:41 <AnMaster> XD
16:08:55 <ais523> then claim ISO 9000 compliance as a side effect
16:09:06 <AnMaster> why did I came to think of bankstar suddenly
16:09:11 <AnMaster> ISO 9000?
16:09:53 <AnMaster> ais523, what is ISO 9000? Or was that just a random number?
16:10:16 <ais523> AnMaster: it's basically a pointless "standard"
16:10:19 <fizzie> ISO 9000 is a family of stuff, mostly about having business processes that are all documented to the tiniest detail.
16:10:22 <ais523> which companies claim compliance to
16:10:28 <AnMaster> uhu
16:10:31 <ais523> and yes, it's about documenting everything you do and always doing it the same way
16:10:34 <fizzie> It is also all about Quality.
16:10:44 <ais523> regardless of what that process actually /is/, or whether it makes sense
16:11:05 <ais523> managers think it's very important, although none of them can explain why
16:11:31 <AnMaster> ais523, btw, I have a hard time seeing how FPGA vendors can enforce vendor lock in, after all VHDL is an ISO (or was it IEEE?) standard.
16:11:47 <ais523> AnMaster: they don't lock in the language, but the source
16:11:56 <ais523> imagine if you had to rent your libc from a commercial vendor
16:11:57 <ais523> it's like that
16:12:17 <AnMaster> ais523, find , -name '*.fileext' to find the vhdl files? then import it into another system from another vendor?
16:12:22 <ais523> hmm, a better example would be if libc was open-source, but you had to rent a whole bunch of random libraries
16:12:39 <fizzie> Find from the comma-directory.
16:12:56 <ais523> and no, you can't do that; partly because the files are massively obfuscated, partly because they're written in incredibly system-specific ways, partly because you have to agree to a licence not to do that, and partly because of the insane DRM involved over the whole process
16:13:00 <AnMaster> ais523, rent? Do you pay per month for those FPGA synthesisers and such!?
16:13:10 <AnMaster> fizzie, typo :P
16:13:17 <ais523> for the synthesisers, you pay per version, effectively
16:13:23 <AnMaster> right
16:13:27 <ais523> (I don't pay, because of the free versions given to universities)
16:13:31 <ais523> you rent the libraries
16:13:41 <AnMaster> ais523, but if you write your code in vhdl I can't see how you just move the files elsewhere
16:13:45 <ais523> things like multipliers you normally get for free (because the open-source versions are just as good)
16:14:06 <ais523> but things like ethernet modules you mostly just get the binaries, and they're specific to a specific version of a specific processor
16:14:07 <fizzie> AnMaster: You write your code in C, so you can switch operating systems with abandon, right?
16:14:31 <AnMaster> fizzie, well, okay, C itself is a bit annoyingly limited, rather more like POSIX
16:14:51 <ais523> AnMaster: let's just say, there aren't things like ethernet libraries in the VHDL standard
16:14:54 <AnMaster> that way you can go to any *nix vendor in theory (sure I admit there are some compat issues, and there are always bugs)
16:15:04 <AnMaster> ais523, what about open source vhdl for that?
16:15:16 <ais523> open-source vhdl exists
16:15:25 <ais523> but the chip designers go out of their way to not give you the info needed to use it
16:15:42 <fizzie> OpenCores has quite a collection, I believe. Never had had an occasion to browse, though.
16:15:43 <AnMaster> ais523, sure you need to interface the pins manually, but a lot of the stuff, like building ethernet frames would be vendor independent, no?
16:15:55 <ais523> e.g. I tried and failed for two weeks to discover which pins on the chip were connected to which features on the demo board of the demo board we have
16:16:10 <AnMaster> demo board of a demo board?
16:16:15 <AnMaster> (what happened there)
16:16:23 <ais523> fizzie: I'm an OpenCores member, partly as a protest against all this BS
16:16:39 <ais523> although OpenCores is pretty wtfy itself, it just manages to be a lot less wtfy than the Xilinx (and presumably Altera) stuff
16:16:50 <ais523> AnMaster: you misparsed the sentence
16:16:50 <AnMaster> ais523, anyway, where did you get the ethernet hardware from? The same vendor?
16:17:00 <ais523> yes, it was connected to the chip, physically
16:17:04 <ais523> so we could tell it was working
16:17:08 <ais523> but we still don't know how to use it
16:17:33 <AnMaster> ais523, well you wouldn't have a demo board in real production hardware would you?
16:18:10 <ais523> no, you wouldn't; except, to add to the fun, the tools that you use to create all the ethernet stuff, etc, generate it assuming that you're using the same connections as on the demo board
16:18:29 <AnMaster> in which case you could take a third party ethernet hardware (the contact and presumably some other things, I don't know exactly how much of the ethernet hardware can be done in an FPGA...) and just build your own
16:19:16 <ais523> that would be pretty expensive just to build the hardware to connect the FPGA to the ethernet hardware
16:19:25 <ais523> you'd need to do things like generate a circuit board, etc
16:19:42 <ais523> and FPGAs have pins so dense that you can't do it by hand, you pretty much need an automatic multilayer circuit board maker machine
16:19:54 <AnMaster> ais523, isn't there already ethernet hardware out there from third parties?
16:20:13 <ais523> AnMaster: of course, it's connecting it to the FPGA that's the issue, not the hardware itself
16:20:47 <AnMaster> ais523, well, a third party one would most probably come with docs (since there would be no other way for users to use it, right?)
16:21:01 -!- Gracenotes has joined.
16:21:03 <ais523> AnMaster: you'd be surprised
16:21:08 <AnMaster> oh?
16:21:14 <ais523> for third-party hardware, the docs have ranged all the way from brilliant to useless
16:21:35 <ais523> the normal way to use the hardware with useless docs is to find decent docs from a competitor's product that does the same thing, then use those
16:21:44 <ais523> because they all try to be pin-compatible with each other
16:21:52 <AnMaster> ais523, an informal standard?
16:22:02 <ais523> yep, pretty much
16:22:19 <ais523> thousands of them, one for each sort of hardware component you could imagine
16:22:33 <AnMaster> ais523, well that should simplify things, there is *bound* to be someone else who already interfaced this informal standard and who made something open source for it
16:22:46 <AnMaster> at least for the more common components
16:22:59 <ais523> AnMaster: the problem is, it's pairs of components you worry about
16:23:04 <ais523> as in, that hardware + that FPGA
16:23:21 <ais523> most individual pairs haven't been done yet (most people can neither afford to work with FPGAs, nor put up with them even if they could afford it)
16:23:30 <AnMaster> well okay, you have to do the pin layout anyway, surely most of the time you need some custom hardware anyway
16:23:34 <ais523> and instructions for that sort of thing have a rather short half-life
16:23:48 <ais523> because features keep being changed or breaking at random or moved to different programs, etc
16:23:54 <ais523> in the FPGA programming software
16:24:21 <AnMaster> ais523, so okay, a lot of the ethenet example is device independent, couldn't you do something like driver + pin_mapper, where you just had to write the latter bit
16:24:39 <AnMaster> which would just be some short file listing which pins you mapped to what for the ethernet hardware
16:24:48 <ais523> the problem is that you're massively discouraged from doing that bit
16:24:48 <AnMaster> it seems pretty sensible
16:24:56 <ais523> if you want a bit of fun, have a look at what the pin mapper software actually /is/
16:25:00 <ais523> it has a massive and almost unusable GUI
16:25:07 <AnMaster> ais523, I invented the word "pin mapper" here
16:25:13 <AnMaster> as in
16:25:20 <ais523> last time I used it, I clicked on things at random, then figured out where its output file was, then looked at the format and edited it by hand, more or less
16:25:21 <AnMaster> I didn't know it referred to a specific existing software
16:25:25 <ais523> amusingly, the output file was short and simple
16:25:30 <ais523> AnMaster: it is specific existing software
16:25:36 <ais523> with a GUI that fills the entire screen, and uses all of it
16:25:45 <ais523> and where changing anything requires going through two nested dialog boxes
16:25:54 <AnMaster> ais523, anyway an FPGA would often be pretty useless if you can't interface your own custom hardware as well. Which would presumably include things like custom sensor devices or whatever
16:25:56 <ais523> I completely fail to understand how it can be /that/ complex, btw
16:26:13 <AnMaster> yes me too
16:26:24 <ais523> AnMaster: it seems that the trend nowadays is for FPGAs to be used standalone and communicate via ethernet or I2C or whatever with the other components
16:26:28 <ais523> which seems bizarre to me
16:26:42 <AnMaster> ais523, what I was thinking about was more something like: #define ETH_TX pin1732
16:26:43 <AnMaster> or such
16:26:45 <ais523> presumably, you'd use an ASIC if you were using enough of them to actually be worth shipping in a commercial project
16:26:46 <AnMaster> a file with such
16:26:53 <AnMaster> then that would be used for the generic driver
16:26:56 <ais523> AnMaster: that's pretty much what the .hcf file it's editing is
16:27:01 <ais523> although it's a different format, ofc
16:27:07 <AnMaster> well yes, that was C syntax
16:27:08 <ais523> (not VHDL, it's in its own format)
16:27:11 <AnMaster> which would be rather silly
16:27:47 <AnMaster> hm wait a second
16:27:53 <AnMaster> I2C or ethernet?
16:27:57 <AnMaster> there is a gap there
16:28:20 <AnMaster> ais523, isn't I2C rather slow?
16:28:36 <ais523> depends on what you're using it for
16:28:44 <AnMaster> ais523, somewhat fast memory
16:28:48 <ais523> hardware that does anything but calculating tends to be intrinsically rather slow
16:28:56 <AnMaster> ais523, lets say you want to use a FPGA to do ray-tracing
16:28:58 <ais523> you wouldn't use I2C for the memory, agreed
16:29:10 <ais523> you'd probably just use the demo board, and connect it to your computer over ethernet or PCI or something
16:29:11 <AnMaster> ais523, but using ethernet for memory would be *very* silly
16:29:17 <ais523> (the demo boards often come with PCI connectors)
16:29:28 <AnMaster> in fact, using ethernet would be silly for anything but other "nodes" or such
16:29:58 <AnMaster> ais523, well, a demo board seems rather useless if you want to sell this product with an FPGA doing ray tracing
16:30:17 <ais523> AnMaster: you don't, though; FPGAs are normally used internally
16:30:19 <AnMaster> you want to put it on a PCIe board with memory basically
16:30:21 <ais523> so you don't care about how ridiculous it looks
16:30:35 <ais523> there are companies which do just sell PCIe boards with FPGAs and memory, though
16:30:40 <ais523> so you could use one of those
16:30:42 <AnMaster> ais523, I remember reading about an FPGA-based rendering product, commercial
16:30:47 <ais523> (unfortunately, the documentation is equally insane...)
16:31:01 <AnMaster> FPGA because it was rather niche and ASIC would have been uneconomical
16:31:20 <AnMaster> ais523, sigh...
16:32:31 <AnMaster> ais523, actually when it comes to cost for producing open source FPGAs, isn't there some thing for universities to group together on one wafer and do various projects on different parts of it?
16:32:42 <AnMaster> read about that somewhere
16:33:00 <ais523> possibly, but you'd still be spending a million divided by the number of projects, which is still likely to be quite a lot
16:33:04 <AnMaster> just a few circuits for each project, and lots and lots of projects
16:33:13 <AnMaster> hm true
16:34:20 <AnMaster> ais523, anyway, have you reverse engineered that file format for the pin mapper?
16:34:51 <AnMaster> (if that is required)
16:35:02 <ais523> AnMaster: it's probably documented somewhere
16:35:07 <ais523> and the format's incredibly simple as it is
16:35:11 <AnMaster> ah good
16:35:16 <AnMaster> ais523, then just use that directly?
16:35:18 <ais523> basically just key-value, with both quoted, separated by =
16:35:22 <ais523> and yes, that's what I do nowadays
16:35:26 <AnMaster> heh
16:35:37 <AnMaster> ais523, be happy it wasn't some obfucated binary file format
16:35:59 <AnMaster> bbl
16:46:31 -!- lereah_ has quit (Quit: Leaving).
16:52:54 -!- Gracenotes has quit (Ping timeout: 276 seconds).
17:03:15 <AnMaster> back
17:04:11 -!- Gracenotes has joined.
17:08:14 <AnMaster> ais523, what about that genetic algorithm to build a circuit on an FPGA thingy, somewhat well known iirc
17:08:24 <AnMaster> if things are that undocumented how did they manage that
17:08:38 <ais523> genetic algos work pretty well on undocumented platforms
17:08:45 <ais523> arguably, better than regular algos
17:09:02 <AnMaster> ais523, well yes but they would have still had to figure out where to put the input and output into the genetically grown block
17:09:41 <AnMaster> iirc they used a "square" of n components that were modified + a bit of fixed stuff to connect the inputs and output to the edges of this area
17:09:46 <AnMaster> that is very iirc though
17:11:12 -!- luko has joined.
17:11:51 <AnMaster> ais523, and iirc it did the genetic algorithm directly on the binary. Again only iirc
17:13:27 -!- impomatic has joined.
17:13:34 <impomatic> Hi :-)
17:15:42 -!- luko has quit (Ping timeout: 240 seconds).
17:16:01 <fizzie> AnMaster: You mean the http://www.cogs.susx.ac.uk/users/adrianth/ade.html thing? The one that distinguished between a 1 kHz and a 10 kHz tone with just 32 gates, some of which weren't even connected (but still had an effect on the circuit).
17:16:16 <fizzie> (I'm not sure if there's any details available through the page, though.)
17:16:18 <AnMaster> fizzie, yes that sounds like the one
17:17:31 <fizzie> It's in one of the Science of Discworld books too. :p
17:20:40 <ais523> fizzie: it distinguished between two waveforms using only combinatorial logic, which is obviously impossible
17:20:51 <ais523> so obviously it was exploiting non-ideal behaviour of the components it was made from
17:21:34 -!- BeholdMyGlory has joined.
17:21:47 <fizzie> Yes; but it's still nifty.
17:22:31 <impomatic> Virtual Organisms mentions something about evolved gate arrays. If the gates which aren't connected to the circuit are removed, it stops working.
17:22:33 <impomatic> Weird.
17:23:14 <impomatic> I've ordered a FPGA dev board to experiment with it myself
17:25:09 <fizzie> http://swtch.com/r.zip -- a sort of a zip-quine; it expands to itself, except in a subdirectory r/.
17:25:36 <fizzie> Don't know where it came from, might be old; link via another channel.
17:25:59 <ais523> it was being discussed a few days ago on reddit
17:26:09 <ais523> along with .gz and .tar.gz versions
17:26:26 -!- Gracenotes has quit (Ping timeout: 246 seconds).
17:26:34 <AnMaster> <fizzie> It's in one of the Science of Discworld books too. :p <-- yes I think that is where I first read about it
17:26:52 <fizzie> A compression file format is a bit of a natural platform for that sort of stuff.
17:27:51 <AnMaster> fizzie, how do you manage to get itself back, doesn't zip files contain some sort of checksum which might make the whole thing harder?
17:29:02 <fizzie> Yes, I would assume it complicates things; but the checksum's not exactly cryptographically strong.
17:29:20 <AnMaster> crc?
17:30:29 <fizzie> Some CRC-32 variant, IIRC.
17:30:43 -!- tombom has joined.
17:32:11 <AnMaster> right
17:34:05 <fizzie> "ISSNC 2010, 17th International Summer School in Novel Computing"; presumably for people who are both computer scientists and novelists.
17:37:29 <AnMaster> heh?
17:39:25 -!- cap11235 has quit.
17:40:28 <AnMaster> ais523, what free alternatives are there to ghdl (if any)?
17:40:35 <AnMaster> free open source I mean
17:40:36 <ais523> I don't know of any
17:40:40 <ais523> that doesn't mean there aren't any, ofc
17:40:49 <ais523> but it does mean I can't point you to them
17:41:00 -!- FireFly has quit (Quit: null).
17:41:45 <AnMaster> ah
17:44:17 -!- Gracenotes has joined.
17:50:42 <AnMaster> ais523, what is the simplest way to make a test suite or such for a (stateless) entity in vhdl?
17:50:54 <AnMaster> as in, I just want to test all input signals and get a time diagram
17:50:58 <ais523> write it in imperative VHDL
17:51:07 <ais523> something as simple as using initialised signals
17:51:13 <ais523> together with a <= not a after 10 ns
17:51:16 <ais523> b <= not b after 20 ns
17:51:19 <AnMaster> hm
17:51:19 <ais523> c <= not c after 40 ns
17:51:21 <AnMaster> right
17:51:35 <ais523> or a <= a + 1 if they're integers rather than std_logics
17:52:29 <AnMaster> ais523, shouldn't there just be a way to do: for each number in range 0000 1111... and then use that to generate the time diagram
17:52:33 <AnMaster> if you see what I mean
17:52:45 <ais523> AnMaster: but that doesn't specify the timings
17:53:02 <ais523> a <= conv_std_logic(conv_integer(a)+1) after 10 ns
17:53:05 <AnMaster> ais523, the thing I want to test have no timing info currently
17:53:06 <ais523> see, that's pretty simple
17:53:08 <AnMaster> hm
17:53:13 <AnMaster> right
17:54:07 <AnMaster> ais523, the example "test bench" at http://ghdl.free.fr/ghdl/A-full-adder.html seems quite confusing
17:54:17 <AnMaster> oh wait, forgot you ignore links
17:54:22 <AnMaster> it was from the ghdl manual
17:54:28 <ais523> test benches can be written to be synthesisable, it's harder then
17:54:29 <AnMaster> test bench for a full adder
17:54:36 <ais523> anyway, the reason is that test benches are normally full of asserts
17:54:44 <ais523> as in, actually test the outputs, rather than just generating them
17:54:50 <AnMaster> it uses:
17:54:51 <AnMaster> type pattern_array is array (natural range <>) of pattern_type;
17:54:52 <AnMaster> constant patterns : pattern_array :=
17:54:58 <AnMaster> and then a list of the binary numbers
17:55:00 <ais523> normally you rewrite what the circuit's meant to do in imperative VHDL< and compare
17:55:08 <ais523> heh, natural range <>
17:55:15 <ais523> VHDL array syntax is so cute
17:55:18 <AnMaster> ais523, ?
17:55:23 <AnMaster> what does natural range <> mean?
17:56:37 <AnMaster> ais523, also this seems weird: assert false report "end of test" severity note;
17:56:54 <ais523> AnMaster: welcome to output to stderr
17:57:05 <AnMaster> oh my god
17:57:05 <ais523> "severity note" means it isn't a problem that the assert fails
17:57:12 <ais523> and the assert failure means it gets output
17:57:15 <AnMaster> also why does it end with wait;
17:57:24 <ais523> and to prevent an infinite loop
17:57:29 <AnMaster> i see
17:57:31 <AnMaster> I*
17:57:38 -!- Gracenotes has quit (Ping timeout: 260 seconds).
17:57:56 <ais523> you are missing the point of VHDL if you don't see why you need a pause instruction /somewhere/ in a loop, even an implicit one around a process with no trigger conditions
17:58:32 <ais523> (it's a nice fun reversal from most languages; in most languages, you put an infinite loop at the end of a program for it to not terminate, in VHDL you put an infinite wait at the end of a process for it to terminate)
17:58:50 <AnMaster> ais523, well I can see why it makes sense in the actual thing you are synthesising. But not in a test suite for simulation no
17:59:06 <AnMaster> maybe the issue is that such test benches abuse vhdl basically
17:59:06 <ais523> AnMaster: it's the way VHDL thinks
17:59:15 <ais523> you still have too much of an imperative mindset
17:59:55 <AnMaster> ais523, you didn't get around to describing what natural range <> actually meant.
18:00:06 <ais523> I'm not actually sure
18:00:16 <AnMaster> ah
18:00:21 <ais523> but I think it defines an array type whose bounds are determined later when it's actually used
18:00:26 <ais523> rather than having fixed bounds for all instances of the type
18:00:31 <AnMaster> oh btw, any idea about this bit: for i in patterns'range loop
18:00:34 <AnMaster> the ' to be specific
18:00:56 <AnMaster> ais523, :D
18:01:11 <ais523> AnMaster: think of ' in VHDL like -> in C++
18:01:16 <AnMaster> ah I see
18:01:20 <ais523> it basically accesses metadata
18:01:23 <ais523> alternatively, it's the cast operator
18:01:27 <ais523> as in, String'("Hello, world!")
18:01:41 <ais523> (which needs to be cast to a string because "" is ambiguous without knowing what type it is)
18:01:54 <ais523> (imagine "1XXUW", is that a string or a std_logic_vector?)
18:02:21 <AnMaster> Oh I see what that array is, it isn't actually a binary count, it is expected output as well
18:02:59 <AnMaster> ais523, I couldn't tell, I'm still learning vhdl
18:03:11 <AnMaster> but yes it might be ambiguous
18:03:42 <AnMaster> ais523, I'm somewhat confused by the use of quotes in VHDL
18:04:02 <ais523> AnMaster: '' quotes one thing, "" quotes an array of things
18:04:16 <AnMaster> ah I see
18:04:23 <AnMaster> and what is "thing" here?
18:04:26 <ais523> e.g. '0' is a single std_logic (or possibly something else, you might need to cast it depending on context), "0000" is four std_logics forming a std_logic_vector (again, it might be something else)
18:04:42 <ais523> and "thing" is an arbitrary type, you need to cast unless it's clear from the context, which it usually is
18:04:49 <ais523> but quite often it's std_logic
18:05:59 <AnMaster> hm
18:06:33 <AnMaster> ais523, and when is that "bit" type used?
18:06:56 <ais523> very rarely, it's an imperative boolean
18:07:08 <AnMaster> hm I see
18:07:11 <ais523> so you need to be a) writing imperative code, and b) happening to need a boolean
18:07:16 <fizzie> AnMaster: the summer school thing was just a miscellaneous ad from my inbox. "Surprisingly" it wasn't related to novels in the book sense at all; was more about robotics and such.
18:07:18 <ais523> and that combination doesn't come up a lot
18:07:30 <AnMaster> fizzie, where did the word "novel" come from then?
18:07:52 <ais523> it might work for something like a flag variable (note, not flag signal)
18:08:00 <fizzie> AnMaster: 1. (6) fresh, new, novel -- (original and of a kind not seen before; "the computer produced a completely novel proof of a well-known theorem")
18:08:10 <AnMaster> ais523, hm
18:08:40 <AnMaster> ais523, how is verilog compared to vhdl btw?
18:09:06 <ais523> used more in academia and less in the military; same feature set; syntax is C-like and rather sloppier than VHDL's
18:09:40 <AnMaster> mhm
18:09:56 <AnMaster> ais523, and what about in industry
18:10:04 <ais523> not sure
18:10:07 <AnMaster> ah
18:10:14 <ais523> although all the industrial tools default to VHDL, which is a clue
18:10:27 <AnMaster> any linux tools for verilog btw?
18:11:08 <ais523> no free ones that I know of
18:11:15 <ais523> although the same expensive ones that do VHDL do Verilog too
18:11:47 <AnMaster> right
18:12:25 <fizzie> There are five open-source ones in http://en.wikipedia.org/wiki/List_of_Verilog_simulators but it's anyone's guess how serious those are.
18:13:09 <fizzie> The name (Verilog, as opposed to VHDL) is perhaps easier to twist into fancy nomenclature; cf. "Verilator", "VeriWell".
18:13:57 <AnMaster> augh at the latter one
18:14:11 -!- Gracenotes has joined.
18:23:39 <AnMaster> " Copyright (C) 2004, 2005, 2008 Tristan Gingold -- tgingold AT free DOT fr
18:23:39 <AnMaster> Last modified: Thu Mar 16 04:39:49 CET 2006 "
18:23:44 <AnMaster> from http://ghdl.free.fr/features.html
18:23:52 <AnMaster> time travel may be involved
18:24:03 <AnMaster> (for ais: that was from ghdl web site)
18:25:29 <AnMaster> oh and the copyright line does not seem to be site wide
18:25:36 <AnMaster> nor does the last modified date
18:25:44 <AnMaster> so this is quite wtf
18:27:37 <AnMaster> ais523, btw, found an open source verilog simulation/synthesis tool (subproject of gEDA it seems)
18:27:48 <AnMaster> bbl in about 1 hour
18:33:34 -!- Gracenotes has quit (Ping timeout: 260 seconds).
18:37:28 <nooga> AnMaster: maybe he was using Apple's Time Machine [tm]
18:43:41 -!- nooga has quit (Ping timeout: 240 seconds).
18:45:28 -!- nooga has joined.
18:45:48 -!- coppro has joined.
18:46:10 -!- jcp has joined.
18:47:37 -!- jcp has quit (Remote host closed the connection).
18:48:52 -!- SgeoN1 has joined.
18:52:25 -!- FireFly has joined.
18:57:04 <fizzie> Heh, the "Pattern Recognition Society of Finland" decided to award their yearly "best Master's thesis" award of 2009 to my thing. Now I'm feeling somewhat obligated to join their silly club.
18:57:31 <nooga> what was your thesis?
18:57:57 <fizzie> "Methods for Spectral Envelope Estimation in Noise Robust Speech Recognition"
18:58:18 <coppro> apparently GSOC gave me a free membership in ACM for a year
18:59:53 <fizzie> I understand there was a (very minor) spike in ACM student membership popularity when it turned out you could get access to Microsoft's "academic alliance" software that way. Or at least they bothered to put "Note! The membership does not give you access to Windows 7" on the sign-up page with red letters.
19:01:08 <fizzie> Well, maybe it wasn't red text.
19:01:21 <pikhq> And just being a student gets you access to Windows Server 2008.
19:01:28 <fizzie> But https://campus.acm.org/public/qj/QuickJoin/qj_control.cfm?form_type=Student still displays quite prominently "The Microsoft Developer Academic Alliance package DOES NOT contain Windows 7."
19:01:56 <fizzie> We have one Windows box here for when it's absolutely necessary, and I think it's running Server 2003 from the Dreamspark thing.
19:01:58 <coppro> I think UW will get me access to various Microsoft softwares
19:02:17 -!- kar8nga has quit (Remote host closed the connection).
19:02:21 <pikhq> coppro: If you're a student, you've got access to Microsoft softwares from Dreamspark.
19:02:33 <coppro> something like that
19:02:34 <pikhq> Note. That is not "college student", just "student".
19:02:45 <coppro> some of them, yeah
19:02:50 <coppro> but the university grants more
19:02:51 <pikhq> And technically, all they *check* is that you've got a student email account.
19:02:54 <pikhq> True.
19:03:08 <coppro> I'd investigate more
19:03:11 <coppro> but I don't care
19:03:16 <pikhq> But Dreamspark already nets you Server 2008 and Visual Studio. AKA most of the expensive dev software. :P
19:04:01 <pikhq> I've only used this for the sake of virtualising an Active Directory setup so that I could figure out how to get Linux to use Active Directory for login for work...
19:04:31 <fizzie> Server 2008 might not be the nicest workstation OS ever. At least I'm getting a bit bored having to type a reason for shutdown every time I turn off that Server 2003 box. (The "ok" button in the dialog is disabled until you write something in the "why you be shutting me down?" box.)
19:04:48 <pikhq> fizzie: That is quite annoying, yes.
19:04:58 <pikhq> I think there's a way to turn that off, though.
19:05:16 <pikhq> Something like "Yes, this is a *workstation* not a server. Fuck off."
19:05:24 <fizzie> Typically I'd guess a magic register key value somewhere.
19:05:35 <pikhq> Yeah...
19:05:40 <SgeoN1> Isn't there a game at lost.edu or something? How'd they get a .edu?
19:06:06 <SgeoN1> Or maybr I'm hallucinating
19:07:16 <pikhq> SgeoN1: This is all a hallucination.
19:07:18 <pikhq> The Internet does not exist.
19:07:21 <pikhq> Now go to bed.
19:08:22 <SgeoN1> Hm, a better nick might be Sgeoid
19:08:31 <fizzie> Sgendroid.
19:08:47 <fizzie> Sgeoid sounds like a shape.
19:09:12 <fizzie> Or "Sgexus_One"?
19:09:14 <SgeoN1> Are you saying I'm not a shape?!?!
19:09:41 <fizzie> Isn't the joke usually "What do you mean I'm not in shape? Round *is* a shape!"
19:10:22 <SgeoN1> Didn't think of that, but I'm more of a line than a sphere.
19:10:41 <SgeoN1> Oh, "in" ahape
19:13:18 <nooga> F(@#&#(&@#CK
19:13:30 <nooga> I SCREWED MY GSOC APP THIS YEAR ;[
19:16:50 <coppro> :(
19:17:00 <coppro> what'd you do?
19:26:02 -!- Phantom_Hoover has joined.
19:26:21 <Phantom_Hoover> So, are there any decent free CASs?
19:26:34 <Phantom_Hoover> I've tried Maxima, but I was wondering.
19:26:51 <pikhq> Maxima's pretty much it.
19:27:25 <Phantom_Hoover> And Mathematica is well out of my league...
19:27:39 <Phantom_Hoover> Oh, well.
19:30:00 <SgeoN1> Hi Phantom_Hoover. We were worried about you. What's the deal with the edit on the wiki?
19:30:17 <Phantom_Hoover> I was feeling weird last night. I'm OK now.
19:30:41 <SgeoN1> Glad to hear you're ok
19:31:23 <Phantom_Hoover> BtW, did oerjan and alise get that Fibonacci bijection working?
19:31:48 <SgeoN1> I'm... not sure
19:34:09 -!- SgeoN1 has quit (Read error: Connection reset by peer).
19:34:18 -!- SgeoN1 has joined.
19:35:09 <Phantom_Hoover> Based on my understanding of the algorithm, I can't work out what the binary number "1111" goes to. "111" is {1, 1}, I think.
19:37:03 <Phantom_Hoover> Oh, and the Ubuntu community's help for my graphics drivers crashing my computer is an unequivocal "You're screwed until the update."
19:37:49 <Phantom_Hoover> This was after spending twenty minutes posting my complaint on the IRC channel every five minutes until I got a response. alise was right, a bag of weasels is far superior.
19:40:19 <ais523> #ubuntu can be pretty awful
19:40:39 <ais523> sometimes I idle there around a new release, to increase the average quality of help (I'm not very good at helping, but the average is worse)
19:40:46 <ais523> but I didn't this time because I haven't upgraded yet
19:41:23 <Phantom_Hoover> It's a small mercy that the particularly computer-illiterate users don't know how to use IRC.
19:44:39 <fizzie> Oh, did they kick the lucid out of the door?
19:45:36 <coppro> yes
19:46:14 <fizzie> I am tempted to say "ilmassa on suuren urheilujuhlan tuntua!", but will not, since I couldn't translate that well enough anyway.
19:47:12 <fizzie> Deewiant: "About NetHack: by night, if they saw him stoop; and even to raise his goats from the man in the use of black magic. as a hunter with..."
19:47:27 <Deewiant> Seems a bit cut off
19:47:39 <fizzie> Thank Twitter for that.
19:47:47 <Deewiant> Twitter: My thanks
19:48:07 <fizzie> I just suffix ... if it seems to go past the 140 character limit; didn't tweak the stopping probability at all.
19:49:35 <fizzie> Deewiant: I also somehow was amused a bit by a recent poem: "maa on viileä kuin myrkkykaatopaikka / solmu hapertuu yöksi / tylsyys osaa juoda myrkkyä meissä".
19:50:05 -!- SgeoN1 has quit (Ping timeout: 252 seconds).
19:50:06 <Deewiant> Did you have runogen on Twitter as well?
19:50:33 <fizzie> Sure, http://twitter.com/runogen (what an inspired account name).
19:50:49 <fizzie> There exist an english port of runogen, but for some reason it's not at all as funny.
19:51:05 <Deewiant> Worse corpus?
19:51:18 <fizzie> Smaller, I think. Only one wordset, no... stranger ones.
19:52:43 <fizzie> For some reason ~no-one seems to be following either one; runogen's got 2 followers and fungot has 6.
19:52:44 <fungot> fizzie: you shouldn't need the traceback since you should be able to run a gambit benchmark from the repl, but not your vote). you need to
19:56:58 <AnMaster> back
19:57:11 <AnMaster> <nooga> AnMaster: maybe he was using Apple's Time Machine [tm] <-- augh
19:58:31 <AnMaster> opencores has a horrible faq page btw. It is somewhat surprising that it works even without javascript..
19:58:38 <AnMaster> (see http://opencores.org/opencores,faq)
19:59:01 <AnMaster> (try clicking those links, in fact, you will notice the issue before you click)
19:59:17 <AnMaster> it is neurotic to navigate
20:08:24 -!- Tritonio_GR has joined.
20:08:32 -!- nooga has left (?).
20:08:38 -!- nooga has joined.
20:08:51 <nooga> coppro: i did IM filesystem for Plan 9
20:08:56 <nooga> at least tried
20:09:10 <coppro> nooga: What did you screw up?
20:09:15 <AnMaster> nooga, IM?
20:09:22 <nooga> proposal ;D
20:09:31 <nooga> Instant Messaging
20:09:33 <AnMaster> ouch
20:09:41 <AnMaster> you meant what I thought you meant. :/
20:09:55 <nooga> oh come on, this was even in their ideas
20:10:13 <nooga> my view was a little bit modified, though
20:10:30 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
20:10:34 <ais523> nooga: I take that this is mapping IM to the filesystem, rather than creating a filesystem stored over IM
20:10:49 <nooga> ais523: you're right
20:10:58 <ais523> boring
20:11:01 <nooga> there's an IRCfs for Plan 9
20:11:20 <nooga> in Plan 9 you write filesystems instead of libs
20:11:25 <coppro> How did you screw it up?
20:11:46 <AnMaster> nooga, which im protocol? jabber?
20:11:58 <nooga> because filesystems provide consistent interface for every stupid shell script or C prog or something else
20:12:11 <nooga> AnMaster: yup
20:12:24 <nooga> but XMPP is tough
20:12:33 <AnMaster> ais523, looking around there seems to be better open source tools for verilog than for vhdl, at least there seems to be some open source synthesis tools for verilog
20:12:39 <AnMaster> haven't yet found any for vhdl
20:12:51 <nooga> coppro: i guess it was not as detailed as it should be
20:13:21 -!- impomatic has left (?).
20:19:52 <nooga> haha, now WIMACS has a modem
20:21:09 <AnMaster> nooga, ?
20:22:05 <nooga> WIMACS is out (mine/friend's) computer built from scratch
20:22:38 <nooga> with 8088 processor, homebuilt motherboard and homebuilt modem as an I/O device
20:23:13 <nooga> i'm trying to write small OS for it and then you will be able to dial WIMACS using modem and talk with it on tty
20:24:41 <nooga> our*
20:26:51 <nooga> maybe it could even serve a BBS
20:26:59 <pikhq> Not bad.
20:27:37 <pikhq> You could probably port CP/M to it.
20:27:42 <nooga> sure
20:27:59 <nooga> even DOS
20:28:15 <nooga> but i want to write my own
20:28:16 <pikhq> DOS is very, very, very heavily BIOS-based.
20:28:18 <nooga> just for fun
20:28:23 <pikhq> CP/M is more portable.
20:28:29 <nooga> that's right
20:28:40 <nooga> but running DOS is possible
20:28:45 <pikhq> Basically all that's needed is an 8080, a terminal, and 16k of RAM.
20:29:07 <pikhq> Possible, but you'd not run anything that used BIOS routines.
20:29:16 <pikhq> Unless you wrote an IBM BIOS emulator.
20:29:16 <nooga> that's why CP/M is awesome
20:29:17 <pikhq> *shudder*
20:29:33 <pikhq> Yeah.
20:33:17 <nooga> burp
20:42:34 -!- oerjan has joined.
20:43:11 -!- SgeoN1 has joined.
20:43:23 <oerjan> <Phantom_Hoover> BtW, did oerjan and alise get that Fibonacci bijection working?
20:43:38 <oerjan> i didn't code it up, and i didn't hear alise said e did, either
20:44:06 <oerjan> also, you're alive! (but absent)
20:44:21 <oerjan> <Phantom_Hoover> Based on my understanding of the algorithm, I can't work out what the binary number "1111" goes to. "111" is {1, 1}, I think.
20:44:35 <ais523> oerjan: alise added a link to the wiki
20:44:43 <nooga> i'm thinking about Forth-like language for WIMACS
20:44:44 <ais523> which may or may not be to a Fibonacci bijection
20:45:18 <oerjan> ais523: today? because e added the 2^u*(2*v+1)-1 version previously.
20:45:30 * oerjan should probably check when he gets that far
20:45:46 <ais523> I noticed today, although it may have happened earlier
20:46:03 <oerjan> Phantom_Hoover: (for the logs) naively, 1111 corresponds to nothing, that's precisely why i included the divMod x 2 modification
20:46:11 <oerjan> if you actually looked at my code
20:47:23 <oerjan> basically if it starts with an even no. of 1's, remove one before encoding into a list. afterwards, double the list head, then add 1 iff a 1 was removed.
20:47:43 -!- Phantom_Hoover has joined.
20:47:47 <oerjan> heh
20:47:51 <nooga> lol
20:48:23 <oerjan> 21:42 oerjan> <Phantom_Hoover> BtW, did oerjan and alise get that Fibonacci bijection working?
20:48:26 <oerjan> 21:43 oerjan> i didn't code it up, and i didn't hear alise said e did, either
20:48:29 <oerjan> 21:43 oerjan> also, you're alive! (but absent)
20:48:31 <oerjan> 21:43 oerjan> <Phantom_Hoover> Based on my understanding of the algorithm, I can't work out what the binary number "1111" goes to. "111" is {1, 1}, I think.
20:48:42 <oerjan> 221:45 oerjan> Phantom_Hoover: (for the logs) naively, 1111 corresponds to nothing, that's precisely why i included the divMod x 2 modification
20:48:44 <Phantom_Hoover> oerjan: Yeah, I'm reading the logs.
20:48:46 <oerjan> 21:45 oerjan> if you actually looked at my code
20:48:47 <Phantom_Hoover> I missed that.
20:48:48 <oerjan> 21:46 oerjan> basically if it starts with an even no. of 1's, remove one before encoding into a list. afterwards, double the list head, then add 1 iff a 1 was removed.
20:49:21 <ais523> an obvious way to biject BF and the naturals is to start with any naive encoding, then map the lowest-numbered valid BF program to 1, the second-lowest to 2, the third-lowest to 3, etc
20:49:28 <ais523> although that could be tricky to implement
20:49:44 <Phantom_Hoover> Yeah, that was discussed.
20:50:06 <Phantom_Hoover> fax *claimed* to have an algorithm that made it practical, but he never gave it.
20:50:37 <oerjan> ais523: we _are_ going for a bit of efficiency here. after all we are still modifying the encoding because the 2^u*(2*v+1)-1 encoding, while perfectly correct afawk, blew up the numbers too much.
20:51:16 <Phantom_Hoover> Logically, it must have encoded some *huge* programs as small numbers, though.
20:51:57 <oerjan> well not necessarily
20:52:01 -!- SgeoN1 has quit (Ping timeout: 240 seconds).
20:52:21 <Phantom_Hoover> oerjan: How?
20:52:34 <oerjan> it just had to encode some huge programs a _little_ smaller than you'd think, so the small programs could fit there instead.
20:52:48 <oerjan> well some of the small programs
20:53:27 <oerjan> but basically i think it encoded long programs without loops fairly small
20:53:41 <augur> guys, ive got a challenge for you. :D
20:53:44 <Phantom_Hoover> Hmm...
20:53:58 <augur> its related to formal grammars tho, so if you dont want to accept the challenge, i understand.
20:54:16 <oerjan> since it was the cars in the lists that blew up, and if they were just single commands rather than loops they couldn't blow up _that_ much.
20:54:22 -!- augur has quit (Remote host closed the connection).
20:54:39 <Phantom_Hoover> oerjan: The current bijection gives huge numbers for long programs without loops, though I don't recall if I tried it with the old one.
20:54:51 -!- augur has joined.
20:54:59 <augur> the challenge is as follows
20:55:01 -!- AndChat| has joined.
20:55:32 <augur> define a class of grammars that extends the context free grammars (or some formulation thereof) in the following way:
20:55:39 -!- AndChat| has quit (Read error: Connection reset by peer).
20:55:43 <oerjan> Phantom_Hoover: yeah the triangular encoding and the bit interleaving one both have problems when creating a tuple of one small and one large number, as a long consed program would eventually tend to do
20:56:14 <oerjan> fizzie and i found out those two are actually pretty equivalent
20:56:31 <oerjan> just about 2 bits difference at most
20:56:34 <Phantom_Hoover> So distributing the conses would actually make a big difference?
20:56:40 <augur> the extended version of the grammar allows the following property: for each grammar, there is some non-terminal symbol, call it W, that can behave in the following fashion:
20:57:20 <oerjan> Phantom_Hoover: yes. although the fibonacci version should be better because the size of the encode list is approximately proportional to the total sum of bits
20:57:24 <augur> either all instances of the symbol are at whatever places they are at in the sentence, one and only one instance is at the front of the sentence, or ALL instances are at the front of the sentence
20:58:46 <oerjan> Phantom_Hoover: however after i pointed out that the challenge is to find an encoding where the bit size of an encoded tuple is approximately the sum of the bitsizes of the elements, fizzie suggested i solve _that_. it would be even better than the fibonacci encoding, i think.
20:58:50 <augur> and those are the only three options
20:59:32 <augur> any takers :x
21:00:00 <oerjan> and it would, i think, remove the need to distribute tuples, you could use a consed list efficiently enough
21:00:38 <oerjan> augur: not at present, busy with a different problem as you can see
21:00:47 <augur> :P
21:02:02 <oerjan> Phantom_Hoover: i've thought about it a bit since this morning, and at least one way is just a counting problem
21:02:43 <Phantom_Hoover> The "write out combinations of '-+<>,.[]' and eliminate invalids" way?
21:03:05 <oerjan> Phantom_Hoover: er no, i've never seriously considered that
21:03:30 <oerjan> i'm talking about a tuple encoding that approximately sums bitsizes to keep balance automatically
21:03:47 <fizzie> oerjan: Write us a generating function for the valid BF programs in some naive encoding. :p
21:03:53 <Phantom_Hoover> I suppose fax was wrong about the efficient way for his algorith?
21:04:19 <oerjan> Phantom_Hoover: i don't say that, he was mentioning stirling numbers so there probably _is_ a way
21:04:28 <fizzie> (Then solve the coefficients out of it.)
21:04:40 <oerjan> it's just that even i don't feel like wrapping my brain around that
21:04:48 * Phantom_Hoover Googles
21:05:43 <oerjan> fizzie: but i _like_ the method we already have of building things out of lists or tuples, it just needs a more balanced tuple or list
21:07:13 <oerjan> now to encode [1..] x [1..] with balanced bits - i think dropping 0 is more elegant because:
21:07:43 <oerjan> if 0 is dropped, there is exactly 1 number with 1 bit, 2 numbers with 2 bits, 4 numbers with 3 bits etc.
21:08:05 <oerjan> now then how many tuples are there with sum of bitsizes n?
21:08:30 <oerjan> it could be 1+(n-1), 2+(n-2), ..., (n-1)+1.
21:09:30 <oerjan> 2^0 * 2^(n-2) + 2^1 * 2^(n-3) + ... + 2^(n-2) * 2^0
21:09:42 <oerjan> conveniently all terms are equal :)
21:10:11 <oerjan> so there are (n-1)*2^(n-2) tuples with total bitsize sum n
21:10:40 <oerjan> n >= 2
21:12:36 <oerjan> 1*1 + 2*2 + 3*4 + 4*8 + 5*16 + ...
21:13:38 <oerjan> the obvious way of getting balanced bits is to order the tuples by total bitsize and take their position in the order
21:15:04 -!- tombom_ has joined.
21:15:20 <oerjan> which requires counting all the tuples with smaller bitsize, then adding the number of tuples with same total but less bitsize in the first element, then adding x*2^n + y
21:15:32 <oerjan> all eminently doable, at least in the forward direction
21:16:03 <oerjan> er hm x*2^(n-1) + y
21:16:18 <oerjan> assuming (m,n) are the bitsizes of (x,y) respectively
21:16:42 -!- tombom__ has joined.
21:17:35 <oerjan> the middle term there we already essentially have, it's (m-1)*2^(m+n-2)
21:18:11 -!- tombom has quit (Ping timeout: 248 seconds).
21:18:16 <oerjan> so it remains to get the partial sums of that series 1*1 + 2*2 + 3*4 + 4*8 + 5*16 + ...
21:19:26 <oerjan> !haskell take 10 $ scanl1 (+) [(n-1)*2^(n-2) | n <- [2..]]
21:19:28 <EgoBot> [1,5,17,49,129,321,769,1793,4097,9217]
21:20:08 <Phantom_Hoover> Haskell programs must give horrendously complex machine code.
21:20:18 -!- tombom_ has quit (Ping timeout: 276 seconds).
21:20:49 <oerjan> the evil mangler of ghc is legendary
21:21:22 <oerjan> but it's going away when they deprecate the compilation via C option
21:21:45 <oerjan> (it's a perl program directly modifying gcc-outputted assembly, iirc)
21:22:08 * Phantom_Hoover is still trying to stop my inner 4-year-old wanting Mathematica
21:22:21 <oerjan> OEIS says that sequence is (n-1)*2^n + 1
21:23:11 <oerjan> !haskell [(n-1)*2^n + 1 | n <- [0..10]]
21:23:13 <EgoBot> [0,1,5,17,49,129,321,769,1793,4097,9217]
21:23:43 <Phantom_Hoover> !haskell putStrLn "Hello, world!"
21:23:44 <EgoBot> Hello, world!
21:23:55 <oerjan> ok we wanted the 1 to start at n=2
21:24:08 <Phantom_Hoover> Shouldn't it be outputting IO ()?
21:24:20 <oerjan> !haskell [(n-2)*2^(n-1) + 1 | n <- [2..10]]
21:24:22 <EgoBot> [1,5,17,49,129,321,769,1793,4097]
21:24:58 <oerjan> Phantom_Hoover: that's an optional option for ghc i think
21:25:17 <Phantom_Hoover> An optional option...
21:25:27 <oerjan> YOU KNOW WHAT I MEAN
21:25:55 -!- Sgeo|web has joined.
21:26:23 <oerjan> hm actually n=2 should give 0 since then there are no strictly smaller tuples
21:26:29 <Sgeo|web> I have the opportunity to post a [Bash] programming contest for my UNIX class
21:26:40 <Sgeo|web> I'm considering having them implement a subset of Brainfuck
21:26:43 <Sgeo|web> Any better ideas?
21:26:58 <Phantom_Hoover> A _subset_?
21:27:08 <oerjan> !haskell [(n-3)*2^(n-2) + 1 | n <- [2..10]]
21:27:09 <nooga> O_O?
21:27:10 <EgoBot> [0,1,5,17,49,129,321,769,1793]
21:27:11 <Sgeo|web> I think having them implement [] might be a bit difficult
21:27:17 <nooga> nah
21:27:18 <Phantom_Hoover> Any programmer worth their salt can implement the whole thing easily.
21:27:32 <nooga> !show sadbf
21:27:32 <EgoBot> sadol :M$0 :d:i,45000@>i-01(2]M0:i-i1:S$0:C;3:l#C-01:p:m0@<pl(2?=#Cp"1+:#Mm%+#Mm1,3255?=#Cp"1-:#Mm?<-#Mm10,3254-#Mm1?=#Cp"1>:m%+m1d?=#Cp"1<:m?<-m10-s1-m1?=#Cp"1.!'2#Mm?=#Cp"1,:#Mm'1;0?=#Cp"1[]S-p1?=#Cp"1]?=#Mm00:p[S0:p+p1
21:27:35 <nooga> see? easy
21:27:38 <nooga> and complete
21:27:54 <Phantom_Hoover> What is sadbf?
21:28:06 <nooga> brainfuck interp in sadol
21:29:22 <Phantom_Hoover> Sgeo|web: Make them implement [] for extra credit?
21:29:23 <oerjan> encode (x,y) = (m+n-3)*2^(m+n-2)+1 + (m-1)*2^(m+n-2) + x*2^(n-1) + y where m = bitSize x; n = bitSize y
21:29:56 <nooga> Sgeo|web: are you a teacher or something?
21:30:25 <oerjan> defining bitSize remains
21:30:35 <oerjan> oh wait darn
21:30:41 <Phantom_Hoover> log_2 ceilinged?
21:30:47 <Sgeo|web> nooga: I won the programming contest
21:31:02 <oerjan> x and y need to have the upper bit removed
21:31:09 <nooga> oh
21:31:12 <oerjan> hm now that's easy
21:31:18 <nooga> i don't like teachers
21:31:32 <Phantom_Hoover> Oh, be fair to them.
21:31:36 <nooga> or rather ignorant morons... mainly
21:31:53 <Phantom_Hoover> Most people learning programming aren't interested, at least AFAIK.
21:32:16 <oerjan> Phantom_Hoover: logarithms only defined for floating point, which cannot safely convert from Integers
21:32:20 <Sgeo|web> How do you do ASCII code <-> character in Bash?
21:32:34 <nooga> one guy from OS architecture classes failed me because my experimental kernel was not enough
21:33:07 <nooga> he wanted me to make a powerpoint presentation about ACLs and implement an ACL simulator in C#
21:33:08 <Phantom_Hoover> Sgeo|web: I don't know.
21:33:14 <nooga> how sick is that
21:33:54 <Phantom_Hoover> Sgeo|web: Give them a two-way converter and tell them to use that.
21:34:06 <pikhq> nooga: ... He wanted an ACL implementation, not a *freaking OS*.
21:34:08 <oerjan> encode (x,y) = (m+n-3)*2^(m+n-2)+1 + (m-2)*2^(m+n-2) + (x-1)*2^(n-1) + y where m = bitSize x; n = bitSize y
21:34:08 <Phantom_Hoover> Bash isn't really a good language for BF.
21:34:12 <pikhq> Failure.
21:34:26 <Sgeo|web> Two way converter? Bleh
21:34:32 <oerjan> the removal of the top bits fit with some other terms
21:35:00 <oerjan> hm some of that still can be combined
21:35:04 <nooga> pikhq: but the guy couldn't even understand my design
21:35:28 <oerjan> encode (x,y) = (2*m+n-5)*2^(m+n-2)+ 1 + (x-1)*2^(n-1) + y where m = bitSize x; n = bitSize y
21:35:52 <nooga> plus designing and implementing even minimal kernel requires more knowledge than writing a stupid essay about stupid, simple ACLs
21:36:01 <Phantom_Hoover> nooga: If your teacher tells you to do such-and-such, doing something very clever that *isn't* such-and-such does not demonstrate knowledge of such-and-such.
21:36:12 <Phantom_Hoover> And how many people was your teacher teaching?
21:36:22 <pikhq> Phantom_Hoover: OS architecture class. The class is about the architecture of an OS.
21:36:33 <Phantom_Hoover> True.
21:36:45 <pikhq> And he was being graded on a "general project", I'm pretty sure.
21:36:58 <Phantom_Hoover> But did he implement whatever an ACL is while writing his kernel?
21:37:04 <nooga> a bit
21:37:06 <nooga> but hey
21:37:21 <nooga> i wrote a regular expression compiler for Formal Languages class
21:37:38 <pikhq> Frankly, a kernel for a project in an OS design class is pretty much what I'd expect. Not a teeny tiny ACL implementation in C#.
21:37:42 <nooga> instead of going to lectures and laboratories
21:38:09 <nooga> and it was a hit
21:38:20 <Phantom_Hoover> Sgeo|web: Use printf.
21:38:24 <Phantom_Hoover> As a converter.
21:38:27 <fizzie> Sgeo|web: You can convert from octal numbers to characters with "echo -e". And from decimal to octal with printf.
21:38:53 <fizzie> The "printf" command's %c prints the first character of the provided argument; it does not convert a number to character.
21:39:08 <Phantom_Hoover> Echo -e doesn't on my system.
21:39:28 <fizzie> "echo -e \0nnn", where nnn is an octal number.
21:39:29 <Sgeo|web> Can I just write the converter in Python?
21:39:51 <fizzie> Sgeo|web: Well, if you want to be a quitter....
21:39:51 <pikhq> Yes but don't.
21:40:07 <Sgeo|web> Why shouldn't I?
21:40:15 <Sgeo|web> I'm going to supply the class with ord2chr and chr2ord
21:40:38 <pikhq> Hmm. Moar Japanese, or video games?
21:40:45 <Phantom_Hoover> Sgeo|web: This BF-Nat bijection has demonstrated pretty well that we aren't very practically-minded.
21:40:50 <pikhq> This is a very hard decision.
21:40:51 <nooga> i hope that my WIMACS would give me at least several credits
21:41:26 <oerjan> <Ilari> So variable spacing in interleaving X_1 and X_2 saves much more (Easily 100Mb with Lost Kingdom) than using hyperpyramidals instead of simple bit interleaving (hardly even 1Mb).
21:41:26 <fizzie> As for "character to octal", od's usually available. That should be enough.
21:42:13 <nooga> and i thought that compressing brainfuck is a closed topic
21:42:21 <oerjan> Ilari: basically hyperpyramidals and bit interleaving are almost equal, both have encoded size dependent mostly on the maximal element
21:42:37 <Phantom_Hoover> nooga: What do you think oerjan's talking about?
21:42:44 <pikhq> Fuck it. Moar Japanese.
21:43:33 <oerjan> because x1+x2+...+xn is between max(x1,...,xn) and n*max(x1,...,xn) which only give + log_2 n bit variation
21:44:03 <Phantom_Hoover> Sgeo|web: Does Bash even have decent arrays?
21:44:14 <nooga> Phantom_Hoover: read my statement again ;]
21:44:15 <Sgeo|web> Phantom_Hoover: no clue
21:44:24 -!- ais523 has quit (Remote host closed the connection).
21:44:51 <oerjan> Phantom_Hoover: this isn't compressing really, we aren't trying to remove unnecessary bits or squeeze commonly repetitive parts...
21:45:16 <Phantom_Hoover> Oh yeah, he said compressing.
21:45:45 <fizzie> Bash has both indexed and associative arrays, though the "decentness" is debatable.
21:46:18 <oerjan> doing that would probably make the whole mess of keeping bijectivity too horribly complicated
21:47:23 <Sgeo|web> Bye all
21:47:36 -!- Sgeo|web has quit (Quit: Page closed).
21:55:00 <Deewiant> fizzie: Aren't they all associative?
21:56:16 <fizzie> Deewiant: At least my manpage says they behave differently; you get explicitly indexed arrays with declare -a and associative -A; I'm not sure what you end up with if you just do the [] subscripting.
21:56:28 <Deewiant> Okay
21:56:39 <fizzie> "Indexed arrays are referenced using integers (including arithmetic expressions) and are zero-based; associative arrays are referenced using arbitrary strings."
21:56:54 <oerjan> <Ilari> So variable spacing in interleaving X_1 and X_2 saves much more (Easily 100Mb with Lost Kingdom) than using hyperpyramidals instead of simple bit interleaving (hardly even 1Mb).
21:56:58 <oerjan> argh
21:57:08 <oerjan> (forgot to ^C)
22:02:10 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
22:03:54 -!- Phantom_Hoover has joined.
22:08:39 <Phantom_Hoover> Does Python give a way to include multiple modules in one file?
22:11:17 <oerjan> 1:[2],10:[4],11:[1],100:[6],101:[8],110:[3],111:[2,1],1000:[10]
22:11:40 <oerjan> that fibonacci encoding ordering is a bit weird :)
22:12:01 <Phantom_Hoover> Are those binary?
22:12:13 <oerjan> before the :'s yes
22:12:24 <Phantom_Hoover> And after?
22:12:34 <oerjan> lists of numbers >= 1
22:12:43 <Phantom_Hoover> Oh, duh.
22:13:33 <nooga> i've missed the idea
22:13:48 <nooga> and i don't even know how is this supposed to work
22:14:08 <oerjan> basically you take a number >= 1 as binary
22:14:53 <Phantom_Hoover> I think it relies on the property that the base-Fibonacci representation of a number uses only the digits 0 and 1 and never contains the sequence 11.
22:15:02 <oerjan> then you split it up at instances of 11
22:15:03 <oerjan> yep
22:15:08 -!- Rugxulo has joined.
22:15:16 * Rugxulo is logreading again
22:15:31 <Rugxulo> <alise> QuickBasic doesn't have all that many disadvantages for DOS.
22:15:38 * Phantom_Hoover has joined the room
22:15:40 <Rugxulo> <AnMaster> alise, and 640 kB is enough for everyone?
22:15:54 <Rugxulo> no, I think you'd use EMS or XMS via INTERRUPT() or CALL ABSOLUTE
22:15:56 * oerjan is talking about himself
22:16:13 <AnMaster> Rugxulo, XD
22:16:29 <AnMaster> Rugxulo, how much ram does that allow?
22:16:46 <Rugxulo> depends on what API version, memory manager, etc.
22:16:46 <olsner> someone should make SlowBasic
22:16:50 <AnMaster> Rugxulo, and doesn't EMS and XMS mean you can't address it "straight" but need to use some nasty tricks
22:16:55 <Rugxulo> XMSv3 should allow 2-4 GB
22:16:56 * Phantom_Hoover quit (Quit)
22:16:58 <oerjan> also the first 1 in a 11 is removed. if there is more than 2 1's in a row, start from the back.
22:17:00 <AnMaster> like basically having a "window" into high memory
22:17:03 <oerjan> *are
22:17:05 <AnMaster> Phantom_Hoover, nice one
22:17:19 <Rugxulo> EMS is emulated XMS these days
22:17:20 <AnMaster> Phantom_Hoover, except it looks nothing like the real thing here
22:17:29 <AnMaster> Rugxulo, both are DEAD these days
22:17:32 <AnMaster> -_-
22:17:34 <Phantom_Hoover> Yes, I realised that when logreading.
22:17:51 <AnMaster> Phantom_Hoover, well nor does it even look similar in my irc client I meant
22:17:54 <Rugxulo> AnMaster: http://johnson.tmfc.net/dos/drivers.html
22:18:16 <pikhq> AnMaster: FreeDOS is still maintained.
22:18:41 <nooga> oerjan: but how is it related to bf?
22:18:42 <Rugxulo> (barely, but yes)
22:18:46 <oerjan> this leaves a problem if 11 remains at the start, which is hacked around by modifying the first number x into 2x or 2x+1, dependingly
22:18:48 <AnMaster> pikhq, yes and so is linux 2.2
22:18:52 <pikhq> DOS is an OS that is very, very hard to kill.
22:18:59 <Rugxulo> not that hard
22:19:06 <AnMaster> Rugxulo, also. doesn't both of these imply that you use a window into high memory or something
22:19:10 <Rugxulo> AMD64 (no V86), Vista and 7 (no gfx, bugs)
22:19:16 <AnMaster> Rugxulo, that you can't see both at once
22:19:17 <Phantom_Hoover> nooga: This will take a while.
22:19:26 <AnMaster> Rugxulo, err all*
22:19:27 <pikhq> Rugxulo: That AMD64 can still run DOS.
22:19:27 <AnMaster> not both
22:19:28 <Rugxulo> AnMaster, kinda, yes
22:19:31 <pikhq> Just not in long mode.
22:19:38 <AnMaster> also there are emulators
22:19:44 <oerjan> nooga: it's just a way to encode lists of naturals as a single natural, which is then used as a subroutine to collapse a bf program into a single natural number
22:19:44 <AnMaster> Rugxulo, so a pita to program for then?
22:19:46 <Rugxulo> DOSEMU has to fully emulate 16-bit stuff in AMD64
22:19:54 <Rugxulo> no, just a PITA for lazy programmers ;-)
22:19:57 <pikhq> And yes, there are quite good x86 emulators.
22:20:01 <Rugxulo> besides, DPMI is the preferred method
22:20:02 <pikhq> Rugxulo: AMD64 != long mode.
22:20:10 <AnMaster> what pikhq said
22:20:10 <Rugxulo> I know
22:20:17 <Rugxulo> obviously, but you know what I meant
22:20:18 <AnMaster> pikhq, but no one needs vm86() ...
22:20:29 <Rugxulo> no one needs AMD64 either
22:20:32 <AnMaster> and dosemu and dosbox are both fast enough
22:20:34 <Rugxulo> but it exists ...
22:20:38 <Rugxulo> lies
22:20:42 <Rugxulo> DOSBox is slow slow slow!!!
22:20:47 <Rugxulo> and only emulates a 486 !!!
22:21:03 <AnMaster> Rugxulo, well then, no one would make new dos apps needing a modern computer
22:21:06 <AnMaster> you use it for old games
22:21:09 <Rugxulo> AnMaster, DPMI is how you directly access memory in 32-bit
22:21:10 <AnMaster> where it is fast enough
22:21:23 <pikhq> Rugxulo: Dude, it's effectively emulating *several hundred MHz* 486.
22:21:31 <Rugxulo> even under DOSEMU x86-64, DJGPP stuff runs "native speed" (their claim, not mine)
22:21:32 <AnMaster> Rugxulo, I need 64-bit, I often use enough ram at once for that
22:21:40 <Rugxulo> no, 100 Mhz 486 DX2
22:21:42 <pikhq> Which is to say, *dozens of times faster than any 486 ever dreamed of running*.
22:21:42 <oerjan> nooga: the trick is to do this in such a way that all legal bf programs get a unique number, and no numbers are skipped
22:21:50 <Rugxulo> and you need 1+ Ghz processor even for that speed !!!
22:21:51 <AnMaster> Rugxulo, of course I don't need x86 as such
22:22:01 <pikhq> Rugxulo: Uh, WTF?
22:22:06 <AnMaster> Rugxulo, I would be perfectly happy with PowerPC
22:22:11 <oerjan> (legal wrt bracketing. comments are ignored.)
22:22:11 <pikhq> Rugxulo: Dear God man, *Bochs* is faster than that.
22:22:23 <nooga> oerjan: sounds awesome
22:22:23 <Rugxulo> no, trust me, DOSBox will not run faster than a 486
22:22:28 <Rugxulo> I have a real 586, and it's much faster
22:22:41 <AnMaster> Rugxulo, a 586 wouldn't run dos any more
22:22:51 <pikhq> AnMaster: Yes it would.
22:22:51 <Rugxulo> eh? sure it would
22:22:57 <Rugxulo> I do it all the time ;-)
22:22:57 <pikhq> A 586 is called a "Pentium".
22:23:00 <AnMaster> pikhq, didn't windows exist by then
22:23:02 <AnMaster> pikhq, indeed
22:23:08 <Rugxulo> Windows existed for 8088, even
22:23:09 <AnMaster> I know what a i586 is
22:23:18 <AnMaster> Rugxulo, well okay, but I mean "common"
22:23:22 <pikhq> AnMaster: Until Windows XP, consumer Windows was a DOS program.
22:23:27 <Rugxulo> XP needs at least a Pentium 1 (no MMX)
22:23:35 <AnMaster> pikhq, I know, but you didn't see much of that in windows 98
22:23:39 <AnMaster> or even in 95
22:23:43 <AnMaster> in 3.x sure you did
22:23:43 <Rugxulo> pikhq, that's generalizing a bit much, but semi-true
22:23:45 <pikhq> Sure you did.
22:23:51 <pikhq> Every time you ran a 3.x program.
22:24:00 <pikhq> Or an old DOS program.
22:24:11 <pikhq> Which was pretty darned common until, oh, 2000 or so.
22:24:13 <AnMaster> pikhq, which was basically never, plus you couldn't tell it really if it was 3.x apart from a sucky gui
22:24:23 <AnMaster> pikhq, I used 95 and 98
22:24:29 <AnMaster> and well on 95 it still happened
22:24:30 <pikhq> AnMaster: Clearly you didn't.
22:24:33 <AnMaster> on 98, basically never
22:25:02 <pikhq> Every time it broke enough, you needed to get out the edit.com
22:25:23 <AnMaster> pikhq, don't think win98 broke like that for me ever
22:25:29 <AnMaster> pikhq, blue screens yes
22:25:44 <AnMaster> pikhq, so okay you saw scandisk at boot sometimes, I admit that
22:26:16 <Rugxulo> AnMasterRugxulo, I need 64-bit, I often use enough ram at once for that
22:26:35 <Rugxulo> nobody ever used to need > 4 GB of RAM, so why they do now?
22:26:46 <Rugxulo> we put a man on the moon with much much much less than that ;-)
22:27:21 <AnMaster> AAARGH why did firefox decide to open that pdf in *krita*
22:27:24 <AnMaster> that makes no sense
22:27:25 <pikhq> Rugxulo: Anyways. DOSbox *defaults* to 100 MHz. The clock speed it runs at is configurable.
22:27:48 <pikhq> Dunno why, but it does.
22:28:41 <Rugxulo> it's not cycle exact, and cpus differ, different apps need different speeds, etc.
22:28:48 <pikhq> Yup.
22:28:57 <Rugxulo> well, plus there are different cores for different things (supposed to guess at runtime, doesn't always work)
22:29:02 <pikhq> Though most DOS apps *really* shouldn't be relying on a specific clock speed.
22:29:14 <Rugxulo> most don't, but some old ones did
22:29:20 <pikhq> At least, anything that ran on anything newer than the original XT shouldn't.
22:30:07 <Rugxulo> DOSBox virtualizes a lot of stuff (VGA, soundcards, etc.), otherwise people would just prefer VirtualBox (faster but much less DOS-friendly)
22:30:20 <AnMaster> what API did DOS provide and how was it called?
22:30:26 <AnMaster> interrupts?
22:30:28 <Rugxulo> provide for what, timing?
22:30:37 <AnMaster> Rugxulo, in general, how did you do a syscall under DOS
22:30:40 <AnMaster> that is what I'm asking
22:31:05 <pikhq> AnMaster: Interrupts.
22:31:06 <Rugxulo> a la "int 80h" ?? DOS proper mostly used "int 21h" (but also others, 2Fh, and BIOS, 10h)
22:31:18 <Rugxulo> s/used/was called via/
22:31:43 <Phantom_Hoover> What would happen if I wrote a BIOS program in Linux and ran it?
22:31:47 <AnMaster> Rugxulo, yes like syscall/sysret (or int 80h, but linux no longer uses that if there are better alternatives, and that change was made back during 2.5.x)
22:31:59 <Rugxulo> Phantom_Hoover: I think Linux V86 mode supports such
22:32:01 <Rugxulo> (maybe)
22:32:22 <AnMaster> hm what did windows do for it? before syscall/sysret I mean
22:32:25 <Rugxulo> AnMaster: but there are people who code for int 80h (mostly assembly dudes)
22:32:28 <AnMaster> windows nt 4 and so on
22:32:48 <AnMaster> Rugxulo, why do they code for a legacy platform though?
22:32:50 <Rugxulo> what did Windows do internally or end users?
22:33:06 <AnMaster> Rugxulo, I mean, what did windows do to call it's kernel
22:33:15 <Rugxulo> AnMaster: "legacy" is 90% of the world!
22:33:16 <AnMaster> some interrupt? call gates (*shudder*)?
22:33:24 <fizzie> AnMaster: You just call the NTDLL functions, you don't do manual syscalls there. (I'm sure it's *possible*. but...)
22:33:31 <AnMaster> fizzie, and what do they do?
22:33:34 <pikhq> AnMaster: Depends on which Windows.
22:33:40 <AnMaster> fizzie, nowdays presumably syscall/sysret
22:33:43 <AnMaster> pikhq, I specified that above
22:33:47 <Phantom_Hoover> Must sleep.
22:33:51 <pikhq> Ah.
22:33:51 -!- Phantom_Hoover has left (?).
22:33:57 <pikhq> NTDLL.
22:33:58 <AnMaster> pikhq, "nt before syscall/sysret days"
22:33:59 <AnMaster> I said
22:34:06 <AnMaster> well, not exact phrase
22:34:10 <AnMaster> but the same meaning
22:34:18 <fizzie> AnMaster: Why should you care what they do? My guess would be the interrupt mechanism, that's I guess the common way.
22:34:31 <AnMaster> fizzie, yes but which interrupt
22:35:20 <AnMaster> oh and: <Rugxulo> AnMaster: "legacy" is 90% of the world! <-- not really, most new linux installs on 64-bit capable hardware (which is almost all new x86 hardware, possibly excluding atom, not sure about that...) tend to be x86_64
22:35:20 <Rugxulo> not really documented internals (at least not by MS), but I think "int 2Eh" was their own revectored / proprietary one
22:35:32 <fizzie> AnMaster: "System calls in Windows NT are initiated by executing an "int 2e" instruction."
22:35:33 <Rugxulo> Atom is 64-bit now, yes
22:35:34 <AnMaster> at least those I have seen
22:35:37 <Rugxulo> so is VIA
22:35:43 <fizzie> AnMaster: But really, no-one invokes those manually, so why *should* you care?
22:35:47 <AnMaster> Rugxulo, yes, all new hardware is
22:35:51 <Rugxulo> you can't because MS didn't document it
22:35:58 <AnMaster> Rugxulo, and by god, x86_64 is *way* better
22:36:03 <Rugxulo> AnMaster, so what? just because it's new doesn't make it perfect
22:36:04 <AnMaster> still bad yes
22:36:12 <pikhq> AnMaster: Windows NT supports 3 different system call schemes by default.
22:36:18 <Rugxulo> better for coders who already know how to use older stuff?
22:36:19 <Rugxulo> barely
22:36:20 <AnMaster> Rugxulo, yes it is less register starved, no it doesn't have enough registers
22:36:21 <AnMaster> pikhq, heh
22:36:33 <Rugxulo> doesn't matter how many registers, push/pop is a simple workaround
22:36:35 <pikhq> The Win32 subsystem's, the OS/2 subsystem's, and the POSIX subsystem's.
22:36:37 <AnMaster> Rugxulo, slower
22:36:39 <Rugxulo> besides, more registers don't mean faster speed
22:36:47 <pikhq> (implementations for the POSIX subsystem are not included by default)
22:36:51 <AnMaster> Rugxulo, and compiler does a better job at a less register starved architecture
22:36:57 <Rugxulo> OS/2 and POSIX subsystems are dead and removed in modern Windows
22:37:05 <Rugxulo> compilers are dumb dumb dumb
22:37:13 <AnMaster> *plonk*
22:37:14 <pikhq> Rugxulo: The OS/2 subsystem is unmaintained but very much still around.
22:37:22 <AnMaster> pikhq, oh? interesting
22:37:29 <pikhq> And the POSIX subsystem is not merely around but actively developed.
22:37:30 <Rugxulo> uh, not that I know of, I think OS/2 1.x apps last worked only in Win2k
22:37:38 <Rugxulo> Interix? SFU?
22:37:38 <pikhq> Still work.
22:37:45 <pikhq> Interix is still developed.
22:37:51 <pikhq> And that is the POSIX subsystem.
22:37:52 <Rugxulo> not the same, and doesn't come by default, only available for Enterprise, etc.
22:38:09 <AnMaster> Rugxulo, I presume I can get it by MSDNAA
22:38:15 <AnMaster> too lazy to check
22:38:15 -!- tombom__ has quit (Quit: Leaving).
22:38:18 <pikhq> It's a free download.
22:38:20 <Rugxulo> AnMaster, I just mean most compilers aren't exactly perfect by a long shot
22:38:26 -!- FireFly has quit (Quit: null).
22:38:31 <pikhq> For XP, Vista, Server 2003, Server 2008, or 7.
22:38:33 <Rugxulo> it's not like they magically get 1000x better just by having a few extra registers
22:38:52 <Rugxulo> "Server" != "Home Premium"
22:39:06 <pikhq> "Server 2003" is a *Windows version*.
22:39:16 <Rugxulo> yes, but not for home users (e.g. DPMI broken)
22:39:21 <AnMaster> Rugxulo, sure, gcc isn't very good. But 1) portable (compared to asm) 2) much less programmer time, hardware is cheaper than programmer time often nowdays 3) good enough most of the time
22:39:28 <AnMaster> and a lot easier to debug for and so on
22:39:30 <pikhq> It's still available for the *consumer versions of OSes* as well.
22:39:36 <Rugxulo> asm can be portable, see FASM itself (runs on like 10 OSes)
22:39:41 <AnMaster> Rugxulo, and not 1000x, that is unrealistic
22:39:47 <Rugxulo> less programmer time depends on the programmer ;-)
22:39:55 <pikhq> Also. Yeah, x86 gains a *lot* from the extra registers.
22:39:59 <AnMaster> Rugxulo, I'm talking about 150% increase for some tasks, 10-20% for other
22:40:00 <pikhq> x86_64 *doubles* the registers.
22:40:00 <AnMaster> it varies
22:40:03 <pikhq> *Doubles*.
22:40:05 <AnMaster> yep
22:40:08 <Rugxulo> no, not everything speeds up with x86-64
22:40:22 <AnMaster> iirc I saw 300% increase for MPEG decoding on x86-64
22:40:26 <AnMaster> or some such
22:40:32 <Rugxulo> probably using SSE2
22:40:36 <Rugxulo> which is always available
22:40:43 <AnMaster> Rugxulo, it was using SSE2 on 32-bit version too
22:40:44 <AnMaster> in that test
22:40:47 <pikhq> And anything doing 64-bit arithmetic (like MPEG encoding and decoding) increases by *absurd* amounts.
22:40:57 <pikhq> Rugxulo: It also doubles the number of SSE2 registers...
22:41:12 <Rugxulo> obviously you guys haven't tested my lame-o hack of BEFI.COM, very very small changes can significantly alter the speed
22:41:17 <AnMaster> pikhq, I don't understand why we don't have a mode with 32-bit pointers, 64-bit GP registers, and so on
22:41:21 <AnMaster> it seems saner
22:41:30 <pikhq> AnMaster: Too much work.
22:41:31 <AnMaster> 64-bit pointers only for apps that need it
22:41:42 <AnMaster> pikhq, it would avoid the larger pointer size problem
22:41:42 <Rugxulo> AnMaster: people are lazy, that's why
22:41:50 <pikhq> AnMaster: That means another full complement of dynamic libraries.
22:41:57 <AnMaster> pikhq, and we would always have 64-bit registers
22:42:10 <Rugxulo> sounds like V86++ to me ;-)
22:42:12 <AnMaster> pikhq, no it means two, since we drop the legacy 32-bit GP register variant on this arch
22:42:28 <AnMaster> we have two anyway nowdays
22:42:40 <pikhq> ... If you're dropping x86_32, then you might as well just *nuke x86 as a whole*.
22:42:41 <AnMaster> and this would be a new arch
22:42:41 <fizzie> pikhq: Are you sure you can get it officially supported for the consumer versions of current Windowsen? SFU 3.5, which is downloadable from Microsoft, officially supports up to Server 2003 / XP; for Vista and 7, you'd need the "Subsystem for UNIX-based applications" (SUA), which as far as I know isn't available as a standalone thing, only in the Enterprise and Ultimate editions.
22:42:45 <AnMaster> pikhq, yes
22:42:50 <AnMaster> pikhq, this wouldn't be x86 at all
22:43:00 <fizzie> (Could be that I just haven't found the SUA download, though.)
22:43:06 <pikhq> fizzie: I've used it.
22:43:12 <Rugxulo> MS is annoying with nickel-and-diming everything
22:43:15 <pikhq> It's even free to redistribute.
22:43:22 <pikhq> Gentoo/Win32 has it on the CD.
22:43:23 <Rugxulo> XP Mode won't work on 7 except non-Home versions, etc.
22:43:38 <Rugxulo> bah, just use Cygwin ;-)
22:43:45 <pikhq> Erm. Sorry. Gentoo/Windows.
22:43:45 * Rugxulo wonders if Cygwin64 exists
22:44:05 <pikhq> Rugxulo: Interix is quite a bit faster than Cygwin.
22:44:16 <pikhq> Doesn't need to use hacks like userspace fork.
22:44:46 <AnMaster> pikhq, it would be some (probably RISC) platform. It would have 32-bit and 64-bit pointer mode for userland. Always 64-bit for kernel. It would have lots of GPR, (64? 128?) which would always be 64-bits wide, possibly we could have a few 128-bit GP registers as well, probably fewer for cost reasons). It would have some 256 bits wide SIMD registers. Or maybe 512?
22:44:57 <AnMaster> pikhq, and some floating point, could be part of SIMD, not sure
22:45:25 <AnMaster> plus an assorted set of special registers of course, like every other arch
22:45:44 <AnMaster> pikhq, sounds like utopia yet?
22:45:57 <Rugxulo> http://lbw.sourceforge.net/ (uses Interix, supposedly very buggy though)
22:46:02 <AnMaster> <pikhq> Gentoo/Win32 has it on the CD. <-- and isn't that dead? If you mean the cygwin one?
22:46:17 <AnMaster> Rugxulo, there is internix debian
22:46:18 <Rugxulo> 256 bit wide SIMD = AVX, no?
22:46:21 <fizzie> pikhq: By "it", do you mean the older SFU 3.5 working also on Vista and 7 unsupportedly, or the SUA? Because all I can really find from Microsoft's downloads is the SUA utilities and SDK, which requires Vista/7 Enterprise/Ultimate, because the actual subsystem part is only included in those. (I guess it might be redistributable and available because of that, but not directly from MS.)
22:46:26 <AnMaster> Rugxulo, this is not x86
22:46:27 <AnMaster> ...
22:50:55 <pikhq> fizzie: Huh. Sure enough.
22:51:10 <Rugxulo> <alise> 03:00:06 <Rugxulo> dumb question, but why not use FreeBASIC instead?
22:51:10 <Rugxulo> <alise> No peeking 'n poking madness; no nostalgia; no good-ole-days-feeling.
22:51:12 <fizzie> Incidentally, how is it with Hurd these days? Ready to replace the temporary Linux solution yet?
22:51:16 <pikhq> Fucking Microsoft.
22:51:26 <Rugxulo> FreeBASIC has a QB mode, and you can indeed peek/poke with DJGPP functions
22:51:28 <pikhq> Hurd is basically abandoned.
22:51:44 <Rugxulo> no, I think somebody is (barely) working on it, just not sure how much
22:51:52 <Rugxulo> I thought I read some hint about it recently, but I can't remember
22:52:04 <AnMaster> pikhq, link to gentoo/windows?
22:52:17 <AnMaster> pikhq, the only thing I can find is something published on 1 april...
22:52:33 <AnMaster> or the old dead gentoo/cygwin one
22:53:12 <pikhq> http://www.gentoo.org/proj/en/gentoo-alt/prefix/index.xml
22:53:41 <Rugxulo> oh, BTW, does anybody in here besides me actively have a Win32 install?
22:53:52 <Rugxulo> I'm thinking it should maybe be possible to write a Befunge93 interpreter in CMD
22:53:56 <pikhq> Rugxulo: I have *an* implementation of Win32.
22:54:01 <Rugxulo> (which may or may not work with ReactOS)
22:54:11 <Rugxulo> (their shell shares some features)
22:54:14 <AnMaster> pikhq, and the cd with this thing for it on it?
22:54:36 <pikhq> AnMaster: http://distfiles.gentoo.org/experimental/prefix/x86-interix/
22:54:41 <Rugxulo> I wrote "get()" in CMD, seems to work, haven't gotten past that though
22:54:47 <AnMaster> Rugxulo, I have 64-bit windows xp in a virtualbox
22:54:52 <AnMaster> that is all I have when it comes to windows
22:54:52 -!- jcp has joined.
22:55:02 <fizzie> Rugxulo: I have a silly Server 2003 install, though I'm not sure what you mean by "actively".
22:56:19 <Rugxulo> I was basically looking for comments on whether anybody agreed that CMD should be enough to emulate Befunge93
22:56:30 <Rugxulo> like I said, I wrote get(), it seems to work, but I haven't gotten past that
22:56:32 <AnMaster> I doubt it
22:56:34 <fizzie> Well, sure, why not.
22:56:50 <AnMaster> but who knows, it may be possible
22:57:01 <AnMaster> befunge98, probably not
22:57:28 <Rugxulo> it supports "set /A expression", for example
22:57:51 <AnMaster> Rugxulo, what about the stack
22:58:00 <Rugxulo> env. vars
22:58:08 <Rugxulo> set STACK=%STACK% 9
22:58:14 <Rugxulo> or similar
22:58:25 <AnMaster> Rugxulo, how do you extract the top element from that then?
22:59:04 <Rugxulo> May also specify substrings for an expansion.
22:59:04 <Rugxulo> %PATH:~10,5%
22:59:04 <Rugxulo> would expand the PATH environment variable, and then use only the 5
22:59:04 <Rugxulo> characters that begin at the 11th (offset 10) character of the expanded
22:59:04 <Rugxulo> result.
22:59:16 <AnMaster> hm
22:59:31 <AnMaster> Rugxulo, that is cmd.exe but not command.com right?
22:59:43 <Rugxulo> right
22:59:47 <AnMaster> Rugxulo, and who knows where this is documented...
23:00:01 <Rugxulo> I just typed "set /?" and "for /?"
23:00:04 <AnMaster> hm
23:00:09 <Rugxulo> seemed to be enough for now ;-)
23:00:17 <AnMaster> Rugxulo, that mentions the substring thingy?
23:00:23 <Rugxulo> yes
23:00:25 <AnMaster> oh and that set /A
23:00:27 <AnMaster> what does it do
23:00:47 <Rugxulo> The /A switch specifies that the string to the right of the equal sign
23:00:47 <Rugxulo> is a numerical expression that is evaluated. The expression evaluator
23:00:47 <Rugxulo> is pretty simple and supports the following operations, in decreasing
23:00:47 <Rugxulo> order of precedence:
23:00:47 <Rugxulo> () - grouping
23:00:47 <Rugxulo> ! ~ - - unary operators
23:00:48 <Rugxulo> * / % - arithmetic operators
23:00:48 <Rugxulo> + - - arithmetic operators
23:00:49 <Rugxulo> << >> - logical shift
23:00:49 <Rugxulo> & - bitwise and
23:00:50 <Rugxulo> ^ - bitwise exclusive or
23:00:50 <Rugxulo> | - bitwise or
23:00:51 <Rugxulo> = *= /= %= += -= - assignment
23:00:51 <AnMaster> ...
23:00:52 <Rugxulo> &= ^= |= <<= >>=
23:00:53 <AnMaster> stop the spam
23:01:03 <AnMaster> a short summary is enough
23:01:17 <Rugxulo> I wanted you to know what it supported (&, ^, |)
23:01:31 <AnMaster> useless for befunge93 though
23:01:45 <Rugxulo> how so?
23:01:53 <AnMaster> it doesn't have bitwise operators
23:02:10 <AnMaster> and also for befunge98 (unless you use some fingerprint that provide bitwise operators)
23:02:20 <AnMaster> Rugxulo, also it doesn't do xnor :(
23:02:22 <Rugxulo> oh, well obviously Befunge doesn't ... but I'm just saying "set /a" should be enough for B93
23:02:31 <AnMaster> (of course, nothing does, unless it is a HDL)
23:02:38 <fizzie> AnMaster: MSDN has cmd.exe documentation, I've used it a couple of times.
23:02:52 <AnMaster> fizzie, I think I never looked further than windows help center
23:02:56 <AnMaster> before loosing interest
23:04:37 <Rugxulo> AnMaster, you sure love 64-bit a lot ;-)
23:04:38 <fizzie> AnMaster: As for command.com limitations, failing all else you could keep the stack in a file, and use the find command (grep replacement) to extract the top and all-but-the-top into different files.
23:05:10 <AnMaster> Rugxulo, hm? that is because compared to 32-bit x86 it is a lot saner
23:05:20 <AnMaster> sure it is worse than most RISC platforms
23:05:24 <AnMaster> x86 in general is crap
23:05:31 <AnMaster> but that is what I'm stuck with
23:05:37 <AnMaster> Rugxulo, also that comment seemed out of context there
23:05:46 <AnMaster> since we hadn't discussed that for several screens
23:05:51 <Rugxulo> I was referring to your XP64 VirtualBox install
23:06:00 <AnMaster> Rugxulo, that was several screens above yes
23:06:16 <AnMaster> well, 2 screens
23:06:17 <Rugxulo> 16 minutes ago, my how time flies
23:06:43 <Rugxulo> no, 64-bit is not hugely better than 32-bit, nor is 32-bit so high and mighty and awesome that it fully obsoletes 16-bit
23:06:44 <AnMaster> Rugxulo, well considering we discussed other things in between yes
23:06:51 <AnMaster> ...
23:06:59 <Rugxulo> "x86 in general is crap, but that is what I'm stuck with"
23:07:04 <AnMaster> indeed
23:07:16 <Rugxulo> all computers, OSes, languages, compilers are crap ... but it's all we've got, so we have to use them to the fullest!
23:07:30 <Rugxulo> GCC is far from perfect, but it's less evil than the others
23:07:48 <AnMaster> Rugxulo, you do realise that dropping the whole segmented memory thing x86_64 made a huge step in the right direction. Sure there are still segments, but only used for a way to use thread local data, and that is iirc just used as an offset then into the flat memory
23:08:02 <AnMaster> Rugxulo, I have high hopes with clang
23:08:08 <Rugxulo> in theory, fine ... in practice, bad
23:08:15 <AnMaster> Rugxulo, what is bad in practise?
23:08:23 <Rugxulo> if everything wasn't closed source and we could all code / fix bugs, it wouldn't matter
23:08:36 <Rugxulo> but removing compatibility in such a proprietary world seems like a bad idea
23:08:43 <Rugxulo> who needs yet another incompatible mess to port to??
23:08:51 <AnMaster> Rugxulo, well, non of the really important software for me is closed source apart from bios
23:09:01 <AnMaster> probably some firmware in some devices too
23:09:06 <AnMaster> but that is unlikely to be x86
23:09:11 <Rugxulo> I'm not really complaining about AMD64, I don't hate it (far from it), but it's not fair to obsolete everything else just because it exists
23:09:16 <Rugxulo> two things can co-exist peacefully
23:09:18 <AnMaster> (I doubt my wlan card runs x86 firmware)
23:09:24 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:09:37 <AnMaster> Rugxulo, I never said that, I think we should obsolete x86 completely
23:09:42 <AnMaster> but that is sadly unrealistic
23:09:48 <Rugxulo> I'm no huge proprietary software fan myself, but I'm just saying ... some things can't easily be replaced, hence it's bad to remove compatibility
23:10:02 <Rugxulo> x86 isn't bad enough to obsolete completely
23:10:42 <AnMaster> Rugxulo, I can't see any non-easily replaceable things around me except my ssh key and my gpg key :P
23:10:50 <Rugxulo> you may not prefer pure assembly for your own personal stuff, but it ain't that bad
23:11:00 <Rugxulo> AnMaster, gcc? ;-)
23:11:06 <AnMaster> Rugxulo, clang + llvm
23:11:11 <AnMaster> works fine for C code nowdays
23:11:17 <AnMaster> C++ still WIP
23:11:18 <Rugxulo> which doesn't work with computed gotos (have you tested CFunge?)
23:11:22 <AnMaster> but it can now compile itself
23:11:26 <Rugxulo> WIP but works ... bootstraps itself
23:11:28 <AnMaster> which is quite impressive
23:11:32 <Rugxulo> yes, indeed
23:11:33 <AnMaster> Rugxulo, indeed
23:11:48 <Rugxulo> it has a lot of promise, just not perfect yet (lacking some GCC extensions some people have used too much)
23:12:14 <AnMaster> Rugxulo, also for C there are lots of other compilers, tcc and pcc for example
23:12:19 <AnMaster> a bit more sparse when it comes to C99
23:12:29 <Rugxulo> OpenWatcom, too
23:12:34 <AnMaster> perhaps
23:12:37 <Rugxulo> or even dev86/bcc
23:12:37 <AnMaster> never used it myself
23:12:48 <Rugxulo> it has no 64-bit support, so I guess you wouldn't ;-)
23:12:50 <AnMaster> Rugxulo, mostly because I prefer protected memory or something
23:13:09 <Rugxulo> (re: dev86, I assume, since OW supports pmode, even Linux)
23:13:21 <AnMaster> Rugxulo, you know, I coded for stuff more limited than an 8088
23:13:31 <AnMaster> Rugxulo, PIC12 series
23:13:51 <AnMaster> PIC12F629 unless I misremember
23:14:00 <Rugxulo> in C?
23:14:28 <AnMaster> Rugxulo, in asm, you can't do C when you have an accumulator machine with 1024 words program memory
23:14:41 <Rugxulo> ;-)
23:14:51 <AnMaster> Rugxulo, but that is an embedded system
23:15:00 <Rugxulo> BTW, there exist 64-bit assembly programs too, as I guess you know
23:15:03 <AnMaster> Rugxulo, 8 legs, and two of those are used for vcc/gnd
23:15:12 <AnMaster> one was used for serial cable input
23:15:27 <AnMaster> Rugxulo, I know, I written some inline asm myself, non-temporal stores
23:15:41 <Rugxulo> you don't find GCC output a bit bloated? :-/
23:15:55 <AnMaster> Rugxulo, I make it portable
23:16:00 <AnMaster> with pure C fallbacks and so on
23:16:04 <AnMaster> plus I avoid C when I can
23:16:12 <AnMaster> I go for LISP or erlang most of the time
23:16:19 <Rugxulo> portability is good, no doubt
23:16:29 <AnMaster> Rugxulo, anyway, I had to use the remaining 5 legs to drive 12 leds
23:16:38 <Rugxulo> doesn't Erlang compile to C? (or is that Eiffel?? I forget...)
23:17:00 <fizzie> I have somewhere few incomplete bits of "nesbef", a befunge93 interp for the good old NES. Left it incomplete, got somewhat bored of the 6502-clone asm.
23:17:18 <Rugxulo> have you seen those portable NES clone machines?
23:17:23 <AnMaster> Rugxulo, yes, I know cfunge compiles on openbsd (manual build, build system itself doesn't seem to work well here), freebsd, solaris (tested once, quite some time ago) and of course linux
23:17:34 <AnMaster> tested sparc, x86 and x86_64
23:17:43 <AnMaster> sparc I can't test often
23:17:49 <AnMaster> was a once off access basically
23:17:59 <AnMaster> and it was iirc openbsd/sparc
23:18:05 <AnMaster> and solaris/sparc
23:18:16 <AnMaster> Rugxulo, ?
23:18:22 <Rugxulo> ? what?
23:18:27 <AnMaster> the NES stuff
23:18:58 <AnMaster> <Rugxulo> doesn't Erlang compile to C? (or is that Eiffel?? I forget...) <-- erlang compiles to bytecode, which is then run in the beam vm. you don't see beam directly most of the time, it is invoked as erl
23:19:08 <Rugxulo> I saw a NES clone portable for $30 on eBay (admittedly used, they seem to sell for $40-50 US new)
23:19:11 <AnMaster> erl give you a REPL running in BEAM
23:19:35 <AnMaster> Rugxulo, you don't mean a NES emulator do you?
23:19:36 <fizzie> Sparc has got those register windows, they're funky.
23:19:37 <Rugxulo> I just thought that was interesting (since no way in hell do I want to buy an old old machine that will break)
23:19:39 -!- augur has quit (Ping timeout: 276 seconds).
23:19:42 <AnMaster> fizzie, yes quite
23:19:47 <Rugxulo> no, a real NES (well, clone)
23:19:51 <AnMaster> fizzie, but the compiler handled that for me :P
23:20:10 <AnMaster> Rugxulo, not sure why I would want one
23:20:15 <AnMaster> zelda 2 wasn't all that good
23:20:20 <AnMaster> (playable yes)
23:20:21 <Rugxulo> me either, just saying, it's cool that one exists
23:20:32 <Rugxulo> (finally dumb patents expired, and Nintendo hasn't made a NES since 1995)
23:20:49 <Rugxulo> Zelda 2 was pretty good, I thought, but tastes vary
23:20:50 <pikhq> There's been Famiclones for ages.
23:21:02 <Rugxulo> yeah, and Nintendo sued them ad nauseum for years
23:21:14 <pikhq> In those countries they could, yes.
23:21:26 <pikhq> Quite rampant in Asia and Eastern Europe.
23:21:34 <pikhq> ... And South America.
23:22:08 <Rugxulo> I always liked Ninja Gaiden (1,2,3) for NES
23:22:09 <AnMaster> mhm
23:22:17 <Rugxulo> haven't played in years though (machine broke, doh)
23:22:26 <AnMaster> Rugxulo, there are emulators
23:22:42 <pikhq> Yeah, the NES is very well-emulated.
23:22:45 <Rugxulo> yeah, which Nintendo spread a lot of FUD about for years also (dummies)
23:23:03 <AnMaster> Rugxulo, huh?
23:23:06 <AnMaster> about emulators?
23:23:07 <nooga> heh
23:23:11 <Rugxulo> I remember LoopyNes being quite fast (written in assembly) for DOS back in the day ;-)
23:23:14 <pikhq> AnMaster: "Emulators are illegal" they say.
23:23:15 <nooga> i can't enable networking in qemu
23:23:22 <nooga> so that gues OS has internet access
23:23:22 <pikhq> As well as "making backups".
23:23:23 <AnMaster> pikhq, how stupid.
23:23:29 <Rugxulo> what they say is basically, "Fair use copyright doesn't exist"
23:23:33 <pikhq> (both actions are perfectly legal. Explicitly so, even.)
23:24:11 <AnMaster> Rugxulo, that depends on the country
23:24:20 <pikhq> AnMaster: US law.
23:24:30 <pikhq> They claimed this in the US.
23:24:31 <Rugxulo> I sent them an e-mail, "So a NES emulator for Final Fantasy is illegal even though I legit purchased the game? Guess I'll have to buy a PS1 + FF combo pack!!!"
23:24:35 <AnMaster> hm okay
23:24:52 <pikhq> Of course, these are the idiots that also felt that a Game Genie was illegal.
23:24:56 <Rugxulo> and then about a year later (heh, I'm not egotistical to think it was my doing), FF came out for GBA ;-)
23:25:15 <pikhq> *After losing the lawsuit against them because it was legal*.
23:25:49 <Rugxulo> these are the same people who "ported" their borked original (missing level 4) NES Donkey Kong to GBA
23:26:27 <Rugxulo> just seems dumb to whine about clones for a machine they haven't made in ages (1995)
23:26:43 <Rugxulo> as if buying used old-ass machines was any better
23:26:50 <pikhq> Rugxulo: Older.
23:27:06 <Rugxulo> I mean they stopped in 1995
23:27:12 <pikhq> Erm. Yeah. 1995.
23:27:16 <pikhq> ... 2003 in Japan?
23:27:28 <coppro> pikhq: this sounds like Stephen Harper
23:27:31 <pikhq> *You could still buy a new Famicom in 2003*?
23:27:49 <Rugxulo> unlike the 7800, their SNES wasn't backwards compatible
23:28:00 <Rugxulo> (although 3rd-party adapter existed but expensive)
23:29:02 <coppro> (also, Nintendo no longer claims emulators to be illegal, though they (correctly) argue that most every use of them to play a real game involves an illegal copy
23:29:23 <Rugxulo> "correctly" is a bit of a stretch since there is no legal way to copy the games
23:29:34 <pikhq> Rugxulo: Yes there is.
23:29:35 <Rugxulo> they pretty much prevented fair use
23:29:49 <pikhq> You are perfectly entitled to create a copy of a real cartridge.
23:29:50 <Rugxulo> no, I think those ROM dumpers are illegal themselves (or used to be)
23:30:14 <pikhq> They are *explicitly* allowed by US copyright law.
23:30:24 <pikhq> Not just "kinda-sort fair use", *explicitly allowed*.
23:30:30 <Rugxulo> their argument was the "save data" (e.g. FF or Zelda) was someone else's, hence "proving" that you weren't getting an exact copy of the original, which I thought was a lame thing to say
23:30:32 <coppro> they do not claim that ROM dumps are illegal either
23:30:39 <Rugxulo> yes, I know it is allowed, but Nintendo doesn't think so!
23:30:44 <pikhq> coppro: They used to.
23:30:48 <coppro> I know
23:30:56 <pikhq> Like, I'm surprised they've *stopped*.
23:31:15 <pikhq> I know they still claimed it in the last Nintendo stuff I got (a GBA)
23:31:25 <coppro> hmm
23:31:29 <Rugxulo> well, I guess I shouldn't really think they'd 100% abide by any (random) law, but their position(s) just makes no sense
23:31:32 <coppro> I'm looking at the website, I don't know about the inserts
23:31:34 * coppro goes to see
23:32:32 <coppro> the language is pretty ambiguous, but does imply that backups are illegal
23:32:41 <coppro> (this from a Wii game manual)
23:33:10 <coppro> but arguably it could just be a claim that backup copies are 'unauthorized' and would thus void the warranty
23:33:25 <AnMaster> <Rugxulo> and then about a year later (heh, I'm not egotistical to think it was my doing), FF came out for GBA ;-) <-- FF?
23:33:37 <coppro> final fantasy
23:33:47 <AnMaster> oh right
23:33:56 <AnMaster> and what was that "heh, I'm not egotistical to think it was my doing" about?
23:34:05 <fizzie> ^style ff7
23:34:05 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
23:34:11 <Rugxulo> because I thought my argument was fair
23:34:14 <AnMaster> hm
23:34:40 <AnMaster> Rugxulo, I doubt that caused it
23:34:41 <Rugxulo> "Why shouldn't I be allowed to run an emulator with my legally-purchased Final Fantasy? So buying a PS1 + FF combo is a better idea? (gives Nintendo no extra money either)"
23:34:46 <fizzie> fungot: Say something relevant. Is the script I showed you illegal, for example?
23:34:46 <fungot> fizzie: our company may be a shinra uniform......
23:34:48 <Rugxulo> I know it didn't, I admit ;-)
23:34:54 <AnMaster> Rugxulo, true
23:35:11 <coppro> Hopefully the Canadian government will finally get smart and fully legalize format-shifting
23:35:16 <AnMaster> fizzie, never played that ff
23:35:26 <coppro> thus making emulations of ripped software legal
23:35:29 <AnMaster> I think I played the one with spoony bard in it
23:35:35 <AnMaster> whichever that one was
23:36:29 <pikhq> AnMaster: FFVI
23:36:44 <pikhq> (FFIII-US)
23:37:06 <AnMaster> hm
23:37:19 <fizzie> Edward (the sppoony bard) is from IV, not VI.
23:37:21 * Rugxulo was talking about the old, original FF1
23:37:26 <AnMaster> pikhq, probably US one
23:37:27 <pikhq> fizzie: Oh, right. XD
23:37:29 <Rugxulo> not quite as impressive, that one ;-)
23:37:41 <fizzie> VI's the better one. :p
23:37:46 <pikhq> Rugxulo: Ah, the one that's short "plot". :P
23:37:53 <pikhq> fizzie: I have yet to play either.
23:38:02 <pikhq> Though FFVI is next on my "to play" queue.
23:38:02 <AnMaster> fizzie, looking at wikipedia it seems closer to the VI one from the screenshots
23:38:25 <AnMaster> http://en.wikipedia.org/wiki/File:WikibattleFF6.PNG <-- at least that one looks very familiar
23:38:37 <AnMaster> so maybe it wasn't spoony bard after all
23:38:57 <AnMaster> fizzie, but wasn't there some useless bard in VI too?
23:39:07 <pikhq> It must be said, the bard was, in fact, spoony.
23:39:24 <fizzie> "We checked."
23:39:29 <pikhq> :)
23:39:39 <fizzie> I think that was in the FF4 DS remake.
23:39:57 <AnMaster> fizzie, which one was the useless char in FFVI then?
23:41:44 <fizzie> Well... there's the gambler. And that king.
23:41:56 <fizzie> They're not quite as spoony as the bard.
23:43:20 <fizzie> Oh, and the moogle, e's pretty useless.
23:44:07 <AnMaster> right
23:44:08 <pikhq> Kupo!
23:44:24 <AnMaster> weren't there such in secret of mana too?
23:44:32 <AnMaster> hm different game world right?
23:44:36 <AnMaster> or?
23:45:23 <AnMaster> oh wikipedia says it is a spin-off
23:45:27 <AnMaster> that explains that
23:45:31 <fizzie> Moogles have spread a bit, I think.
23:45:34 <pikhq> Different series.
23:45:42 <pikhq> But kupo.
23:45:43 <AnMaster> pikhq, spin-off says wikipedia though
23:45:50 <fizzie> Kupo, kupo.
23:46:01 <AnMaster> but yeah different game world, but even in the same series game worlds are inconsistent often
23:46:07 <AnMaster> (just look at zelda!!)
23:46:34 <fizzie> The FF worlds don't have that much to do with themselves between installments.
23:46:41 <coppro> fizzie: kupo
23:46:45 <AnMaster> did any two zelda game share a similar looking world map. I mean the relative placement of the landmarks and such
23:47:07 <coppro> The newer games have tended to vaguely fit the same shape
23:47:20 <AnMaster> at least secret of mana had a nicer combat system than FFVI did
23:47:24 <fizzie> X-2 was a sequel for X though. Not that I've played any past 9. They're up to, what, 13 or 14 now?
23:47:26 <AnMaster> not sure about the other FF series
23:47:36 <AnMaster> but FFVI had a very annoying combat system
23:47:39 <coppro> hmm... actually
23:47:47 <coppro> there seem to be two competing layouts for Hyrule
23:47:54 <AnMaster> coppro, only two?
23:48:07 <coppro> I'm only counting ones that I can think of being in multiple games
23:48:22 <coppro> the OoT layout and the LttP layout
23:48:38 <AnMaster> coppro, other games had yet other ones iirc?
23:48:45 <AnMaster> zelda 1 for example
23:48:47 <coppro> yeah
23:48:47 <Rugxulo> how many Zeldas are there? too many to remember, I think
23:49:07 <AnMaster> to be fair, at least two of the zelda games takes place outside Hyrule
23:49:11 <coppro> three
23:49:19 <AnMaster> majora's mask and links awakening
23:49:22 <coppro> ... four
23:49:22 <AnMaster> are the ones I know
23:49:26 <coppro> ... six
23:49:31 <AnMaster> coppro, which are the remaining ones?
23:49:41 <coppro> Both Oracle games and both DS games
23:49:50 <AnMaster> coppro, what are the DS ones called
23:49:59 <coppro> Phantom Hourglass and Spirit Tracks
23:50:06 <AnMaster> mhm
23:50:10 <AnMaster> neither rings a bell
23:50:16 <coppro> they're pretty good
23:50:18 <coppro> Wind Waker has Hyrule underwater too
23:50:39 <Rugxulo> 15?
23:50:42 <coppro> dunno about Minish Cap's map; never played it
23:50:42 <Rugxulo> (Wikipedia)
23:50:48 <Rugxulo> http://en.wikipedia.org/wiki/The_Legend_of_Zelda
23:50:59 <coppro> yeah, Zeldapedia counts 15 released main-series games
23:51:05 <AnMaster> mhm
23:51:16 <Rugxulo> I guess that includes the (allegedly horrible) CD-i versions?
23:51:18 <coppro> no
23:51:22 <coppro> those are separate
23:51:22 <AnMaster> anyway, which combat system do you prefer: that of FFVI or that of Secret of Mana?
23:51:38 <pikhq> Rugxulo: No such games.
23:53:15 <Rugxulo> http://en.wikipedia.org/wiki/CD-i_games_from_The_Legend_of_Zelda_series
23:53:17 <coppro> looking at a picture of Minish Cap's world map, it seems to have a different one
23:53:58 <pikhq> Rugxulo: It's called "discontinuity", not "ignorance of the existence".
23:54:32 <fizzie> ^style ct
23:54:32 <fungot> Selected style: ct (Chrono Trigger game script)
23:54:34 <fizzie> fungot: The sword, alone...?
23:54:34 <fungot> fizzie: you are strong of will...! that's the pendant the gurus and miss you. you may use that " rainbow shell? can eat much!
23:55:12 <fizzie> (Was hoping for "can't stop" there.)
23:55:30 <AnMaster> fungot, now do what fizzie told you to
23:55:30 <fungot> AnMaster: yes, it's been awhile prometheus! it's time you jumped off this mortal coil...?! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided to stay with these humans! you're a traitor! you're not our king! but, we are far outnumbered!
23:55:51 <AnMaster> fungot, almost, you had "sword" there but not the rest
23:55:51 <fungot> AnMaster: but cyrus! are you leaving! it's time you jumped off this mortal coil... yes! well then rest and relax! huh?! well, remember that you can log in anywhere on the world map! need a brief weapons and items seminar?
23:55:59 <AnMaster> fungot, no good
23:56:00 <fungot> AnMaster: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
23:56:06 <AnMaster> fungot, again not quite
23:56:06 <fungot> AnMaster: yes, it's been awhile prometheus!!! i give you 1 weapon or 1 item! what you do? wake you, but need dactyl?!
23:56:10 <AnMaster> ..
23:56:20 <fizzie> Heh, no go.
23:56:45 <fizzie> Lots of exclamation marks though.
23:57:27 <fizzie> He's easily excited.
23:57:32 <AnMaster> yes
23:58:04 -!- cheater3 has joined.
←2010-05-03 2010-05-04 2010-05-05→ ↑2010 ↑all