Commit 3a131a51 authored by Kirill Smelkov's avatar Kirill Smelkov

libgolang: Export _runtime internally

Package os will need to access runtime operations to implement IO.

/reviewed-on nexedi/pygolang!17
parent 3a838d24
......@@ -5,6 +5,7 @@ include golang/runtime/libpyxruntime.cpp
include golang/pyx/runtime.h
include golang/pyx/runtime.cpp
include golang/pyx/testprog/golang_dso_user/dsouser/dso.cpp
include golang/runtime/internal.h
include golang/context.h
include golang/context.cpp
include golang/cxx.h
......
......@@ -173,6 +173,7 @@ def _with_build_defaults(kw): # -> (pygo, kw')
dependv = kw.get('depends', [])[:]
dependv.extend(['%s/golang/%s' % (pygo, _) for _ in [
'libgolang.h',
'runtime/internal.h',
'context.h',
'cxx.h',
'errors.h',
......
#ifndef _NXD_LIBGOLANG_RUNTIME_INTERNAL_H
#define _NXD_LIBGOLANG_RUNTIME_INTERNAL_H
// Copyright (C) 2021-2022 Nexedi SA and Contributors.
// Kirill Smelkov <kirr@nexedi.com>
//
// This program is free software: you can Use, Study, Modify and Redistribute
// it under the terms of the GNU General Public License version 3, or (at your
// option) any later version, as published by the Free Software Foundation.
//
// You can also Link and Combine this program with other software covered by
// the terms of any of the Free Software licenses or any of the Open Source
// Initiative approved licenses and Convey the resulting work. Corresponding
// source of such a combination shall include the source code for all other
// software used.
//
// This program is distributed WITHOUT ANY WARRANTY; without even the implied
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
// See COPYING file for full licensing terms.
// See https://www.nexedi.com/licensing for rationale and options.
// Header runtime/internal.h is used internally by libgolang.
#include <golang/libgolang.h>
// golang::internal::
namespace golang {
namespace internal {
extern const _libgolang_runtime_ops* _runtime;
}} // golang::internal::
#endif // _NXD_LIBGOLANG_RUNTIME_INTERNAL_H
// Copyright (C) 2018-2020 Nexedi SA and Contributors.
// Copyright (C) 2018-2022 Nexedi SA and Contributors.
// Kirill Smelkov <kirr@nexedi.com>
//
// This program is free software: you can Use, Study, Modify and Redistribute
......@@ -28,6 +28,7 @@
// - because Cython (currently ?) does not allow to add methods to `cdef struct`.
#include "golang/libgolang.h"
#include "golang/runtime/internal.h"
#include "golang/sync.h"
#include "golang/time.h"
......@@ -112,7 +113,10 @@ struct Bug : exception {
// ---- runtime ----
// initially nil to crash if runtime was not initialized
static const _libgolang_runtime_ops *_runtime = nil;
namespace internal {
const _libgolang_runtime_ops *_runtime = nil;
}
using internal::_runtime;
void _libgolang_init(const _libgolang_runtime_ops *runtime_ops) {
if (_runtime != nil) // XXX better check atomically
......
......@@ -206,6 +206,7 @@ setup(
'golang/time.cpp'],
depends = [
'golang/libgolang.h',
'golang/runtime/internal.h',
'golang/context.h',
'golang/cxx.h',
'golang/errors.h',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment