upl 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3f3986baaa4caf8654ae53619fc3606dd9f608f7f7722cd3860d6ec2af8a1fe
4
- data.tar.gz: 18e8d59804dd3802da05df95d667ffff47d71e73af82d3bbad509dc0ab4f2930
3
+ metadata.gz: f95134fc8f05dbcae1453985815292af7af307cb7a9ab80fc767a45cdb8e06e2
4
+ data.tar.gz: fd6ce992bdd55c20998c470b187d0ad4c5ce87fe4ae358fe38c37a0bf6a935ad
5
5
  SHA512:
6
- metadata.gz: f34cf6fafe347a3f7494108bf286abbff5771e51450594858d455d13630ac7645f36f1b26c3f45757a611bdca52dbe604dbd5e4c63c54ee4cb3cf176d22de7a8
7
- data.tar.gz: c4524355fa328c53fe99c56a1a99553e0a9cecff4b31c177571f4c6b895bc229388829d406a714e34b61667f975b046dde2507236c473d565f415634a130f604
6
+ metadata.gz: ca68fb686b4b57d4c0a135fe9885b2b8c88cdfcababd0b9a80965f46e5199afa0f6c24d903747be9a2cc6cc904e767df869d3ee193087282849afa21634523f9
7
+ data.tar.gz: 99e4b8e2b6d908d5c03bcf2a2f2ccb7777accfe94a092ef43b3a7b9638efb529ac483f1f71a227da3528ac1ae0732319c291f98d3aa39d92877cd34f827a1fd8
@@ -1,3 +1,6 @@
1
+ == 0.2.3
2
+ * update C value for >=swi-prolog-8.1.29
3
+
1
4
  == 0.2.2
2
5
  * restrict to <=swi-prolog-8.1.22
3
6
 
@@ -35,9 +35,8 @@ module Upl
35
35
  exit 1
36
36
  end
37
37
 
38
- if (version = swipl_config_values['PLVERSION']) >= '80100'
39
- # 801xx seems to have changed some calls. Not sure yet what they are.
40
- raise "unsupported version #{version}"
38
+ if (version = swipl_config_values['PLVERSION']) < '80129'
39
+ raise "unsupported version <#{version}"
41
40
  end
42
41
 
43
42
  dlload so_path
@@ -105,30 +104,31 @@ module Upl
105
104
  PL_VARIABLE = (1)
106
105
  PL_ATOM = (2)
107
106
  PL_INTEGER = (3)
108
- PL_FLOAT = (4)
109
- PL_STRING = (5)
110
- PL_TERM = (6)
111
- PL_NIL = (7)
112
- PL_BLOB = (8)
113
- PL_LIST_PAIR = (9)
114
- PL_FUNCTOR = (10)
115
- PL_LIST = (11)
116
- PL_CHARS = (12)
117
- PL_POINTER = (13)
118
- PL_CODE_LIST = (14)
119
- PL_CHAR_LIST = (15)
120
- PL_BOOL = (16)
121
- PL_FUNCTOR_CHARS = (17)
122
- _PL_PREDICATE_INDICATOR = (18)
123
- PL_SHORT = (19)
124
- PL_INT = (20)
125
- PL_LONG = (21)
126
- PL_DOUBLE = (22)
127
- PL_NCHARS = (23)
128
- PL_UTF8_CHARS = (24)
129
- PL_UTF8_STRING = (25)
130
- PL_INT64 = (26)
131
- PL_NUTF8_CHARS = (27)
107
+ PL_RATIONAL = (4)
108
+ PL_FLOAT = (5)
109
+ PL_STRING = (6)
110
+ PL_TERM = (7)
111
+ PL_NIL = (8)
112
+ PL_BLOB = (9)
113
+ PL_LIST_PAIR = (10)
114
+ PL_FUNCTOR = (11)
115
+ PL_LIST = (12)
116
+ PL_CHARS = (13)
117
+ PL_POINTER = (14)
118
+ PL_CODE_LIST = (15)
119
+ PL_CHAR_LIST = (16)
120
+ PL_BOOL = (17)
121
+ PL_FUNCTOR_CHARS = (18)
122
+ PL_PREDICATE_INDICATOR = (19)
123
+ PL_SHORT = (20)
124
+ PL_INT = (21)
125
+ PL_LONG = (22)
126
+ PL_DOUBLE = (23)
127
+ PL_NCHARS = (24)
128
+ PL_UTF8_CHARS = (25)
129
+ PL_UTF8_STRING = (26)
130
+ PL_INT64 = (27)
131
+ PL_NUTF8_CHARS = (28)
132
132
  PL_NUTF8_CODES = (29)
