| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
know nullptr
|
| |
|
|
|
|
| |
now be set
|
|
|
|
| |
Fixes #5345
Fixes #5701
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Genode fixes
- wrap strings in "Genode::Cstring" when logging
- define SIGABRT for Genode
- disable GCC -fstack-protector
- use log RPC for fatal messages
- add --os:genode build to appveyor
- define paramStr and paramCount
* Select fixups for Genode POSIX
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a 'GenodeEnv' type and a 'componentConstructHook' to the system
module. The 'componentConstructHook' allows for detection of POSIX style
programs that exit implicitly or native Genode components that
initialize to serve RPC requests and OS signals.
This hook takes a 'GenodeEnv' argument so that the environment interface
is passed cleanly to application code after globals are initialized.
This is an typed pointer to a C++ object, procedures for accessing the
environment will be available from a Nimble library and not included in
the standard library.
The standard library has an internal pointer to the environment object
but this is not for external use, the undocumented global environment
pointer has been removed.
|
|
|
|
|
| |
- new option --usenamespace to generate nim cpp code in its own namespace Nim
- minor changes for compatibility with the new Embarcadero = Borland C++-Builder (bcc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Rewrite genTryCpp
* correction
* Implement polymorphic raise in cpp
* revert backticks in emit
* Cleanp a comment
* revert test changes
* better handling of <new> header
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
also fixes some instances of using C library functions when there are
nim alternatives available
|
|
|
|
|
|
| |
Added COMMA macro to nimbase.h,
changed code generation for c++ template types to insert COMMA im
between the arguments, instead of ",".
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is an alternative attempt to fix issue #2841 in a way that does not
rely on non-standard C compiler behavior.
The underlying problem is that the typeinfo module includes
system/hti.nim, but system/hti.nim is also included by system.nim. The
result is that the compiler at any given point has two instances of
TNimType with the same external name and will generate code either for
one or both of them. Code generation for the second version is normally
suppressed by using {.importc.}, but that results in a missing type
declaration for modules that only use the second version. This happens
for modules that import typeinfo, because the the second component of
typeinfo.Any has type PNimType = ptr TNimType, which generates a
"TNimType *" struct member.
The previous solution was to have a typedef for TNimType in nimbase.h;
however, this results in duplicate typedefs (specifically, but not only
for the code generated for typeinfo.nim). Duplicate typedefs with the
same type name are allowed in C++ and C11, but are explicitly forbidden
in C89 and C99. Modern versions of gcc and clang accept them anyway, but
this is not standard-compliant and may break for other C compilers or
older versions of gcc and clang.
This patch attempts to fix the issue by making the second component of
typeinfo.Nim a pointer instead of a PNimType and casting back and forth
as needed. Thus, the second version of TNimType occurs only within the
code for typeinfo.nim, where it can be safely omitted.
|
| |
|
|\ |
|
| | |
|
|/
|
|
| |
markAndSweep/refCounting GCs.
|
| |
|
|
|
|
| |
-d:release
|
|\
| |
| | |
compile nim on freebsd
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The struct NimException still referred to the old exception type
E_Base, which has since been renamed to Exception. This made the
C++ backend fail on any code that used exceptions.
|
| |
|