←2008-04-29 2008-04-30 2008-05-01→ ↑2008 ↑all
00:28:41 -!- sebbu2 has quit ("@+").
01:46:02 -!- Sgeo has joined.
02:11:18 -!- GreaseMonkey has quit ("Unisex.").
02:32:09 -!- ehird has quit (Remote closed the connection).
04:06:48 -!- Sgeo has quit ("Ex-Chat").
04:06:49 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
04:07:25 -!- Slereah_ has joined.
04:35:18 -!- pikhq has quit (Read error: 110 (Connection timed out)).
04:36:57 -!- GreaseMonkey has joined.
04:48:40 -!- Sgeo has joined.
05:06:22 -!- RodgerTheGreat has quit.
05:21:22 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
07:00:28 -!- Sgeo has quit ("Ex-Chat").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:57:00 <AnMaster> cfunge now supports = btw
08:57:32 * AnMaster thinks it is time for a new release very soon, though need to test a few things that mycology doesn't first
08:58:08 <AnMaster> Deewiant, oh and ccbi got a fault in it's = instruction
08:58:13 <AnMaster> it pushes wrong return code
08:58:32 <AnMaster> Deewiant, http://rafb.net/p/vO2eqx94.html
08:58:57 <AnMaster> basically that just shows that it uses the raw return value of system() rather than extracting the exit code
08:59:22 <AnMaster> retval = WEXITSTATUS(system(command));
08:59:31 <AnMaster> I think WEXITSTATUS may be a macro actually
08:59:48 <AnMaster> in any case: it pushes 512 instead of 2 as exit code for the test program on my system
09:05:33 <fizzie> Nitpickery: one should actually first test with WIFEXITED(x) that the process has terminated normally (and not died to an uncaught signal or something), since otherwise the WEXITSTATUS value might be anything.
09:07:09 <AnMaster> fizzie, I'm afraid that the funge98 standard may be a bit unclear in fact:
09:07:14 <AnMaster> "After execution, a failure value is pushed onto the stack. If this value is zero, everything went as expected. If the value is non-zero, it may be the return-code of the program that was executed; at any rate it means that the attempt to execute the program, or the program itself, did not succeed."
09:07:38 <AnMaster> so it is possible that ccbi does not break the standard
09:07:52 <AnMaster> however, it is not logical the way it does it
09:08:09 <AnMaster> fizzie, but probably yeah
09:08:30 <AnMaster> anyway he got an issue, as ccbi is in D, and WIFEXITED and such are defined as macros in the system headers
09:08:38 <AnMaster> not sure he could use them in his program then
09:08:56 <AnMaster> cfunge can use them, as it is C
09:25:43 -!- Iskr has joined.
09:32:35 -!- Corun_ has joined.
09:35:42 -!- Corun_ has quit (Client Quit).
10:08:51 <Deewiant> AnMaster: the spec says only that it's "Equivalent to C-language system() call behaviour". the return value of system() is implementation-defined so I'd argue that processing it with WEXITSTATUS is a violation of the standard: such processing should be done by the befunge, not the interpreter
10:09:28 <AnMaster> Deewiant, it is not possible for the funge to do that, as it can't know the definition of WEXITSTATUS
10:09:46 <AnMaster> the reason for the macro is that the exact format of the return value may differ between different systems
10:10:10 <AnMaster> also it states: "If the value is non-zero, it may be the return-code of the program that was executed; at any rate it means that the attempt to execute the program, or the program itself, did not succeed."
10:10:18 <AnMaster> return code implies WEXITSTATUS I think?
10:10:45 <Deewiant> it _may be_
10:10:58 <Deewiant> the whole thing is implementation defined
10:11:06 <Deewiant> IMO the interpreter should just pass such things through
10:11:18 <AnMaster> "I'd argue that processing it with WEXITSTATUS is a violation of the standard"
10:11:21 <AnMaster> hm
10:11:32 <Deewiant> can the definition of WEXITSTATUS vary between Posix systems?
10:12:00 <AnMaster> Deewiant, I think it can
10:12:11 <Deewiant> then your interpreter has to be recompiled for each system
10:12:21 <AnMaster> the macro is there to hide exactly what bits are used
10:12:40 <AnMaster> Deewiant, indeed, but it has anyway as WIFEXITED could also vary in the same way
10:12:49 <AnMaster> and that is needed by the PERL fingerprint
10:12:50 <Deewiant> and why would you need WIFEXITED
10:12:59 <AnMaster> <AnMaster> and that is needed by the PERL fingerprint
10:13:08 <Deewiant> what for
10:14:28 <AnMaster> because of issues with the pipes that happened otherwise
10:14:57 <Deewiant> sigh
10:15:05 <AnMaster> when things went wrong in my tests
10:15:39 <AnMaster> also, if the instruction fails to execute, it would reverse, logically
10:15:46 <Deewiant> why is WEXITSTATUS needed, why can't system() return the return code directly
10:15:58 <AnMaster> Deewiant, because it returns more data
10:16:02 <AnMaster> in different bits
10:16:11 <AnMaster> some bits are return code, other are not
10:16:30 <AnMaster> The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise. This latter return status is in the format
10:16:30 <AnMaster> specified in wait(2). Thus, the exit code of the command will be WEXITSTATUS(status). In case /bin/sh could not be executed, the exit status will be
10:16:30 <AnMaster> that of a command that does exit(127).
10:16:36 <AnMaster> so see man 2 wait
10:17:04 <AnMaster> WIFEXITED, WIFSIGNALED, and so on
10:17:11 <Deewiant> and WIFEXITED isn't specified... great
10:17:20 <AnMaster> what?
10:17:31 <AnMaster> it is in /usr/include/sys/wait.h
10:17:37 <Deewiant> it's not specified in the standard
10:17:41 <AnMaster> or probably, on linux, some file included by that
10:17:41 <Deewiant> it's implementation defined as usual
10:17:50 <AnMaster> Deewiant, err, it is defined as "should exist" in POSIX
10:17:52 <Deewiant> " returns true if the child terminated normally"
10:17:57 <Deewiant> well of course
10:18:02 <Deewiant> but it doesn't say what it /does/
10:18:03 <AnMaster> aye
10:18:13 <Deewiant> does it take the top bit, check for x & 0xf != 0, or what
10:18:21 <AnMaster> Deewiant, on linux it checks if a certain bit is high
10:18:27 <AnMaster> don't think it was top bit
10:18:28 <Deewiant> that's not helpful
10:18:32 <Deewiant> because that's only on linux
10:18:43 <Deewiant> and liable to change from one kernel version to the next
10:18:45 <AnMaster> /usr/include/gentoo-multilib/amd64/stdlib.h:# define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status))
10:18:46 <AnMaster> /usr/include/gentoo-multilib/amd64/bits/waitstatus.h:#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
10:18:55 * AnMaster checks on freebsd
10:19:05 <Deewiant> they may or may not be the same, I don't care
10:19:15 <Deewiant> the fact is that the standard doesn't say what they should be and hence one can't rely on it
10:19:17 <AnMaster> /usr/include/sys/wait.h:#define WEXITSTATUS(x) (_W_INT(x) >> 8)
10:19:22 <AnMaster> seems different yeah :D
10:19:38 <Deewiant> if _W_INT is & 0xff00 then they're the same
10:19:44 <Deewiant> but like said it doesn't really matter
10:20:07 <AnMaster> that depends on __BSD_VISIBLE
10:20:17 <AnMaster> /usr/include/sys/wait.h-#if __BSD_VISIBLE
10:20:17 <AnMaster> /usr/include/sys/wait.h:#define _W_INT(w) (*(int *)&(w)) /* Convert union wait to int. */
10:20:18 <AnMaster> /usr/include/sys/wait.h-#else
10:20:21 <AnMaster> /usr/include/sys/wait.h:#define _W_INT(i) (i)
10:20:22 <AnMaster> /usr/include/sys/wait.h-#endif
10:20:27 <Deewiant> AnMaster: so, what if the befunge program wants to know about this metadata
10:20:31 <AnMaster> some irrelevant stuff cut out
10:20:42 <Deewiant> e.g. whether it exited normally or not (WIFEXITED)
10:21:03 <AnMaster> Deewiant, well, the standard doesn't say that
10:21:10 <AnMaster> nor can it parse it reasonably
10:21:24 <Deewiant> the standard says "system() call behaviour"
10:21:30 <AnMaster> at least on linux the definition is quite spread out over lots of file
10:21:32 <Deewiant> which doesn't suggest any post-processing of the return value
10:21:40 <AnMaster> "If the value is non-zero, it may be the return-code of the program that was executed; at any rate it means that the attempt to execute the program, or the program itself, did not succeed."
10:21:48 <AnMaster> which *DOES* suggest post-processing
10:21:56 <Deewiant> how?
10:22:03 <Deewiant> that just means that it can return whatever it wants
10:22:06 <AnMaster> "it may be the return-code"
10:22:06 <Deewiant> as long as zero means success
10:22:40 <AnMaster> Deewiant, well 0 might not mean success on the "raw" value I think, though not sure.
10:22:49 <AnMaster> not sure if posix says it has to mean that
10:22:56 <Deewiant> C99 says it has to mean that
10:23:48 <Deewiant> or no, darn
10:26:14 <AnMaster> C99 doesn't seem to say anything about return value in case of non-null string
10:26:20 <Deewiant> yep
10:28:22 <AnMaster> hm
10:29:04 <AnMaster> man 3p wait seems to say that it indeed shall be 0 "if and only if the status returned is from a terminated child process that terminated by one of the following means:
10:29:08 <AnMaster> 1. The process returned 0 from main().
10:29:10 <AnMaster> 2. The process called _exit() or exit() with a status argument of 0.
10:29:13 <AnMaster> 3. The process was terminated because the last thread in the process terminated.
10:29:14 <AnMaster> "
10:29:27 <AnMaster> so seems like that yeah
10:29:37 <Deewiant> alright, great
10:29:47 <Deewiant> so IMO I'm good in terms of the standard
10:29:49 <AnMaster> Deewiant, in any case I'd argue that extracting return code is a valid way to interpret the standard
10:29:50 <GregorR> system() returns what wait reports as the return value of the process, which will be the return code, error state, or some combination thereof.
10:29:52 <AnMaster> as well
10:30:00 <Deewiant> up to you
10:30:33 <AnMaster> GregorR, yeah, except return code on linux at least is not stored in the least significant byte
10:30:33 <GregorR> The raw return code from system() could encode (for example) both a return code of '1' and the fact that that return was caused by a signal.
10:30:41 <AnMaster> indeed
10:31:00 <GregorR> AnMaster: In `man wait` there's a macro for extracting it regardless of OS.
10:31:03 <GregorR> (If you're using C)
10:31:09 -!- GreaseMonkey has quit ("Unisex.").
10:31:12 <Deewiant> AnMaster: both !Befunge and FBBI push the result of system() directly.
10:31:16 <AnMaster> GregorR, read the convo, I do use it
10:31:31 <AnMaster> Deewiant, well I push it directly if it didn't exit normally
10:31:36 <AnMaster> thus trying to be helpful
10:31:38 <GregorR> Pffft, I don't read conversations!
10:31:42 <AnMaster> if (WIFEXITED(retval)) {
10:31:42 <AnMaster> StackPush(ip->stack, (FUNGEDATATYPE)WEXITSTATUS(retval));
10:31:42 <AnMaster> } else {
10:31:42 <AnMaster> StackPush(ip->stack, (FUNGEDATATYPE)retval);
10:31:42 <AnMaster> }
10:32:04 <Deewiant> heh, FBBI has a nice buffer overflow vulnerability too
10:32:05 <Deewiant> char s[256];
10:32:05 <Deewiant> ip_pop_string(i, s);
10:32:05 <Deewiant> ip_push(i, system(s));
10:32:13 <AnMaster> ouch
10:32:49 <Deewiant> !Befunge on the other hand pushes -2 if it runs out of buffer space :-)
10:32:52 <EgoBot> Huh?
10:32:57 <Deewiant> EgoBot: shaddup.
10:33:01 <AnMaster> I malloc my string, or if gc is in use, I'm even smarter, doing a special boehm-gc specific string that can be dynamically grown and appended to in a fast way
10:34:07 <AnMaster> Deewiant, I push -2 on empty string popped, as even if it doesn't cause any harm with system(), the man page doesn't clearly state so as far as I can see
10:34:10 <AnMaster> err
10:34:13 <AnMaster> system("")
10:34:37 <AnMaster> as I want to prevent segfaults and similar
10:34:48 <Deewiant> system(NULL) is perfectly valid.
10:34:55 <AnMaster> yes
10:34:57 <AnMaster> but NULL != ""
10:35:23 <AnMaster> and popping on empty stack results in a string like: "\0"
10:35:24 <AnMaster> after all
10:35:29 <AnMaster> a single \0 that is
10:35:50 <AnMaster> empty string in other words
10:36:03 <AnMaster> Deewiant, at least that is how I think it shall be interpreted (the standard that is)
10:36:15 <Deewiant> system("") returns 0 here
10:36:32 <AnMaster> yes, but is that guaranteed?
10:36:49 <AnMaster> If string is a NULL pointer, system() will return non-zero if the command
10:36:50 <AnMaster> interpreter sh(1) is available, and zero if it is not.
10:37:03 <Deewiant> no, it's not guaranteed
10:37:05 <AnMaster> that is a null pointer, not a null string
10:37:09 <AnMaster> as in ""
10:37:18 <AnMaster> Deewiant, so what may happen on empty string then?
10:37:23 <fizzie> I would think it is guaranteed under POSIX systems, since there's quite a lot said about how "sh" must behave.
10:37:29 <Deewiant> system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed.
10:37:35 <AnMaster> hm
10:37:43 <Deewiant> and I would argue that pressing enter in your shell is not an error. ;-)
10:37:53 <AnMaster> err
10:37:56 <AnMaster> this is confusing:
10:37:58 <AnMaster> If command is a null pointer, system() shall return non-zero to indicate that a command processor is available, or zero if none is available. The sys-
10:37:58 <AnMaster> tem() function shall always return non-zero when command is NULL.
10:38:24 <AnMaster> that seems to contradict itself
10:38:31 <AnMaster> from man 3p system on linux
10:38:35 <Deewiant> where'd you get that?
10:38:42 <AnMaster> man 3p system
10:38:44 <AnMaster> as I said :)
10:38:47 <Deewiant> man 3 system
10:38:48 <Deewiant> f the value of command is NULL, system() returns non-zero if the shell is available, and zero if not.
10:38:51 <AnMaster> yes
10:38:52 <Deewiant> that's all it says here
10:38:54 <AnMaster> 3p is POSIX
10:38:56 <AnMaster> 3 is Linux
10:39:00 <Deewiant> 3p doesn't exist here
10:39:07 <AnMaster> that is 3p is basically cut and paste from POSIX
10:39:09 <fizzie> Well, in a POSIX system there always is a shell. :p
10:39:20 <Deewiant> :-)
10:39:24 <AnMaster> $ qfile /usr/share/man/man3p/system.3p.bz2
10:39:24 <AnMaster> sys-apps/man-pages (/usr/share/man/man3p/system.3p.bz2)
10:39:25 <Deewiant> there you have it
10:39:51 <Deewiant> POSIX specifies that /bin/sh must exist, hence system() can't claim that none do
10:40:47 <AnMaster> well. it can... sometimes... as chroot() is not POSIX, thus a chroot could lack /bin/sh
10:40:56 <AnMaster> according to man 3 system
10:41:28 <Deewiant> chroot is not POSIX, so you're not running a POSIX system in that case.
10:41:59 <AnMaster> you may be, a POSIX with extensions, but while inside the chroot, indeed may not be POSIX
10:42:24 <AnMaster> In versions of glibc before 2.1.3, the check for the availability of /bin/sh was not actually performed if command was NULL; instead it was always assumed
10:42:24 <AnMaster> to be available, and system() always returned 1 in this case. Since glibc 2.1.3, this check is performed because, even though POSIX.1-2001 requires a
10:42:24 <AnMaster> conforming implementation to provide a shell, that shell may not be available or executable if the calling program has previously called chroot(2) (which is not specified by POSIX.1-2001).
10:43:05 <fizzie> And it's written in that confusing-looking way because the first phrase is directly from the ISO C standard, and that other line about always returning non-zero is "extension to the ISO C standard" addendum-thing.
10:43:24 <AnMaster> fizzie, haha
10:43:38 <fizzie> Line 45597 of 1003.1-2001, "System Interfaces", Issue 6.
12:10:51 -!- ais523 has joined.
12:17:45 <AnMaster> Emergency! Failed to allocate enough memory for new stack items: No such file or directory
12:17:46 <AnMaster> interesting
12:18:12 <AnMaster> UNDEF: S pushed 65887
12:18:12 <AnMaster> Emergency! Failed to allocate enough memory for new stack items: No such file or directory
12:18:12 <AnMaster> UNDEF: T after M pushed 455
12:18:14 <AnMaster> Aborted
12:18:16 <AnMaster> Deewiant, ^
12:18:21 <ais523> AnMaster: malloc doesn't always set errno
12:18:25 <AnMaster> ah
12:18:27 <ais523> so you may have an old errno value lying around somewhere
12:18:33 <ais523> try setting errno to 0 first
12:18:49 <AnMaster> and... wtf is eating all memory
12:18:51 <ais523> and then you'll get 'Success' as the error message if it wasn't set for some reason
12:19:00 <ais523> AnMaster: which OS are you on?
12:19:02 <AnMaster> of course... firefox
12:19:04 <AnMaster> ais523, linux
12:19:25 <ais523> AnMaster: that's strange, because normally Linux won't return 0 from malloc on small allocations no matter how hard you try
12:19:25 <AnMaster> firefox eats *MORE* memory than vmware
12:19:27 <AnMaster> amazing eh
12:19:30 <AnMaster> <ais523> AnMaster: that's strange, because normally Linux won't return 0 from malloc on small allocations no matter how hard you try
12:19:31 <ais523> it uses the OOM-killer instead
12:19:37 <AnMaster> I disabled the overcommit crap
12:19:41 <ais523> AnMaster: good
12:19:50 <AnMaster> as it cause more trouble than it solves
12:19:57 <ais523> oh, and I've had memory problems with Firefox too just now
12:20:02 <AnMaster> like init getting killed, which is PLAIN STUPID
12:20:06 <ais523> I was wondering why all my applications had become slow
12:20:07 <AnMaster> or syslog
12:20:23 <ais523> checked top, and 5 of them were in disk-access blocks
12:20:25 <AnMaster> ais523, only page open was funge specs
12:20:40 * ais523 switches to Epiphany
12:20:44 <ais523> I only had 4 tabs open...
12:20:55 * AnMaster switches to konq
12:21:11 <ais523> I use Konqueror as well
12:21:23 <ais523> in fact, I've had all 3 web browsers open at once before
12:21:28 <AnMaster> hm firefox was using 500 MB, vmware 300 MB, X 150 MB(!)
12:21:43 <AnMaster> + about 100 more swapped out
12:21:44 <AnMaster> wtf
12:21:47 <ais523> yes, X goes crazy sometimes and eats all my CPU cycles for a few minutes
12:21:56 <AnMaster> not cpu
12:21:58 <AnMaster> memory
12:22:06 <ais523> so we're having different problems with it...
12:22:20 <ais523> they'll have to fix Firefox 3's memory usage before its final release, though, I think
12:22:20 <AnMaster> ais523, but X was started almost 2 weeks ago
12:22:24 <AnMaster> it does leak memory
12:22:26 <ais523> ah
12:22:31 <AnMaster> ais523, I use firefox 2
12:22:32 <AnMaster> not 3
12:22:32 <ais523> I restart X several times a day
12:22:36 <ais523> because that's how I use my laptop
12:22:42 <ais523> it isn't on most of the time
12:22:49 <AnMaster> ais523, well this is a desktop
12:23:02 <ais523> so it makes sense for it to stay on for longer
12:23:08 <AnMaster> indeed
12:23:49 <ais523> wow, I'd forgotten just how slow Firefox was
12:24:11 <AnMaster> ais523, only reason I use firefox is adblock extension really
12:24:21 <AnMaster> and that it has became like IE was
12:24:28 -!- helios24 has joined.
12:24:29 <AnMaster> "page best viewed in firefox" bleh
12:24:36 <AnMaster> just waiting for that to happen
12:24:44 <ais523> "page best viewed in standards-compliant browsers", it should say
12:24:48 <ais523> but that's all of them but IE
12:24:54 <AnMaster> aye
12:24:57 <AnMaster> well
12:25:09 <AnMaster> lynx/w3m and such are not standards-compliant for everything I think
12:25:09 <ais523> most of them but IE
12:25:30 <ais523> I've never seen "page best viewed in w3m" anywhere
12:25:40 <AnMaster> indeed
12:25:53 <AnMaster> but point is, it can't fully support css
12:25:56 <AnMaster> like font family
12:26:22 <Deewiant> it supports HTML
12:26:31 <Deewiant> which should be enough
12:26:32 <ais523> there is more than one standard to comply with
12:26:39 <ais523> I think w3m supports HTML but not CSS
12:26:42 <AnMaster> what about links or lynx?
12:26:48 <ais523> and as long as it doesn't claim to support CSS, it's standards-compliant
12:26:53 <AnMaster> links can do some css at least
12:26:57 <AnMaster> not all but some
12:27:04 <AnMaster> iirc
12:28:16 * ais523 notes that w3m is in the list of pager applications on their system, along with more and less
12:29:00 <ais523> incidentally, is Slashdot down for everyone, or just me?
12:29:07 <AnMaster> python apps seem to eat a lot of ram too
12:29:27 <AnMaster> supybot for example eats around 25 MB, in a stripped down install
12:29:34 <AnMaster> with just a few modules loaded
12:30:01 <ais523> maybe it depends on the version of Python and/or the app
12:30:03 <AnMaster> emerge around 50 MB, when waiting for y/n on emerge -avDuN world
12:30:08 <AnMaster> ais523, python 2.4
12:30:12 <AnMaster> .something
12:30:19 <ais523> I've run Python on an embedded microprocessor before, with 16 MB disk space, 64 MB RAM
12:30:27 <AnMaster> # python -V
12:30:27 <AnMaster> Python 2.4.4
12:30:31 <ais523> I'm wondering if it was a special stripped-down Python version
12:32:07 <Deewiant> evidently lynx's HTML support is better than w3m's
12:32:23 <Deewiant> or firefox's, or IE's, or opera's
12:32:35 <Deewiant> ais523: slashdot does seem to be down
12:32:49 <ais523> yes, I read somewhere that links was the only truly HTML-compliant browser
12:32:50 <AnMaster> Deewiant, lynx fails at tables
12:33:09 -!- Judofyr has joined.
12:33:27 <AnMaster> Deewiant, compare w3m and lynx on say http://rafb.net/p/4UzLvH39.html
12:33:31 <AnMaster> it uses a table
12:33:36 <AnMaster> to show the numbers on the side
12:33:40 <Deewiant> I don't know what the HTML spec says about tables
12:33:49 <Deewiant> does it specify that they should be displayed a certain way?
12:34:19 <AnMaster> not sure
12:34:23 <AnMaster> but in a tableish way
12:34:27 <Deewiant> :-P
12:34:30 <AnMaster> because
12:34:31 <AnMaster> 1
12:34:32 <AnMaster> 2
12:34:32 <AnMaster> 3
12:34:35 <AnMaster> second col 1
12:34:36 <AnMaster> second col 2
12:34:37 <AnMaster> second col 3
12:34:40 <AnMaster> is not tabelish
12:34:42 <AnMaster> you want:
12:34:46 <AnMaster> 1 second col 1
12:34:47 <AnMaster> and so on
12:35:19 <AnMaster> Deewiant, doing it like lynx does it is ilogical
12:35:27 <AnMaster> <ais523> yes, I read somewhere that links was the only truly HTML-compliant browser
12:35:28 <AnMaster> it isn't
12:35:29 <Deewiant> reading HTML 4.01, it doesn't seem to say anything about how it should be rendered
12:35:36 <AnMaster> it fails sometimes at shorttags
12:35:46 <AnMaster> though it renders it best of the existing browsers
12:35:54 <ais523> really? I thought it was one of the only browsers that parsed shorttags at all
12:35:55 <AnMaster> some page, someone in here made
12:35:58 <Deewiant> elinks fails shorttags
12:36:01 <AnMaster> ais523, at all yes
12:36:02 <Deewiant> lynx succeeds though
12:36:07 <AnMaster> but it didn't do that page perfectly
12:36:14 <AnMaster> as it did mess up on some shorttags iirc
12:36:19 <AnMaster> forgot the link to it
12:36:21 <Deewiant> http://dev.w3.org/validator/htdocs/dev/tests/shorttags2.html
12:36:32 <AnMaster> nah, it was a page someone in this channel made
12:36:34 <Deewiant> of all I tried that page works only in lynx
12:36:46 <Deewiant> I know it's not that page, but it doesn't matter as it's the same issue :-P
12:36:52 <AnMaster> that validator did accept
12:36:54 <ais523> maybe the page was wrong?
12:37:10 <ais523> although it validated, it might have meant something other than what it was meant to mean
12:37:16 <AnMaster> hm
12:37:22 <AnMaster> someone in here on p iirc
12:37:39 <Deewiant> links fails that page
12:37:54 <Deewiant> and it's rather simple, it can't really be 'wrong' :-)
12:42:29 <fizzie> You mean the http://pikhq.nonlogic.org/test.html page?
12:42:38 <ais523> fizzie: yes, that was it
12:44:29 <Deewiant> oh well, even the validator isn't perfect: http://www.damowmow.com/playground/html-not-xml-2.html
12:45:04 <ais523> Deewiant: oh, the -- in comments thing?
12:45:07 <ais523> Acid2 used to test it
12:45:18 <Deewiant> and the <?xml declaration
12:45:26 <Deewiant> which isn't actually an XML declaration
12:45:32 <ais523> but they took it out when the Firefox people insisted that they wouldn't implement it even though they could because it caused a lot of complaints
12:45:39 <Deewiant> yep
12:53:12 <AnMaster> well, that is plain stupid
12:53:19 <AnMaster> I sometimes wanted to have -- inside html comments
12:53:38 <ais523> AnMaster: Firefox allows -- inside comments, it just doesn't turn off the end-of-comment marker in them
12:53:53 <AnMaster> so -- should end the comment?
12:54:03 <ais523> AnMaster: no, -- causes --> to have no effect until the next --
12:54:09 <AnMaster> aha
12:54:59 <AnMaster> ais523, and lynx fails on http://pikhq.nonlogic.org/test.html here
12:55:01 <AnMaster> partly
12:55:23 <AnMaster> " This stuff doesn't show at all, but only because HTML renderers suck." is all a link
12:55:39 <AnMaster> I don't think it should be?
12:56:18 <Deewiant> no, it shouldn't
12:56:38 <AnMaster> ais523, thus lynx fail at shorttags
12:57:39 <Deewiant> and it doesn't show the link
12:58:20 <AnMaster> indeed
12:58:29 <Deewiant> it still does better at shorttags than any other browser
12:58:39 <Deewiant> I think it can't handle the <tag/contents/ form but who knows
12:59:02 <AnMaster> ais523, how is the intercal + funge stuff coming along?
12:59:12 <AnMaster> <Deewiant> it still does better at shorttags than any other browser
12:59:14 <AnMaster> indeed
12:59:16 <ais523> AnMaster: not at all, because I'm busy in RL
12:59:27 <AnMaster> Deewiant, iirc safari did render the page correctly, according to someone
12:59:34 <AnMaster> konq 3 doesn't
12:59:38 <AnMaster> and I don't have KDE 4 yet
13:01:54 <Deewiant> waiting on http://browsershots.org/http://pikhq.nonlogic.org/test.html
13:04:07 <ais523> Deewiant: that's evil
13:04:23 <Deewiant> what now? :-)
13:04:27 <AnMaster> huh?
13:05:19 <AnMaster> Deewiant, shows two, unrelated screenshots
13:05:37 <AnMaster> as in not safari
13:05:47 <Deewiant> which is why I said "waiting on"
13:06:07 <Deewiant> it'll probably be an hour before all the results are in
13:06:19 <ais523> if you aren't a premium browsershot's user, there's a time delay before they all load because the request is put to the back of the queue
13:06:58 <ais523> oh, and pikhq's site's a blank page in Epiphany
13:07:15 <ais523> not surprising because the version on my computer is gecko-based
13:07:19 <AnMaster> # Expires in 24 minutes
13:07:19 <AnMaster> # Queue estimate: 20 minutes to 1 hour, 2 minutes (Details)
13:07:22 <AnMaster> that is another issue
13:07:33 <ais523> AnMaster: you can bump the expiry by clicking on a button
13:07:43 <AnMaster> can't see one?
13:07:56 <ais523> I think maybe you have to be the person who initiated the request
13:08:02 <AnMaster> Deewiant, click the button if you can see it!
13:08:14 <ais523> it only bumps it to 30 mins after you click the button, though
13:08:27 <AnMaster> so you have to keep clicking it?
13:08:31 <ais523> yep
13:08:40 <ais523> they should put an ad on the button and get lots of money that way
13:09:00 <AnMaster> hahah
13:10:07 <AnMaster> why does it take so long?
13:10:07 -!- jix has joined.
13:10:16 <ais523> AnMaster: supply compared to demand, I suspect
13:10:16 <AnMaster> after all, a browser can load a page quite fast
13:10:34 <ais523> most of the old and rare browsers are probably on a single computer on a crappy Internet connectoin
13:11:02 <AnMaster> well that doesn't explain slowness of other ones
13:12:37 <Deewiant> doing a request for only Macs isn't going to help since I'm ahead of you in the queue anyway :-P
13:12:48 <AnMaster> true
13:13:49 <Deewiant> AnMaster: you can look at the stats of the computers doing it at http://browsershots.org/factories/
13:14:08 <AnMaster> it says at one page they do at most one image / minute
13:14:49 <ais523> ah, so as not to overload people's factory computers
13:17:18 <AnMaster> Deewiant, update queue I think.. it seems to have "stepped" back in time
13:17:20 <AnMaster> "Queue estimate: 12 minutes to 37 minutes (Details)"
13:17:26 <AnMaster> was 2-40 before
13:17:33 <AnMaster> yet no additional screenshot shows up
13:17:34 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:18:08 -!- Slereah_ has joined.
13:23:59 <AnMaster> Deewiant, time to refresh request soon?
13:24:15 <Deewiant> what's your hurry :-)
13:27:47 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:27:48 <AnMaster> Safari 3.116 min
13:27:49 <AnMaster> wtf
13:27:55 <AnMaster> it says 5 minutes a while ago
13:27:59 <AnMaster> that's just wtf
13:28:06 -!- Slereah_ has joined.
13:28:09 <ais523> AnMaster: premium customers jumping the queue?
13:28:19 <AnMaster> now it says "starting" though
13:31:22 <AnMaster> a lot of browsers, but no safari
13:33:05 <ais523> and all the screenshots are blank
13:33:17 <Deewiant> safari 3.1 is there and it's blank
13:33:27 <AnMaster> Safari 3.1failed
13:33:28 <AnMaster> gah
13:33:35 <Deewiant> heh
13:33:49 <ais523> AnMaster: not surprising, Safari and Konqueror have the same rendering engine and Konqueror has already failed on it
13:34:06 <AnMaster> Deewiant, well I think it was someone using some development version of safari
13:34:14 <Deewiant> >_<
13:34:18 <AnMaster> as in alpha or something
13:34:32 <AnMaster> public beta possibly
13:35:26 <AnMaster> btw
13:35:30 <AnMaster> of those browsers
13:35:38 <AnMaster> how many separate rendering engines are there?
13:35:56 <AnMaster> a lot are based on either KHTML or gecko I think?
13:36:04 <Deewiant> they're subtly different versions
13:36:18 <Deewiant> e.g. gecko of two weeks ago versus gecko of three weeks ago :-P
13:36:24 <Deewiant> but yes, many are the same
13:36:53 <AnMaster> someone should run this on the acid3 test
13:37:02 <AnMaster> because konq 3 segfaults on acid 3 XD
13:37:07 <Deewiant> it has been run
13:37:11 <AnMaster> oh?
13:37:22 <ais523> Deewiant: what were the results?
13:37:24 <Deewiant> http://browsershots.org/http://acid3.acidtests.org/
13:37:35 <Deewiant> what you'd expect
13:37:47 <Deewiant> firefox 2 gets 30-something
13:37:58 <Deewiant> up to 50-something
13:38:11 <Deewiant> firefox 3 gets 70-something
13:38:16 <ais523> Epiphany got 71, not bad
13:38:19 <Deewiant> IE gets crap
13:38:22 <ais523> presumably the same score as FF3
13:38:25 <Deewiant> opera gets 60-something
13:38:32 <ais523> oh, and IE5.5 beats both IE6 and IE7, amusingly
13:38:32 <Deewiant> later versions get 70-something
13:38:45 <ais523> because all of them score statistical fluctuations AFAICT
13:38:54 <Deewiant> yep
13:39:06 <AnMaster> oh 3.5.9 doesn't crash
13:39:37 <ais523> actually, browsershots disagrees with that
13:39:47 <ais523> it gives a score of 6 to IE5.5, as far as I can read it
13:39:57 <ais523> and the page even has radio buttons on, which I don't understand at all
13:40:46 <Deewiant> IE 5.5 gets 6, whereas 6.0 gets 5 and 7.0 looks like a 5 too
13:41:02 <Deewiant> 8.0 does better, of course
13:41:21 <ais523> IE6 looks like 12 on the browsershots results
13:41:49 <Deewiant> heh, two different runs
13:41:54 <Deewiant> http://browsershots.org/screenshots/8e72d11b14736bef1c26be08d8e07c3d/ and http://browsershots.org/screenshots/acf712c93182beeddc4c3caaf2e5975a/
13:42:04 <ais523> so it isn't even consistent!
13:42:11 <Deewiant> depends on the resolution, maybe? :-)
13:58:30 -!- ais523 has quit (Remote closed the connection).
14:05:10 -!- helios24 has quit (Remote closed the connection).
14:05:58 <Deewiant> now they're all there, 0% success rate: http://browsershots.org/http://pikhq.nonlogic.org/test.html
14:06:16 -!- ais523 has joined.
14:07:05 -!- pikhq has joined.
14:11:00 -!- GnOmus has joined.
14:24:31 -!- Corun_ has joined.
14:30:35 -!- Corun_ has changed nick to Corun.
14:42:25 -!- ehird has joined.
14:46:13 -!- ehird has quit (Read error: 113 (No route to host)).
15:20:50 -!- ehird has joined.
15:21:11 -!- ehird has set topic: * Topic for #esoteric set by ehird at Tue Apr 22 15:41:58 2008.
15:21:24 -!- ehird has set topic: * Topic for #esoteric set by ehird at Tue Apr 22 15:41:58 2008 tunes.org/~nef/logs/esoteric.
15:37:15 -!- RedDak has joined.
15:48:58 -!- ais523 has quit (Remote closed the connection).
15:49:48 -!- ais523 has joined.
16:02:26 -!- ais523 has quit (Remote closed the connection).
16:13:43 -!- ais523 has joined.
16:25:41 -!- Corun has quit (Remote closed the connection).
16:25:46 -!- sebbu has joined.
16:27:48 -!- Corun has joined.
16:40:10 -!- ais523 has changed nick to ais523nomic.
16:40:20 -!- ais523nomic has changed nick to ais523.
16:45:48 <ais523> [16:46] <AnMaster> the downside of bash, is lack of a good debugger
16:47:14 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
16:49:10 -!- ais523 has quit (Remote closed the connection).
16:49:11 -!- Corun has joined.
16:49:26 -!- ais523 has joined.
16:52:41 -!- GnOmus has quit (Remote closed the connection).
17:07:57 -!- RodgerTheGreat has joined.
17:07:57 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
17:08:03 -!- Slereah_ has joined.
17:15:21 -!- jix has quit ("CommandQ").
17:37:00 -!- olsner has joined.
17:40:44 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
17:41:11 -!- Judofyr has joined.
17:45:58 -!- timotiis has joined.
17:56:10 -!- ais523 has quit (Remote closed the connection).
17:56:27 -!- ais523 has joined.
17:57:26 -!- ais523_ has joined.
17:57:48 -!- ais523 has quit (Nick collision from services.).
17:57:54 -!- ais523_ has changed nick to ais523.
18:02:44 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
18:04:06 -!- ais523 has joined.
18:07:53 -!- ais523 has quit (Remote closed the connection).
18:08:09 -!- ais523 has joined.
18:29:24 -!- Sgeo has joined.
18:41:47 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
18:41:55 -!- ais523 has joined.
19:01:18 <ehird> ais523: wow
19:01:19 <ehird> lots of joinparts
19:01:25 <ais523> yep
19:05:06 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
19:05:23 -!- ais523 has joined.
19:13:33 -!- ais523 has quit (Remote closed the connection).
19:15:15 -!- ais523 has joined.
19:23:46 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
19:24:21 -!- ais523 has joined.
19:24:34 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
19:25:04 -!- Judofyr has joined.
19:42:07 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
19:42:32 -!- ais523 has joined.
19:46:07 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
19:47:49 -!- ais523 has joined.
19:49:40 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
19:49:49 -!- ais523 has joined.
19:50:43 -!- oklopol has joined.
20:05:47 -!- sauxdado has changed nick to aligatoro.
20:07:13 -!- aligatoro has changed nick to sauxdado.
20:09:54 -!- Corun has changed nick to MrsCorun.
20:10:55 -!- Iskr has quit (Read error: 110 (Connection timed out)).
20:11:17 -!- MrsCorun has changed nick to Corun.
20:11:58 -!- Iskr has joined.
20:15:52 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
20:16:31 -!- Judofyr has joined.
20:19:42 -!- ais523_ has joined.
20:21:29 -!- ais523 has quit (Nick collision from services.).
20:21:32 -!- ais523_ has changed nick to ais532.
20:21:36 -!- ais532 has changed nick to ais523.
20:32:23 -!- Judofyr_ has joined.
20:32:23 -!- Judofyr has quit (Connection reset by peer).
20:38:21 -!- ehird has quit ("Leaving").
20:48:44 -!- Tritonio has joined.
20:52:34 -!- Tritonio has quit (Client Quit).
20:52:53 -!- Tritonio has joined.
20:55:25 -!- Tritonio has quit (Client Quit).
20:58:31 -!- Tritonio has joined.
21:02:38 -!- timotiis has quit (Remote closed the connection).
21:06:19 -!- Judofyr_ has changed nick to Judofyr.
21:09:04 -!- timotiis has joined.
21:41:44 -!- ehird has joined.
22:13:31 -!- Judofyr has quit.
22:19:49 -!- Judofyr has joined.
22:21:55 -!- Iskr has quit ("Leaving").
22:32:42 -!- Phenax has joined.
22:33:48 <Phenax> I'm a newb to Brainfuck, but I was wondering what's the easiest (i.e., space saving) way to set a memory pointer to a prime number?
22:34:01 <ais523> [-]++ sets it to 2
22:34:14 <ais523> so for low numbers, you just do it like that
22:34:27 <ais523> for higher numbers generally you form a product and add or subtract a bit from it
22:34:33 <Phenax> ah
22:34:35 <ais523> see [[e:Brainfuck constants]]
22:34:44 <ais523> um, http://esolangs.org/wiki/Brainfuck_constants
22:35:41 <ais523> that's a list of some of the shortest ways to generate various constants known
22:35:55 <ais523> (occasionally, someone will add a new shorter one, so it probably isn't perfect, but it's pretty good)
22:42:25 -!- RedDak has quit (Remote closed the connection).
22:48:22 <AnMaster> hm
22:54:28 <GregorR> http://www.codu.org/pics/displayimage.php?album=4&pos=3 // THANKS DOCTOR SCIENCE
23:02:12 <AnMaster> how would one do floating point numbers in Brainfuck?
23:02:26 <ais523> AnMaster: not easily, I don't think
23:02:33 <AnMaster> well possible
23:02:34 <ais523> you'd store the mantissa and exponent separately
23:02:37 <AnMaster> it is turing complete
23:02:47 <ais523> and it would just be a mess trying to do additions and subtractions
23:02:52 <AnMaster> ais523, sqrt on that is what I'm most interested in
23:03:08 <ais523> AnMaster: halve the exponent, sqrt the mantissa
23:03:21 <AnMaster> sqrt the mantissa
23:03:23 <ais523> multiply the mantissa by the square root of the base if the exponent comes out non-integral
23:03:25 <AnMaster> doesn't really help
23:03:42 <ais523> AnMaster: well, it moves it from a floating-point problem to a fixed-point problem
23:03:56 <AnMaster> in fact, how do you calculate square root?
23:04:00 <AnMaster> I got no clue
23:04:05 <AnMaster> wait
23:04:08 <AnMaster> it would be...
23:04:10 <ais523> AnMaster: computers normally do it iteratively
23:04:14 <AnMaster> x ^ (1/2)
23:04:19 <AnMaster> but that doesn't help
23:04:22 <ais523> like this:
23:04:23 <sauxdado> no :)
23:04:37 <ais523> a=1, b=x, then repeatedly (a=(a+b)/2, b=x/a)
23:04:41 <AnMaster> sauxdado, no as in "it doesn't help"?
23:04:49 <ais523> continue until a and b are sufficiently similar, then that's your answer
23:04:50 <AnMaster> ais523, hm
23:04:54 <ais523> that tends to be pretty quick
23:05:08 <ais523> there are other methods, of course
23:05:15 <AnMaster> ais523, isn't there an opcode for it in case of floating point even?
23:05:17 <AnMaster> not sure
23:05:21 <AnMaster> but I think there may be
23:05:27 <AnMaster> either SSE or x87
23:05:31 <ais523> no idea
23:05:37 <ais523> I don't know those assemblers
23:05:42 <ais523> but you can't use such opcodes in BF anyway
23:05:55 <AnMaster> indeed
23:06:45 <AnMaster> "Computer software programs typically implement good routines to compute the exponential function and the natural logarithm or logarithm, and then compute the square root of x using the identity
23:06:45 <AnMaster> \sqrt{x} = e^{\frac{1}{2}\ln x} or \sqrt{x} = 10^{\frac{1}{2}\log x} "
23:06:49 <AnMaster> from wikipedia
23:08:38 <ais523> really?
23:08:47 <ais523> I suppose that such algorithms are cheap nowadays
23:08:55 <ais523> probably the logs are done by lookup-table
23:10:36 <AnMaster> FSQRT for x87
23:10:37 <AnMaster> yes
23:14:59 <ehird> \\z..,xbvncbvnbm.n,.cfhl:Ll.jfdfashsdhfglgdfhjgkh';aetyeurirry0]pit\asdgzdfgfhgjhkjfg
23:15:32 <AnMaster> ehird, ?
23:16:42 <olsner> sometimes you just wanna press every key on your keyboard at once, but have to settle for pressing them sequentially in some random order, like poor ehird here
23:17:42 <ais523> olsner: pressing every key on your keyboard at once is dangerous, because you'll hit C-M-delete and C-M-backspace, among other combinations
23:18:00 -!- ehird has quit (Remote closed the connection).
23:18:37 <olsner> actually, that all depends on how your keyboard is wired, certain combinations of keys are mutually exclusive, so other keys may end up preempting the dangerous key combinations
23:18:38 -!- ehird has joined.
23:18:58 <ais523> olsner: I find that pressing too many keys at once just causes the computer to beep
23:19:07 <ehird> ais523: you just made me press ctrl-alt-backspace
23:19:11 <ais523> at least on Windows
23:19:12 <ehird> because i didn't recognize it as C-M-backspace
23:19:15 <ehird> burn in hell
23:19:41 <olsner> ehird: this is entirely your fault though ;-)
23:19:48 <ais523> on Linux it apparently makes the cursor flash quickly and sets /away...
23:19:57 <ais523> and I had to hold down about 15 keys to do that
23:20:10 <ais523> LOL, in real life, again
23:20:50 <ais523> I mentioned it in Emacs-speak because Emacs' release notes for the latest version mentioned that C-M-backspace and C-M-delete had been removed as shortcut keys because they generally didn't do what the user expected
23:21:13 <olsner> I've had my windows system swapping hard enough that clicking the mouse made that input-event-queue-full beep
23:21:27 <ais523> olsner: yep, Windows gets like that sometimes
23:22:00 <ehird> ais523: heh
23:22:14 <ehird> 'This command has been disabled beacuse it is often confusing for new u-'
23:22:19 <ehird> 'Username:'
23:22:30 <ais523> oh, and qdb ehird above, please
23:22:39 <ehird> ais523: I really gotta get that up.
23:22:42 <ehird> But noted in my mental log.
23:23:16 * ais523 would like to see Emacs pop up with 'This command has been disabled because it is COMPLETELY DANGEROUS NEVER USE IT EVER'
23:23:26 <ais523> does Emacs have a reformat-harddrive instruction?
23:23:37 <ais523> if not, then it's a bit crappy as an OSS
23:23:40 <ais523> s/SS/S/
23:24:23 <ehird> ais523: its
23:24:26 <ehird> a high level OS
23:24:30 <ehird> ;)
23:24:53 <ehird> ais523: also: 'This command has been disabled. Because.'
23:51:28 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
23:54:33 -!- timotiis has quit (Read error: 110 (Connection timed out)).
23:54:53 -!- revcompgeek has joined.
23:58:03 <revcompgeek> I have noticed that many of the languages on the wiki are compiled.
23:58:09 <revcompgeek> what are they compiled to?
23:59:28 <olsner> anything and everything and nothing
23:59:42 <revcompgeek> anything specific?
23:59:54 <olsner> yes, often something specific :P
←2008-04-29 2008-04-30 2008-05-01→ ↑2008 ↑all