133
133
  PL_NUTF8_STRING = (30)
134
134
  PL_NWCHARS = (31)
@@ -159,27 +159,34 @@ module Upl
159
159
 
160
160
  # /usr/lib64/swipl/include/SWI-Prolog.h
161
161
  module Convert
162
- BUF_DISCARDABLE = 0x0000
163
- BUF_RING = 0x0100
164
- BUF_MALLOC = 0x0200
165
- BUF_ALLOW_STACK = 0x0400
166
-
167
- REP_ISO_LATIN_1 = 0x0000
168
- REP_UTF8 = 0x1000
169
- REP_MB = 0x2000
170
-
171
- CVT_ATOM = 0x0001
172
- CVT_STRING = 0x0002
173
- CVT_LIST = 0x0004
174
- CVT_INTEGER = 0x0008
175
- CVT_FLOAT = 0x0010
176
- CVT_VARIABLE = 0x0020
177
- CVT_NUMBER = CVT_INTEGER|CVT_FLOAT
178
- CVT_ATOMIC = CVT_NUMBER|CVT_ATOM|CVT_STRING
179
- CVT_WRITE = 0x0040
180
- CVT_WRITE_CANONICAL = 0x0080
181
- CVT_WRITEQ = 0x00C0
182
- CVT_ALL = CVT_ATOMIC|CVT_LIST
162
+ BUF_DISCARDABLE = 0x00000000 # Store in single thread-local buffer
163
+ BUF_RING = 0x00010000 # Store in ring of 16 buffers
164
+ BUF_MALLOC = 0x00020000 # Store using PL_malloc()
165
+ BUF_ALLOW_STACK = 0x00040000 # Allow pointer into (global) stack
166
+ BUF_NORING = 0x00080000 # Do not store in ring
167
+
168
+ # output representation
169
+ REP_ISO_LATIN_1 = 0x00000000
170
+ REP_UTF8 = 0x00100000
171
+ REP_MB = 0x00200000
172
+
173
+ CVT_ATOM = 0x00000001
174
+ CVT_STRING = 0x00000002
175
+ CVT_LIST = 0x00000004
176
+ CVT_INTEGER = 0x00000008
177
+ CVT_RATIONAL = 0x00000010
178
+ CVT_FLOAT = 0x00000020
179
+ CVT_VARIABLE = 0x00000040
180
+ CVT_NUMBER = (CVT_RATIONAL|CVT_FLOAT)
181
+ CVT_ATOMIC = (CVT_NUMBER|CVT_ATOM|CVT_STRING)
182
+ CVT_WRITE = 0x00000080
183
+ CVT_WRITE_CANONICAL = 0x00000080
184
+ CVT_WRITEQ = 0x000000C0
185
+ CVT_ALL = (CVT_ATOMIC|CVT_LIST)
186
+ CVT_MASK = 0x00000fff
187
+
188
+ CVT_EXCEPTION = 0x00001000 # throw exception on error
189
+ CVT_VARNOFAIL = 0x00002000 # return 2 if argument is unbound
183
190
  end
184
191
 
185
192
  extern 'predicate_t PL_pred(functor_t f, module_t m)'
@@ -53,6 +53,9 @@ module Upl
53
53
  bytes = double_ptr[0,8]
54
54
  bytes.unpack('D').first
55
55
 
56
+ when Extern::PL_RATIONAL
57
+ raise NotImplemented, 'convert to rational'
58
+
56
59
  when Extern::PL_STRING
57
60
  # TODO could possibly get away with BUF_DISCARDABLE here?
58
61
 
@@ -1,3 +1,3 @@
1
1
  module Upl
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Anderson