The project moved to the new web server and domain name
Please update your RSS feeds and bookmarks:
- Project's main web site: http://cppcms.com
- Project's blog: http://blog.cppcms.com
- Project author's blog (Hebrew): http://artyom.cppcms.com
If you find any broken links, please report it to me.
CppCMS Project Receives Donations...
CppCMS project receives monetary donations using sourceforge donation system.
If you are using this project consider donating some money. Follow the donations button on the CppCMS projects web site or the button in this post.
The money would help to create a better product and provide better service to the CppCMS users community.
CppCMS and STLPort
I was interest to take a look in STLPort for a long time ago and recently I finally did it.
STLPort is a cross platform and "cross compiler" implementation of the standard C++ library. It has more permissive license then libstdc++ and frequently used when C++ developers want to use same code across different platforms and compiler vendors.
It is quite simple to use it instead of libstdc++
with gcc:
g++ -I /usr/include/stlport file.cpp -lstlport
So I tried CppCMS with it and was stuck with two STLPort library bugs:
- The operator
|
forstd::ctype_base::mask
enumerator was not defined as required by the standard. For example if I want to define a mask likealpha|digit
the compiler rejected the code. I had only one such place in the code so I did a small workaround for the problem. The other problem was that some advanced localization code could not link. After searching the problem for some time I had found that some symbols that should be public where hidden.
GCC allows to hide all-but marked linker symbols using
-fvisibility=hidden
parameter. This gives a developer an ability to mark library's public API with a special attribute and let the linker know which symbols should be kept public in the shared object and which shouldn't.The problem was that some essential but rarely used symbols had remained hidden.
So in order to fix the issue I downloaded the source package of the library:
apt-get source stlport5.2
Removed the
-fvisibility=hidden
flag from gcc.mak file that was optional in any case and rebuild it with simplefakeroot dpkg-buildpackage
It solved the problem for me. The bug was reported upstream and fixed in the 5.x branch.
So how do you build CppCMS with STLPort? Simple:
- Fix the
-fvisibility=hidden
problem as shown above. - Configure CppCMS with an option
-DUSE_STLPORT=ON -DDISABLE_STD_LOCALE=ON
, thats it.
Note, the STLPort support is still experimental and due to some issues with STLPort library
it is recommended to remove std
localization backend from the library.
CppCMS 0.999.0 - Release Candidate 1
The first release candidate of the next version of CppCMS is available - the API can be considered stable from this point and would not be changed in backward incompatible way.
New Features:
Templates engine improvements:
Added template helpers support functions
<% using ... %>
and<% render ... %>
that allow using other views directly from the code and not just templates as it was done before.Added new syntax
<% form block foo %>...<% end %>
as better alternative to:
<% form begin foo %>...<% form end foo %>
Improved error messages in templates compiler such that it gives more clear errors in case of syntax error.
Changed semantics of
application::render
function such that it would not override an application that was assigned to the contend (if it was assigned at all)
cppcms_scale
improvements:- Support of session storage in addition to cache storage now providing full scalability of CppCMS services.
- Now it uses same configuration method as CppCMS process - JSON file with optional command line parameters.
cppcms_scale
now can run as Unix deamon and as Windows service.
URL Mapper does not throws by default, but rather create an invalid URL making initial programming easier.
The behavior can be reverted back by setting
misk.invalid_url_throws
option to true.Added recursive
shared_mutex
support to booster.Provided an experimental support of STLPort 5.2.
Vandalism on Project's Wiki
Update: the registration option had returned back.
Due to acts of vandalism on the project's wiki, registration of new users on the wiki was temporary disabled.
Every existing user have to re-login again to be able to work.