[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 1/2] libpoke: Add PK_E_* macros representing standard exceptio
From: |
Mohammad-Reza Nabipoor |
Subject: |
[PATCH v3 1/2] libpoke: Add PK_E_* macros representing standard exception codes |
Date: |
Thu, 13 Jan 2022 03:35:23 +0330 |
2022-01-12 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
* libpoke/libpoke.h (PK_E_*): Add macros for standard exception
codes.
* libpoke/pkl-rt-1.pk: Update comment to mention libpoke.h.
* libpoke/pvm.h: Likewise.
---
ChangeLog | 7 +++++++
libpoke/libpoke.h | 23 +++++++++++++++++++++++
libpoke/pkl-rt-1.pk | 3 ++-
libpoke/pvm.h | 4 ++--
4 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b34f1b41..5dc360bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2022-01-12 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
+
+ * libpoke/libpoke.h (PK_E_*): Add macros for standard exception
+ codes.
+ * libpoke/pkl-rt-1.pk: Update comment to mention libpoke.h.
+ * libpoke/pvm.h: Likewise.
+
2022-01-11 Jose E. Marchesi <jemarch@gnu.org>
* libpoke/pvm-val.c (pvm_typeof): If given a type value, return
diff --git a/libpoke/libpoke.h b/libpoke/libpoke.h
index dd164172..8fb12356 100644
--- a/libpoke/libpoke.h
+++ b/libpoke/libpoke.h
@@ -41,6 +41,29 @@ typedef uint64_t pk_val;
#define PK_EEOF 3
#define PK_EINVAL 4
+/* The following macros are standard exception codes defined in
+ pkl-rt-1.pk. */
+
+#define PK_E_GENERIC 0
+#define PK_E_DIV_BY_ZERO 1
+#define PK_E_NO_IOS 2
+#define PK_E_NO_RETURN 3
+#define PK_E_OUT_OF_BOUNDS 4
+#define PK_E_MAP_BOUNDS 5
+#define PK_E_EOF 6
+#define PK_E_MAP 7
+#define PK_E_CONV 8
+#define PK_E_ELEM 9
+#define PK_E_CONSTRAINT 10
+#define PK_E_IO 11
+#define PK_E_SIGNAL 12
+#define PK_E_IOFLAGS 13
+#define PK_E_INVAL 14
+#define PK_E_EXIT 15
+#define PK_E_ASSERT 16
+#define PK_E_OVERFLOW 17
+#define PK_E_PERM 18
+
struct pk_color
{
int red;
diff --git a/libpoke/pkl-rt-1.pk b/libpoke/pkl-rt-1.pk
index 7e09326a..c90d3770 100644
--- a/libpoke/pkl-rt-1.pk
+++ b/libpoke/pkl-rt-1.pk
@@ -103,7 +103,8 @@ type Exception =
};
/* Standard exception codes.
- These codes should be in sync with PVM_E_* macros in pvm.h.
+ These codes should be in sync with PVM_E_* macros in pvm.h and
+ PK_E_* macros libpoke.h.
Note that user-defined exceptions must have codes starting with
255 (and should be registered using exception_code function defined
below).
diff --git a/libpoke/pvm.h b/libpoke/pvm.h
index 2bf736b7..78d5471b 100644
--- a/libpoke/pvm.h
+++ b/libpoke/pvm.h
@@ -488,8 +488,8 @@ enum pvm_exit_code
PVM_EXIT_ERROR = 1
};
-/* Exceptions. These should be in sync with the exception code
- variables, and the exception names, declared in pkl-rt-1.pk */
+/* Exceptions. These should be in sync with the exception code macros
+ in libpoke.h, and variables and exception names, declared in pkl-rt-1.pk */
#define PVM_E_GENERIC 0
#define PVM_E_GENERIC_NAME "generic"
--
2.34.1
- [PATCH v3 1/2] libpoke: Add PK_E_* macros representing standard exception codes,
Mohammad-Reza Nabipoor <=