<commit_before>#ifndef RAISE_HXX
# define RAISE_HXX

# include <scheduler/scheduler.hh>
# include <kernel/userver.hh>
# include <object/float.hh>
# include <object/global.hh>
# include <object/string.hh>
# include <runner/runner.hh>
# include <runner/call.hh>

namespace runner
{
  LIBPORT_SPEED_INLINE
  void
  raise(const object::rObject& exn)
  {
    ::urbiserver->getCurrentRunner().raise(exn);
    pabort("Unreachable");
  }

  LIBPORT_SPEED_INLINE
  void
  raise_lookup_error(libport::Symbol msg, const object::rObject& obj)
  {
    Runner& r = ::urbiserver->getCurrentRunner();
    object::rObject exn =
      object::urbi_call(r,
                        object::global_class->slot_get(SYMBOL(LookupError)),
                        SYMBOL(new), new object::String(msg), obj);
    r.raise(exn);
    pabort("Unreachable");
  }

<commit_msg>Abort rather than recursing infinitely when LookupError is required to early.<commit_after>#ifndef RAISE_HXX
# define RAISE_HXX

# include <scheduler/scheduler.hh>
# include <kernel/userver.hh>
# include <object/float.hh>
# include <object/global.hh>
# include <object/string.hh>
# include <runner/runner.hh>
# include <runner/call.hh>

namespace runner
{
  LIBPORT_SPEED_INLINE
  void
  raise(const object::rObject& exn)
  {
    ::urbiserver->getCurrentRunner().raise(exn);
    pabort("Unreachable");
  }

  LIBPORT_SPEED_INLINE
  void
  raise_lookup_error(libport::Symbol msg, const object::rObject& obj)
  {
    assert(object::global_class->slot_has(SYMBOL(LookupError)));
    Runner& r = ::urbiserver->getCurrentRunner();
    object::rObject exn =
      object::urbi_call(r,
                        object::global_class->slot_get(SYMBOL(LookupError)),
                        SYMBOL(new), new object::String(msg), obj);
    r.raise(exn);
    pabort("Unreachable");
  }


{'fraction_non_alphanumeric': 0.13523914238592633, 'fraction_numerical': 0.0, 'mean_word_length': 3.7395833333333335, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 24, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6572193', 'n_tokens_mistral': 625, 'n_tokens_neox': 608, 'n_words': 105}