1
00:00:10,330 --> 00:00:11,840
so hi everyone

2
00:00:12,850 --> 00:00:17,570
i'm here to talk to be about clay
of you have and you know it

3
00:00:17,570 --> 00:00:22,110
may look at be unrelated thought you guys
are going to see the collection later

4
00:00:22,110 --> 00:00:22,290
that

5
00:00:23,120 --> 00:00:29,310
so my patient here is tricks plan to
be about what's lda and what we

6
00:00:29,310 --> 00:00:32,050
what the first of all better technologies about

7
00:00:32,710 --> 00:00:37,440
and i hope of my patient he's not
to get you into compilers because

8
00:00:37,770 --> 00:00:41,270
we just had lunch and you guys may fall
asleep well talking about like the

9
00:00:41,270 --> 00:00:45,680
level stuff i don't know people usually
don't the like very much to go each

10
00:00:45,680 --> 00:00:51,240
of those details so i'm trying to be
as much as possible in some sort

11
00:00:51,240 --> 00:00:54,800
of a high level abstractions so you guys
can just you how clinging all of

12
00:00:54,800 --> 00:00:59,320
it works and that's the jitter janeiro
i you don't want to best you guys

13
00:00:59,320 --> 00:01:01,080
how it works

14
00:01:02,900 --> 00:01:05,830
so first of all what tell you know

15
00:01:06,250 --> 00:01:10,950
so i'll here is the name of the whole
a whole wired infrastructure which is

16
00:01:10,950 --> 00:01:15,480
composed by the front end and i are and

17
00:01:16,250 --> 00:01:19,960
several tools to the meeting i think we call for back a

18
00:01:20,670 --> 00:01:24,590
it has a similar it is the same
very has that you anything side

19
00:01:25,620 --> 00:01:31,980
and we call the whole framework alvin
but ldm is also the name of the

20
00:01:31,980 --> 00:01:34,190
I R level of this compiler

21
00:01:35,520 --> 00:01:39,430
and it's also the name we give to the bit
school which is actually the

22
00:01:39,430 --> 00:01:44,420
same as a byte code but in the elephant
word we world we call it

23
00:01:44,420 --> 00:01:45,200
a bit school

24
00:01:46,640 --> 00:01:51,010
so with all the M you can drive like
static compilation just as you know

25
00:01:51,010 --> 00:01:56,600
the U C so for example you can a regular
com one line that one

26
00:01:56,600 --> 00:01:59,720
will be using D C you can you should
the same what would like but

27
00:01:59,720 --> 00:02:06,060
just replace tecc bike lane and it
should you use the same results

28
00:02:06,510 --> 00:02:09,720
so for example of for a C source code

29
00:02:10,260 --> 00:02:16,330
you passes through playing and you can it meets
that direct executables because it has

30
00:02:16,330 --> 00:02:21,570
an internal simpler board can also emit regulars
simplifies in you can pass can pass

31
00:02:21,570 --> 00:02:26,570
it through to be know choose and have your
regular object files for your actor

32
00:02:27,920 --> 00:02:34,350
besides that you can use it as some
amount of the couple tools so for

33
00:02:34,350 --> 00:02:38,920
example you can people know for the C
code you just going should be L

34
00:02:38,920 --> 00:02:43,480
V M I R which you like to do before we call it call and

35
00:02:43,480 --> 00:02:47,990
from the bit code you can do several different
types of manipulations you can run

36
00:02:47,990 --> 00:02:52,740
optimizations only but only be a scroll
you can it be a simplify is you

37
00:02:52,740 --> 00:02:54,240
can emit object files

38
00:02:55,210 --> 00:02:58,950
you can link bit go together is you have
all sorts of operations you can

39
00:02:58,950 --> 00:03:00,810
do on the L V M I R

40
00:03:02,370 --> 00:03:02,930
so

41
00:03:04,060 --> 00:03:09,230
in the example well we generated for example
i are using the claim and then

42
00:03:09,230 --> 00:03:14,330
we can run several different optimizations
and pass it to L C to which is

43
00:03:14,330 --> 00:03:18,150
that do we used to emit i simply an object files

44
00:03:18,550 --> 00:03:18,940
so

45
00:03:20,020 --> 00:03:24,700
every part in a lot of em have a library
so you have like specific

46
00:03:24,700 --> 00:03:30,190
tools which you specific libraries and this
way you can now only use whatever you

47
00:03:30,190 --> 00:03:34,980
want you can she beat called for example
and then you can compile it to

48
00:03:34,980 --> 00:03:40,570
your some backtracked or the way you want
using optimizations you want so it's good

49
00:03:40,570 --> 00:03:46,180
"'cause" you can do several tricks
by decoupling the compiler parts

50
00:03:47,700 --> 00:03:49,470
so like you sylvia

51
00:03:50,050 --> 00:03:52,570
first of all it's open source

52
00:03:52,850 --> 00:03:58,660
and as i believe i think it's good
you know it's good because we can

53
00:03:58,660 --> 00:04:04,180
have several options it's not here about being
better dingy see it's just a different

54
00:04:04,180 --> 00:04:10,840
option it has different features and different
interesting problems it solves that it makes a

55
00:04:10,840 --> 00:04:12,100
good choice to use

56
00:04:12,730 --> 00:04:14,850
so it's just about one more option

57
00:04:15,180 --> 00:04:20,210
that can be used to they have a lot several
different stuff using the opencal

58
00:04:20,210 --> 00:04:20,620
by

59
00:04:21,060 --> 00:04:26,390
so it's easy it's quite easy to get
stuff inside tell em if you need

60
00:04:26,390 --> 00:04:31,460
to tweak the compiler in it's not a stick
a very steep learning curve it's

61
00:04:31,460 --> 00:04:35,270
easy to use it as a library to contribute
to the project in the communities

62
00:04:35,270 --> 00:04:37,890
very receptive to newcomers so

63
00:04:38,520 --> 00:04:41,190
it's quite exciting to be contributing to all the

64
00:04:42,730 --> 00:04:48,720
so decide that since we have several different the compilers
the composites ever different faces

65
00:04:48,720 --> 00:04:49,470
and libraries

66
00:04:49,930 --> 00:04:56,050
it's you can do optimizations in all
phases of the compiler so as you see

67
00:04:56,050 --> 00:05:01,920
those you can you can compilation during compiled
it i'm just running a regular optimizations

68
00:05:01,920 --> 00:05:07,160
in the I R you can do it only time
just running because together all

69
00:05:07,160 --> 00:05:12,280
i'll tell more about that later indicated will
run time has support for profiling so

70
00:05:12,280 --> 00:05:14,830
you can the profiling oriented optimization

71
00:05:15,460 --> 00:05:19,970
and besides that there's like a tons of and
i think that's is in transformation

72
00:05:19,970 --> 00:05:24,080
spaces with will label is the bit going
to several different ways and make it

73
00:05:24,080 --> 00:05:29,470
suitable for whatever type of optimizations
someone wants to play with

