+ improved print_user_picture() to allow images with empty alt to prevent repetitive reading of usernames in jaws when username is printed next to avatar
- new gui_basic that can be used as fallback or accessible option to gui_header_js - it is not compatible with chat daemon
- todo: CSS styling, beeping, JS fallback code in view.php and noframes fallback in gui_header_js
- minor changes in messaging language strings
- minor coding style improvements
- changed file upload api in formslib
- fixed blog attachments and related code in file.php
- fixed glossary attachments
- fixed embedded images in forum posts and blogs - only gif, png and jpeg; the problme was that svg were embedded using img tag which was wrong, the same applied to other picture formats unsupported by browsers (please note that student submitted svg should be never embedded in moodle page for security reasons)
- other minor fixes
We now have a wrapper memcached support class to handle
initial connection setup, provide the common denominator
calls, plus getforfill() and friends.
The eaccelerator class now returns false to match memcached. The
downside of this is that we cannot store booleans as a false value
is indistinguishable from a false that indicates error or 'key not
found'.
Make pconnections optional - only use pconnect if $CFG->memcachedpconn is
set. In current versions of the memcache client in PECL (v2.0.1),
memcache_pconnect() is buggy and will segfault if reusing a pconnection
to a server that has gone away or restarted.
And hope for a more stable client library in PECL ;-)
$MCACHE is initially based on core API that is shared between memcached and
turckmmcache/eaccelerator. The core operations are add(), set() and delete()
This initial implementation uses the PECL-based PHP client. Would be trivial
to add support for a PHP-based client.
The $MCACHE facility can be used for DB cache, text filters cache, and possibly
for sessions.
- move from $CFG->enablerecordcache <count> to $CFG->rcache <type>
- if $CFG->rcache === 'internal' use the cache array
otherwise, attempt to use $MCACHE
- implement and use rcache_getforfill() to catch thundering herds
- the cache lifetime is hardcoded to 2s until we understand better the
possible race conditions against updates that are not happening via
update_record() / delete_record()
Abstracted Sam's initial work with $record_cache into a series of functions
that abstract things _just enough_ that we can use an internal
in-memory-array implementation or something that is shared across
processes, like memcached or the turckmmcache/eaccelerator caches.
Also
- added hit/miss stats tracking and reporting
- removed max entries limiting as it was buggy - var names mismatches
and not counting unset()s
On 64-bit platforms the in-memory footprint of our libraries is quite a bit
larger than usual, and we hit the 8MB default memory limit before we call
raise_memory_limit(). This patch moves raise_memory_limit() and
get_realsize() to setuplib so we can call them earlier, and moves the
call to _before_ we include the libraries.
On AMD64, for MOODLE_17_STABLE the footprint is about 9.5MB. Diet time? :-)