John, on the issues I listed:
1) On the conn, we have a lot of code that does ns_return $conn 200
text/html .... and the like. All that code breaks immediately since ns_return
call signature has changed. Like I said this is a minor problem, we can just
redefine ns_return, etc as tcl command that wraps the C command and takes care
of the possible presence of $conn variable. So, it's not a big deal.
2) On ns_share, we have a variety of code that goes:
proc myproc {} {
ns_share GLOBAL
... $GLOBAL(mykey) ...
This is a much bigger problem - I can't just replace ns_share with nsv or
ns_share. All uses of the variable would have to be manually found and
rewritten to call nsv or ns_share OR, like I said, we'd have to rewrite
ns_share in Tcl with variable traces. Either one, not a trivial effort.
Probably easier to bring back the C code that implemented ns_share.
3) Persistent ns_sets really have no equivalent. Neither ns_share, nor nsvs
maintain the unique properties of ns_sets (i.e. order and multiple same-named
keys, case-insensitive accessors, etc), plus again the way you to interact with
the data is vastly different and also, it's extremely easy to get data into
persistent ns_sets from places that normally deal with ns_sets such as database
rows, config data, etc.
I was also looking at our config doc -
http://aolserver.am.net/docs/tuning.adpx - and we have some notes that
maxupload is ignored in NaviServer on Windows - not sure if that's still
accurate.
From: John Buckman from BookMooch [mailto:j...@bookmooch.com]
Sent: Monday, October 08, 2012 9:52 AM
To: aolserver-talk@lists.sourceforge.net
Subject: Re: [AOLSERVER] naviserver to replace aolserver?
So, there are build issues to work out (32/64bit, Windows) and some features
missing. If we create a list, perhaps we could start with a compatibility
module with current version, i.e., first goal is folks who are using current
versions of Aolserver can use current versions of Naviserver with some
module/config wrapper thingers. Then, from that baseline, we can move forward,
leaving AolServer where it is.
A few days ago, Alex made this helpful list of features he found missing in
naviserver:
Removed $conn was a minor annoyance as we could create wrappers for the
commands in question
Removed ns_share was a more serious problem and would require essentially
re-writing in tcl an equivalent facility using variable traces.
Removed ability to create shared/persistent ns_sets was not possible to work
around and was a deal breaker for us.
And I agree with Maurizio that using the aolserver windows make/project files
on Naviserver is a good course of action.
As to Alex's points above:
1) if conn still available via global variables, and just not passed to procs
registered in ns_register_proc ? If so, not too hard to code around it.
2) I've been using ns_cache instead of ns_share for a while.
http://panoptic.com/wiki/aolserver/Ns_cache -- or as suggested on the wiki,
http://panoptic.com/wiki/aolserver/Thread-shared_Variables -- I don't have any
code that uses ns_share, but maybe there's a lot of historic code that does?
3) persistent ns_set -- does nsv_set not do this?
http://panoptic.com/wiki/aolserver/Nsv_set
Personally, a wiki page entitled "moving from aolserver to naviserver" with
things that we all find as we give it a try, would most helpful.
In a few weeks, I'm starting a complete rewrite of
Magnatune.com<http://Magnatune.com> and will try to get started with it on
Naviserver.
-john
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
aolserver-talk mailing list
aolserver-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aolserver-talk