74
00:05:30,650 --> 00:05:36,720
so decide that the clay from can solve
the end which is also the name

75
00:05:36,720 --> 00:05:45,230
for the for the driver it has lots of libraries
implementing tools to automatically find

76
00:05:45,230 --> 00:05:49,640
bugs and stuff like that so besides
using it as a compiler you can use

77
00:05:49,640 --> 00:05:49,830
it

78
00:05:50,970 --> 00:05:55,630
as tools to check for the correctness of your
code i'm giving more examples about

79
00:05:55,630 --> 00:05:57,560
that a bit later in the top

80
00:05:58,420 --> 00:06:03,600
so just be more specific about that also
you can actually understand a bit of

81
00:06:03,600 --> 00:06:04,250
the idea

82
00:06:05,770 --> 00:06:08,880
so it's written in C plus i know

83
00:06:10,190 --> 00:06:12,970
people may like C plus but

84
00:06:13,270 --> 00:06:17,670
for L V M it's a quite good language
should have a lot the compiler

85
00:06:18,260 --> 00:06:24,210
and using the abstractions and everything like
that as i told you before it's really

86
00:06:24,210 --> 00:06:29,040
you can you have several different libraries
and can use the library's in the way

87
00:06:29,040 --> 00:06:30,390
you want to use them

88
00:06:31,080 --> 00:06:33,870
and i already told about this

89
00:06:34,630 --> 00:06:39,100
so the front end is basically you
can use a front end which is this

90
00:06:39,100 --> 00:06:39,920
is team based

91
00:06:40,410 --> 00:06:46,160
with the with the new support for not
quite new but with the addition of

92
00:06:46,160 --> 00:06:51,000
logan supporting tecc you can usually this
is see to generate lda my are and

93
00:06:51,000 --> 00:06:58,630
then use the regular libraries and tools well
from ldm to actually generate object code

94
00:06:58,630 --> 00:07:02,840
or executable code so you can actually
use D C shouldn't today of in my

95
00:07:02,840 --> 00:07:07,770
are in make good use of both optimizations
of this is from this is you

96
00:07:07,770 --> 00:07:09,370
not relations from L V M

97
00:07:09,960 --> 00:07:13,710
so it the plugging this called recognise
then you can just run it through D

98
00:07:13,710 --> 00:07:13,870
C

99
00:07:15,030 --> 00:07:19,420
and you get all the my are in didn't
can just use regular ldm tools

100
00:07:19,930 --> 00:07:24,120
so but besides that we have the plane
compiler which is also but to this

101
00:07:24,120 --> 00:07:25,330
library approach

102
00:07:27,240 --> 00:07:31,790
it's gonna because since the design is
a bit watering you don't have like to

103
00:07:31,790 --> 00:07:37,550
struggle with generating possible partners is everything
dynamic if you want to generate binaries forearm

104
00:07:37,550 --> 00:07:42,870
for example you just need to best the right
the right not in the command

105
00:07:42,870 --> 00:07:45,570
line and you get like and i'm binary you don't have to

106
00:07:46,300 --> 00:07:51,780
of course we need to have like our libraries
and all that the older change

107
00:07:51,780 --> 00:07:56,830
support around it but if you if you
have it it's just a matter of

108
00:07:56,830 --> 00:08:00,360
changing than all which are actually
want to generate code for

109
00:08:00,670 --> 00:08:07,120
so it this is it would think about like
the very decompose it live approach

110
00:08:07,120 --> 00:08:08,060
of L V M

111
00:08:09,000 --> 00:08:09,680
decide that

112
00:08:10,890 --> 00:08:17,060
elvis also for it meeting goodbye acknowledges
of water cold so well especially when you're

113
00:08:17,060 --> 00:08:22,370
programming C plus in your messages templates
and i think is when things get really

114
00:08:22,370 --> 00:08:23,170
dirty

115
00:08:24,950 --> 00:08:30,020
i will i rather use going to school
while stuff in C plus then using

116
00:08:30,020 --> 00:08:35,750
D C when i want to understand a bit better
of what's happening with really

117
00:08:35,750 --> 00:08:37,870
deep compilation everything stuff

118
00:08:38,350 --> 00:08:44,390
because it really provides agnostics and you
can holding the three up and see whatever

119
00:08:44,390 --> 00:08:49,730
your marker is a screen up stuff or whatever
your complete is expanding in weird

120
00:08:49,730 --> 00:08:50,370
ways

121
00:08:51,200 --> 00:08:53,870
and besides that it also have a static analyser

122
00:08:54,540 --> 00:09:00,100
which is really good choose to check up on the correctness
of circled to helping

123
00:09:00,100 --> 00:09:01,860
automatically finding bugs

124
00:09:02,710 --> 00:09:06,160
so all he static analyser be

125
00:09:07,410 --> 00:09:08,080
in the

126
00:09:08,740 --> 00:09:09,890
in the end of the talk

127
00:09:10,340 --> 00:09:16,430
sites that's like i told you before the optimizations
yelled game to have like since

128
00:09:16,430 --> 00:09:21,230
we have a positions in the whole lifetime
of the compiler we can apply appositions

129
00:09:21,230 --> 00:09:25,880
should the I R which is the most obvious
place to put the opposition's because

130
00:09:25,880 --> 00:09:30,770
we don't have to write musicians a specific
to a target or specific drawback and

131
00:09:30,770 --> 00:09:36,720
so every optimizations that it it's targeting
dependent we can place here so for example

132
00:09:36,720 --> 00:09:42,530
if we want if you wanna have some
sort of a generic vehicle that we

133
00:09:42,530 --> 00:09:49,450
can for assortment more specific architecture be
goal we can apply optimizations here and leave

134
00:09:49,450 --> 00:09:53,550
it there are just so when we're a beating
for certain target we can

135
00:09:54,800 --> 00:10:02,040
apply several different musicians like for example
you can apply appositions for vectorisation for X

136
00:10:02,040 --> 00:10:03,370
eighty six for example

137
00:10:04,070 --> 00:10:07,360
and then whenever you have the big
gold on your C P U if you're

138
00:10:07,360 --> 00:10:11,120
see if you only have sse it can
and we have to see that maybe

139
00:10:11,120 --> 00:10:15,120
X you can use more stuff to reason
about side of vectors and we ate

140
00:10:15,120 --> 00:10:16,170
a vax properly

141
00:10:19,250 --> 00:10:23,510
sites that we have the L C to which
is the tool of responsible for

142
00:10:23,510 --> 00:10:30,030
actually a invoking be back-ends it
has it uses the I R and think boot

143
00:10:30,030 --> 00:10:36,680
and it outputs a saintly files or object
files the element has it has both

144
00:10:37,230 --> 00:10:41,710
it has to should to both assemble and
disassemble cool and we also have a

145
00:10:41,710 --> 00:10:47,110
parser so for example when you're writing
see cool then you use a line call

