zeroc-ice 3.6.0 → 3.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +2 -2
  3. data/ext/ice/cpp/include/Ice/Communicator.h +2 -2
  4. data/ext/ice/cpp/include/Ice/CommunicatorF.h +2 -2
  5. data/ext/ice/cpp/include/Ice/Connection.h +5 -9
  6. data/ext/ice/cpp/include/Ice/ConnectionF.h +2 -2
  7. data/ext/ice/cpp/include/Ice/Current.h +2 -2
  8. data/ext/ice/cpp/include/Ice/Endpoint.h +6 -11
  9. data/ext/ice/cpp/include/Ice/EndpointF.h +2 -2
  10. data/ext/ice/cpp/include/Ice/EndpointTypes.h +2 -2
  11. data/ext/ice/cpp/include/Ice/FacetMap.h +2 -2
  12. data/ext/ice/cpp/include/Ice/Ice.h +1 -0
  13. data/ext/ice/cpp/include/Ice/Identity.h +2 -2
  14. data/ext/ice/cpp/include/Ice/ImplicitContext.h +2 -2
  15. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +2 -2
  16. data/ext/ice/cpp/include/Ice/Instrumentation.h +2 -2
  17. data/ext/ice/cpp/include/Ice/InstrumentationF.h +2 -2
  18. data/ext/ice/cpp/include/Ice/LocalException.h +2 -2
  19. data/ext/ice/cpp/include/Ice/Locator.h +2 -2
  20. data/ext/ice/cpp/include/Ice/LocatorF.h +2 -2
  21. data/ext/ice/cpp/include/Ice/Logger.h +2 -2
  22. data/ext/ice/cpp/include/Ice/LoggerF.h +2 -2
  23. data/ext/ice/cpp/include/Ice/Metrics.h +7 -14
  24. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +2 -2
  25. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +2 -2
  26. data/ext/ice/cpp/include/Ice/ObjectFactory.h +2 -2
  27. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +2 -2
  28. data/ext/ice/cpp/include/Ice/Plugin.h +2 -2
  29. data/ext/ice/cpp/include/Ice/PluginF.h +2 -2
  30. data/ext/ice/cpp/include/Ice/Process.h +2 -2
  31. data/ext/ice/cpp/include/Ice/ProcessF.h +2 -2
  32. data/ext/ice/cpp/include/Ice/Properties.h +2 -2
  33. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +2 -2
  34. data/ext/ice/cpp/include/Ice/PropertiesF.h +2 -2
  35. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +55 -0
  36. data/ext/ice/cpp/include/Ice/RemoteLogger.h +2 -2
  37. data/ext/ice/cpp/include/Ice/Router.h +2 -2
  38. data/ext/ice/cpp/include/Ice/RouterF.h +2 -2
  39. data/ext/ice/cpp/include/Ice/ServantLocator.h +2 -2
  40. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +2 -2
  41. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +2 -2
  42. data/ext/ice/cpp/include/Ice/Version.h +2 -2
  43. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +4 -6
  44. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +3 -5
  45. data/ext/ice/cpp/include/IceUtil/Config.h +5 -5
  46. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +2 -2
  47. data/ext/ice/cpp/src/Ice/Communicator.cpp +2 -2
  48. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +2 -2
  49. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +0 -1
  50. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +12 -17
  51. data/ext/ice/cpp/src/Ice/Connection.cpp +2 -2
  52. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +2 -2
  53. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +33 -4
  54. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +8 -0
  55. data/ext/ice/cpp/src/Ice/Current.cpp +2 -2
  56. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -1
  57. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +2 -0
  58. data/ext/ice/cpp/src/Ice/Endpoint.cpp +2 -2
  59. data/ext/ice/cpp/src/Ice/EndpointF.cpp +2 -2
  60. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +2 -2
  61. data/ext/ice/cpp/src/Ice/FacetMap.cpp +2 -2
  62. data/ext/ice/cpp/src/Ice/HttpParser.cpp +0 -2
  63. data/ext/ice/cpp/src/Ice/Identity.cpp +2 -2
  64. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +2 -2
  65. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +2 -2
  66. data/ext/ice/cpp/src/Ice/Initialize.cpp +25 -30
  67. data/ext/ice/cpp/src/Ice/Instance.cpp +1 -3
  68. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +2 -2
  69. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +2 -2
  70. data/ext/ice/cpp/src/Ice/LocalException.cpp +2 -2
  71. data/ext/ice/cpp/src/Ice/Locator.cpp +2 -2
  72. data/ext/ice/cpp/src/Ice/LocatorF.cpp +2 -2
  73. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +6 -6
  74. data/ext/ice/cpp/src/Ice/LocatorInfo.h +9 -8
  75. data/ext/ice/cpp/src/Ice/Logger.cpp +2 -2
  76. data/ext/ice/cpp/src/Ice/LoggerF.cpp +2 -2
  77. data/ext/ice/cpp/src/Ice/Metrics.cpp +10 -2
  78. data/ext/ice/cpp/src/Ice/Network.h +10 -0
  79. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +2 -2
  80. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +2 -2
  81. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +68 -143
  82. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +1 -2
  83. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +2 -2
  84. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +2 -2
  85. data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -1
  86. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1
  87. data/ext/ice/cpp/src/Ice/Plugin.cpp +2 -2
  88. data/ext/ice/cpp/src/Ice/PluginF.cpp +2 -2
  89. data/ext/ice/cpp/src/Ice/Process.cpp +2 -2
  90. data/ext/ice/cpp/src/Ice/ProcessF.cpp +2 -2
  91. data/ext/ice/cpp/src/Ice/Properties.cpp +2 -2
  92. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +2 -2
  93. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +6 -7
  94. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +2 -2
  95. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +17 -18
  96. data/ext/ice/cpp/src/Ice/Reference.cpp +1 -1
  97. data/ext/ice/cpp/src/Ice/{RegisterPlugins.cpp → RegisterPluginsInit.cpp} +1 -1
  98. data/ext/ice/cpp/src/Ice/{RegisterPlugins.h → RegisterPluginsInit.h} +2 -2
  99. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +2 -2
  100. data/ext/ice/cpp/src/Ice/Router.cpp +2 -2
  101. data/ext/ice/cpp/src/Ice/RouterF.cpp +2 -2
  102. data/ext/ice/cpp/src/Ice/Selector.cpp +51 -45
  103. data/ext/ice/cpp/src/Ice/Selector.h +4 -4
  104. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +2 -2
  105. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +2 -2
  106. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +2 -2
  107. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +7 -2
  108. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +15 -3
  109. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -2
  110. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +46 -47
  111. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +28 -8
  112. data/ext/ice/cpp/src/Ice/Version.cpp +2 -2
  113. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +26 -2
  114. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +2 -2
  115. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +2 -2
  116. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +11 -0
  117. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +2 -2
  118. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +2 -2
  119. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +11 -0
  120. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +2 -2
  121. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +2 -2
  122. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +1 -3
  123. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +11 -0
  124. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +7 -0
  125. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +0 -1
  126. data/ext/ice/cpp/src/IceUtil/Exception.cpp +2 -1
  127. data/ext/ice/cpp/src/Slice/FileTracker.cpp +3 -2
  128. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -1
  129. data/ext/ice/cpp/src/Slice/Parser.cpp +35 -9
  130. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +10 -11
  131. data/ext/ice/cpp/src/Slice/Python.cpp +54 -36
  132. data/ext/ice/mcpp/Makefile +10 -0
  133. data/ext/ice/mcpp/Makefile.mak +23 -15
  134. data/ice.gemspec +1 -2
  135. data/lib/Glacier2/Metrics.rb +1 -1
  136. data/lib/Glacier2/PermissionsVerifier.rb +1 -1
  137. data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
  138. data/lib/Glacier2/Router.rb +1 -1
  139. data/lib/Glacier2/RouterF.rb +1 -1
  140. data/lib/Glacier2/SSLInfo.rb +1 -1
  141. data/lib/Glacier2/Session.rb +1 -1
  142. data/lib/Ice.rb +1 -0
  143. data/lib/Ice/BuiltinSequences.rb +1 -1
  144. data/lib/Ice/Communicator.rb +1 -1
  145. data/lib/Ice/CommunicatorF.rb +1 -1
  146. data/lib/Ice/Connection.rb +1 -1
  147. data/lib/Ice/ConnectionF.rb +1 -1
  148. data/lib/Ice/Current.rb +1 -1
  149. data/lib/Ice/Endpoint.rb +1 -1
  150. data/lib/Ice/EndpointF.rb +1 -1
  151. data/lib/Ice/EndpointTypes.rb +1 -1
  152. data/lib/Ice/FacetMap.rb +1 -1
  153. data/lib/Ice/Identity.rb +1 -1
  154. data/lib/Ice/ImplicitContext.rb +1 -1
  155. data/lib/Ice/ImplicitContextF.rb +1 -1
  156. data/lib/Ice/Instrumentation.rb +1 -1
  157. data/lib/Ice/InstrumentationF.rb +1 -1
  158. data/lib/Ice/LocalException.rb +1 -1
  159. data/lib/Ice/Locator.rb +1 -1
  160. data/lib/Ice/LocatorF.rb +1 -1
  161. data/lib/Ice/Logger.rb +1 -1
  162. data/lib/Ice/LoggerF.rb +1 -1
  163. data/lib/Ice/Metrics.rb +1 -1
  164. data/lib/Ice/ObjectAdapterF.rb +1 -1
  165. data/lib/Ice/ObjectFactory.rb +1 -1
  166. data/lib/Ice/ObjectFactoryF.rb +1 -1
  167. data/lib/Ice/Plugin.rb +1 -1
  168. data/lib/Ice/PluginF.rb +1 -1
  169. data/lib/Ice/Process.rb +1 -1
  170. data/lib/Ice/ProcessF.rb +1 -1
  171. data/lib/Ice/Properties.rb +1 -1
  172. data/lib/Ice/PropertiesAdmin.rb +1 -1
  173. data/lib/Ice/PropertiesF.rb +1 -1
  174. data/lib/Ice/RemoteLogger.rb +292 -0
  175. data/lib/Ice/Router.rb +1 -1
  176. data/lib/Ice/RouterF.rb +1 -1
  177. data/lib/Ice/SliceChecksumDict.rb +1 -1
  178. data/lib/Ice/Version.rb +1 -1
  179. data/lib/IceBox/IceBox.rb +1 -1
  180. data/lib/IceGrid/Admin.rb +1 -1
  181. data/lib/IceGrid/Descriptor.rb +1 -1
  182. data/lib/IceGrid/Exception.rb +1 -1
  183. data/lib/IceGrid/FileParser.rb +1 -1
  184. data/lib/IceGrid/Locator.rb +1 -1
  185. data/lib/IceGrid/Observer.rb +1 -1
  186. data/lib/IceGrid/Query.rb +1 -1
  187. data/lib/IceGrid/Registry.rb +1 -1
  188. data/lib/IceGrid/Session.rb +1 -1
  189. data/lib/IceGrid/UserAccountMapper.rb +1 -1
  190. data/lib/IcePatch2/FileInfo.rb +1 -1
  191. data/lib/IcePatch2/FileServer.rb +1 -1
  192. data/lib/IceStorm/IceStorm.rb +1 -1
  193. data/lib/IceStorm/Metrics.rb +1 -1
  194. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +4 -0
  195. metadata +6 -4
