|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Хочу его пропатчить (его нужно пропатчить, т.к. там много всего) и выложить на GitHub. Какую лицензию указывать? Если IDPL, то получается все кто заиспользуют пропатченную версию будут вынуждены следовать лицензии и публиковать код firebird.pas. Можно ли как-нибудь без этого? Может есть возможность сделать для генерируемых API свободную лицензию (public domain)? Или всё что идёт с Firebird обязано быть под IDPL? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 11:45 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommer, он генерируется, посему его не надо патчить. Патчить надо генератор - extern\cloop ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 12:01 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommerто получается все кто заиспользуют пропатченную версию будут вынуждены следовать лицензии и публиковать код firebird.pas. прочитай еще раз лицензию, внимательно. Публиковать изменения должен тот, кто эти изменения производит. При этом, если измененный exe выложен публично. Тот, кто пользуется, ничего никуда выкладывать не должен. Иначе сейчас все, кто пользуются ФБ, должны были бы опубликовать эти исходники. Что являлось бы полным маразмом. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 12:26 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
hvlad, Хочу табы заменить на пробелы. Хочу в записях убрать лишние пробелы между именами полей и двоеточием. Хочу в записях сделать правильное выравнивание. Хочу Record заменить на record, destroy на Destroy. И вообще сделать как принято в паскале. Хочу заменить NativeInt для Delphi 2007 и ниже (он там поломан). Хочу кое где заменить NativeIntPtr на Pointer, т.к. там именно Pointer нужен. Хочу все декларации типов и констант поместить в супертип, чтобы наружу не торчала сотня-другая типов и констант (у меня есть свой ITransaction, не хочу чтобы он путался с Firebird.ITransaction (и вообще префикс I для интерфейсов). Так же типы вроде BooleanPtr, TraceCounts, Dsc не должны с такими именами торчать наружу). Хочу загружать клиента динамически. Мне не подходит вот это: Код: pascal 1.
Хочу выложить это и сообщить разработчику cloop. Он возьмёт себе что посчитает нужным. Вопрос под какой лицензией выложить. Где кстати можно взять firebird.pas для 4 версии? В дистрибутиве альфы его нет, на GitHub тоже нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 12:42 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
kdvПубликовать изменения должен тот, кто эти изменения производит. Т.е. если я внесу в firebird.pas изменения, дам его вам, вы его заиспользуете в своих коммерческих проектах, то после этого вы не будете должны выложить этот firebird.pas у себя на сайте? Или будете должны? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 12:48 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommer, а не проще ли выложить патч для cloop? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 12:50 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerХочу выложить это и сообщить разработчику cloop. Он возьмёт себе что посчитает нужным. Вопрос под какой лицензией выложить. Просто клонируй репозиторий Firebird и не парься с лицензиями. PS: На pull request можешь не тратить время. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 12:56 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Симонов Дениса не проще ли выложить патч для cloop? Возможно. А возможно будет проще мне потратить 20 минут на то чтобы пропатчить и выложить firebird.pas и 20 минут потратить разработчику cloop чтобы применить изменения, чем мне потратить несколько часов (C++ мне не родной). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 13:12 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommerвы его заиспользуете в своих коммерческих проектах, то после этого вы не будете должны выложить этот firebird.pas у себя на сайте? Или будете должны? конечно нет. Я или кто-то еще делал изменения - какая разница? Я же не публикую результат компиляции, и никому его не даю. Господи, ну прочитайте же пункт 3.2 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available Беру ваш исходник (или свой исходник), и использую сам. Я, конечно, могу сам себе отправить этот исходник, но это уже будет граничить с шизофренией :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 13:16 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
kdvЯ же не публикую результат компиляции, и никому его не даю. А если даёте и даже продаёте: Hommer Т.е. если я внесу в firebird.pas изменения, дам его вам, вы его заиспользуете в своих коммерческих проектах, то после этого вы не будете должны выложить этот firebird.pas у себя на сайте? Или будете должны?? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 13:26 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerХочу табы заменить на пробелы. Хочу в записях убрать лишние пробелы между именами полей и двоеточием. Хочу в записях сделать правильное выравнивание. Хочу Record заменить на record, destroy на Destroy. И вообще сделать как принято в паскале. это всё легко решается в патчем cloop и особых мегазнаний для этого не нужно. HommerХочу все декларации типов и констант поместить в супертип, чтобы наружу не торчала сотня-другая типов и констант (у меня есть свой ITransaction, не хочу чтобы он путался с Firebird.ITransaction (и вообще префикс I для интерфейсов). Так же типы вроде то что у тебя есть свой ITransaction никого не волнует. При желании ты можешь их отличать по полному имени. HommerХочу загружать клиента динамически. Мне не подходит вот это: ты хочешь так, а другие хотят другого. Почему все должны ориентироваться на то что ты хочешь? В конце концов заменить одну строчку у себя в проекте ты всегда можешь. Другие тоже могут, если захотят. HommerГде кстати можно взять firebird.pas для 4 версии? В дистрибутиве альфы его нет, на GitHub тоже нет. сгенерируй его сам. Как минимум до выхода beta API будет меняться, поэтому пока выкладывать этот файл нет смысла. Я как то разбирался с клопом для генерации Firebird.pas для трёшки, он хоть и плохо документирован, но по исходникам вроде всё понятно (формат командной строки), там ничего сложного нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 13:26 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerСимонов Дениса не проще ли выложить патч для cloop? Возможно. А возможно будет проще мне потратить 20 минут на то чтобы пропатчить и выложить firebird.pas и 20 минут потратить разработчику cloop чтобы применить изменения, чем мне потратить несколько часов (C++ мне не родной).Для того, чтобы кто-то менял cloop по твоим хотелкам, его нужно сильно в этом заинтересовать. И вообще сначала убедить, что ты хочешь чего-то хорошего и нужного. Я сильно сомневаюсь, что кто-либо захочет смотреть что ты там наменял в firebird.pas и потом искать способы реализовать это в cloop. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 13:37 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Симонов Денисто что у тебя есть свой ITransaction никого не волнует. При желании ты можешь их отличать по полному имени. Мне пользоваться, поэтому меня волнует. Симонов Денисты хочешь так, а другие хотят другого. Почему все должны ориентироваться на то что ты хочешь? В конце концов заменить одну строчку у себя в проекте ты всегда можешь. Другие тоже могут, если захотят.Я хочу у себя в GitHub выложить пропатченный firebird.pas. Есть возражения? :) Потом можно подумать про cloop. Вопрос какую лицензию указать и почему именно такую. Симонов ДенисHommerГде кстати можно взять firebird.pas для 4 версии? В дистрибутиве альфы его нет, на GitHub тоже нет. сгенерируй его сам. Он должен быть в снапшотах, а его нет. Правильно ли будет использовать firebird.pas от тройки? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 13:50 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerМне пользоваться, поэтому меня волнует. ну так и делай под себя зачем другим навязывать свои хотелки. З.Ы. По первым 4 пунктам ничего против не имею, но патчить надо клопа HommerОн должен быть в снапшотах, а его нет. Правильно ли будет использовать firebird.pas от тройки? Когда собираются снапшоты дополнительные генерации не запускаются. Скачай https://github.com/FirebirdSQL/firebird/tree/master/extern/cloop и скомпилируй клопа. Потом сгенерируй новый firebird.pas В 4.0 API был существенно расширен. Не знаю подойдёт ли к нему старый firebird.pas, но даже если подойдёт, то он будет как минимум не полный. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 14:02 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
hvladHommerпропущено... Возможно. А возможно будет проще мне потратить 20 минут на то чтобы пропатчить и выложить firebird.pas и 20 минут потратить разработчику cloop чтобы применить изменения, чем мне потратить несколько часов (C++ мне не родной).Для того, чтобы кто-то менял cloop по твоим хотелкам, его нужно сильно в этом заинтересовать. И вообще сначала убедить, что ты хочешь чего-то хорошего и нужного. И как же быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 14:02 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommer, и ещё. В новых дельфях есть форматирование кода, которое настраивается. Почему бы не настроить форматирование под себя, не взять firebird.pas и запустить это форматирование. Как минимум 4 первые проблемы ты решишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 14:05 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerhvladДля того, чтобы кто-то менял cloop по твоим хотелкам, его нужно сильно в этом заинтересовать. И вообще сначала убедить, что ты хочешь чего-то хорошего и нужного. И как же быть?Лучше всего - патчить cloop. Если нет сил\желания - создать список "чего не так" в нынешнем генераторе и предложить его разработчикам. Можно даже в трекере. Быть готовым защищать свою точку зрения и убеждать остальных. PS Мне тоже не нравится текущий firebird.pas, так что шансы у тебя есть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 14:27 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerА если даёте и даже продаёте: я не понимаю, в чем проблема прочитать этот треклятый пункт 3.2? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 14:49 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Симонов Дениси ещё. В новых дельфях есть форматирование кода, которое настраивается. Почему бы не настроить форматирование под себя, не взять firebird.pas и запустить это форматирование. Как минимум 4 первые проблемы ты решишь. А почему бы не иметь правильно отформатированный код firebird.pas в дистрибутиве Firebird? Как минимум те кто использует firebird.pas не задавались бы вопросом "ftw with code?". Кстати вот код из fpc (\source\rtl\linux\system.pp): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378.
Вызывает доверие? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 14:53 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
kdvHommerА если даёте и даже продаёте: я не понимаю, в чем проблема прочитать этот треклятый пункт 3.2? Вы же процитировали: Код: plaintext 1. 2. 3. 4. 5.
Любые изменения должны быть доступны в исходниках и под той же лицензией. Например вы переписали свои коммерческие программы с использованием модифицированного firebird.pas и допустим firebird.pas под IDPL. Если изменения в firebird.pas вносили вы, то должны ли вы предоставлять его исходник тем кто купил у вас программу? Если изменения в firebird.pas вносил я, выложил где-то в интернете, вы скачали и использовали, то должны ли вы предоставлять его исходник тем кто купил у вас программу? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:12 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
слава богу... HommerЕсли изменения в firebird.pas вносили вы, то должны ли вы предоставлять его исходник тем кто купил у вас программу? если firebird.pas под IDPL, то да. Хотя мне не очень понятно, почему он под idpl, если представляет собой просто интерфейс к новому апи fbclient.dll. По идее, он не должен быть под idpl. Кроме того, поскольку вы предлагаете изменения firebird.pas, которые касаются только форматирования, и никак не влияют на результат компиляции firebird.pas, то об ИЗМЕНЕНИИ КОДА по факту речь не идет. HommerЕсли изменения в firebird.pas вносил я, выложил где-то в интернете, вы скачали и использовали, то должны ли вы предоставлять его исходник тем кто купил у вас программу? да. Но это только в том случае, если распространяется результат компиляции firebird.pas. Собственно, здесь та же самая засада, что и у клиентской части mysql. Она была под gpl, и была т.н. sticky, то есть заставляла открывать и публиковать исходники приложения, который использовал клиентскую часть. В случае firebird.pas он должен быть под лицензией, которая НЕ принуждает распространять свои исходники, если им требуется firebird.pas для компиляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:22 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommer, firebird.pas не является частью исходного кода firebird ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:26 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
kdvВ случае firebird.pas он должен быть под лицензией, которая НЕ принуждает распространять свои исходники, если им требуется firebird.pas для компиляции. Если можно, то чтобы лицензия не принуждала вообще ни к чему, вроде public domain. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:28 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Симонов Денисfirebird.pas не является частью исходного кода firebird А cryptDb.pas? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:33 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommer, является, потому что он написан руками, а не сгенерирован автоматически. Разницу видишь? З.Ы. ты можешь написать собственный генератор который создаёт интерфейс для любого другого языка программирования. И вновь генерированный файл не обязан сдержать какую-то лицензию. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:39 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Симонов ДенисHommer, является, потому что он написан руками, а не сгенерирован автоматически. Разницу видишь? З.Ы. ты можешь написать собственный генератор который создаёт интерфейс для любого другого языка программирования. И вновь генерированный файл не обязан сдержать какую-то лицензию. А если такой файл набить руками, то обязательно нужно прилеплять к нему IDPL? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:42 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Hommer, не ужели ты не видишь разницу между использованием чужого кода с лицензией в который ты вносишь правки и написанием полностью своего (в котором не используются части чужого кода)? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:46 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Симонов ДенисЗ.Ы. ты можешь написать собственный генератор который создаёт интерфейс для любого другого языка программирования. И вновь генерированный файл не обязан сдержать какую-то лицензию. А если сгенерённый файл будет монолитным cpp файлом в котором будет весь код Firebird? :) Это просто про подумать где проходит грань. Если что-то сгенерено из того что под IDPL, обязано ли сгенерённое тоже быть под IDPL? А если написать конвертор кода из C++ в pascal, то паскалевский код тоже должен стать под IDPL? А базы данных которые генерятся IDPL-ным кодом? :) Воззможно существует способ перегенерации кода (в рамках лицензии конечно), которым можно уйти от IDPL на что-то попонятней :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2018, 15:57 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Хочу указать правильное выравнивание для структур из firebird.pas Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Под 32-бит: - структура TraceCounts одинакова при любом выравнивании. - структура PerformanceInfo одинакова при выравниваниях 1,2 и 4. И одинакова при выравниваниях 8 и 16. Т.е при 4 и 8 она разная. - структура Dsc одинакова при любом выравнивании. Под 64-бит: - структура TraceCounts одинакова при выравниваниях 1,2 и 4. И одинакова при выравниваниях 8 и 16. Т.е при 4 и 8 она разная. - структура PerformanceInfo одинакова при любом выравнивании. - структура Dsc одинакова при любом выравнивании. Proof: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458.
Можно ли исходить из того, что в бинарниках Firebird в структурах для 32-битных платформ выравнивание 8 байт, а для 64-битных - 16? Зависит ли это от компилятора? Если выравнивание зависит от компилятора, или может быть изменено в последующих их версиях, то тогда нужно прописывать выравнивания в коде Firebird. Или сделать функцию в Firebird API, которая бы возвращала выравнивание. И тогда хоть будет возможность использовать соответствующую ему структуру или кидать исключение если выравнивание не может быть обработано. Или предложите свой вариант :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 12:45 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerМожно ли исходить из того, что в бинарниках Firebird в структурах для 32-битных платформ выравнивание 8 байт, а для 64-битных - 16? Зависит ли это от компилятора? Нельзя. Вероятнее всего - да, но авторы компиляторов Си вступили в сговор. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 12:53 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
А не проще ли написать свой враппер , чем патчить интерфейсную библиотеку или тем более ее генератор? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 12:58 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
AS. вопрос ещё, является ли декларация типов и констант, без единственнйо выполнимой строчки, кодом. Как в Turbo Pascal были *.int файлы - юниты у которых было отрезано всё, начиная со строчки implementation. Симонов Денисявляется, потому что он написан руками, а не сгенерирован автоматически. Разницу видишь? Не вижу. Вариант 1: берём исходник интерфейса на каком-нибудь IDL, запускаем какой-нибудь clop, получаем "сгенерированый автоматически" исходник на Паскале Вариант 2: берём исходник интерфейса на каком-нибудь C (*.h), запускаем какой-нибудь H2P, получаем "сгенерированый автоматически" исходник на Паскале Вариант 3: берём исходник на Паскале, запускаем какой-нибудь Smart Mobile Studio, получаем "сгенерированый автоматически" исходник на JavaScript http://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js Ну и где грань? Во всех случаях у нас есть транслятор, который получает исходник на одном языке и автоматически по нему создает исходник на другом языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 13:07 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Vladimir Baskakov, Проще. Один раз. ....но интерфейс продолжает развиваться и меняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 13:08 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Ariochинтерфейс продолжает развиваться и меняться. Ага. Причём обычно это происходит внезапно, без предупреждения и без описания "назачем". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 13:10 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovHommerМожно ли исходить из того, что в бинарниках Firebird в структурах для 32-битных платформ выравнивание 8 байт, а для 64-битных - 16? Нельзя. И как же тогда писать обёртки? Кто об этом должен задумываться? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 13:33 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerИ как же тогда писать обёртки? Кто об этом должен задумываться? В идеале - разработчик интерфейса. На практике - автор обёртки, который должен методично сравнить размеры структур и смещения их мемберов у своей обёртки и оригинала. В данном конкретном случае - я бы вообще забил на это "новое API", поскольку старое проверено годами и, надо сказать, удобнее в использовании. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 13:46 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
HommerИ как же тогда писать обёртки? Кто об этом должен задумываться?Об этом лучше бы задумываться до релиза. Раз 3-ку пропустил, сосредоточься на 4-ке - общими усилиями сделаем лучше, чем первый блин. Ну, или можно как Сибиряков - срать на всё и всех ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 14:01 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, это смотря для каких целей. Если для взаимодействия с приложениями, то может и старого API достаточно, а вот если плагины свои писать или UDR, то так и сяк придётся разбираться с новым API ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 14:03 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Симонов ДенисЕсли для взаимодействия с приложениями, то может и старого API достаточно, а вот если плагины свои писать или UDR, то так и сяк придётся разбираться с новым API Да. Но не пришлось бы, если бы некоторые, придумав гениальную идею со структурами указателей на обычные функции, довели её до логического завершения и сделали всего одну структуру с указателями на функции старого API. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 14:10 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСимонов ДенисЕсли для взаимодействия с приложениями, то может и старого API достаточно, а вот если плагины свои писать или UDR, то так и сяк придётся разбираться с новым API Да. Но не пришлось бы, если бы некоторые, придумав гениальную идею со структурами указателей на обычные функции, довели её до логического завершения и сделали всего одну структуру с указателями на функции старого API.Не вижу гениального тикета в трекере. Не вижу связи между старым ISC API и написанием плагинов\UDR. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 14:16 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
hvladНе вижу связи между старым ISC API и написанием плагинов\UDR. Понимаю, меня тоже склероз иногда одолевает. Ну так я напомню историю: "новое API" изначально создавалось чтобы передавать в плагины (включая UDR) указатели по которым можно было бы вызывать функции движка для выполнения (в том числе) запросов к базе в контексте текущего коннекта и транзакции. Поскольку, по понятным причинам, загружать в плагине новый инстанс fbclient было бы неудачной идеей. И это новое API тогда было действительно ОО, базирующимся на абстрактных классах (так же известных как COM-интерфейсы). Но потом внезапно обнаружилось, что в FPC (и Дельфи) есть баг, не позволяющий вернуть интерфейс из функции. И понеслась... Результатом было текущее состояние: структуры указателей. Что забавно, это то же самое, что использовалось ещё с Джимовском коде, только тогда оно было без автогенерации. Была там структура с указателями на все функции GDS API. Казалось бы, сделай аналогичную структуру и изначальная проблема решена, но нет, тогда пришлось бы не писать новый код, а избавляться от уже написанного, на который потрачены два года жизни. "На энто я пойтить не могу!" (с) А оптимисты, думающие, что их идеи могут найти отклик в сердцах разработчиков - могут писать в трекер или рассылку. Я, к счастью, этим уже переболел. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 14:50 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКазалось бы, сделай аналогичную структуру и изначальная проблема решена, но нет, тогда пришлось бы не писать новый код, а избавляться от уже написанного, на который потрачены два года жизниКакая изначальная проблема ? Какой уже написанный код для UDR\плагинов ? Dimitry SibiryakovЯ, к счастью, этим уже переболел.Это твои проблемы. Плюс неумение и нежелание сотрудничать и принимать общие правила. PS Гадить же я тебе не разрешаю, пинал и буду пинать по мере сил. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 15:12 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
hvladКакая изначальная проблема ? Повторяю медленно: нужен был способ передавать в плагины (включая UDR) указатели по которым можно было бы вызывать функции движка для выполнения (в том числе) запросов к базе в контексте текущего коннекта и транзакции. hvladКакой уже написанный код для UDR\плагинов ? Весь код, включая CLOOP, интерфейсы и так называемое "новое API" в полном составе. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 15:44 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovв FPC (и Дельфи) есть баг, не позволяющий вернуть интерфейс из функции ????? не знаю как там в FPC, а в Delphi это стандартная возможность. или речь про ABI, что такие функции реализованы компилятором, как процедуры с дополнительным by reference out-параметром ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 15:49 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Ariochили речь про ABI, что такие функции реализованы компилятором, как процедуры с дополнительным by reference out-параметром ? Они так реализованы для соглашения safecall. Проблема в том, что для остальных соглашений это не работает, хотя должно бы. Дебаркадер умеет ловко избавляться от старого мусора и ссылка http://qc.embarcadero.com/wc/qcmain.aspx?d=51313 уже не работает, но проблема выглядит в точности как https://bugs.freepascal.org/view.php?id=26593 вплоть до порождаемого ассемблера. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 17:11 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Хммм... похоже вы нашли какой-то цзкоспецифический случай, который никем практически на практике не использовался (за все время обсуждения кроме FB не было названо других практических примеров). И тут дело именно в том, что в Delphi/FPC всеми автоматическими объектами (со счетчиками ссылок то есть) занимается компилятор. > Standard C++ library provides a template for interface smart pointer. Можешь считать, что вот такой template и является типом interface в Delphi/FPC И счетчики ссылок автоматически прорабатывать компилятор обязан. А как именно и кем именно в случае передачи такого темплейте через EAX/RAX должны вызываться _AddRef и _Release вы договориться даже не пытались. Можно ли _любую_ структуру одного языка в 2-3 слова описать на другом языке? видимо не всегда. Собственно, когда я читал описание нового FB3 API, там был целый раздел, почему это свой собственный API, а не COM/XPCOM, и там прямо было написано, что FB3 API экономит время исполнения потому что не занимается подсчётом ссылок. Т.е. этот тип не является COM-интерфейсом и как следствие не является Delphi-интерфейсом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 18:50 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Ariochпохоже вы нашли какой-то цзкоспецифический случай, который никем практически на практике не использовался (за все время обсуждения кроме FB не было названо других практических примеров). Правда? Погугли "Delphi Direct3dCreate9". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 18:59 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Ariochкогда я читал описание нового FB3 API, там был целый раздел, почему это свой собственный API, а не COM/XPCOM, и там прямо было написано, что FB3 API экономит время исполнения потому что не занимается подсчётом ссылок. Т.е. этот тип не является COM-интерфейсом и как следствие не является Delphi-интерфейсом. Уже после одного этого наглядного примера как люди путают COM и IUnknown можно было отправлять описание в печь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 19:05 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а что останется от COM, если из него убрать IUnknown? это из серии "люди путают C++ и классы. Классы для C++ не обязательны." в любом случае, interface в Object Pascal - это именно iUnknown для этого и вводился (аналогично, как справеливо указали, Visual Basic'y). Со всеми плюсами и минусами этого (например весьма проблемно делать наследуемые интерфейсы без GUIDов, как классы наследуются)/ если FB3 интерфейс отказывается от iUnknown - то он отказывается от Delphi/FPC interface Dimitry SibiryakovИ это новое API тогда было действительно ОО, базирующимся на абстрактных классах (так же известных как COM-интерфейсы). Но потом внезапно обнаружилось, что в FPC (и Дельфи) есть баг, не позволяющий вернуть интерфейс из функции. И понеслась... Ну не поддерживается такой тип, не-IUnknown-интерфейс в языке. Это факт. Java-объекты тоже напрямую в язык не встроены, например. Я правда как-то с трудом верю, что когда делали API FB3 совместимость с Delphi была первостепенной задачей. Скорее всего во втором десятке где-то. В любом случае, с точки зрения Delphi эти интерфейсы FB3 ничем не отличаются. Ни некий COM-без-IUnknown, о котором ты говоришь, ни то, что сдели в итоге вместо него. Оба эти типа одинаково не являются паскалевскими интерфейсами. Поэтому я не понимаю, что именно "понеслось". Если бы Delphi нативно поддерживал один из двух конкурирующих предендентов на FB3 API, то чисто гипотетически это как-то могло повлиять на выбор Firebird Team. Но поскольку он одинаково не поддерживает их оба - то Delphi просто остаётся за скобками. Какие бы причины ни были у них сделать именно такой API - Delphi к этому отношения не имело. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 19:31 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovAriochпохоже вы нашли какой-то цзкоспецифический случай, который никем практически на практике не использовался (за все время обсуждения кроме FB не было названо других практических примеров). Правда? Погугли "Delphi Direct3dCreate9". Ну значит два случая. Причём MSDNThe IDirect3D9 interface inherits from the IUnknown interface То есть счётчик ссылок не так сильно затормаживает процесс, чтобы мешать писать 3D-стрелялки. А потом я смотрю на d3d9->CreateDevice - и кажется мне я там вижу safecall. https://msdn.microsoft.com/en-us/library/windows/desktop/bb204867.aspx http://gamesmaker.ru/programming/directx/directx-api-inicializaciya-direct3d/ И я вообще перестаю понимать, почему накладные расходы, вполне терпимые для 3D-стрелялок, оказываются нетерпимыми для RDBMS, которая зачастую утыкается или в диск (если запросов мало, но у каждого огромные данные), или в парсинг и препарирование (если запросы мелкие, но их мнооого) Но, что выросло - то выросло. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 19:42 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, до кучи, в новом API избавились от некоторых int16 полей и связанных с ними ограничений типа "не более 32 KB в одни руки" Насколько это было критично я не могу судить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 19:47 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Ariochдо кучи, в новом API избавились от некоторых int16 полей и связанных с ними ограниченийЧестно говоря, лучше б в старом апи добавили функции-дубликаты с каким-нибудь суффиксом типа Ex, в котором увеличили бы эти int16, где надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 21:04 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Ну, и структуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 21:05 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
AriochСобственно, когда я читал описание нового FB3 API, там был целый раздел, почему это свой собственный API, а не COM/XPCOM, и там прямо было написано, что FB3 API экономит время исполнения потому что не занимается подсчётом ссылок. Т.е. этот тип не является COM-интерфейсом и как следствие не является Delphi-интерфейсом. У 7zip.dll интерфейсное API. Вот как используется на Delphi (это jcl library): https://github.com/project-jedi/jcl/blob/master/jcl/source/windows/sevenzip.pas Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. 657. 658. 659. 660. 661. 662. 663. 664. 665. 666. 667. 668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679. 680. 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712. 713. 714. 715. 716. 717. 718. 719. 720. 721. 722. 723. 724. 725. 726. 727. 728. 729. 730. 731. 732. 733. 734. 735. 736. 737. 738. 739. 740. 741. 742. 743. 744. 745. 746. 747. 748. 749. 750. 751. 752. 753. 754. 755. 756. 757. 758. 759. 760. 761. 762. 763. 764. 765. 766. 767. 768. 769. 770.
И один из соответсвующий ему h-файлов (IStream.h): https://github.com/kornelski/7z/blob/master/CPP/7zip/IStream.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121.
Только под FPC распаковка почему-то не работает. Не разобрался пока почему. А в Delphi работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 21:19 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Ariochа что останется от COM, если из него убрать IUnknown? Именно то, что из него делает Common Object Model : двоичная раскладка VMT. Ariochв любом случае, interface в Object Pascal - это именно iUnknown Опять же RTFM Corba Interfaces в FPC. В Дельфи да, это очень жёстко IUnknown. И в своё время я таки говорил, "ну так давайте и сделаем IUnknown, зато получим прямую совместимость со всем, включая 1С", на что мне как раз и отвечали "подсчёт ссылок это медленно", а потом внезапно засунули подсчёт не просто ссылок, а вызовов в каждую функцию каждого объекта. И уже я говорил "да вы что, это же тормозит", а мне отвечали "да фигня, там всего пара ассемблерных команд". Ну а когда на сцену вышел клоп с его обёртками и вовсе пошёл сюр. PS: Что-то я как Дед мемуарами начал растекаться по древу, надо завязывать, пусть и пятница. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 21:20 |
|
Под какой лицензией firebird.pas?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovа потом внезапно засунули подсчёт не просто ссылок, а вызовов в каждую функцию каждого объектаВыпей водички холодной ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 21:22 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561169]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
others: | 320ms |
total: | 488ms |
0 / 0 |