146
00:10:47,110 --> 00:10:51,840
it actually involved the same parser to
parse the line as it in can reason

147
00:10:51,840 --> 00:10:58,000
about the assembly code you wrote inside the C
code and give your proper diagnostics

148
00:10:58,000 --> 00:11:03,810
and are actually you can write optimizations that
will just change instructions inside the i'd

149
00:11:03,810 --> 00:11:07,260
like or just reasonable constraints
that you were that you didn't

150
00:11:08,630 --> 00:11:14,150
you were you couldn't reason about because
the code was complex you can also reasons

151
00:11:14,150 --> 00:11:17,810
id a line you do proper feedback

152
00:11:19,060 --> 00:11:24,210
so you can also you can also use a simplify
wasn't as input and generate

153
00:11:24,210 --> 00:11:27,980
object files and delete them together you
can you can play around in the way

154
00:11:27,980 --> 00:11:28,610
you want

155
00:11:31,630 --> 00:11:35,880
so all that we have that we are well
so have that you'd compiler a

156
00:11:35,880 --> 00:11:39,640
difficult father's side that supportive
for several we are factors

157
00:11:40,680 --> 00:11:44,040
and we have the T L T O which is use it to really be

158
00:11:44,040 --> 00:11:44,950
goals together

159
00:11:46,460 --> 00:11:50,810
and like i told you guys we have a similar
in this is samplers and

160
00:11:50,810 --> 00:11:55,470
several different tools to play with object
code and mess around with the low level

161
00:11:55,470 --> 00:11:56,070
stuff

162
00:11:57,150 --> 00:12:00,540
so how does that relate to you norm at all

163
00:12:00,950 --> 00:12:07,090
so that's what i like to introduce
and give you how can get all can

164
00:12:07,090 --> 00:12:11,220
benefit from can you know V M how
can start using it to i don't

165
00:12:11,220 --> 00:12:16,260
know we proving in several different ways
because there are lots of to all their

166
00:12:16,260 --> 00:12:19,440
a lot of those you know them that can be used in get on to

167
00:12:19,440 --> 00:12:21,520
improve development and stuff

168
00:12:22,690 --> 00:12:27,330
so first of all gonna more and he was
this L of them incline libraries

169
00:12:27,330 --> 00:12:28,350
it some projects

170
00:12:28,760 --> 00:12:33,390
i don't know much if there are more
than to products using it but ones

171
00:12:33,390 --> 00:12:36,650
are the ones that i look it up
and i found that using like of

172
00:12:36,650 --> 00:12:41,450
them five which i was already aware of that
and we have the developer over

173
00:12:41,450 --> 00:12:43,740
there someone what stop with him

174
00:12:44,160 --> 00:12:47,470
which is actually a softer in their

175
00:12:48,550 --> 00:12:53,990
using L V M whenever you don't have
like a specific you to the graphics

176
00:12:53,990 --> 00:12:59,090
it can fall back to using whatever
your C P U has to process that

177
00:12:59,090 --> 00:13:01,920
and it's a good fallback

178
00:13:02,990 --> 00:13:07,460
besides that i saw that there's a plug
in called you did go to system

179
00:13:07,460 --> 00:13:13,800
that was that will use going to just
give hints to do should someone of

180
00:13:13,800 --> 00:13:19,990
programming stuff and giving like whoever's
during the program like a V C idea I

181
00:13:19,990 --> 00:13:20,800
Ds do

182
00:13:23,040 --> 00:13:27,720
it seems you know it was like an umbrella
for several projects

183
00:13:28,560 --> 00:13:34,350
i was i was i was playing around
to see i was playing around with

184
00:13:34,350 --> 00:13:36,280
the in the deep repositories

185
00:13:36,650 --> 00:13:42,890
and with the an on tools and i step
into the jhu and always three

186
00:13:42,890 --> 00:13:48,070
in all the you bought stuff that it
it's meant to be supported and i

187
00:13:48,070 --> 00:13:54,470
think like why not they can use the static
analyser for example or just you

188
00:13:54,470 --> 00:13:59,370
the whole called bayes using clay in see
what type of differences it can make

189
00:13:59,370 --> 00:14:04,420
in the in the final executables it
may be that for some by there is

190
00:14:04,420 --> 00:14:08,200
would be slower than you see but for
someone will be better i don't know

191
00:14:08,200 --> 00:14:11,480
it's just something that i think
it should be given that right

192
00:14:12,800 --> 00:14:17,560
so i think for example jhu to noise three
can benefit from trying to use

193
00:14:17,560 --> 00:14:17,940
cling

194
00:14:19,320 --> 00:14:24,050
so other stuff that i think that big you
know project can benefit from out

195
00:14:24,050 --> 00:14:29,670
from ldm sport we are back in for example
for running at you know three

196
00:14:29,670 --> 00:14:33,500
own on a nexus seven it will be a good try to go by using

197
00:14:33,500 --> 00:14:34,200
playing

198
00:14:34,530 --> 00:14:40,440
besides that using elevator bell till choose to
have like smaller binary final binaries which

199
00:14:40,440 --> 00:14:47,120
will explain a static analyser in some tool that
you can dynamically explore several different

200
00:14:47,120 --> 00:14:50,450
types of bugs like the address and the members any tight

201
00:14:51,260 --> 00:14:53,960
so you're back in a all of them has a very

202
00:14:54,890 --> 00:15:01,350
i stable are back and which emits really
good quality code it's easy it apple

203
00:15:01,350 --> 00:15:06,620
uses it for a compiling now us implications
in the X gold you can excellent

204
00:15:06,620 --> 00:15:10,250
is all these and claim and uses they
are back and to generate go for

205
00:15:10,250 --> 00:15:13,040
them so it's pretty stable it's pretty optimised

206
00:15:14,280 --> 00:15:20,030
and i it also supports the most recent
processors of all the army seven of

207
00:15:20,030 --> 00:15:22,470
family of arm processors

208
00:15:23,080 --> 00:15:23,380
and

209
00:15:24,700 --> 00:15:31,770
besides that for example of them by would
use the are back antigen you already

210
00:15:31,770 --> 00:15:36,370
does if you want to generate article but
you could it could be for example

211
00:15:36,370 --> 00:15:40,040
more optimised so if you think in the case
that if you want for example

212
00:15:40,040 --> 00:15:46,700
to have been on running on our devices
with all the specific gpus for example

213
00:15:46,700 --> 00:15:52,250
we would use a just regular vector restrictions
from the are instruction set like neon

214
00:15:52,250 --> 00:15:57,350
to generate that gold in a better called
in actually has a good fallback for

215
00:15:57,350 --> 00:15:59,000
soft a rating for example

216
00:16:02,130 --> 00:16:06,380
i'm not i think is the all the melody
in a regular compiler when you're

217
00:16:06,380 --> 00:16:13,330
linking stuff usually come from sickle we generate
object goals for each different source you

218
00:16:13,330 --> 00:16:17,050
have and then in the end your link
all of them together or you really

