run splice in eval {} to avoid build failure