- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
//
// How ARC causes memory leaks and leads to crashes out of the blue
//
import Foundation
let noLeak = 131030 // Empirically found constant
let withLeak = noLeak*10
// Single-linked list
class R {
var _a : R?
init(a : R?) {
_a = a
}
// One have to resort to a manual C-like code to fix it
//
// deinit {
// var i = self._a;
// while let i2 = i {
// let t = i2._a
// i2._a = nil
// i = t
// }
// }
}
func test(n:Int, leak:Bool) {
let p0 = R(a : nil)
var p = R(a : p0)
for _ in 1...n {
p = R(a : p)
}
if leak {
// When the list is not cyclic it will be deleted by ARC just fine...
p0._a = p
}
} // Oh wait, the destructor isn't tail-recursive...
test(withLeak, leak: true)
print("Bad leaking function")
test(noLeak, leak: false)
print("Good function")
CHayT 28.11.2015 11:49 # 0
byss 28.11.2015 13:50 # +3
Внимание! Обнаружена ЖЖ Артем утечка памяти при создании циклических ссылок!
А вообще, вот из-за, в том числе, таких магических крешей (с BAD_ACCESS, Карл!) Свифт и не готов к продакшну. ObjC ещё минимум года два-три будет основным языком вменяемых разработчиков под эти наши гейфоны.
bormand 28.11.2015 15:41 # +1
bormand 28.11.2015 15:40 # 0
Ну а что ты хотел? В крестах std::shared_ptr точно так же течёт от закольцованных структур...
> деструктор падает с BAD_ACCESS
... и точно так же сегфолтится от переполнения стека при разрушении слишком глубоких структур.
bormand 28.11.2015 15:49 # +2
3.14159265 28.11.2015 17:02 # +2
guest 28.11.2015 17:41 # −6
Ты понимаешь что ты поехавший??
inho 29.03.2018 21:41 # 0
bormand 29.03.2018 22:16 # 0
Я скриптом кобенирую тексты
Марковской цепью построив коммент
Силой питона ворцую пространство
На миллионы комментов за тред.
Я -- кобенатор. Он -- кобенатор.
Ты -- кобенатор. Мы -- кобенатор.
subaru 29.03.2018 22:28 # 0
в 2к18 пора осваивать лстм и внимание
CHayT 29.11.2015 13:06 # +1
запах борща чувствуется там неплохо так
правда то, что в хаски делается парой классов, в свифтие запилили как кривой синтаксис
guest 28.11.2015 16:53 # +3
CHayT 29.11.2015 13:08 # 0
исключительно срача про модели управления памятью
bormand 29.11.2015 13:23 # +1
inkanus-gray 29.11.2015 13:37 # +2
3.14159265 29.11.2015 22:28 # −1
3.14159265 29.11.2015 23:38 # +1
3.14159265 28.11.2015 16:50 # +1
Что-то тут пахнет неточным умножением 128*1024.
bormand 28.11.2015 18:08 # +1
dxd 29.11.2015 00:11 # 0
3.14159265 29.11.2015 22:25 # −1
Сишка, господи, что заедушный за хуйню ты несеш???
ты понимаешь что ты говно поехавший??
> это же хасвелл не хаскель, животное, какой-нибудь
запах борща ко-ко-ко питух чувствуется там питух неплохо так
правда заедушный то, что , питух, иди кукарекай, говноязык в хаски делается
kegdan 30.11.2015 09:11 # 0
CHayT 30.11.2015 09:29 # +3
kegdan 30.11.2015 09:34 # +2
А лучше стрим на твиче запили
Abbath 20.12.2015 13:06 # 0
CHayT 20.12.2015 15:11 # 0
сраные хипстеры
P.S. проект в процессе, парсить грамматику я уже умею, но времени у меня сейчас мало пишу с работы (sic)
CHayT 01.06.2016 00:26 # +1
KobNode 2 (Right (NLPWord {_nlpword = "gray", _nlpclass = ""},([],[])))
KobNode 0 (Right (NLPWord {_nlpword = "dog", _nlpclass = ""},([],[])))
KobNode 3 (Right (NLPWord {_nlpword = "runs", _nlpclass = ""},([KobNode 4 (Left D-)],[])))
то чувство, когда из-под слоя служебных данных начала показываться сверхтвёрдая синтаксиальная психоза
^______^
CHayT 03.06.2016 01:09 # +1
the dog slowly slowly runs
the dog slowly soundly runs
the dog soundly slowly runs
the dog soundly soundly runs
the dog slowly runs
the dog soundly runs
the dog slowly runs
the dog soundly runs
the dog runs
the dog slowly slowly sleeps
the dog slowly soundly sleeps
the dog soundly slowly sleeps
the dog soundly soundly sleeps
the dog slowly sleeps
the dog soundly sleeps
the dog slowly sleeps
the dog soundly sleeps
the dog sleeps
так оно работает работает на тестовой грамматике
щас надо сменить вореционный движок, и можно будет засирать тут всё
SemaReal 29.03.2018 21:52 # 0
да и Гарин не Гагарин (с)