219
00:16:17,050 --> 00:16:21,290
on the from actually and then put it
on the final executable later that's

220
00:16:21,680 --> 00:16:24,640
that that's how easily a compiler full works

221
00:16:25,090 --> 00:16:27,030
but with all the and the

222
00:16:27,940 --> 00:16:29,110
and the beats code

223
00:16:30,540 --> 00:16:35,410
representation what okay the ways that
you can force it me to be it's colds

224
00:16:35,930 --> 00:16:41,140
just invoking calling in and asking it all
don't in the old radicals you directly

225
00:16:41,140 --> 00:16:42,440
just can be bit codes

226
00:16:43,170 --> 00:16:46,740
after that you can mix albeit chords together

227
00:16:47,820 --> 00:16:54,250
and have a final module that final module you
can actually apply several different types

228
00:16:54,250 --> 00:16:58,490
of oppositions like to go to before including
link time up musicians so you so

229
00:16:58,490 --> 00:17:02,600
you can remove several functions that are not
being used inside that model because it

230
00:17:02,600 --> 00:17:07,600
can reasons use everything kids inside there
so you can use liking triple sitters stuff

231
00:17:07,600 --> 00:17:08,870
what mutations in

232
00:17:09,290 --> 00:17:12,410
actually can a lot of stuff do we
did and then you just invoke the

233
00:17:12,410 --> 00:17:17,530
backend for the final module and you have
your final executable so this sort of

234
00:17:17,530 --> 00:17:21,590
like opening the couple reasoning in the compiler

235
00:17:22,290 --> 00:17:28,390
not use of is actually we use pretty
good code so i think probably some

236
00:17:28,390 --> 00:17:29,800
project singing on can

237
00:17:31,320 --> 00:17:36,040
just we can a bit of the makefiles
to just an array of vehicles for

238
00:17:36,040 --> 00:17:42,400
instead of object files and then the ring linking
link always goes together apply link

239
00:17:42,400 --> 00:17:47,680
time optimizations i don't know it maybe can
benefits lots of projects i would give

240
00:17:47,680 --> 00:17:48,730
it a try

241
00:17:50,610 --> 00:17:53,770
so they stack analyser it's basically

242
00:17:55,040 --> 00:17:59,560
a source code processing to based on playing
that will try to reason about your

243
00:17:59,560 --> 00:18:04,330
code and give you information about if
you have one in your old what's our

244
00:18:04,330 --> 00:18:09,100
alternative like not only but you stuff
that you could have not done in the

245
00:18:09,100 --> 00:18:13,090
call that will improve it or just remove
use this is stuff that you're doing

246
00:18:13,090 --> 00:18:15,520
up role so it's really good because

247
00:18:16,270 --> 00:18:21,260
it actually conceded time debugging later
could it can catch all sorts of but it's

248
00:18:21,260 --> 00:18:24,490
not perfect but it helps a lot

249
00:18:24,880 --> 00:18:29,950
so and you can also all to you can also do it use it for

250
00:18:29,950 --> 00:18:30,260
all

251
00:18:30,970 --> 00:18:34,230
the some sort of all but i think that

252
00:18:35,330 --> 00:18:39,080
although much as they should you has
you can do to use that and that's

253
00:18:39,080 --> 00:18:44,660
why i think it's good to put it in stuff
like you bought because whenever

254
00:18:44,660 --> 00:18:49,440
you already have should you the whole three
of you projects at the same time

255
00:18:49,440 --> 00:18:52,910
you can just do it using they static analyser images

256
00:18:54,410 --> 00:18:59,380
have a bunch of information of every project
yours you're compiling and you can use

257
00:18:59,380 --> 00:19:07,190
that to somehow track regressions just see
if some sort of a critical bugs are

258
00:19:07,190 --> 00:19:14,240
not happening between one revision another are at least
before releasing stables a stable releases

259
00:19:14,240 --> 00:19:18,460
you can run them and see if there's nothing
critical be released to the public

260
00:19:24,170 --> 00:19:27,170
since it's library basic is just a matter of

261
00:19:29,870 --> 00:19:34,560
importing use actually use the library
any let major on that

262
00:19:47,160 --> 00:19:47,940
you have the

263
00:19:49,110 --> 00:19:53,250
so i wanted to make a plug and write
checks us you're passing the correct

264
00:19:53,250 --> 00:19:55,170
i call back okay you are it's

265
00:19:55,870 --> 00:19:57,980
how difficult would it be

266
00:19:59,170 --> 00:20:01,610
i can tell you for sure like

267
00:20:04,030 --> 00:20:09,090
it will be much difficult because already
have all of those you have already have

268
00:20:09,090 --> 00:20:14,390
analysis that will all come to it's
three years three yes the trees

269
00:20:14,840 --> 00:20:18,340
so you could probably use call that is
already there to do whatever you want

270
00:20:18,340 --> 00:20:19,570
a specific

271
00:20:20,520 --> 00:20:24,740
you know so it shouldn't be difficult because
i have a framework for doing that

272
00:20:24,740 --> 00:20:25,750
it's already there

273
00:20:27,020 --> 00:20:29,550
i don't i can tell you exactly how to do it

274
00:20:30,070 --> 00:20:30,610
but

275
00:20:32,340 --> 00:20:33,500
it it's not difficult

276
00:20:42,460 --> 00:20:47,450
i think right now you actually have
to com pilot i i'm not sure if

277
00:20:47,450 --> 00:20:48,150
it if

278
00:20:48,580 --> 00:20:51,940
we have like this leave claim his stuff
and we have like that the light

279
00:20:51,940 --> 00:20:56,330
stuff that you can actually write logins
but for example for the specific type of

280
00:20:56,330 --> 00:21:00,980
plugging that you that you may like to
right i don't know which is going

281
00:21:00,980 --> 00:21:05,130
to be the best place to implement a you
know going to have like several

282
00:21:05,130 --> 00:21:10,260
blank we have right now three places that
you can who came and implement analysis

283
00:21:10,940 --> 00:21:16,300
so some stuff you can just invoke your dynamic
compiler analysis and we just best

284
00:21:16,300 --> 00:21:19,910
way but for some other stuff to have
to hack into the compiler to do

285
00:21:19,910 --> 00:21:20,180
it

286
00:21:21,190 --> 00:21:24,300
that's what i'm saying just you can have several who points

287
00:21:24,730 --> 00:21:27,440
but not all not all of them you can just

288
00:21:27,910 --> 00:21:29,780
best looking as a parameter

289
00:21:32,950 --> 00:21:33,640
it could be

290
00:21:34,500 --> 00:21:37,150
i don't know we can you can see that later after the top

291
00:21:38,110 --> 00:21:38,460
right

292
00:21:40,190 --> 00:21:42,140
but we have like several different

293
00:21:43,590 --> 00:21:46,380
interface is that we can plug in allows incline

294
00:21:49,290 --> 00:21:55,020
so this that equaliser also helps with improving
called quality seashore there like

