To: Chengzheng Sun, David Sun, Agustina, Weiwei Cai
Thanks for the paper, it was very interesting to read.
Unfortunately the paper is having a strong direction of:
CRDT vs. OT
but that is not helpful in practice.
To: Chengzheng Sun, David Sun, Agustina, Weiwei Cai
Thanks for the paper, it was very interesting to read.
Unfortunately the paper is having a strong direction of:
CRDT vs. OT
but that is not helpful in practice.
| <?php | |
| namespace Drupal\Core\Cache; | |
| use Drupal\Component\Assertion\Inspector; | |
| /** | |
| * Stores cache items in /dev/shm. | |
| */ | |
| class ShmBackend implements CacheBackendInterface { |
| diff --git a/web/core/lib/Drupal/Core/Cache/ApcuBackendFactory.php b/web/core/lib/Drupal/Core/Cache/ApcuBackendFactory.php | |
| --- a/web/core/lib/Drupal/Core/Cache/ApcuBackendFactory.php | |
| +++ b/web/core/lib/Drupal/Core/Cache/ApcuBackendFactory.php | |
| @@ -46,6 +46,9 @@ public function __construct($root, $site_path, CacheTagsChecksumInterface $check | |
| else { | |
| $this->backendClass = 'Drupal\Core\Cache\Apcu4Backend'; | |
| } | |
| + | |
| + $this->backendClass = 'Drupal\Core\Cache\CFAwareApcuBackend'; | |
| + //$this->backendClass = 'Drupal\Core\Cache\ShmBackend'; |
| <?php | |
| namespace Drupal\Core\Cache; | |
| use Drupal\Component\Assertion\Inspector; | |
| /** | |
| * Stores cache items in the Alternative PHP Cache User Cache (APCu). | |
| */ | |
| class CFAwareApcuBackend extends ApcuBackend { |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <stdint.h> | |
| #include <pthread.h> | |
| #ifdef _MSC_VER | |
| #include <intrin.h> /* for rdtscp and clflush */ | |
| #pragma optimize("gt",on) | |
| #else | |
| #include <x86intrin.h> /* for rdtscp and clflush */ |
| <?php | |
| function yac_store() { | |
| static $yac; | |
| if (!isset($yac)) { | |
| $yac = new Yac(''); | |
| } | |
| return $yac; |
| <?php | |
| /** | |
| * @file | |
| * | |
| * Contains Drupal\newsletter_view\Controller\NewsletterViewNodeController | |
| */ | |
| namespace Drupal\newsletter_view\Controller; |
| <?php | |
| function foo() {} | |
| function bar() {} | |
| function crash_merge($attached) { | |
| $merge = [ 'html_head' => ['2']]; | |
| $attached = array_merge_recursive( |
| diff --git a/core/modules/big_pipe/big_pipe.module b/core/modules/big_pipe/big_pipe.module | |
| index 724cd1c..f1af3a4 100644 | |
| --- a/core/modules/big_pipe/big_pipe.module | |
| +++ b/core/modules/big_pipe/big_pipe.module | |
| @@ -18,8 +18,16 @@ | |
| function big_pipe_js_settings_alter(&$settings) { | |
| // Store the settings for later usage. | |
| if (isset($settings['bigPipeResponseMarker'])) { | |
| - \Drupal::service('big_pipe')->setAjaxPageState(isset($settings['ajaxPageState']) ? $settings['ajaxPageState'] : NULL); | |
| + $ajax_page_state = isset($settings['ajaxPageState']) ? $settings['ajaxPageState'] : NULL; |
| <?php | |
| // ... | |
| if (!empty($half_pipe_placeholders)) { | |
| $extra_attachments = $this->doHalfPipe($page_parts[0], $half_pipe_placeholders); | |
| // Print the extra attachments. | |
| if (!empty($extra_attachments['library']) || !empty($extra_attachments['drupalSettings'])) { | |
| $all_attachments = BubbleableMetadata::mergeAttachments($attachments, $extra_attachments); |