@@ -1178,6 +1178,14 @@ Slice::Container::lookupType(const string& scoped, bool printError)
1178
1178
  return lookupTypeNoBuiltin(scoped, printError);
1179
1179
  }
1180
1180
 
1181
+ //
1182
+ // TODO: Hack to keep binary compatibility with Ice 3.6.0, fix properly in Ice 3.7
1183
+ //
1184
+ namespace
1185
+ {
1186
+ bool ignoreUndefined = false;
1187
+ }
1188
+
1181
1189
  TypeList
1182
1190
  Slice::Container::lookupTypeNoBuiltin(const string& scoped, bool printError)
1183
1191
  {
@@ -1200,6 +1208,8 @@ Slice::Container::lookupTypeNoBuiltin(const string& scoped, bool printError)
1200
1208
  }
1201
1209
 
1202
1210
  TypeList results;
1211
+ bool typeError = false;
1212
+ vector<string> errors;
1203
1213
  if(sc.rfind('*') == sc.length() - 1)
1204
1214
  {
1205
1215
  //
@@ -1256,10 +1266,9 @@ Slice::Container::lookupTypeNoBuiltin(const string& scoped, bool printError)
1256
1266
  string msg = (*p)->kindOf() + " name `" + scoped;
1257
1267
  msg += "' is capitalized inconsistently with its previous name: `";
1258
1268
  msg += matches.front()->scoped() + "'";
1259
- _unit->error(msg);
1269
+ errors.push_back(msg);
1260
1270
  }