295
00:21:55,380 --> 00:22:00,070
having the a direct feedback of what sort
of mistakes are doing their cool it

296
00:22:00,070 --> 00:22:05,120
also has false positives because it's not
a perfect also sometimes it will say that

297
00:22:05,120 --> 00:22:06,010
it

298
00:22:06,810 --> 00:22:12,220
it looks like it has a but it's a it is not the problem is

299
00:22:12,220 --> 00:22:17,540
that the compiler is just not smart enough
to see that you already checked something

300
00:22:17,540 --> 00:22:21,950
before in section default one but in general
we it works when you can also

301
00:22:21,950 --> 00:22:26,670
report bugs in telephone this sort these improve this

302
00:22:27,280 --> 00:22:29,070
or send a pitcher self improvement

303
00:22:29,740 --> 00:22:35,180
and of course the compilation is a lot slower
using the static analyser but you

304
00:22:35,180 --> 00:22:39,870
shouldn't be using it to produce like of production
code it was like do those

305
00:22:39,870 --> 00:22:43,190
separate compilations so you can see your analysis

306
00:22:43,700 --> 00:22:47,780
and on impact on your billboard time and stuff like that

307
00:22:48,520 --> 00:22:53,080
so tuesday static analysers three simple once
you have blinks at all well you have

308
00:22:53,080 --> 00:22:57,580
like package for going to i don't know
about fedora but or you haven't it

309
00:22:57,580 --> 00:23:02,790
ship the second you tool and based can
you tool just you just that said

310
00:23:02,790 --> 00:23:08,320
before called here and before make it will
cup and just hijacking them you know

311
00:23:08,320 --> 00:23:13,430
and make it use clank tools instead of the regular
compilers and i'm not is

312
00:23:13,430 --> 00:23:19,270
your code and then we'll just emits several
each stay all male reports telling you

313
00:23:19,270 --> 00:23:21,290
about all sort of different bugs

314
00:23:22,690 --> 00:23:27,970
so i analyse a few of you know projects
from the dog you know on

315
00:23:27,970 --> 00:23:34,060
but hard to see how they would react fifty
static analyser and what sort of

316
00:23:34,060 --> 00:23:40,070
but we could we could find so i just put it on the web and

317
00:23:40,070 --> 00:23:45,070
i have done for just a few that i was
seeing people talking about you

318
00:23:45,070 --> 00:23:48,910
know other talks and i chose a few
projects just to show we will be

319
00:23:48,910 --> 00:23:50,070
how does it works

320
00:23:50,910 --> 00:23:51,690
so

321
00:23:52,310 --> 00:23:57,250
for example i put it on blade see
how the source code of we use

322
00:23:57,250 --> 00:24:02,800
regarding the buttons and but at least
bugs that this data can alike and five

323
00:24:02,800 --> 00:24:06,540
and i found that it's very clean you
don't hide it feel like average like

324
00:24:06,540 --> 00:24:10,880
a few that for is of no pointers
some money on the on the cal

325
00:24:10,880 --> 00:24:13,630
i argument that is but it's

326
00:24:14,320 --> 00:24:18,550
i find it very clean compared to
other projects i've run into

327
00:24:19,270 --> 00:24:22,090
so you can have an idea for example

328
00:24:22,660 --> 00:24:26,950
that's part is actually not a problem but
it's just something that you could avoid

329
00:24:26,950 --> 00:24:30,100
so you could have like a

330
00:24:30,700 --> 00:24:34,750
and a bit is a bit smarter code
and bit faster code and it keep

331
00:24:34,750 --> 00:24:36,120
track self that's all

332
00:24:36,730 --> 00:24:40,040
what's you see this is like a next email report and

333
00:24:40,700 --> 00:24:45,160
you can click on that several different
that assigned a minutes you can if you

334
00:24:45,160 --> 00:24:49,380
go there you can you can actually
if you can on the link you can

335
00:24:49,380 --> 00:24:55,040
actually see the full report and just go
around and see the types of whatever

336
00:24:55,040 --> 00:25:00,260
so for example for a random that assignment
in late it will just show you

337
00:25:00,260 --> 00:25:02,630
all the variables are sleaze

338
00:25:03,040 --> 00:25:09,230
is never read after this attribution so
there is there is no point in just

339
00:25:09,230 --> 00:25:13,730
doing this you can just remove this code
and probably make your code a bit

340
00:25:13,730 --> 00:25:14,190
faster

341
00:25:14,690 --> 00:25:19,900
it can actually sometimes be a false positive
because sometimes you may never it may

342
00:25:19,900 --> 00:25:25,840
not perfectly reasonable what the function is
returning but it generally works really well

343
00:25:26,390 --> 00:25:28,620
so that's one of the example for late

344
00:25:29,440 --> 00:25:35,360
i also relative to G streamers should be streamer
and that's for this is interesting

345
00:25:35,360 --> 00:25:41,220
because of all the of all the projects
i run into that you streamer and

346
00:25:41,220 --> 00:25:46,420
the give to get i mean you think a was
one that have like division

347
00:25:46,420 --> 00:25:50,780
by zero so i found like seven divisible
by zero in G stream or so

348
00:25:50,780 --> 00:25:54,890
if you want to see the report to
see how it generates how we it

349
00:25:54,890 --> 00:25:56,270
shows you the bug

350
00:25:56,910 --> 00:26:01,090
it's very cool because for example if you show they steps

351
00:26:01,490 --> 00:26:06,570
and it show you reach break it to choose
getting to that point and reach

352
00:26:06,570 --> 00:26:11,390
sort of condition it assume to take the break
so for example in this case

353
00:26:13,440 --> 00:26:19,220
it will select the first hearing dysfunction
it can see that the base that

354
00:26:19,730 --> 00:26:23,820
because of the limitation of the function
you can also click on that and see

355
00:26:23,820 --> 00:26:28,320
the implementation of the function
it's a base that may be zero

356
00:26:28,700 --> 00:26:35,200
and if you follow the cold assuming for
example that's all is a greater equal

357
00:26:35,200 --> 00:26:40,700
then me that will could yell the a division
by zero in your code role

358
00:26:41,480 --> 00:26:46,340
so it's good to find all simple stuff that
sometimes just you like really weird

359
00:26:46,340 --> 00:26:48,300
bugs in the little what's happening

360
00:26:50,410 --> 00:26:53,850
so i also minutes for the evolution data server

361
00:26:54,310 --> 00:27:00,260
because they stack analyser can also sure we
were sick of problems that it considered

362
00:27:00,260 --> 00:27:02,990
like a security issues so for example

363
00:27:03,770 --> 00:27:09,250
here we have this are you sure with
the safety you idea so i was

364
00:27:09,250 --> 00:27:12,250
like well so this is evolution
data server you have like the

365
00:27:12,970 --> 00:27:17,710
a security issue with the a very important
function that mainly true

