*** chrispolin has quit IRC | 01:24 | |
*** chrispolin has joined #trustable | 01:25 | |
*** AlisonChaiken has joined #trustable | 05:18 | |
*** ctbruce has joined #trustable | 07:35 | |
*** toscalix has joined #trustable | 08:54 | |
*** sambishop has quit IRC | 09:33 | |
*** sambishop has joined #trustable | 09:48 | |
*** sebbu has joined #trustable | 10:01 | |
sebbu | hi | 10:01 |
---|---|---|
Kinnison | Good morning sebbu | 10:04 |
*** sambishop has quit IRC | 10:05 | |
*** sambishop has joined #trustable | 10:06 | |
sebbu | i found the channel from the logs by searching about cert-c / misra-c | 10:08 |
*** locallycompact has joined #trustable | 10:09 | |
* Kinnison believes there may be people here who can talk usefully about those topics. I'm afraid I'm more interested in the tooling side of things :-) | 10:09 | |
Kinnison | A lot of the cert-c and misra-c people hang out on the mailing list rather than on IRC though | 10:10 |
* locallycompact has had a toy with this SAT stuff in Purescript for kicks http://locallycompact.gitlab.io/SMTSandbox/ | 10:11 | |
Kinnison | Specifically https://lists.trustable.io/cgi-bin/mailman/listinfo/c-safe-secure-studygroup | 10:11 |
Kinnison | sebbu: ^^ | 10:11 |
sebbu | checking ^^ | 10:21 |
rjek | https://daniel.haxx.se/blog/2017/03/27/curl-is-c/ | 10:21 |
* Kinnison nods. that was linked from /r/rustlang/ yesterday | 10:21 | |
locallycompact | That is utterly pathetic reasoning | 10:24 |
rjek | "C runs in more places than Rust does" is pretty important | 10:25 |
locallycompact | "Does building a house out of liquid shit require more carefulness and more tricks than building the same house out of solid brick? Yes it does, but what does that matter" | 10:25 |
*** locallycompact has quit IRC | 10:27 | |
*** locallycompact has joined #trustable | 10:27 | |
Kinnison | Having seen a lot of the complexity of what cURL has to deal with, "Rewriting means adding heaps of bugs" is the most compelling argument there I think | 10:27 |
locallycompact | " The simple fact is that most of our past vulnerabilities happened because of logical mistakes in the code. Logical mistakes that aren’t really language bound and they would not be fixed simply by changing language." is false | 10:28 |
Kinnison | Some languages can make it harder to make logic errors; but you can't eliminate them entirely in any given language | 10:30 |
sebbu | well, you make a do while instead of a while, a > instead of a >=, etc... | 10:31 |
sebbu | no languages will prevent that | 10:31 |
jmacs | Kinnison: That's absolutism | 10:46 |
Kinnison | jmacs: How do you mean? | 10:46 |
jmacs | It's a common argument used to denounce any attempt at reducing errors on the basis that you cannot remove them all | 10:47 |
jmacs | Some logical mistakes are language bound | 10:48 |
Kinnison | I fear we're about to violently agree. | 10:49 |
jmacs | Well, that's no fun. | 10:50 |
Kinnison | Sorry :-/ | 10:50 |
Kinnison | Perhaps I didn't make my point well enough. I was trying to say that switching to any given language is not going to be a way to eliminate all possible logic errors. | 10:50 |
jmacs | No | 10:51 |
jmacs | That doesn't mean it's not worthwhile though | 10:52 |
rjek | More importantly, there will be functionality bugs (ie, missing features) for years. | 10:53 |
jmacs | I agree with all those points and the "wrtiting adds heaps of bugs" statement | 10:54 |
*** toscalix has quit IRC | 10:54 | |
jmacs | But every bit of code will be rewritten. | 10:54 |
jmacs | If curl is not rewritten, something else will take its place | 10:55 |
Kinnison | Eventually, yes. | 10:56 |
Kinnison | But likely not until something other than C comes center-stage | 10:56 |
jmacs | I'm happy to accelerate that process too | 10:57 |
locallycompact | What infuriates me is that I can not browse something (say the curl source), find something I like, pull it in and lob a typeclass over the top. | 11:00 |
locallycompact | All programs are monoliths | 11:01 |
locallycompact | in C | 11:01 |
locallycompact | So everything always comes down to a "total rewrite" | 11:02 |
jmacs | Type-checking bolt-ons exist for javascript and python (probably not to your level of type-safety though). Is it something we could do with C, or is it impossible? | 11:03 |
locallycompact | Type class is like a logic interface | 11:03 |
locallycompact | When I browse a haskell source and see a nice type I can think "That would be good as a monoid/profunctor/whatever", and then you can do it, and then it will work with all code for that type class no effort needed | 11:04 |
locallycompact | Closest thing is like an interface in java | 11:06 |
locallycompact | or C# | 11:06 |
locallycompact | But less boilerplate | 11:06 |
jmacs | A java interface is just a pure abstract class in c++ | 11:07 |
Kinnison | locallycompact: Or a Trait in Rust presumably | 11:07 |
locallycompact | right that too | 11:08 |
Kinnison | Though Rust's traits have certain completeness/correctness constraints that make them slightly less universal than Haskell typeclasses | 11:08 |
sebbu | locallycompact, you can't do it either in java, C++, javascript, perl, php or python | 11:28 |
sebbu | (take a small part of a source, get it out, reuse it immediately) | 11:28 |
sebbu | jmacs, except when such class will use glib, qt, boost, eclipse sdk, rails or similar | 11:29 |
locallycompact | yes, those are all worth burying/incinerating | 11:29 |
sebbu | and you're forced to use it too | 11:29 |
sebbu | i'm not a fan of functionnal programming (syntax/paradigm with no variables), although i very much like the no-side effects guarantee | 11:30 |
sebbu | and there's some kind of side-effects that i do like, ie aspect-programming | 11:31 |
locallycompact | no side effects, nothing ever run that doesn't get used, solve every problem in the universe with a handful of abstractions | 11:32 |
locallycompact | and rarely in over 100 lines | 11:32 |
* Kinnison finds the abstraction of FP to be very attractive, but that oftentimes grokking *why* something works in (say) Haskell can be harder than grokking *how* it works in something moderately more imperative such as Rust | 11:33 | |
* locallycompact appreciates | 11:34 | |
locallycompact | but I'm way past the bell curve on that one, nothing imperative can be quicker to read for me now | 11:35 |
Kinnison | :-) | 11:36 |
*** locallycompact has quit IRC | 13:25 | |
*** locallycompact has joined #trustable | 13:25 | |
*** sambishop has quit IRC | 13:50 | |
*** locallycompact has quit IRC | 13:51 | |
*** tiagogomes has quit IRC | 13:51 | |
*** ctbruce has quit IRC | 13:51 | |
*** tiagogomes has joined #trustable | 13:54 | |
*** ctbruce has joined #trustable | 13:54 | |
*** locallycompact has joined #trustable | 13:55 | |
*** sambishop has joined #trustable | 13:55 | |
*** sambishop has quit IRC | 14:27 | |
*** sambishop has joined #trustable | 14:31 | |
*** AlisonChaiken has quit IRC | 14:32 | |
*** ctbruce has quit IRC | 15:20 | |
*** locallycompact has quit IRC | 17:12 | |
*** locallycompact has joined #trustable | 20:39 | |
*** locallycompact has quit IRC | 20:55 | |
*** tiagogomes has quit IRC | 21:43 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!