 Rymu'l'r Cymru i ni. Rydw i'r Llywodraeth yn gwneud y Llywodraeth Llywodraeth yn nodill iddyn nhw'n ein bod yn ôl yma. Rydyn ni'n siŵr i chihmmu a fyddwch i ddym ni'n glifion yng ngryng, rydyn ni'n mwyaf allu i dyfodol ui ffilusol sy'n gwneud y diolarch, oherwydd mae'r rhaid hyn yn amser gallwch i siŵr llwyddoedd gweithio'n gwneud hynny'n gallu mwynhau. Rydyn ni'n ymlaen i'r bwysig o nodllwyd dronwn yn gwneud yn gwneud hynny. If our retranslating is just strings, then, like Timmer has looked at before, it's even better for people to get to us. We are really using the get-takes PO format for where the translations from our system get converted to, and then they go into the translation system, and then they come back out of the translation system and get converted to our custom format. So we might as well just cut out the middleman there and use get-takes as our standard translation format. We use get-takes to extract translations, and then we need some way to provide those translations at one time, and those comes with a suitably licensed. It claims to be multi-threaded, properly threaded, unlike the standard get-takes. So it's a boost of the mutation of the IECarn V to load translations. So that looks very promising. We could use the standard PO format, somebody else's library to load it up to suitably licensed, and then that would give us, that would remove the blocks between us using DECARD, which is a website to show you what the dialogue you are translating looks like when you have translated it. So we need the theoretical, remove the blocks to implement DECARD so that translators can see what they're translating in the website. There are some practical problems there around the cost of widgets, but we can work on them. Like cost of widgets won't work in DECARD, Gleidwyr, but yes, that's where I'd like to get there. So that's, if we have standard fuel files and stuff, things like this on the screen just work. So if it works. So that's like the next step after the version is to remove all of that. Yeah, I think people say it's on the top. No, it's through YouTube. Well, I've tried the demo before and you get an integrated dialogue on the graphics of the theory box. Awesome. And it's an incremental way we can leave to that. Is this something we can do? Yeah, I haven't looked into it for the years, but I think we can do it an incremental way we can start with the smallest space, our C file, and just convert over one module, the smallest module, there as the demo. We'd have to get all the stuff building, because that's just a matter of building it. And with the smallest one over, there's a few practical things. I mean, it's straightforward. You know what to do with basic strings. We also had string lists inside of LibreOffice. I don't know. I read the documentation on GetTex that they do support stringless concept. It looks a little bit ugly, so we see how that looks in practice. But there's image lists. Do we really need to have image lists? Probably not. And that probably simplifies a lot if there was LibreOffice as well. And then images. But images are just URLs to the image, so that's not an issue either. But the only thing about URLs and images is that at the moment we extract them from SSC files, so that we cut down the amount of stuff that's in the icon teams that we bring out. So we move those URLs directly from the source code. We'd have to be extractive them, you know what I mean? So you would lose our ability to shrink down the icon teams based on detective body images that are actually used by a simple scan. So that's just some edge cases there. But I think it generally would be easier to go around and remove all of this translation. Sorry. Yes, I would like to ask, because from what I remember from the GetTex, it used to mean that it kept the image text inside finally. So I would like to ask if there's change or is it possible still to have some idea that would be in binary and you would have all in the English text outside of the binary, which would be more important one? Yeah, I think GetTex is using it. Why would we need English words outside? Because at the moment we ship our images together, so for the Libraffus perspective, what's the downside of having English in the binary? The size of the binary. Because at the moment, SRC has to do just all the three strings outside of the binary and when we have the line it's like 60 max for the I, IOS, then everything go by with accounts. Okay, that's a concern. So I don't know what's the, what's the way this take on GetTex if it is possible. We can hack it some way. We can provide the ID there and the image text as well. You're basically right as far as I know that even in the boost model, the English word stays in the binary. So yeah, you probably have to do some exhibition there. I'm confident that Dooblosh can create a template that will compile the pdf file. I know. Always know that there are translating resources and the size of the translating resources. The double becomes a translation set in the English string. So every m.mo5, national check 5, contain English and translate English. The mo5 contains actually English string. Yes. But for the fourth issue, it's kind of easy to drop it on with just a machining on the numberation value of the code. And that could be brought to the English version. Yeah, I kind of wanted to get away from that. I think most of the English strings for the diodes, I didn't have anything to do with the Wi-Fi, so we are talking about the strings, the messages. And what about the seeds that are coming from the XU? Yeah, that's nice to hear from. I mean, for example, gettxt has always backed up the Wi-Fi, so I wouldn't think it would be too hard to add another word to gettxt. Another scheme for extracting from our XU files. That's what I'd say you'd have to do. And as well as the XU files, also the various things like the desktop files would be covered. And then there are some windows, special transmissions for windows for the installer. You would let the files have to be used, and they'd have to be properly mined. They're sticking in the microphone, so do you have a microphone near the... No, I think it's no mic itself. The idea of the different mics would really go on. It's constantly ticking. Okay. There's my microphone. Yes, we can pause and reassemble. I'm sorry about the ticking noise. I can hear it. It is still ticking, so... I've turned it off. Oh, yes. It's still ticking. Maybe the G8 connected, because I've been started when quite a lot of times. Thank you. But anyway, let's put phyrite beads everywhere. This is an interesting idea. Let's just share the... Is it still ticking? Okay, you're going to get something. If you don't want to hear it, just come and sit up here. I'm going to say it. Okay, I'm concerned about size. I think to do it, we need to have a solution for that. Okay, why don't you hold that on top? Yes, so let's say that if we're looking at doing that, then we should have a size in binary, and then obviously the size of the resulting MO files as well. There's two different sizes there in terms of the translation being too large and then the actual binary potentially being too large because it's a story in English translation isn't it. And you have the additional non-standard file formats that we need to support as well. So you're looking at the ECU files and the ULF files. How does that work at the moment? Is it a certain bunch of Windows translations and Windows looks after it? So you've got me like a custom conversion there? Yeah, it's going to do it for everything. We're still going to need to put translation by a little bit faster. Oh yeah, it's going to be real edge cases. Okay, there's quite a problem now as well. Yeah, I'm sure there will be edge cases. I think we can cover the majority of stuff. The Windows one is going to be a problem, right? On list, you know. I mean, there are, there's also experience as well from Blender. I think Blender is using this so we can also quickly look to see what the other large applications are using in the boost icon these stuff are doing. So we should look at Blender and they cover it Windows and Starware so they have a translation system that's put off get text as well. One issue, I don't know if that is a practical issue but if you, if we now met an ID to text you might have the same in get text have an English text that we have to something. If you have a short English text like nice which can mean that too many different things in another language you might actually have two IDs which are different but are the same in English. Get text has an ID as well. Is that a problem? Yes, so it's exploration time for that. Well, I want to do that. Are there a lot of things that we can do problems with? Lots to do in strategic brokenness? No, not in the short term. I mean, you have some stuff going on with the life cycle stuff which may be on the screen but exactly you have a mind. Yes, sure, sure. So, I think the VCL life cycle concern that I have is that the most awful things in code to try and avoid widgets getting destroyed while using them. So there are various kind of listeners that, you know, you admit an event and you have to have this thing canary sitting on the stack and you check after it finishes to see if it's by now dead to the pointer. And you can, this is very error-prone and fragile. It would be much better to have reference counting and exclusive displays to be on the VCL widgets. So I think the first part there, just talking to a Noel last night, is Noel here? There he is, there he is. The first step in that anyway, regardless of what solution you put at the end, is that I don't think you should be able to create any of those windows on the stack. You have to be at least starting with your new team because they're on the stack and there's absolutely no way to reference counting that's going to work. So Noel has a list. And it's not just on the stack, it's also members. Yeah, yeah, yeah. Once the stuff that has been converted over to WI has converted all of that into pointers to the ownership belongs to the actual VCL builder or something that you moved out of the dialogues. So yeah, I think then that's really quite a significant change across a lot of things, but I hope it would help. I can start off. I hope there's some clang genius for health. Ha, you know, help with this. We've been moving a lot of the existing destructives into dispose methods, making sure the dispose methods can be run multiple times, replacing every delete to dispose. It starts to look like quite a big chunk, but I think, as you say, first finding the stack is a prerequisite. And then there's the big, you know, I mean, is it controversial changing having a decent lifecycle on widgets or is it not? Do people disagree or object? There's a lot of them. There's a lot of stuff that's been built in. I'm just looking at yours. There's an impol ed dyn. There's a thing you look out for. Dyl data, basically. It's all over the place. We have these checkers for it. If something has died in the last... So we replace those with the reference? I don't like the reference to just deal with the problem. There is a lot of stuff built into it. A lot of stuff depends on it. So, you know, we're just side effects in it. So is that a matter? It's not against it because it's a bad idea, but just I think there's a lot of nasty edge cases there. But either way, the first step of, like, I mean, certainly, if you have a crazy idea that you think we should be doing in LibreOffice, we're starting at the bottom here. So there's often things, good things at the top. McLosh. So one machine that's quite low-low and generic is that... As far as I know, the initial idea between the devalued and the normal difference was that allowing and devaluing... I mean, code which is non-binary compatible and then how to debug it. But in practice, probably quite some developer wasn't a developer of the debuggy testing. So if you are building a menu with a debug level 2, which is autonomous or to debug your table, then sometimes, no sometimes, but regularly you also get a binary incompatible with the other. And in LibreOffice, we have crashes, and after an hour, it also is just building from scratch, if you ever made the problem go away. So I guess it could be a good idea to, at least, in case you are aware of some code doing this, then changing the conditional from who I saw, devalued or something to be able to tell in this case. All right, I hope that there is such an example. If you're building a debug level 2, then you're importing, creating, debugging, and that helps development. On the other hand, we constantly do this cleaning, building with debug level 2, then going back to normal and that's it. And I'm sure it's not just right for them. I know that for the core catcher, you also have to build a debug level 2 because some other movies also have debug models with the same conditional. Because we don't have that wrong way of doing it. This is the right way. So you want to get it from here? No, no, no. I have a patent code in greater than 0. Okay. The greater than 0 is something I know, for example, taken care of by beyond the writer. See if that's not the case. Okay. But this is second below dollars. Do you remember? Well, in the end, I mean that's a total of things, but I would love if we just have one, two or three more things there. In the end, one thing, if we only had a debug level 4, someone wants to make that debug level 10 feel free to do that, but not having two different if-desk, which gives us four different ways of doing something. Having a single component and debug in conditional would be awesome. But that proposal is just part of that. Yeah. I think we talked about that quite a lot, but maybe the STL stuff is, maybe the error is coupling the STL stuff to the DBA. So you would have one OSL debug level, which goes from zero to whatever, and you have enabled debug STL to a new level, but that's only STL then. I guess we have a trade-off here. On one run, we would like to be nice to new contributors, so debug utility is not mandatory. And it's possible to just build a few more years with debug symbols so that the build is faster for a new contributor and so on. And on the other hand, we would like to have a single debug switch. So it's not possible to have both at the same time. No, no, no, sorry. It's not what I said. The point of debugging is that it's incompatible, so you can't just build one module in debugging. Okay. So what's the concrete thing there? I mean, we agree to leaving, we're doing these changes to make it work. It's a good thing. I can imagine that speaking just about right after that, that's one error I know, but to get the debug level to same, to just debug it to and some run time in biome and variable or root type, variable or anything like this. So, at least, we would only have two bits and not a whole int and a bit. But I'm sure this is not the only place. Cool. What do you still need the debug levels for? I mean, higher than one. What is it used for? In other filter or in other filter? I mean, why do we have still OSL? I guess, for example, but John Marek, please correct me. Is it true that also during mail merge, if you have debug level 2, then we are saving the OTT temporary files in some directory? Or something like this. So, typically, if you build with debug, you still don't want to get random temporary files created on your file system and so on. And these additional debug levels do that. But it's not necessarily a real-time conditional. So, it could be a real-time one. In such stuff like BBM OSL, do you bother talking about that? In a week? In a month? And so, if these higher levels would be switched to the BGU deal, would it still be necessary to have the OSL debug level or the level part of that? So, that would just transfer from OSL debug level? Just if it was debug? If it wanted to have debug and have debug usual. The issue with that is, if you use the OSL debug level, you can use that without having the debug usual built. So, you can enable that quickly without rebuilding everything. And if you move that over to dbgutils, just to get these statements, you have to rebuild a debug build completely because it's interoperative between monitor and software. So, this is why I still like to use the debug level sometimes because it gives me debugging without having completely recompiled down to SEL. So, my feeling is that it's an interesting area that you know about. I don't think we can probably discuss debug levels all day without getting into any more fundamental architectural points of interest. And are we at the end? Is it half an hour short? Or is it an hour short? Perfect, we can talk about debug levels for now. It's a fair point. I think it's probably not one of the larger structural things that's good to get down. Cool. So, it's good to have things that students have, or easy hackers can storm through. I'm just slightly worried we have too few of those things at the moment. Also, those style info and style warning stuff with levels back there. For me, it was really interesting to just figure out what kind of debug stuff should I use to actually write something. I have now gone with the style info and warning because you can enable and enable them with an export where you can just style info it for how long it was. The style info and style warning is nicely documented so that's not a problem. It's just a very good few things. A good situation to get used to which debug is just and then also stuff to clean up, I think. You're so good to be a nice girl when you're thinking of the digital stuff. Fair enough. I understand. I'm an fprintf guy, but I hear there's a new client bug in to make my life better. That's cool. There's whole levels of strata of different bug. Let's try and move on. I think Michael had a really good talk on threading. At least from my perspective, trying to move as much as we can given the API service we have into rendering in a single GUI thread in idle handlers or callbacks or whatever makes some sense. It's not clear to me that there are many places where we do these stupid things. We just have this large theoretic fall exposure. What's your take? Come on, talk to us. What's the solution? We heard the problems earlier. If it was something we could do we'd at least inch towards something better. Diffrwch! The problem is that the GUI service is not legacy. So we can deprecate those and see what happens. But it seems to me that at least fixing the core so that we don't deliberately create situations where we rely on this ourselves to make spell checking or whatever some database thing were. I suspect that it's the less frequently used corners of the cave that have this constraint in them. The Java using database report building tool thing. You know? I don't know. I think be using threading or is it just remoting? It's a boring one thing. Have a remote channel into the application you have. Rather need to put it. Both are going to start one thread during the GUI. One is the one that you have one GUI dedicated GUI thread. Have no new text and everything that is working outside the GUI thread needs to send messages into the GUI thread for synchronisation. The other approach that has been taken here is don't have a dedicated GUI thread or have a solar new text that you pass around and with one of the solar new text long-term start acting as the GUI. Any kind of that when you have a remote channel in you always have a situation and you have multiple things going on concurrently and you need to coordinate between them. A lot of general structures are going to be much easier to maintain if you give up the solar new text token that every thread can acquire and instead of a new model where you have a dedicated GUI thread and such a primitive just go on from there where you have the external communication Do you think that the reworking junior to execute incoming requests at idle rather than in a thread is a prerequisite there? No, I don't think so. Do you want to face the main work of the recording and notation of the objects that I have with the logic of the solar new text? Right, okay. So if I had a choice of rewriting the implementation to defer work to the main thread and simply deferring the UNO incoming call to the main thread it seems to me like fixing the UNO would be somewhat as I'm fixing it. I don't think you'll get far with that if all that's good. Okay, but if in every single UNO call that could trigger some kind of graphical update we now have to defer not take a solar new text or ship to a main thread. That's basically proxying every single UNO method to a main thread, right? Is there currently the whole app that's protected by a solar new text? And if we have an infrastructure for doing that, it seems like you might fit too. I think my point is that if we have an interpreter's communication mechanism that we can hook and proxy then running your UNO implementation in the same thread so you put your UNO method and it goes immediately into the implementation and that implementation then says if in implementation am I in the main thread yes, no, do your own customer and code your IPC to the main thread to block there and wait and do it there and then come back again and then return to our abstract computer model. Is not a good use of the information we have for much better to block in, you know, use the apartment in your type start model to go over to a main thread next to you there, surely. So I think the threading is one of those particularly intractable ones but at least if we agree that finding existing uses of threads and killing them or pushing them, deferring that work in a different way. So I mean UNO has an apartment model at least so that some things can be. Okay, cool. There are other issues here. Other people have other issues. I have GL land frame and your priorities. I think we're going to make some areas on these links A signal slot mechanism. To me, the signal slot mechanism is really annoying. Is anyone using a boost signal anywhere? We need one brave person to use the first one or... Are we really not? Does it depend on if you can use C++ 11 or does it change anything? Definitely. C++ 11. Do we have signals and slots and things like that or not? Is that the use boost? Signals and signals. What do you mean if you have if you would like to have so the signal slot you are is starting to work? Yes. It may make a major difference if you can use C++ or not. That's a question. I don't know. Nothing about C++ 11. I defer entirely to Stephen. His answer was funny but not in a way I could understand it. I'm not sure how your signal slots work with relation to others. When we have Decal link which is possibly the worst in the world, right? It's... Can you say that again Stephen? What's over you with Decal link? It's not type safe. It's hard to read. It's not standard so you have to train people in multi-colonial means. Could we maybe make this Decal link a background signal? So you would still have Decal link everywhere but you would actually use a boost signal as an implementation and then you could slowly kill off all the marker users and make that all the ground before here. Would you pick like that? So there's two boost signal phases. A signal 2. A normal signal is deprecated. A boost 2 requires the library or a signal 2? My question was more about if this would be a last conversation and we are creating co-packed functions with one of our tool lines and one month later we will use a C++ C11 which introduce lambdas. So the second must call will remove all these one or two line of methods that may be easy to break the point when we allow C++ C11 and do of the co-marking on the end. But it was a question to see if this was a 11th place technically in Kenya what is the function of that? I'm thinking of use cases where there is a checkbox and a co-pack on the mouse that can keep bullying lambdas or something like that. Sure, sure, so you can see obviously you're having a clear line of sites but what level of how well does it map on to our deck or link or link or all these? Okay, I just run on you because it's an explosive on C++ so I don't know. Does anyone else know? I think it depends on the library. Does C++ is a feature of the library if it suffers some dust in some way? The C++ 11 feature is just about currently if you would like to have a function co-pack then you create a class with a single operator like it's a co-pack and then you write your single or few lines that go down and with C++ 11 you can have that with an anonymous class and all that in line. I just mustn't be hosting if you are doing some mass conversion device. Okay, so you see there's basically no clear answer but the boost signal is a lot better. We're going to get a body of mastery and everyone's boots could see nicely after that sort of question. So I use boost signals and they work, use them well. They have all the joys of templates as much as you can pile anything that includes anything that uses a template that gets a lot slower than you pile and there's a lot of links about that. You're on back. I think that's the difference and I'm pretty sure that boost and other boost signals that can be used in the nation with numbers. So anyway, no one is violently opposed to someone coming and doing a person cleaner but they're using this signal. What else? APNGL rendering? Okay, so the thesis is that our current rendering API is SAC and APNGL SAC is in a standard way and having API so that people know about is always a good idea and yet still wrapping APNGL to a degree so it's easy to use maybe in some ways, would be a good idea and okay, I think is that summarised it, Marcus? Yeah, it's just having another easy item that's based on the PR and the X-ray of some programs that we have. One example that's older but it is radiant because there's a user in these calls that you can consider and now I want to to work on it because it controls some load from the CPU to the GPU and you might be able to support some more complex stuff easier stuff made by gradients are more or less to be in all the GPUs of their operations and they are better so countless levels are not better than above they're finally having more or less better in the CPUs graph. So Alyssa, I think none of that is controversial assuming there are people to do the work no one is going to shout about it probably the more controversial thing is gradients stuff and throw away the non-GL backend stuff so we currently have a huge amount of duplicating extremely legacy code all sorts of people in the Linux backend at least Anyway it would be great to share that GL code across Windows Linux and iOS and Android. Yeah, so it's surprisingly one of those we get the best of the best support but one might be if you have one in all supported all six versions of mobile platforms it's a bit worse than it should be and then it comes in as a way to have some theory of code for the GL version so that's the question of the GL response something personally I have a problem so to a to a home-based line or at least to a home-based line personally I would to a home-based line but that would talk more less after I have users migrating from to a home to how much time we want to invest now So I guess in a place where people live business questions around how much we can afford to screw a very positive end to break Yeah, but at least of a home-based line there are a few users around that use number 4 but it's like I think you can't come to them and I think it's very easy to be able to be able to be able to be able to be able to So feasibly it's going to be 6 months before anything happens here before we ship anything so it's a sort of new process of 5 different versions Yeah, but in some way I think we have no other solution but we have to replace the exhaust and so on and I think all of the other projects are going to go at some point and the LLVM pipe future does that fix the problem for us or Linux? Can we just say? I don't think we need an ESC core and we don't need one next week either so cool Okay, but we still could viciously savage our desktop integration people don't have GL for example to kill much of the KDE and you know back ends Yeah, for teaming we use the LGTK API to render out to peaks maps and then stick the peaks map over our existing BCL with the GTK3 and kind of hoping that I can allow against GTK3 to natively open up our dialogues and just render them itself or existing widgets into wraparose around the native GTK3 maps that's kind of a real going with that but when it comes to that what do we do with GTK3 or KDE4? I mean rather than just using the X-cars or existing GTK3 integration and continue to try and fix that up to just use the actual GTK3 or rendering stuff and not using the great X-cars I mean that was pretty much done but I haven't looked at it to see that it worked horribly recently I mean it's still been on so that's something that we can better look at releasing the GTK3 slightly things and see what kind of skills we can but I need to look at it to be able to give a useful answer Cool, so we've rambled the model, we've not gone anywhere above BCL but really up to that Any other major break in those things that are obvious that we can do is refactoring as KT maps higher up in the stack any big churnable tasks we're pretty much in the hour so it's like unwinding the bitmap stuff if when we do the GL backhand rule we solve that and we'll try to get alpha into bitmaps when it's split out yeah various pinups I guess otherwise design-wise I think we're getting in a positive direction still Cool, so thank you for showing up that was a tough and very efficient Have a good day