This reverts commit bda4eba674ee46289cccaf8e89ee9edde1dcba1e
[ikiwiki] / doc / todo / Any_todo_because_CGI.pm_deprecated__63__.mdwn
1 Is there any current thought of reworking ikiwiki CGI using
2 any of the suggested [[!cpan CGI::Alternatives]] in response to the
3 official deprecation of [[!cpan CGI desc=CGI.pm]]?
4
5 Or is it just a matter of 'hold course until [[rewrite ikiwiki in haskell]]'?
6
7 > I don't know whether Joey has any plans in this direction, but
8 > [[!cpan CGI]], [[!cpan CGI::Session]] and [[!cpan CGI::FormBuilder]]
9 > are all documented to be part of the [[plugin API|plugins/write]]
10 > so in the short term, I don't think anything is going to change.
11 > If someone works out a way to do equivalent hooks nicely in a
12 > different framework, that would have to be IkiWiki 4.
13 >
14 > I'm not sure how much IkiWiki would stand to gain from moving to a
15 > more extensive web framework: it doesn't do elaborate URL routing
16 > like most webapps, because it produces static HTML for as much of
17 > its content as possible anyway. --[[smcv]]
18
19 >> One reason for such a change (although a rewrite in haskell is a little drastic, and overlaps with "gitit") would be to allow ikiwiki to run as a shared thread under FastCGI or mod_perl, instead of forking all the time for every new user. The discussion for this is in [[todo/fastcgi_or_modperl_installation_instructions]] and [[todo/multi-thread_ikiwiki]].
20 >>
21 >> Also right now, there are serious lock contention issues in ikiwiki: any `?do=` action in the CGI is under a global lock right now (`lockwiki()`), for example, which makes scaling ikiwiki to multiple editing users a significant problem. I have seen such contention as a user on this wiki but mostly on the git-annex wiki.
22 >>
23 >> I, for one, would be happy to see some improvements in this area... --[[anarcat]]
24
25 >>> That would be a rewrite, in whatever language: IkiWiki assumes that
26 >>> global state is OK, and I don't think keeping existing APIs or
27 >>> plugins working unmodified when that changes would be feasible.
28 >>>
29 >>> It isn't on *my* to-do list, put it that way. --[[smcv]]
30
31 >> I'm on a thin pipe, but IIRC CGI.pm is simply no longer going to be bundled with Perl core, and is not deprecated in any other way. Just old, and now an explicit dependency. I may be wrong. --[[schmonz]]
32
33 >>> Yeah, that's what perldelta says. Also, in Debian, the future is already
34 >>> here: perl-modules Recommends libcgi-pm-perl, and libcgi-pm-perl comes
35 >>> before the bundled copy in the search path, so I'm already testing against
36 >>> an unbundled CGI.pm, and I suspect Joey is too. --[[smcv]]