1261
1271
 
1262
-
1263
1272
  ExceptionPtr ex = ExceptionPtr::dynamicCast(*p);
1264
1273
  if(ex)
1265
1274
  {
@@ -1276,14 +1285,15 @@ Slice::Container::lookupTypeNoBuiltin(const string& scoped, bool printError)
1276
1285
  TypePtr type = TypePtr::dynamicCast(*p);
1277
1286
  if(!type)
1278
1287
  {
1288
+ typeError = true;
1279
1289
  if(printError)
1280
1290
  {
1281
1291
  string msg = "`";
1282
1292
  msg += sc;
1283
1293
  msg += "' is not a type";
1284
- _unit->error(msg);
1294
+ errors.push_back(msg);
1285
1295
  }
1286
- return TypeList();
1296
+ break; // Possible that correct match is higher in scope
1287
1297
  }
1288
1298
  results.push_back(type);
1289
1299
  }
@@ -1292,9 +1302,18 @@ Slice::Container::lookupTypeNoBuiltin(const string& scoped, bool printError)
1292
1302
  if(results.empty())
1293
1303
  {
1294
1304
  ContainedPtr contained = ContainedPtr::dynamicCast(this);
1295
- if(!contained)
1305
+ if(contained)
1296
1306
  {
1297
- if(printError)
1307
+ if(typeError)
1308
+ {
1309
+ ignoreUndefined = true;
1310
+ }
1311
+ results = contained->container()->lookupTypeNoBuiltin(sc, printError);
1312
+ ignoreUndefined = false;
1313
+ }
1314
+ else if(!typeError)
1315
+ {
1316
+ if(printError && !ignoreUndefined)
1298
1317
  {
1299
1318
  string msg = "`";
1300
1319
  msg += sc;
@@ -1303,12 +1322,19 @@ Slice::Container::lookupTypeNoBuiltin(const string& scoped, bool printError)
1303
1322
  }
1304
1323
  return TypeList();
1305
1324
  }
1306
- return contained->container()->lookupTypeNoBuiltin(sc, printError);
1307
1325
  }
