2009 -- the year of November. <november-wiki.org> <github.com/viklund/november> <irclog.perlgeek.de/november-wiki> <nopaste.snit.ch>
Set by moderator on 10 February 2009.
02:37 Tene joined 06:22 masak joined
Tene Hmm. Looks like neither Template::Declare or Markapl are thread-safe. 06:39
Which is unfortunate.
masak Tene++ # never even thought of that 06:40
Tene I'm trying to think about where I can implement it better. I'm pretty sure that we care.
masak me, that is.
Tene: could you please add that thought somewhere in the repo?
Tene The way they work is just maintaining a global stack of buffers.
masak perhaps along with why thread safety is important.
it's not immediately obvious to me, because I'm new to this.
Tene Eh, for most uses it's really not. 06:41
masak ...but...?
Tene The problem is when you want to start doing some kind of threading in your app, and you suddenly find out that some random lib acts weird if used from multiple threads
1) it's weird hard to debug problems
2) you have to throw the lib out, and find or build a new one 06:42
masak ack
Tene this particularly counts in Perl 6, where there are plans for auto-threading
masak indeed. 06:43
is there a simple concrete example of when one would want to switch a webapp over to multi-threading?
Tene maybe doing something for a big list of users 06:45
@users>>.do_something() 06:46
or whatever the hyper syntax is for that
masak does that affect the dispatcher? 06:47
seems to me the hyperthreaded call is far away from the dispatcher in this case.
Tene dispatcher?
It runs do_something() on each element individually, and order isn't guaranteed. The implementation is free to run multiple calls in paralell.
masak oh, sorry, you were talking abou Template::Declare, not the dispatcher.
Tene: right. 06:48
I don't really see how that could be a problem for Template::Declare, but I'll take your word for it.
Tene So if do_something() used a tags library implemented like template::declare, you could get content from one element mixed in with content from another element.
masak ouch. 06:49
I see.
why would do_something() use a tags library in the first place? isn't that a kind of bad separation of logic and, um, serialization? 06:51
I can see that it's entirely possible that something like that'd happen, though.
Tene Maybe it's doing something like formatting the username according to some criteria
masak ah, ok. 06:52
Tene It's certainly not a worry for most normal cases. 06:53
I'd like to avoid this problem if I can anyway, though.
masak aye.
slapping 'threadsafe' on a lib seems like a feather in the hat, somehow.
people know that it matters in some cases.
use.perl.org/~masak/journal/38601 07:36
zarah masak's link is also tinyurl.com/b8kc69
moritz_ congratulations to the november hackers! 07:46
masak a big thank you to the Perl 6 community! \\o/ 07:48
moritz_ I was a bit surprised that the announcement took s long 07:52
masak the january-march delay was mostly our fault. we wanted the www.november-wiki.org site to look nice. 07:53
a bit ironic that that address isn't part of the original announcement. :O
(but it's linked from many of the links in the announcement, so it still matters, of course)
blog.ianbicking.org/2008/12/27/avoi...ss-object/ 09:10
zarah masak's link is also tinyurl.com/82mn36
moritz_ links as objects - I like that 09:17
masak I'm generally trying to figger out how to build web stuff so that people don't feel frameworked in by it. 09:18
moritz_ I don't think you need an framekworky aspect here
anywhere a link is expected, you can just put an object in 09:19
and it'll be stringified when rendered
masak aye.
I meant that the post is about avoiding silos.
I want to avoid silos too, perhaps in a more vast sense than the post means.
I want Web.pm to be a sane, mostly opt-out-able set of defaults. 09:20
15:04 Tene_ joined 16:46 szabgab joined, moritz_ joined