366
00:27:18,320 --> 00:27:20,790
reflects collation so i just went there

367
00:27:21,370 --> 00:27:25,150
just see what was happening but if
you could be able to say that this

368
00:27:25,150 --> 00:27:29,620
at E Y D is just should before they
actually set you might be that's

369
00:27:29,620 --> 00:27:35,970
considered dangerous so this is actually a false
positive because you already look it before

370
00:27:35,970 --> 00:27:41,210
so you were you were calling it again without
checking what it retards because we're

371
00:27:41,210 --> 00:27:43,250
ready check before what was returned

372
00:27:46,470 --> 00:27:52,180
so and i also run into should be
okay to see how much average you

373
00:27:52,180 --> 00:27:55,230
will be your then actually that was a bunch of them

374
00:27:55,530 --> 00:27:59,470
and they're probably can be more if it
if they static analyser can be told

375
00:27:59,470 --> 00:28:05,360
to reason about some constructs of but kitty
because it has it uses like really

376
00:28:05,360 --> 00:28:07,180
you mohawk and stuff like that

377
00:28:07,870 --> 00:28:11,890
so but it's just good to find simple and

378
00:28:12,340 --> 00:28:14,040
it just straightforward stuff so

379
00:28:16,180 --> 00:28:17,940
can dispatch quickly

380
00:28:19,550 --> 00:28:21,760
so this is the your model we have like

381
00:28:22,340 --> 00:28:23,330
thirty three for

382
00:28:24,440 --> 00:28:29,530
but i've but lot of them are actually
really bugs just the logic at first

383
00:28:30,880 --> 00:28:32,550
probably security issues

384
00:28:38,780 --> 00:28:41,370
do to another computer user and i mean

385
00:28:42,910 --> 00:28:44,030
just to analyser

386
00:28:44,600 --> 00:28:48,770
i don't know i look it up i found
some people that running to right

387
00:28:48,770 --> 00:28:51,360
running on V but i didn't see the output

388
00:28:52,210 --> 00:29:00,390
also decaf all some blocks same but people
or not like just display there i

389
00:29:00,390 --> 00:29:02,650
mean the book another graphical computes

390
00:29:03,180 --> 00:29:07,750
like you to your you know all i
don't know i don't look at i

391
00:29:07,750 --> 00:29:12,740
think it if L at least the developers
i know from yourself here fell there

392
00:29:12,740 --> 00:29:17,060
quite they like link in and they use
it in their products but i don't

393
00:29:17,060 --> 00:29:19,840
think i don't know if they use it like on your box

394
00:29:20,140 --> 00:29:21,310
and stuff like that

395
00:29:21,710 --> 00:29:22,250
okay

396
00:29:25,600 --> 00:29:29,420
so i think we have the descent advisors

397
00:29:31,180 --> 00:29:32,810
this any factors are actually

398
00:29:35,180 --> 00:29:40,070
for relative also have it on T C is
just actually you can reason about

399
00:29:40,070 --> 00:29:44,110
memory access and this that's regarding addresses

400
00:29:45,040 --> 00:29:49,910
in the rerun time it's not a it's not
i'm ecstatic cannot is anymore but

401
00:29:49,910 --> 00:29:54,900
it's the libraries that you can link together
with circle that will work just a

402
00:29:54,900 --> 00:29:59,950
bit like alright for example and will
do you like dynamic found it works

403
00:30:00,480 --> 00:30:03,520
so for example D we have the senate by there

404
00:30:04,330 --> 00:30:11,710
which basically checks for out of a lexus
in any type of memory and also

405
00:30:11,710 --> 00:30:13,610
for comments for you have verse

406
00:30:14,160 --> 00:30:19,660
the those types of ever may not be sometimes
on might be static analyser so

407
00:30:19,660 --> 00:30:27,110
this limitation on using the like dynamically
can you better results so i didn't have

408
00:30:27,110 --> 00:30:30,660
like enough time to run to the all those
products like a did misplaced i

409
00:30:30,660 --> 00:30:36,250
can a lighter but i relatively and
you it and i couldn't find maybe

410
00:30:37,260 --> 00:30:43,100
runtime errors made i didn't explored those
problems and of because i don't know like

411
00:30:43,100 --> 00:30:49,140
the corner cases that would you like can try
can probably reach strange golden but

412
00:30:50,400 --> 00:30:53,740
they look at it around did and the them exploded anything

413
00:30:54,680 --> 00:30:56,830
and we also have the members and it either

414
00:30:57,430 --> 00:31:01,480
which is like a just a this is more
like o'brien actually a you will

415
00:31:01,480 --> 00:31:03,980
the tech on the july reads

416
00:31:04,270 --> 00:31:08,550
all those tools it will have like a it
is lower your go down because

417
00:31:08,550 --> 00:31:13,350
it have like a runtime library in reasonable
your code and everything and i just

418
00:31:13,350 --> 00:31:20,800
used a G a huge to for a few products
in trying to link using

419
00:31:20,800 --> 00:31:23,800
the absolute bicycles memory it will break

420
00:31:25,250 --> 00:31:32,140
it make just running regular make after you
compile the final executable it will just

421
00:31:32,140 --> 00:31:38,080
run a few tests and will just like explode
because actually has and one of

422
00:31:38,080 --> 00:31:44,290
a naturalised reads and we'll just i couldn't
even like while using the G H

423
00:31:44,290 --> 00:31:50,720
B O because it was some underlies everything
in G D so it it's probably

424
00:31:50,720 --> 00:31:52,690
worth taking a look to see if it's

425
00:31:53,360 --> 00:31:57,480
some sort of false positive i don't
know i don't believe but

426
00:31:57,970 --> 00:32:00,730
just see what happens in if it's can prove

427
00:32:03,050 --> 00:32:04,450
but that's it is

428
00:32:06,160 --> 00:32:06,830
questions

429
00:32:16,910 --> 00:32:22,770
i just got and analyse it detect a situation
where you have in you know

430
00:32:22,770 --> 00:32:25,030
sickle and the

431
00:32:26,670 --> 00:32:30,160
condition that is just one is never modified inside

432
00:32:31,160 --> 00:32:37,440
and that's and those detect and this that happens
because for example or whatever and

433
00:32:37,440 --> 00:32:41,230
then forget to assign and it's in the variables mentions

434
00:32:41,990 --> 00:32:42,500
condition

435
00:32:43,470 --> 00:32:47,470
sorry i put your repeat is again
like within your everything

436
00:32:47,730 --> 00:32:51,680
so suppose you have a why do you new sequel

437
00:32:52,470 --> 00:33:00,470
it's a for example checks that one bearable
is greater than another in

438
00:33:01,240 --> 00:33:08,450
in the and then in the body all that
will you'll forget to assign and

439
00:33:08,450 --> 00:33:13,520
use into any of those variables so
if it is true initially it will it

440
00:33:13,520 --> 00:33:18,890
will for ever and little we'll just for
a little and you also their static