1308
- else
1326
+
1327
+ //
1328
+ // Do not emit errors if there was a type error but a match was found in a higher scope.
1329
+ //
1330
+ if(printError && !(typeError && !results.empty()))
1309
1331
  {
1310
- return results;
1332
+ for(vector<string>::const_iterator p = errors.begin(); p != errors.end(); ++p)
1333
+ {
1334
+ _unit->error(*p);
1335
+ }
1311
1336
  }
1337
+ return results;
1312
1338
  }
1313
1339
 
1314
1340
  ContainedList
@@ -7,7 +7,6 @@
7
7
  //
8
8
  // **********************************************************************
9
9
 
10
- #include <IceUtil/DisableWarnings.h>
11
10
  #include <Slice/Preprocessor.h>
12
11
  #include <Slice/Util.h>
13
12
  #include <IceUtil/StringUtil.h>
@@ -123,7 +122,7 @@ Slice::Preprocessor::normalizeIncludePath(const string& path)
123
122
  result.replace(pos, 2, "/");
124
123
  }
125
124
 
126
- if(result == "/" || (result.size() == 3 && IceUtilInternal::isAlpha(result[0]) && result[1] == ':' &&
125
+ if(result == "/" || (result.size() == 3 && IceUtilInternal::isAlpha(result[0]) && result[1] == ':' &&
127
126
  result[2] == '/'))
128
127
  {
129
128
  return result;
@@ -149,7 +148,7 @@ baseArgs(vector<string> args, bool keepComments, const string& extraArgs, const
149
148
  }
150
149
  args.push_back("-e");
151
150
  args.push_back("en_us.utf8");
152
-
151
+
153
152
  //
154
153
  // Define version macros __ICE_VERSION__ is preferred. We keep
155
154
  // ICE_VERSION for backward compatibility with 3.5.0.
@@ -161,7 +160,7 @@ baseArgs(vector<string> args, bool keepComments, const string& extraArgs, const
161
160
  os << "-D" << version[i] << "=" << ICE_INT_VERSION;
162
161
  args.push_back(os.str());
163
162
  }
164
-
163
+
165
164
  if(!extraArgs.empty())
166
165
  {
167
166
  args.push_back(extraArgs);
@@ -234,9 +233,9 @@ Slice::Preprocessor::preprocess(bool keepComments, const string& extraArgs)
234
233
  // We use an unique id as the tmp file name prefix to avoid
235
234
  // problems with this code being called concurrently from
236
235
  // several processes, otherwise there is a change that two
237
- // process call _tempnam before any of them call fopen and
236
+ // process call _tempnam before any of them call fopen and
238
237
  // they will end up using the same tmp file.
239
- //
238
+ //
240
239
  char* name = _tempnam(0, ("slice-" + IceUtil::generateUUID()).c_str());
241
240
  if(name)
242
241
  {
@@ -295,7 +294,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
295
294
  {
296
295
  return false;
297
296
  }
298
-
297
+
299
298
  string cppHeaderExt;
300
299
  string pyPrefix;
301
300
  if(lang == CPlusPlus)
@@ -313,7 +312,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
313
312
  vector<string> args = _args;
314
313
  args.push_back("-M");
315
314
  args = baseArgs(args, false, extraArgs, _fileName);
316
-
315
+
317
316
  const char** argv = new const char*[args.size() + 1];
318
317
  for(unsigned int i = 0; i < args.size(); ++i)
319
318
  {
@@ -399,10 +398,10 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
399
398
  //
400
399
  // Process each dependency.
401
400
  //
402
-
401
+
403
402
  string sourceFile;
404
403
  vector<string> dependencies;
405
-
404
+
406
405
  string::size_type end;
407
406
  while((end = unprocessed.find(".ice", pos)) != string::npos)
408
407
  {
@@ -497,7 +496,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
497
496
  result += ",";
498
497
  }
499
498
  }
500
-
499
+
501
500
  string::size_type pos = 0;
502
501
  while((pos = result.find("\\", pos + 1)) != string::npos)
503
502
  {
@@ -434,6 +434,7 @@ Slice::Python::compile(int argc, char* argv[])
434
434
  opts.addOpt("", "underscore");
435
435
  opts.addOpt("", "all");
436
436
  opts.addOpt("", "no-package");
437
+ opts.addOpt("", "build-package");
437
438
  opts.addOpt("", "checksum");
438
439
  opts.addOpt("", "prefix", IceUtilInternal::Options::NeedArg);
439
440
 
@@ -500,6 +501,8 @@ Slice::Python::compile(int argc, char* argv[])
500
501
 
501
502
  bool noPackage = opts.isSet("no-package");
502
503
 
504
+ bool buildPackage = opts.isSet("build-package");
505
+
503
506
  bool checksum = opts.isSet("checksum");
504
507
 
505
508
  string prefix = opts.optArg("prefix");
@@ -518,6 +521,13 @@ Slice::Python::compile(int argc, char* argv[])
518
521
  return EXIT_FAILURE;
519
522
  }
520
523
 
524
+ if(noPackage && buildPackage)
525
+ {
526
+ getErrorStream() << argv[0] << ": error: cannot specify both --no-package and --build-package" << endl;
527
+ usage(argv[0]);
528
+ return EXIT_FAILURE;
529
+ }
530
+
521
531
  int status = EXIT_SUCCESS;
522
532
 
523
533
  IceUtil::CtrlCHandler ctrlCHandler;
@@ -563,8 +573,8 @@ Slice::Python::compile(int argc, char* argv[])
563
573
  return EXIT_FAILURE;
564
574
  }
565
575
 
566
- if(!icecpp->printMakefileDependencies(out.os(), depend ? Preprocessor::Python : Preprocessor::SliceXML, includePaths,
567
- "-D__SLICE2PY__", "", prefix))
576
+ if(!icecpp->printMakefileDependencies(out.os(), depend ? Preprocessor::Python : Preprocessor::SliceXML,
577
+ includePaths, "-D__SLICE2PY__", "", prefix))
568
578
  {
569
579
  out.cleanup();
570
580
  return EXIT_FAILURE;
@@ -618,45 +628,52 @@ Slice::Python::compile(int argc, char* argv[])
618
628
  }
619
629
  else
620
630
  {
621
- string base = icecpp->getBaseName();
622
- string::size_type pos = base.find_last_of("/\\");
623
- if(pos != string::npos)
624
- {
625
- base.erase(0, pos + 1);
626
- }
627
-
628
- //
629
- // Append the suffix "_ice" to the filename in order to avoid any conflicts
630
- // with Slice module names. For example, if the file Test.ice defines a
631
- // Slice module named "Test", then we couldn't create a Python package named
632
- // "Test" and also call the generated file "Test.py".
633
- //
634
- string file = prefix + base + "_ice.py";
635
- if(!output.empty())
636
- {
637
- file = output + '/' + file;
638
- }
639
-
640
631
  try
641
632
  {
642
- IceUtilInternal::Output out;
643
- out.open(file.c_str());
644
- if(!out)
633
+ string base = icecpp->getBaseName();
634
+ string::size_type pos = base.find_last_of("/\\");
635
+ if(pos != string::npos)
645
636
  {
646
- ostringstream os;
647
- os << "cannot open`" << file << "': " << strerror(errno);
648
- throw FileException(__FILE__, __LINE__, os.str());
637
+ base.erase(0, pos + 1);
649
638
  }
650
- FileTracker::instance()->addFile(file);
651
639
 
652
- printHeader(out);
653
- printGeneratedHeader(out, base + ".ice", "#");
654
640
  //
655
- // Generate the Python mapping.
641
+ // If --build-package is specified, we don't generate any code and simply
642
+ // update the __init__.py files.
656
643
  //
657
- generate(u, all, checksum, includePaths, out);
658
-
659
- out.close();
644
+ if(!buildPackage)
645
+ {
646
+ //
647
+ // Append the suffix "_ice" to the filename in order to avoid any conflicts
648
+ // with Slice module names. For example, if the file Test.ice defines a
649
+ // Slice module named "Test", then we couldn't create a Python package named
650
+ // "Test" and also call the generated file "Test.py".
651
+ //
652
+ string file = prefix + base + "_ice.py";
653
+ if(!output.empty())
654
+ {
655
+ file = output + '/' + file;
656
+ }
657
+
658
+ IceUtilInternal::Output out;
659
+ out.open(file.c_str());
660
+ if(!out)
661
+ {
662
+ ostringstream os;
663
+ os << "cannot open`" << file << "': " << strerror(errno);
664
+ throw FileException(__FILE__, __LINE__, os.str());
665
+ }
666
+ FileTracker::instance()->addFile(file);
667
+
668
+ printHeader(out);
669
+ printGeneratedHeader(out, base + ".ice", "#");
670
+ //
671
+ // Generate the Python mapping.
672
+ //
673
+ generate(u, all, checksum, includePaths, out);
674
+
675
+ out.close();
676
+ }
660
677
 
661
678
  //
662
679
  // Create or update the Python package hierarchy.
@@ -668,8 +685,9 @@ Slice::Python::compile(int argc, char* argv[])
668
685
  }
669
686
  catch(const Slice::FileException& ex)
670
687
  {
671
- // If a file could not be created, then cleanup any
672
- // created files.
688
+ //
689
+ // If a file could not be created, then clean up any created files.
690
+ //
673
691
  FileTracker::instance()->cleanup();
674
692
  u->destroy();
675
693
  getErrorStream() << argv[0] << ": error: " << ex.reason() << endl;
@@ -4,6 +4,8 @@
4
4
  #
5
5
  # **********************************************************************
6
6
 
7
+ PREFIX = /opt/mcpp-2.7.2
8
+
7
9
  CFLAGS += -O -w
8
10
 
9
11
  UNAME = $(shell uname)
@@ -54,6 +56,14 @@ $(LIBDIR)/libmcpp.a: $(OBJS)
54
56
  ar rcs $(LIBDIR)/libmcpp.a $(OBJS)
55
57
  ranlib $(LIBDIR)/libmcpp.a
56
58
 
59
+ install: $(LIBDIR)/libmcpp.a
60
+ ifneq ($(findstring MINGW,$(UNAME)),)
61
+ cp $(LIBDIR)/libmcpp.a $(PREFIX)
62
+ else
63
+ @mkdir -p $(PREFIX)/lib
64
+ cp $(LIBDIR)/libmcpp.a $(PREFIX)/lib
65
+ endif
66
+
57
67
  clean:
58
68
  rm -f $(OBJS)
59
69
  rm -rf $(LIBDIR)
@@ -4,21 +4,23 @@
4
4
  #
5
5
  # **********************************************************************
6
6
 
7
- RELEASE_OBJS = Release\directive.obj \
8
- Release\eval.obj \
9
- Release\expand.obj \
10
- Release\main.obj \
11
- Release\mbchar.obj \
12
- Release\support.obj \
13
- Release\system.obj
14
-
15
- DEBUG_OBJS = Debug\directive.obj \
16
- Debug\eval.obj \
17
- Debug\expand.obj \
18
- Debug\main.obj \
19
- Debug\mbchar.obj \
20
- Debug\support.obj \
21
- Debug\system.obj
7
+ PREFIX = C:\mcpp-2.7.2
8
+
9
+ RELEASE_OBJS = Release\directive.obj \
10
+ Release\eval.obj \
11
+ Release\expand.obj \
12
+ Release\main.obj \
13
+ Release\mbchar.obj \
14
+ Release\support.obj \
15
+ Release\system.obj
16
+
17
+ DEBUG_OBJS = Debug\directive.obj \
18
+ Debug\eval.obj \
19
+ Debug\expand.obj \
20
+ Debug\main.obj \
21
+ Debug\mbchar.obj \
22
+ Debug\support.obj \
23
+ Debug\system.obj
22
24
 
23
25
  {.\}.c{Debug}.obj::
24
26
  $(CC) /MDd /Od /c /FoDebug\ $<
@@ -38,6 +40,12 @@ mcpp.lib: $(RELEASE_OBJS)
38
40
  mcppd.lib: $(DEBUG_OBJS)
39
41
  lib /nologo /out:mcppd.lib $(DEBUG_OBJS)
40
42
 
43
+ install: mcpp.lib mcppd.lib
44
+ @if not exist "$(PREFIX)\Release" mkdir "$(PREFIX)\Release"
45
+ copy mcpp.lib $(PREFIX)\Release\mcpp.lib
46
+ @if not exist "$(PREFIX)\Debug" mkdir "$(PREFIX)\Debug"
47
+ copy mcppd.lib $(PREFIX)\Debug\mcppd.lib
48
+
41
49
  clean:
42
50
  del /q $(RELEASE_OBJS)
43
51
  del /q $(DEBUG_OBJS)
@@ -9,8 +9,7 @@
9
9
 
10
10
  Gem::Specification.new do |s|
11
11
  s.name = 'zeroc-ice'
12
- s.version = '3.6.0'
13
- s.date = '2015-01-16'
12
+ s.version = '3.6.1'
14
13
  s.summary = "ZeroC Ice for Ruby"
15
14
  s.description = <<-eos
16
15
  The Internet Communications Engine (Ice) provides a robust, proven
@@ -7,7 +7,7 @@
7
7
  #
8
8
  # **********************************************************************
9
9
  #
10
- # Ice version 3.6.0
10
+ # Ice version 3.6.1
11
11
  #
12
12
  # <auto-generated>
13
13
  #
@@ -7,7 +7,7 @@
7
7
  #
8
8
  # **********************************************************************
9
9
  #
10
- # Ice version 3.6.0
10
+ # Ice version 3.6.1
11
11
  #
12
12
  # <auto-generated>
13
13
  #
@@ -7,7 +7,7 @@
7
7
  #
8
8
  # **********************************************************************
9
9
  #
10
- # Ice version 3.6.0
10
+ # Ice version 3.6.1
11
11
  #
12
12
  # <auto-generated>
13
13
  #
@@ -7,7 +7,7 @@
7
7
  #
8
8
  # **********************************************************************
9
9
  #
10
- # Ice version 3.6.0
10
+ # Ice version 3.6.1
11
11
  #
12
12
  # <auto-generated>
13
13
  #
@@ -7,7 +7,7 @@
7
7
  #
8
8
  # **********************************************************************
9
9
  #
10
- # Ice version 3.6.0
10
+ # Ice version 3.6.1
11
11
  #
12
12
  # <auto-generated>
13
13
  #