code logs -> 2008 -> Thu, 15 May 2008< code.20080514.log - code.20080516.log >
--- Log opened Thu May 15 00:00:19 2008
00:09
<@MyCatVerbs>
Oh, genius.
00:09
<@MyCatVerbs>
I love how people write these things and don't test them.
00:10
<@McMartin>
Anyway. Time to upgrade my other machine.
00:11
<@McMartin>
And the best part?
00:11
<@McMartin>
The interactive bits were merely hitting "OK".
00:11
<@McMartin>
There wasn't even a Cancel option!
00:11
<@McMartin>
LOG MSGS, KITTEH
00:11
<@McMartin>
CAN U HAZ THEM?
00:34 You're now known as TheWatcher[t-2]
00:37 You're now known as TheWatcher[zZzZ]
01:36 McMartin [~mcmartin@Nightstar-7072.dsl.pltn13.sbcglobal.net] has quit [Quit: Shutting down]
02:54 McMartin [~mcmartin@Nightstar-24118.googlewifi.com] has joined #code
02:54 mode/#code [+o McMartin] by ChanServ
04:18 McMartin [~mcmartin@Nightstar-24118.googlewifi.com] has quit [Quit: Leaving]
04:20 Serah^WR0K [~Z@Nightstar-5401.atm2-0-1041217.0xc329e232.boanxx12.customer.tele.dk] has quit [Ping Timeout]
06:27 McMartin [~mcmartin@Nightstar-7072.dsl.pltn13.sbcglobal.net] has joined #code
06:27 mode/#code [+o McMartin] by ChanServ
06:28 Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #Code
06:29 Thaqui [~Thaqui@Nightstar-711.jetstream.xtra.co.nz] has joined #code
06:29 mode/#code [+o Thaqui] by ChanServ
06:35 AnnoDomini [AnnoDomini@Nightstar-29046.neoplus.adsl.tpnet.pl] has joined #Code
06:35 mode/#code [+o AnnoDomini] by ChanServ
07:09 C_tiger [~c_wyz@Nightstar-16806.nycmny.east.verizon.net] has quit [Ping Timeout]
08:12 Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has quit [Quit: CGI:IRC (EOF)]
08:17 C_tiger [~c_wyz@Nightstar-16806.nycmny.east.verizon.net] has joined #code
08:17 mode/#code [+o C_tiger] by ChanServ
08:43 You're now known as TheWatcher
09:12 Thaqui [~Thaqui@Nightstar-711.jetstream.xtra.co.nz] has left #code [Leaving]
09:49 McMartin [~mcmartin@Nightstar-7072.dsl.pltn13.sbcglobal.net] has quit [Quit: Leaving]
09:50 McMartin [~mcmartin@Nightstar-7072.dsl.pltn13.sbcglobal.net] has joined #code
09:50 mode/#code [+o McMartin] by ChanServ
12:13 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code
12:13 mode/#code [+o gnolam] by ChanServ
13:18 You're now known as TheWatcher[afk]
13:20 GeekSoldier [~Rob@Nightstar-8409.dip.t-dialin.net] has quit [Ping Timeout]
13:58 You're now known as TheWatcher
15:27 GeekSoldier [~Rob@Nightstar-8249.dip.t-dialin.net] has joined #code
15:27 mode/#code [+o GeekSoldier] by ChanServ
15:56 * ToxicFrog tries to figure out how communication with exiting threads should be handled
15:56
<@ToxicFrog>
Trying to talk to a dead thread, in keeping with the coroutine library, raises an error.
15:56
<@ToxicFrog>
But what happens to the threads that are send or reply blocked on it when it exits?
16:02
<@ToxicFrog>
At the moment, I'm leaning towards "this is always programmer error, and should thus raise an error"
16:03
<@ToxicFrog>
But not very strongly. It might be better to just have send() return false + a string describing the error ("thread exited normally with code 2", "thread received error: foo", etc)
16:13 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
16:15 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
16:15 mode/#code [+o ToxicFrog] by ChanServ
18:55
<@jerith>
ToxicFrog: That last would be my choice.
18:55
<@jerith>
Alternatively, make all communication asynchronous. :-)
19:01
<@ToxicFrog>
No.
19:03
<@ToxicFrog>
The reason I'm leaning towards raising errors is that generally, in a lua program, you want an uncaught error to stop the program (or drop into the debugger)
19:03
<@ToxicFrog>
Perhaps I'll have errors propagate, and normal exits return error codes...
19:41
<@jerith>
All-asynchronous works for Erlang. Then again, so do write-only variables.
19:42
<@ToxicFrog>
All-async makes the message transfer code either much less powerful, or much more complicated and memory-hungry.
19:43
<@ToxicFrog>
There's stuff I can do when both threads are synchronized that I can't otherwise.
19:43
<@ToxicFrog>
There *is* an asynchronous send, but it
19:43
<@ToxicFrog>
s weaker than the real version because of this.
19:44
<@jerith>
Ah.
19:44
<@ToxicFrog>
Anyways, what I've decided on, for now
19:44
<@ToxicFrog>
If the thread errors, this is unambiguously a programmer error. Any threads blocked on it will propagate the error.
19:45 * jerith nods.
19:46
<@ToxicFrog>
If the thread exits normally while other threads are blocked on it, this is bad practice but is not unambiguously an error. the other threads will return nil,errmsg
19:46
<@ToxicFrog>
And if you want this treated like an error, you can replace thread.send with an assert()ing version.
19:47
<@ToxicFrog>
I may also add an API by which you can add an error handler to a thread, so that you can handle errors by logging them or calling os.exit() or the like
19:59
<@GeekSoldier>
wait.... "write-only variables"? is this like Write Only Memory?
20:02
<@jerith>
Umm, write-once.
20:02
<@jerith>
You can only assign them once. Thereafter, they're constant.
20:03
<@GeekSoldier>
oh yeah. that I knew. still like the concept of a write only variable... sounds so INTERCALish.
20:03 * jerith nods.
20:04
<@jerith>
You could consider stdout to be a write-only variable...
20:04
<@jerith>
Sort of.
20:05 * ToxicFrog ponders his design.
20:05
<@GeekSoldier>
but that would take all the fun out of it. I'm thinking like a required nameable bitbucket.
20:05
<@ToxicFrog>
I think the SRR stuff needs of a bit of tweaking.
20:06
<@jerith>
EBITBUCKET: Bit bucket full, please empty it.
20:07
<@ToxicFrog>
Either I need to split "validate message" and "copy message" into distinct steps, or I need to modify the synchronization so that the active thread is always the sender.
20:09
<@ToxicFrog>
...except, actually, I already need some kind of error flag mechanism to handle error propagation
20:09
<@ToxicFrog>
So I can use that.
21:33
<@ToxicFrog>
Gnaaaaar
21:34
<@ToxicFrog>
I've realized that my code is seperated enough that I should, in theory, be able to split it completely into two seperate libraries - one that implements SRR threading for C, and one that binds it to Lua
21:34
<@ToxicFrog>
But I can't come up with a good way of actually doing this.
21:47 Doctor_Nick [~nick@Nightstar-25013.hsd1.fl.comcast.net] has joined #code
22:10
< Doctor_Nick>
to whoever recommended me screen: thanks, this is a huge productivity booster/waster :)
22:12
< Doctor_Nick>
(waster in the sense that it makes ircing so much easier ;))
22:13
<@jerith>
screen is awesome.
22:13
< Doctor_Nick>
yep
22:13
<@jerith>
One of the very best pieces of software ever written.
22:18
< Doctor_Nick>
anyway
22:19
< Doctor_Nick>
I'm starting a kernel device driver project
22:19
< Doctor_Nick>
what I'm going to do is be implementing logging for all I/O requests across the kernel
22:20
< Doctor_Nick>
what I want to know is if anyone has done anything similar to this so that i'm not redoing anyone elses work
22:20
< Doctor_Nick>
anyone know of anything like this?
22:59 AnnoDomini [AnnoDomini@Nightstar-29046.neoplus.adsl.tpnet.pl] has quit [Quit: I like my random encounters like I like my tea and my women - deadly.]
23:18
< Doctor_Nick>
did I scare everyone away or is everyone out having a life? :p
23:27 * jerith is long overdue for sleep.
23:27
<@jerith>
Which shall now take place.
23:28
< Doctor_Nick>
good night goon
23:47 * gnolam stabs ToxicFrog with a "separate".
23:53
<@gnolam>
(Pet peeve)
23:54
< Doctor_Nick>
when was this? :p
23:58
<@gnolam>
About 2 hours ago.
23:58
< Doctor_Nick>
k
23:58
< Doctor_Nick>
have any idea about what I said a while back?
--- Log closed Fri May 16 00:00:25 2008
code logs -> 2008 -> Thu, 15 May 2008< code.20080514.log - code.20080516.log >