441
00:33:18,890 --> 00:33:25,570
analysing cash such things like for the most
simple case can tell you that will

442
00:33:25,570 --> 00:33:30,200
probably run for ever something like
if it's a simple case can to i can

443
00:33:30,200 --> 00:33:34,770
i think you can probably write code
to try to break it and you know

444
00:33:34,770 --> 00:33:39,170
you can probably put some weird if we
gave that we couldn't figure out that

445
00:33:39,170 --> 00:33:40,220
part of people

446
00:33:41,970 --> 00:33:43,070
it will get more

447
00:33:53,070 --> 00:33:58,230
so i just have to make this comment opponent
quite funny that you had to

448
00:33:58,230 --> 00:34:00,090
excuse the use of C plus

449
00:34:01,140 --> 00:34:03,340
at the beginning of your talk in this crowd

450
00:34:03,880 --> 00:34:07,390
because when you don't look at it into your results

451
00:34:07,960 --> 00:34:12,310
that it looks like to type of the more
macro expansions that are not doing

452
00:34:12,310 --> 00:34:17,260
proper type checking because of programming
against you'll it using C

453
00:34:17,640 --> 00:34:21,990
and it's this program was done in C plus
it would probably be type checked

454
00:34:21,990 --> 00:34:23,990
and users would not be occurring

455
00:34:25,070 --> 00:34:26,840
so just to come

456
00:34:32,710 --> 00:34:36,470
i guess this is more of sort of administrative
issue but i actually found a

457
00:34:36,470 --> 00:34:39,380
bug in the clang static an analyser

458
00:34:40,950 --> 00:34:44,250
and i reported it and you very annoying
thing is it seems that L B

459
00:34:44,250 --> 00:34:49,210
M or clang are driven by apple so i just
got this mysterious link saying

460
00:34:49,210 --> 00:34:52,960
clone to the internal apple about tracker
and as far as i know it's still

461
00:34:52,960 --> 00:34:59,610
open with an unresolved status i'm curious if
like there's plans about getting it sort

462
00:34:59,610 --> 00:35:04,520
of away from the apple infrastructure "'cause" it's
disappointing that work that gonna report about

463
00:35:04,520 --> 00:35:07,650
there's just this unknown apple what track
at that i have no idea what's going

464
00:35:07,650 --> 00:35:14,000
on internally about so i don't really how
much capital controls all the M or

465
00:35:14,000 --> 00:35:16,540
if you could give some words on that

466
00:35:17,450 --> 00:35:20,010
is as a matter of fact i just

467
00:35:21,110 --> 00:35:24,960
one fact is that almost part of the developers
i hard by and also

468
00:35:25,620 --> 00:35:31,020
there probably do whatever it's probably
easier for them to track i don't know i

469
00:35:31,020 --> 00:35:32,700
don't have anything i don't know

470
00:35:49,460 --> 00:35:51,940
i think a for the goal for a nice

471
00:35:52,380 --> 00:35:53,860
i want to us

472
00:35:54,860 --> 00:36:01,530
i know that it's not really three
will to do like C equals ceiling

473
00:36:01,960 --> 00:36:03,610
for G C and

474
00:36:03,990 --> 00:36:08,650
you know will build or called with
ceiling can not with G C do have

475
00:36:08,650 --> 00:36:11,340
a tool to help developers with the stuff

476
00:36:12,370 --> 00:36:17,770
i couldn't understand it can you okay
so we can imagine you have your call

477
00:36:17,770 --> 00:36:22,620
or project and you are using G C
and right now we want to ceiling

478
00:36:22,620 --> 00:36:23,940
for as the compiler

479
00:36:24,290 --> 00:36:29,110
and i know it's not really trivial
to do this change you have a tool

480
00:36:29,110 --> 00:36:30,910
to help developers with this

481
00:36:31,830 --> 00:36:37,010
well i actually clay try to support
most part of what this is he does

482
00:36:37,010 --> 00:36:43,240
including the command line so you should
expect that just changing the G C driver

483
00:36:43,240 --> 00:36:48,800
for the clean driver it will work
it may not what it works for most

484
00:36:48,800 --> 00:36:52,790
part of the case a lesser implementing
some just like if your problem we are

485
00:36:52,790 --> 00:36:55,800
using not just a weird you know like
station that a lot of the end

486
00:36:55,800 --> 00:37:00,140
is likely is playing split it's a it's
not going to support then you may

487
00:37:00,140 --> 00:37:06,770
run into problems but regarding compiler flags
it try to support everything that this is

488
00:37:06,770 --> 00:37:12,030
you support just job to make sure
that it that you can just be a

489
00:37:12,030 --> 00:37:15,440
in place you can just replace in and it should work

490
00:37:16,470 --> 00:37:19,630
that that's how we think that it should be

491
00:37:20,550 --> 00:37:26,220
okay because i know that some constant whether
or not to build whole districts you

492
00:37:26,220 --> 00:37:26,890
link and

493
00:37:27,730 --> 00:37:28,680
to do some

494
00:37:29,140 --> 00:37:33,940
real hacks to make it happen to like
i don't know like fifty percent of

495
00:37:33,940 --> 00:37:35,440
pictures build them

496
00:37:35,860 --> 00:37:40,300
so i just want to us okay it just
like i told you maybe there

497
00:37:40,300 --> 00:37:44,980
are some X stations in the cold that clank
doesn't support but like regarding just

498
00:37:44,980 --> 00:37:49,630
the compiler flags most part of them are
supported or at least ignored if they

499
00:37:49,630 --> 00:37:55,750
don't make sense in how internally ldm the stuff
so you couldn't just like have

500
00:37:55,750 --> 00:38:03,290
your compilation broken because some specific
this is see flag is not there you know

501
00:38:03,950 --> 00:38:04,950
in inside

502
00:38:05,440 --> 00:38:06,050
okay

503
00:38:06,980 --> 00:38:13,720
regarding statistical analyses and to ask
this run on our cool or on actual some

504
00:38:13,720 --> 00:38:14,230
school

505
00:38:15,210 --> 00:38:15,840
sorry

506
00:38:16,710 --> 00:38:20,020
still to come once is this wrong i hope

507
00:38:20,960 --> 00:38:25,160
or not it's before it's on the C I C is form and during the

508
00:38:25,160 --> 00:38:25,800
problem

509
00:38:27,080 --> 00:38:31,370
so it's got like in the I R you already
lost much information and a

510
00:38:31,370 --> 00:38:33,730
lot more difficult to reason about

511
00:38:34,150 --> 00:38:36,000
so it's be up there

512
00:38:36,510 --> 00:38:38,610
it's before okay thanks

513
00:38:41,400 --> 00:38:42,700
i first thought licensee

514
00:38:44,260 --> 00:38:44,640
but

515
00:38:45,940 --> 00:38:49,770
so though the playing like the C library
accessing it gives you act

516
00:38:49,830 --> 00:38:54,190
as the C N X and everything i found it incredibly
restricting compared to what

