Wednesday, 2023-02-15

*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC00:32
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc00:44
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC00:53
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc00:54
*** Ritish <Ritish!~Ritish@> has joined #libre-soc05:27
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC05:35
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc05:36
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC06:29
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc06:30
*** ritish_ <ritish_!~Ritish@2401:4900:1f2d:31dd:b448:d32b:b61b:22e1> has joined #libre-soc07:07
*** Ritish <Ritish!~Ritish@> has quit IRC07:09
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC07:14
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:15
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC07:21
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:23
*** ritish_ is now known as Ritish07:33
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC07:37
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:37
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC07:58
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:58
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC08:01
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc08:01
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC08:38
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc08:39
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC09:02
*** ritish_ <ritish_!~Ritish@> has joined #libre-soc09:38
*** Ritish <Ritish!~Ritish@2401:4900:1f2d:31dd:b448:d32b:b61b:22e1> has quit IRC09:41
*** ritish_ is now known as Ritish09:43
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC10:42
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc10:42
*** knar <knar!~Knar@> has joined #libre-soc10:46
*** knar <knar!~Knar@> has left #libre-soc10:46
*** knar <knar!~Knar@> has joined #libre-soc10:48
*** knar <knar!~Knar@> has left #libre-soc10:50
*** Ritish <Ritish!~Ritish@> has quit IRC10:55
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC10:58
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc10:58
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC11:16
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc11:17
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC11:21
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc11:22
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC11:26
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc11:29
*** Knar <Knar!~Knar@> has joined #libre-soc12:05
*** Knar <Knar!~Knar@> has left #libre-soc12:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC12:12
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc12:13
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC12:22
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc12:23
lkclmarkos, toshywoshy, this is where i got up to13:26
lkclit's going under here
lkcla sub-bug of this
lkclfrom yesterday: i have the single-function *working* - returning 0x00000 in r3 - which can be extracted to a file with the right "dump" option to pypowersim13:28
lkcland a .sh script do a "grep" for "r3: 00000000000" - equals success of the unit test.13:28
lkclit is *complete* overkill to apply the same technique that you developed, markos, and it would be wasting time and effort to deploy it13:29
lkclin this case13:29
lkclbecause there is just one - and only one - function being called and tested.13:29
lkcl(just like for the mp3 tests which literally called one and only one function: apply_window_float())13:30
lkclplus i've already done the work (for scalar)13:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC13:57
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc14:01
markoslkcl, hardly an overkill, there is only a wrapper function, and now it would take me only a couple of hours to write it, but I would prefer this way for a number of reasons, a) it allows me to add lots of debugging and gradually write the code in parallel, b) I can use binutils for code generation, and when we have libresoc on FPGA I just have to remove the wrapper and it will just work14:17
markostrying to do the mp3 code with the original way in asm proved to be really difficult for me, there is no debugger, I had to read thousands of lines in the pypowersim output -which I was not familiar with14:18
markoswith the wrapper I could just write C and asm code and compare them in parallel and see where the differences are, I *cannot* do this in the original way, or at least I cannot do it as easily14:19
markoswhich means wasted time14:19
markosI could never have ported libvpx or av1 functions if I were still using the original method14:19
markosyou probably could, because you know exactly what to look for in pypowersim output14:20
markosbut not everyone thinks or works the same way14:20
markoswith this way, I can have it done in a couple of weeks -time is pressing on my side right now so I cannot do dedicate my time fully as it is14:20
markosit doesn't matter if it's one function or more, it's the method14:21
markosanyway, as I said, I will happily do it that way if you let me14:21
markosplus it proved to be a very good beta testing for binutils if you recall14:22
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC14:35
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc14:36
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC14:45
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc14:45
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC14:48
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc14:49
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC14:53
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc14:58
lkclmarkos, you can still use binutils for code generation.16:02
lkclthe wrapper will *literally* be the first - and only - function being called.16:03
lkclthis is nothing like the use of gtest.16:03
lkclthere's literally nothing to call which needs transferring between c and assembler16:04
lkclthe function is *literally* "zero arguments in, one register r3 return equal zero for success -1 for fail"16:04
lkclit's a massively-degenerate case for which the wrapper is a complete and utter waste of time.16:05
lkclif you really really really want to make a wrapper that has *zero arguments*, passes *zero data*, and returns *one register* (r3), then do go ahead16:06
lkcloh wait...16:09
lkclahhh i worked out what you're intending to do16:09
lkclto make a function, initially entirely in c, that slowly gains more and more assembler16:10
lkclyes sorry, no absolutely16:10
lkcli was thinking from totally a different direction: to start from "gcc -S" on a tiny sub-function, that is then converted from ppc64 scalar assembler to svp64 assembler.16:11
lkclwhich is a very different approach16:11
lkclyep do ignore everything i said :)16:11
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC17:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc17:07
markoslkcl, wait, isn't there a test suite or a unit test that will verify the function?17:09
markosbut yes, that was my intention, to gradually "build-up" the function from scratch17:10
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc17:24
markosby verify I mean, test it with different arguments/values, just to make sure, I've seen it happen multiple times in the past, just because it happens to pass a test with some initial value, doesn't mean it will pass the test with all values17:25
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC18:56
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc18:57
lkclthere's a known example which comes directly out of the paper19:06
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC20:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc20:41
lkclcryptograaphy is so staggeringly statistically linked that even one example is sufficient grounds to conclude that a bug is 100% a bug21:21
lkclyou wouldn't think twice about going "whoaaaa" if you heard that there were two collisions on a SHA hashing algorithm?21:22
lkclcryptographic algorithms are exactly the same principle21:22
lkclif you did ever find two pieces of data (or key) that produced wrong results, or, worse, produced the same result, it would be absolutely catastrophic21:23
lkcland would warrant a scientific paper and/or a CVE report21:23
lkclwhilst just one example is perfectly sufficient, you'll find that there are two additional examples which i've commented out from the c code21:24
lkclfeel free to put them back in if you want to slow down execution for no valid reason, but just to satisfy your own curiosity: technically i can say 100% that there's no benefit to doing so21:25
lkclbut it *is* very important to use the known-example which has dozens of implementations confirming the validity of the example.21:25
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC22:30
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc22:35

Generated by 2.17.1 by Marius Gedminas - find it at!