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