517
00:38:54,190 --> 00:38:55,920
you get from the traditional C plus

518
00:38:56,490 --> 00:38:57,260
libraries

519
00:38:57,900 --> 00:39:01,720
is there one like any work being done to enable

520
00:39:02,150 --> 00:39:03,110
that stuff

521
00:39:03,610 --> 00:39:05,950
and is it going to

522
00:39:06,320 --> 00:39:09,010
be a little bit more convenient is
like right now if i wanna get a

523
00:39:09,010 --> 00:39:10,620
string for token and

524
00:39:11,680 --> 00:39:14,190
i get like a see a string and i have to go and get a

525
00:39:14,190 --> 00:39:15,290
C string from that

526
00:39:15,590 --> 00:39:17,520
is it it's a really inconvenient see

527
00:39:19,050 --> 00:39:22,620
i heard about a lot of complaints about that but

528
00:39:23,190 --> 00:39:28,220
any it's also because it changes a lot
right so i don't have any pi

529
00:39:28,220 --> 00:39:29,530
that they're trying to be you know

530
00:39:30,340 --> 00:39:33,840
so that's really i'm sure that if someone just i'd like is

531
00:39:36,330 --> 00:39:41,280
just a proposal will written one probably
they may consider it because

532
00:39:41,870 --> 00:39:44,120
it's something that it's far

533
00:39:44,290 --> 00:39:48,730
interest lot of people right but i have
seen all works in that direction

534
00:39:49,210 --> 00:39:53,450
nazi not they don't existed but at least
i'm not aware of it but i

535
00:39:53,450 --> 00:39:57,880
know it's a should like i see people complaining
about that for several years now

536
00:39:57,880 --> 00:40:02,300
so if we're going to start to learn
you know around playing in terms of

537
00:40:02,300 --> 00:40:05,130
like building you know static analysers encode checkers

538
00:40:05,700 --> 00:40:10,740
would it even less to instead try to
wrap the C plus libraries in the

539
00:40:10,740 --> 00:40:11,500
G object

540
00:40:12,050 --> 00:40:14,780
because it is really inconvenient after a all of the C plus

541
00:40:15,730 --> 00:40:17,640
we were mostly C programmers here

542
00:40:18,080 --> 00:40:23,060
i think we'll probably better just should
try to spend our lives the somehow ye

543
00:40:23,060 --> 00:40:27,600
pi right like with some maybe a guy
thing i don't know i it's probably

544
00:40:27,600 --> 00:40:30,360
easier "'cause" you could just use it directly see that all

545
00:40:31,110 --> 00:40:34,880
writing it around and it is not just like
receiver suppose busting it's not if

546
00:40:34,880 --> 00:40:37,970
we use G object and wrap that knows and we can use G I R

547
00:40:37,970 --> 00:40:42,110
python and what not to write fairly
complex scripts very fast

548
00:40:42,800 --> 00:40:46,010
but i don't know are you guys rapping
us you possible stuff and i can

549
00:40:46,010 --> 00:40:46,810
already

550
00:40:49,210 --> 00:40:54,590
i could i just don't know like i think
they're both way to solve it

551
00:40:54,590 --> 00:40:58,380
i don't know which one is better "'cause"
i have a big that place and

552
00:40:58,380 --> 00:41:01,670
love to tell you what i think would
be better at i don't use the

553
00:41:01,670 --> 00:41:03,160
it guy myself so

554
00:41:03,490 --> 00:41:08,400
i'm not aware like of all the trouble
that it mainly it's too but it's

555
00:41:08,400 --> 00:41:11,240
something that we can we can discuss
letter and take a look and i can

556
00:41:11,240 --> 00:41:15,720
give you feedback if i have anything to
compensate i guess my comment in mostly

557
00:41:15,720 --> 00:41:16,410
is that

558
00:41:16,850 --> 00:41:19,510
actually maintaining a stable at i

559
00:41:20,010 --> 00:41:20,830
would be huge

560
00:41:21,720 --> 00:41:23,410
of course agree

561
00:41:38,850 --> 00:41:44,540
you just you specifically major there are
back in the curious about other non X

562
00:41:44,540 --> 00:41:48,960
eighty six architectures like instant he
acts do you know what the status of the

563
00:41:48,960 --> 00:41:53,230
level of support is on that hi don't
think it table enough if it has

564
00:41:53,230 --> 00:41:55,340
i don't i the last time i look

565
00:42:07,670 --> 00:42:08,850
hundred or a four

566
00:42:09,160 --> 00:42:12,350
there L in back and still for every architecture that

567
00:42:12,750 --> 00:42:14,720
both fedora and realm support

568
00:42:15,440 --> 00:42:16,140
so

569
00:42:16,600 --> 00:42:17,990
the cabby us there

570
00:42:18,510 --> 00:42:21,330
powerpc thirty two and S three ninety

571
00:42:21,700 --> 00:42:22,320
not us or not

572
00:42:23,620 --> 00:42:25,830
the sixty four bit power industry ninety work

573
00:42:26,490 --> 00:42:27,370
thirty two works

574
00:42:27,910 --> 00:42:28,480
by then

575
00:42:28,830 --> 00:42:30,670
i expect that dorm sixty four stuff work

576
00:42:32,090 --> 00:42:33,560
X eighty six maybe six people

577
00:42:35,050 --> 00:42:35,730
what else is there

578
00:42:36,840 --> 00:42:39,670
it has more back-ends and that actually there's

579
00:42:39,760 --> 00:42:42,130
there's a the backend for our six hundred

580
00:42:42,950 --> 00:42:46,660
and later at and gpus there's a back
and forth in called P C X

581
00:42:46,660 --> 00:42:47,770
which is what people are using

582
00:42:48,610 --> 00:42:50,230
sort of common i are

583
00:42:50,380 --> 00:42:51,230
opencl

584
00:42:52,000 --> 00:42:55,140
and a couple of other architectures we don't have to work

585
00:42:55,900 --> 00:42:56,740
or like that

586
00:42:56,870 --> 00:42:57,710
textile and

587
00:42:58,180 --> 00:42:59,200
and then that'd chips

588
00:43:00,940 --> 00:43:05,840
there in varying stages of quality and you
find occasionally there's like jen go you

589
00:43:05,840 --> 00:43:09,980
feel serialise this instruction correctly
but they really much past

590
00:43:11,650 --> 00:43:15,890
three to three is far more consumable in this
respect than three that's you was

591
00:43:15,890 --> 00:43:16,680
three that's it was missing

592
00:43:17,030 --> 00:43:20,180
was missing both idea was a power and see and systems E

593
00:43:26,900 --> 00:43:27,540
and market

594
00:43:29,990 --> 00:43:34,370
you only one of you just to free
to talk of that's about ldm and

595
00:43:34,370 --> 00:43:34,980
playing

596
00:43:35,570 --> 00:43:36,190
everything

597
00:43:36,980 --> 00:43:37,270
i think

