0:00:10so hi everyone
0:00:12i'm here to talk to be about clay of you have and you know it
0:00:17may look at be unrelated thought you guys are going to see the collection later
0:00:22that
0:00:23so my patient here is tricks plan to be about what's lda and what we
0:00:29what the first of all better technologies about
0:00:32and i hope of my patient he's not to get you into compilers because
0:00:37we just had lunch and you guys may fall asleep well talking about like the
0:00:41level stuff i don't know people usually don't the like very much to go each
0:00:45of those details so i'm trying to be as much as possible in some sort
0:00:51of a high level abstractions so you guys can just you how clinging all of
0:00:54it works and that's the jitter janeiro i you don't want to best you guys
0:00:59how it works
0:01:02so first of all what tell you know
0:01:06so i'll here is the name of the whole a whole wired infrastructure which is
0:01:10composed by the front end and i are and
0:01:16several tools to the meeting i think we call for back a
0:01:20it has a similar it is the same very has that you anything side
0:01:25and we call the whole framework alvin but ldm is also the name of the
0:01:31I R level of this compiler
0:01:35and it's also the name we give to the bit school which is actually the
0:01:39same as a byte code but in the elephant word we world we call it
0:01:44a bit school
0:01:46so with all the M you can drive like static compilation just as you know
0:01:51the U C so for example you can a regular com one line that one
0:01:56will be using D C you can you should the same what would like but
0:01:59just replace tecc bike lane and it should you use the same results
0:02:06so for example of for a C source code
0:02:10you passes through playing and you can it meets that direct executables because it has
0:02:16an internal simpler board can also emit regulars simplifies in you can pass can pass
0:02:21it through to be know choose and have your regular object files for your actor
0:02:27besides that you can use it as some amount of the couple tools so for
0:02:34example you can people know for the C code you just going should be L
0:02:38V M I R which you like to do before we call it call and
0:02:43from the bit code you can do several different types of manipulations you can run
0:02:47optimizations only but only be a scroll you can it be a simplify is you
0:02:52can emit object files
0:02:55you can link bit go together is you have all sorts of operations you can
0:02:58do on the L V M I R
0:03:02so
0:03:04in the example well we generated for example i are using the claim and then
0:03:09we can run several different optimizations and pass it to L C to which is
0:03:14that do we used to emit i simply an object files
0:03:18so
0:03:20every part in a lot of em have a library so you have like specific
0:03:24tools which you specific libraries and this way you can now only use whatever you
0:03:30want you can she beat called for example and then you can compile it to
0:03:34your some backtracked or the way you want using optimizations you want so it's good
0:03:40"'cause" you can do several tricks by decoupling the compiler parts
0:03:47so like you sylvia
0:03:50first of all it's open source
0:03:52and as i believe i think it's good you know it's good because we can
0:03:58have several options it's not here about being better dingy see it's just a different
0:04:04option it has different features and different interesting problems it solves that it makes a
0:04:10good choice to use
0:04:12so it's just about one more option
0:04:15that can be used to they have a lot several different stuff using the opencal
0:04:20by
0:04:21so it's easy it's quite easy to get stuff inside tell em if you need
0:04:26to tweak the compiler in it's not a stick a very steep learning curve it's
0:04:31easy to use it as a library to contribute to the project in the communities
0:04:35very receptive to newcomers so
0:04:38it's quite exciting to be contributing to all the
0:04:42so decide that since we have several different the compilers the composites ever different faces
0:04:48and libraries
0:04:49it's you can do optimizations in all phases of the compiler so as you see
0:04:56those you can you can compilation during compiled it i'm just running a regular optimizations
0:05:01in the I R you can do it only time just running because together all
0:05:07i'll tell more about that later indicated will run time has support for profiling so
0:05:12you can the profiling oriented optimization
0:05:15and besides that there's like a tons of and i think that's is in transformation
0:05:19spaces with will label is the bit going to several different ways and make it
0:05:24suitable for whatever type of optimizations someone wants to play with
0:05:30so decide that the clay from can solve the end which is also the name
0:05:36for the for the driver it has lots of libraries implementing tools to automatically find
0:05:45bugs and stuff like that so besides using it as a compiler you can use
0:05:49it
0:05:50as tools to check for the correctness of your code i'm giving more examples about
0:05:55that a bit later in the top
0:05:58so just be more specific about that also you can actually understand a bit of
0:06:03the idea
0:06:05so it's written in C plus i know
0:06:10people may like C plus but
0:06:13for L V M it's a quite good language should have a lot the compiler
0:06:18and using the abstractions and everything like that as i told you before it's really
0:06:24you can you have several different libraries and can use the library's in the way
0:06:29you want to use them
0:06:31and i already told about this
0:06:34so the front end is basically you can use a front end which is this
0:06:39is team based
0:06:40with the with the new support for not quite new but with the addition of
0:06:46logan supporting tecc you can usually this is see to generate lda my are and
0:06:51then use the regular libraries and tools well from ldm to actually generate object code
0:06:58or executable code so you can actually use D C shouldn't today of in my
0:07:02are in make good use of both optimizations of this is from this is you
0:07:07not relations from L V M
0:07:09so it the plugging this called recognise then you can just run it through D
0:07:13C
0:07:15and you get all the my are in didn't can just use regular ldm tools
0:07:19so but besides that we have the plane compiler which is also but to this
0:07:24library approach
0:07:27it's gonna because since the design is a bit watering you don't have like to
0:07:31struggle with generating possible partners is everything dynamic if you want to generate binaries forearm
0:07:37for example you just need to best the right the right not in the command
0:07:42line and you get like and i'm binary you don't have to
0:07:46of course we need to have like our libraries and all that the older change
0:07:51support around it but if you if you have it it's just a matter of
0:07:56changing than all which are actually want to generate code for
0:08:00so it this is it would think about like the very decompose it live approach
0:08:07of L V M
0:08:09decide that
0:08:10elvis also for it meeting goodbye acknowledges of water cold so well especially when you're
0:08:17programming C plus in your messages templates and i think is when things get really
0:08:22dirty
0:08:24i will i rather use going to school while stuff in C plus then using
0:08:30D C when i want to understand a bit better of what's happening with really
0:08:35deep compilation everything stuff
0:08:38because it really provides agnostics and you can holding the three up and see whatever
0:08:44your marker is a screen up stuff or whatever your complete is expanding in weird
0:08:49ways
0:08:51and besides that it also have a static analyser
0:08:54which is really good choose to check up on the correctness of circled to helping
0:09:00automatically finding bugs
0:09:02so all he static analyser be
0:09:07in the
0:09:08in the end of the talk
0:09:10sites that's like i told you before the optimizations yelled game to have like since
0:09:16we have a positions in the whole lifetime of the compiler we can apply appositions
0:09:21should the I R which is the most obvious place to put the opposition's because
0:09:25we don't have to write musicians a specific to a target or specific drawback and
0:09:30so every optimizations that it it's targeting dependent we can place here so for example
0:09:36if we want if you wanna have some sort of a generic vehicle that we
0:09:42can for assortment more specific architecture be goal we can apply optimizations here and leave
0:09:49it there are just so when we're a beating for certain target we can
0:09:54apply several different musicians like for example you can apply appositions for vectorisation for X
0:10:02eighty six for example
0:10:04and then whenever you have the big gold on your C P U if you're
0:10:07see if you only have sse it can and we have to see that maybe
0:10:11X you can use more stuff to reason about side of vectors and we ate
0:10:15a vax properly
0:10:19sites that we have the L C to which is the tool of responsible for
0:10:23actually a invoking be back-ends it has it uses the I R and think boot
0:10:30and it outputs a saintly files or object files the element has it has both
0:10:37it has to should to both assemble and disassemble cool and we also have a
0:10:41parser so for example when you're writing see cool then you use a line call
0:10:47it actually involved the same parser to parse the line as it in can reason
0:10:51about the assembly code you wrote inside the C code and give your proper diagnostics
0:10:58and are actually you can write optimizations that will just change instructions inside the i'd
0:11:03like or just reasonable constraints that you were that you didn't
0:11:08you were you couldn't reason about because the code was complex you can also reasons
0:11:14id a line you do proper feedback
0:11:19so you can also you can also use a simplify wasn't as input and generate
0:11:24object files and delete them together you can you can play around in the way
0:11:27you want
0:11:31so all that we have that we are well so have that you'd compiler a
0:11:35difficult father's side that supportive for several we are factors
0:11:40and we have the T L T O which is use it to really be
0:11:44goals together
0:11:46and like i told you guys we have a similar in this is samplers and
0:11:50several different tools to play with object code and mess around with the low level
0:11:55stuff
0:11:57so how does that relate to you norm at all
0:12:00so that's what i like to introduce and give you how can get all can
0:12:07benefit from can you know V M how can start using it to i don't
0:12:11know we proving in several different ways because there are lots of to all their
0:12:16a lot of those you know them that can be used in get on to
0:12:19improve development and stuff
0:12:22so first of all gonna more and he was this L of them incline libraries
0:12:27it some projects
0:12:28i don't know much if there are more than to products using it but ones
0:12:33are the ones that i look it up and i found that using like of
0:12:36them five which i was already aware of that and we have the developer over
0:12:41there someone what stop with him
0:12:44which is actually a softer in their
0:12:48using L V M whenever you don't have like a specific you to the graphics
0:12:53it can fall back to using whatever your C P U has to process that
0:12:59and it's a good fallback
0:13:02besides that i saw that there's a plug in called you did go to system
0:13:07that was that will use going to just give hints to do should someone of
0:13:13programming stuff and giving like whoever's during the program like a V C idea I
0:13:19Ds do
0:13:23it seems you know it was like an umbrella for several projects
0:13:28i was i was i was playing around to see i was playing around with
0:13:34the in the deep repositories
0:13:36and with the an on tools and i step into the jhu and always three
0:13:42in all the you bought stuff that it it's meant to be supported and i
0:13:48think like why not they can use the static analyser for example or just you
0:13:54the whole called bayes using clay in see what type of differences it can make
0:13:59in the in the final executables it may be that for some by there is
0:14:04would be slower than you see but for someone will be better i don't know
0:14:08it's just something that i think it should be given that right
0:14:12so i think for example jhu to noise three can benefit from trying to use
0:14:17cling
0:14:19so other stuff that i think that big you know project can benefit from out
0:14:24from ldm sport we are back in for example for running at you know three
0:14:29own on a nexus seven it will be a good try to go by using
0:14:33playing
0:14:34besides that using elevator bell till choose to have like smaller binary final binaries which
0:14:40will explain a static analyser in some tool that you can dynamically explore several different
0:14:47types of bugs like the address and the members any tight
0:14:51so you're back in a all of them has a very
0:14:54i stable are back and which emits really good quality code it's easy it apple
0:15:01uses it for a compiling now us implications in the X gold you can excellent
0:15:06is all these and claim and uses they are back and to generate go for
0:15:10them so it's pretty stable it's pretty optimised
0:15:14and i it also supports the most recent processors of all the army seven of
0:15:20family of arm processors
0:15:23and
0:15:24besides that for example of them by would use the are back antigen you already
0:15:31does if you want to generate article but you could it could be for example
0:15:36more optimised so if you think in the case that if you want for example
0:15:40to have been on running on our devices with all the specific gpus for example
0:15:46we would use a just regular vector restrictions from the are instruction set like neon
0:15:52to generate that gold in a better called in actually has a good fallback for
0:15:57soft a rating for example
0:16:02i'm not i think is the all the melody in a regular compiler when you're
0:16:06linking stuff usually come from sickle we generate object goals for each different source you
0:16:13have and then in the end your link all of them together or you really
0:16:17on the from actually and then put it on the final executable later that's
0:16:21that that's how easily a compiler full works
0:16:25but with all the and the
0:16:27and the beats code
0:16:30representation what okay the ways that you can force it me to be it's colds
0:16:35just invoking calling in and asking it all don't in the old radicals you directly
0:16:41just can be bit codes
0:16:43after that you can mix albeit chords together
0:16:47and have a final module that final module you can actually apply several different types
0:16:54of oppositions like to go to before including link time up musicians so you so
0:16:58you can remove several functions that are not being used inside that model because it
0:17:02can reasons use everything kids inside there so you can use liking triple sitters stuff
0:17:07what mutations in
0:17:09actually can a lot of stuff do we did and then you just invoke the
0:17:12backend for the final module and you have your final executable so this sort of
0:17:17like opening the couple reasoning in the compiler
0:17:22not use of is actually we use pretty good code so i think probably some
0:17:28project singing on can
0:17:31just we can a bit of the makefiles to just an array of vehicles for
0:17:36instead of object files and then the ring linking link always goes together apply link
0:17:42time optimizations i don't know it maybe can benefits lots of projects i would give
0:17:47it a try
0:17:50so they stack analyser it's basically
0:17:55a source code processing to based on playing that will try to reason about your
0:17:59code and give you information about if you have one in your old what's our
0:18:04alternative like not only but you stuff that you could have not done in the
0:18:09call that will improve it or just remove use this is stuff that you're doing
0:18:13up role so it's really good because
0:18:16it actually conceded time debugging later could it can catch all sorts of but it's
0:18:21not perfect but it helps a lot
0:18:24so and you can also all to you can also do it use it for
0:18:29all
0:18:30the some sort of all but i think that
0:18:35although much as they should you has you can do to use that and that's
0:18:39why i think it's good to put it in stuff like you bought because whenever
0:18:44you already have should you the whole three of you projects at the same time
0:18:49you can just do it using they static analyser images
0:18:54have a bunch of information of every project yours you're compiling and you can use
0:18:59that to somehow track regressions just see if some sort of a critical bugs are
0:19:07not happening between one revision another are at least before releasing stables a stable releases
0:19:14you can run them and see if there's nothing critical be released to the public
0:19:24since it's library basic is just a matter of
0:19:29importing use actually use the library any let major on that
0:19:47you have the
0:19:49so i wanted to make a plug and write checks us you're passing the correct
0:19:53i call back okay you are it's
0:19:55how difficult would it be
0:19:59i can tell you for sure like
0:20:04it will be much difficult because already have all of those you have already have
0:20:09analysis that will all come to it's three years three yes the trees
0:20:14so you could probably use call that is already there to do whatever you want
0:20:18a specific
0:20:20you know so it shouldn't be difficult because i have a framework for doing that
0:20:24it's already there
0:20:27i don't i can tell you exactly how to do it
0:20:30but
0:20:32it it's not difficult
0:20:42i think right now you actually have to com pilot i i'm not sure if
0:20:47it if
0:20:48we have like this leave claim his stuff and we have like that the light
0:20:51stuff that you can actually write logins but for example for the specific type of
0:20:56plugging that you that you may like to right i don't know which is going
0:21:00to be the best place to implement a you know going to have like several
0:21:05blank we have right now three places that you can who came and implement analysis
0:21:10so some stuff you can just invoke your dynamic compiler analysis and we just best
0:21:16way but for some other stuff to have to hack into the compiler to do
0:21:19it
0:21:21that's what i'm saying just you can have several who points
0:21:24but not all not all of them you can just
0:21:27best looking as a parameter
0:21:32it could be
0:21:34i don't know we can you can see that later after the top
0:21:38right
0:21:40but we have like several different
0:21:43interface is that we can plug in allows incline
0:21:49so this that equaliser also helps with improving called quality seashore there like
0:21:55having the a direct feedback of what sort of mistakes are doing their cool it
0:22:00also has false positives because it's not a perfect also sometimes it will say that
0:22:05it
0:22:06it looks like it has a but it's a it is not the problem is
0:22:12that the compiler is just not smart enough to see that you already checked something
0:22:17before in section default one but in general we it works when you can also
0:22:21report bugs in telephone this sort these improve this
0:22:27or send a pitcher self improvement
0:22:29and of course the compilation is a lot slower using the static analyser but you
0:22:35shouldn't be using it to produce like of production code it was like do those
0:22:39separate compilations so you can see your analysis
0:22:43and on impact on your billboard time and stuff like that
0:22:48so tuesday static analysers three simple once you have blinks at all well you have
0:22:53like package for going to i don't know about fedora but or you haven't it
0:22:57ship the second you tool and based can you tool just you just that said
0:23:02before called here and before make it will cup and just hijacking them you know
0:23:08and make it use clank tools instead of the regular compilers and i'm not is
0:23:13your code and then we'll just emits several each stay all male reports telling you
0:23:19about all sort of different bugs
0:23:22so i analyse a few of you know projects from the dog you know on
0:23:27but hard to see how they would react fifty static analyser and what sort of
0:23:34but we could we could find so i just put it on the web and
0:23:40i have done for just a few that i was seeing people talking about you
0:23:45know other talks and i chose a few projects just to show we will be
0:23:48how does it works
0:23:50so
0:23:52for example i put it on blade see how the source code of we use
0:23:57regarding the buttons and but at least bugs that this data can alike and five
0:24:02and i found that it's very clean you don't hide it feel like average like
0:24:06a few that for is of no pointers some money on the on the cal
0:24:10i argument that is but it's
0:24:14i find it very clean compared to other projects i've run into
0:24:19so you can have an idea for example
0:24:22that's part is actually not a problem but it's just something that you could avoid
0:24:26so you could have like a
0:24:30and a bit is a bit smarter code and bit faster code and it keep
0:24:34track self that's all
0:24:36what's you see this is like a next email report and
0:24:40you can click on that several different that assigned a minutes you can if you
0:24:45go there you can you can actually if you can on the link you can
0:24:49actually see the full report and just go around and see the types of whatever
0:24:55so for example for a random that assignment in late it will just show you
0:25:00all the variables are sleaze
0:25:03is never read after this attribution so there is there is no point in just
0:25:09doing this you can just remove this code and probably make your code a bit
0:25:13faster
0:25:14it can actually sometimes be a false positive because sometimes you may never it may
0:25:19not perfectly reasonable what the function is returning but it generally works really well
0:25:26so that's one of the example for late
0:25:29i also relative to G streamers should be streamer and that's for this is interesting
0:25:35because of all the of all the projects i run into that you streamer and
0:25:41the give to get i mean you think a was one that have like division
0:25:46by zero so i found like seven divisible by zero in G stream or so
0:25:50if you want to see the report to see how it generates how we it
0:25:54shows you the bug
0:25:56it's very cool because for example if you show they steps
0:26:01and it show you reach break it to choose getting to that point and reach
0:26:06sort of condition it assume to take the break so for example in this case
0:26:13it will select the first hearing dysfunction it can see that the base that
0:26:19because of the limitation of the function you can also click on that and see
0:26:23the implementation of the function it's a base that may be zero
0:26:28and if you follow the cold assuming for example that's all is a greater equal
0:26:35then me that will could yell the a division by zero in your code role
0:26:41so it's good to find all simple stuff that sometimes just you like really weird
0:26:46bugs in the little what's happening
0:26:50so i also minutes for the evolution data server
0:26:54because they stack analyser can also sure we were sick of problems that it considered
0:27:00like a security issues so for example
0:27:03here we have this are you sure with the safety you idea so i was
0:27:09like well so this is evolution data server you have like the
0:27:12a security issue with the a very important function that mainly true
0:27:18reflects collation so i just went there
0:27:21just see what was happening but if you could be able to say that this
0:27:25at E Y D is just should before they actually set you might be that's
0:27:29considered dangerous so this is actually a false positive because you already look it before
0:27:35so you were you were calling it again without checking what it retards because we're
0:27:41ready check before what was returned
0:27:46so and i also run into should be okay to see how much average you
0:27:52will be your then actually that was a bunch of them
0:27:55and they're probably can be more if it if they static analyser can be told
0:27:59to reason about some constructs of but kitty because it has it uses like really
0:28:05you mohawk and stuff like that
0:28:07so but it's just good to find simple and
0:28:12it just straightforward stuff so
0:28:16can dispatch quickly
0:28:19so this is the your model we have like
0:28:22thirty three for
0:28:24but i've but lot of them are actually really bugs just the logic at first
0:28:30probably security issues
0:28:38do to another computer user and i mean
0:28:42just to analyser
0:28:44i don't know i look it up i found some people that running to right
0:28:48running on V but i didn't see the output
0:28:52also decaf all some blocks same but people or not like just display there i
0:29:00mean the book another graphical computes
0:29:03like you to your you know all i don't know i don't look at i
0:29:07think it if L at least the developers i know from yourself here fell there
0:29:12quite they like link in and they use it in their products but i don't
0:29:17think i don't know if they use it like on your box
0:29:20and stuff like that
0:29:21okay
0:29:25so i think we have the descent advisors
0:29:31this any factors are actually
0:29:35for relative also have it on T C is just actually you can reason about
0:29:40memory access and this that's regarding addresses
0:29:45in the rerun time it's not a it's not i'm ecstatic cannot is anymore but
0:29:49it's the libraries that you can link together with circle that will work just a
0:29:54bit like alright for example and will do you like dynamic found it works
0:30:00so for example D we have the senate by there
0:30:04which basically checks for out of a lexus in any type of memory and also
0:30:11for comments for you have verse
0:30:14the those types of ever may not be sometimes on might be static analyser so
0:30:19this limitation on using the like dynamically can you better results so i didn't have
0:30:27like enough time to run to the all those products like a did misplaced i
0:30:30can a lighter but i relatively and you it and i couldn't find maybe
0:30:37runtime errors made i didn't explored those problems and of because i don't know like
0:30:43the corner cases that would you like can try can probably reach strange golden but
0:30:50they look at it around did and the them exploded anything
0:30:54and we also have the members and it either
0:30:57which is like a just a this is more like o'brien actually a you will
0:31:01the tech on the july reads
0:31:04all those tools it will have like a it is lower your go down because
0:31:08it have like a runtime library in reasonable your code and everything and i just
0:31:13used a G a huge to for a few products in trying to link using
0:31:20the absolute bicycles memory it will break
0:31:25it make just running regular make after you compile the final executable it will just
0:31:32run a few tests and will just like explode because actually has and one of
0:31:38a naturalised reads and we'll just i couldn't even like while using the G H
0:31:44B O because it was some underlies everything in G D so it it's probably
0:31:50worth taking a look to see if it's
0:31:53some sort of false positive i don't know i don't believe but
0:31:57just see what happens in if it's can prove
0:32:03but that's it is
0:32:06questions
0:32:16i just got and analyse it detect a situation where you have in you know
0:32:22sickle and the
0:32:26condition that is just one is never modified inside
0:32:31and that's and those detect and this that happens because for example or whatever and
0:32:37then forget to assign and it's in the variables mentions
0:32:41condition
0:32:43sorry i put your repeat is again like within your everything
0:32:47so suppose you have a why do you new sequel
0:32:52it's a for example checks that one bearable is greater than another in
0:33:01in the and then in the body all that will you'll forget to assign and
0:33:08use into any of those variables so if it is true initially it will it
0:33:13will for ever and little we'll just for a little and you also their static
0:33:18analysing cash such things like for the most simple case can tell you that will
0:33:25probably run for ever something like if it's a simple case can to i can
0:33:30i think you can probably write code to try to break it and you know
0:33:34you can probably put some weird if we gave that we couldn't figure out that
0:33:39part of people
0:33:41it will get more
0:33:53so i just have to make this comment opponent quite funny that you had to
0:33:58excuse the use of C plus
0:34:01at the beginning of your talk in this crowd
0:34:03because when you don't look at it into your results
0:34:07that it looks like to type of the more macro expansions that are not doing
0:34:12proper type checking because of programming against you'll it using C
0:34:17and it's this program was done in C plus it would probably be type checked
0:34:21and users would not be occurring
0:34:25so just to come
0:34:32i guess this is more of sort of administrative issue but i actually found a
0:34:36bug in the clang static an analyser
0:34:40and i reported it and you very annoying thing is it seems that L B
0:34:44M or clang are driven by apple so i just got this mysterious link saying
0:34:49clone to the internal apple about tracker and as far as i know it's still
0:34:52open with an unresolved status i'm curious if like there's plans about getting it sort
0:34:59of away from the apple infrastructure "'cause" it's disappointing that work that gonna report about
0:35:04there's just this unknown apple what track at that i have no idea what's going
0:35:07on internally about so i don't really how much capital controls all the M or
0:35:14if you could give some words on that
0:35:17is as a matter of fact i just
0:35:21one fact is that almost part of the developers i hard by and also
0:35:25there probably do whatever it's probably easier for them to track i don't know i
0:35:31don't have anything i don't know
0:35:49i think a for the goal for a nice
0:35:52i want to us
0:35:54i know that it's not really three will to do like C equals ceiling
0:36:01for G C and
0:36:03you know will build or called with ceiling can not with G C do have
0:36:08a tool to help developers with the stuff
0:36:12i couldn't understand it can you okay so we can imagine you have your call
0:36:17or project and you are using G C and right now we want to ceiling
0:36:22for as the compiler
0:36:24and i know it's not really trivial to do this change you have a tool
0:36:29to help developers with this
0:36:31well i actually clay try to support most part of what this is he does
0:36:37including the command line so you should expect that just changing the G C driver
0:36:43for the clean driver it will work it may not what it works for most
0:36:48part of the case a lesser implementing some just like if your problem we are
0:36:52using not just a weird you know like station that a lot of the end
0:36:55is likely is playing split it's a it's not going to support then you may
0:37:00run into problems but regarding compiler flags it try to support everything that this is
0:37:06you support just job to make sure that it that you can just be a
0:37:12in place you can just replace in and it should work
0:37:16that that's how we think that it should be
0:37:20okay because i know that some constant whether or not to build whole districts you
0:37:26link and
0:37:27to do some
0:37:29real hacks to make it happen to like i don't know like fifty percent of
0:37:33pictures build them
0:37:35so i just want to us okay it just like i told you maybe there
0:37:40are some X stations in the cold that clank doesn't support but like regarding just
0:37:44the compiler flags most part of them are supported or at least ignored if they
0:37:49don't make sense in how internally ldm the stuff so you couldn't just like have
0:37:55your compilation broken because some specific this is see flag is not there you know
0:38:03in inside
0:38:05okay
0:38:06regarding statistical analyses and to ask this run on our cool or on actual some
0:38:13school
0:38:15sorry
0:38:16still to come once is this wrong i hope
0:38:20or not it's before it's on the C I C is form and during the
0:38:25problem
0:38:27so it's got like in the I R you already lost much information and a
0:38:31lot more difficult to reason about
0:38:34so it's be up there
0:38:36it's before okay thanks
0:38:41i first thought licensee
0:38:44but
0:38:45so though the playing like the C library accessing it gives you act
0:38:49as the C N X and everything i found it incredibly restricting compared to what
0:38:54you get from the traditional C plus
0:38:56libraries
0:38:57is there one like any work being done to enable
0:39:02that stuff
0:39:03and is it going to
0:39:06be a little bit more convenient is like right now if i wanna get a
0:39:09string for token and
0:39:11i get like a see a string and i have to go and get a
0:39:14C string from that
0:39:15is it it's a really inconvenient see
0:39:19i heard about a lot of complaints about that but
0:39:23any it's also because it changes a lot right so i don't have any pi
0:39:28that they're trying to be you know
0:39:30so that's really i'm sure that if someone just i'd like is
0:39:36just a proposal will written one probably they may consider it because
0:39:41it's something that it's far
0:39:44interest lot of people right but i have seen all works in that direction
0:39:49nazi not they don't existed but at least i'm not aware of it but i
0:39:53know it's a should like i see people complaining about that for several years now
0:39:57so if we're going to start to learn you know around playing in terms of
0:40:02like building you know static analysers encode checkers
0:40:05would it even less to instead try to wrap the C plus libraries in the
0:40:10G object
0:40:12because it is really inconvenient after a all of the C plus
0:40:15we were mostly C programmers here
0:40:18i think we'll probably better just should try to spend our lives the somehow ye
0:40:23pi right like with some maybe a guy thing i don't know i it's probably
0:40:27easier "'cause" you could just use it directly see that all
0:40:31writing it around and it is not just like receiver suppose busting it's not if
0:40:34we use G object and wrap that knows and we can use G I R
0:40:37python and what not to write fairly complex scripts very fast
0:40:42but i don't know are you guys rapping us you possible stuff and i can
0:40:46already
0:40:49i could i just don't know like i think they're both way to solve it
0:40:54i don't know which one is better "'cause" i have a big that place and
0:40:58love to tell you what i think would be better at i don't use the
0:41:01it guy myself so
0:41:03i'm not aware like of all the trouble that it mainly it's too but it's
0:41:08something that we can we can discuss letter and take a look and i can
0:41:11give you feedback if i have anything to compensate i guess my comment in mostly
0:41:15is that
0:41:16actually maintaining a stable at i
0:41:20would be huge
0:41:21of course agree
0:41:38you just you specifically major there are back in the curious about other non X
0:41:44eighty six architectures like instant he acts do you know what the status of the
0:41:48level of support is on that hi don't think it table enough if it has
0:41:53i don't i the last time i look
0:42:07hundred or a four
0:42:09there L in back and still for every architecture that
0:42:12both fedora and realm support
0:42:15so
0:42:16the cabby us there
0:42:18powerpc thirty two and S three ninety
0:42:21not us or not
0:42:23the sixty four bit power industry ninety work
0:42:26thirty two works
0:42:27by then
0:42:28i expect that dorm sixty four stuff work
0:42:32X eighty six maybe six people
0:42:35what else is there
0:42:36it has more back-ends and that actually there's
0:42:39there's a the backend for our six hundred
0:42:42and later at and gpus there's a back and forth in called P C X
0:42:46which is what people are using
0:42:48sort of common i are
0:42:50opencl
0:42:52and a couple of other architectures we don't have to work
0:42:55or like that
0:42:56textile and
0:42:58and then that'd chips
0:43:00there in varying stages of quality and you find occasionally there's like jen go you
0:43:05feel serialise this instruction correctly but they really much past
0:43:11three to three is far more consumable in this respect than three that's you was
0:43:15three that's it was missing
0:43:17was missing both idea was a power and see and systems E
0:43:26and market
0:43:29you only one of you just to free to talk of that's about ldm and
0:43:34playing
0:43:35everything
0:43:36i think