<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="log-store-xml.xsl"?>
<log>
<message time='20140506T17:44:08' id='jhelwig' name='jhelwig' token='' isuser='false' type='normal'>Looks like http://static.rust-lang.org/doc/0.10/guide-lifetimes.html is one of those places to fix when it comes time to stop lying about having GC.</message>
<message time='20140506T17:44:58' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>yeah</message>
<message time='20140506T17:48:54' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>bam: https://github.com/mozilla/rust/issues/13987</message>
<message time='20140506T17:57:10' id='m-r-r' name='m-r-r' token='' isuser='false' type='normal'>Hello</message>
<message time='20140506T18:00:38' id='mbrubeck' name='mbrubeck' token='' isuser='false' type='normal'>Hi, m-r-r </message>
<message time='20140506T18:00:58' id='richo1' name='richo1' token='' isuser='false' type='normal'>How would I mark a compile-fail test as ignored?</message>
<message time='20140506T18:01:10' id='richo1' name='richo1' token='' isuser='false' type='normal'>I found some others that seem to be ignored and listed some of the comments but I suspect they&apos;re not magical</message>
<message time='20140506T18:01:34' id='cmr' name='cmr' token='' isuser='false' type='normal'>comments are magical.</message>
<message time='20140506T18:01:49' id='cmr' name='cmr' token='' isuser='false' type='normal'>/ ignore-test</message>
<message time='20140506T18:01:50' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>// Magical //</message>
<message time='20140506T18:01:52' id='cmr' name='cmr' token='' isuser='false' type='normal'>// ignore-test</message>
<message time='20140506T18:02:00' id='richo1' name='richo1' token='' isuser='false' type='normal'>Ah, ok I just fail at lifting comments. Thanks</message>
<message time='20140506T18:02:19' id='richo1' name='richo1' token='' isuser='false' type='normal'>hah. I see what I did. Thanks</message>
<message time='20140506T18:05:44' id='pepper_chico' name='pepper_chico' token='' isuser='false' type='normal'>sorry to bother you guys... is there an issue I can subscribe for when we have auto-borrow (https://github.com/mozilla/rust/pull/12610#issuecomment-37586877) and generally, consistent behavior for custom pointers which implement some special pointer trait and native ones, like the dying ~? I&apos;ve looked at  #12491, #13542, #5527, #12825, #12610 and RFC #59 but still nothing that refers to autoborrow</message>
<message time='20140506T18:05:46' id='pepper_chico' name='pepper_chico' token='' isuser='false' type='normal'>specifically</message>
<message time='20140506T18:06:14' id='pepper_chico' name='pepper_chico' token='' isuser='false' type='normal'>or comments regarding uniform behavior of custom and native pointers</message>
<message time='20140506T18:08:00' id='m-r-r' name='m-r-r' token='' isuser='false' type='normal'>Is there an API aroud rust-ci.org ? I&apos;m looking for a way to retreive the URL of all the documentation of all the projects that have a documentation.</message>
<message time='20140506T18:13:29' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>so allegedly the `box` keyword also allows specifying an allocator</message>
<message time='20140506T18:13:33' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>what does the syntax for that look like?</message>
<message time='20140506T18:13:57' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>let x = box(HEAP) 8;</message>
<message time='20140506T18:14:02' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>^ where does it go?</message>
<message time='20140506T18:14:19' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: To HEAP, which is a static value.</message>
<message time='20140506T18:14:20' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>I confess I&apos;m not even sure what HEAP is</message>
<message time='20140506T18:14:22' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>(alloctor, as in allocation, not as in malloc allocatior)</message>
<message time='20140506T18:14:26' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>or*</message>
<message time='20140506T18:14:34' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: box right now is a hack, and allocator can mean one of two things</message>
<message time='20140506T18:15:04' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: I hereby will start calling the expression in that box  a &quot;boxer&quot; :P</message>
<message time='20140506T18:15:22' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>Not a cat?</message>
<message time='20140506T18:15:58' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: So, theoretically `box foo;` should be generic and inferr the right box. So let x: Box&lt;T&gt; = box t; and let x: Rc&lt;T&gt; = box t; both work</message>
<message time='20140506T18:16:05' id='generalelectrix' name='generalelectrix' token='' isuser='false' type='normal'>I&apos;m building an object which is a special-purpose container for an unspecified type T.  Is there a way to define a method that bevahes differently depending on whether or not T implements a particular trait?</message>
<message time='20140506T18:16:59' id='bvssvni' name='bvssvni' token='' isuser='false' type='normal'>generalelectrix: no</message>
<message time='20140506T18:17:00' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: let x = box(alue) foo; is the more general form, and would also return a inferred smartpointer, which somehow allocated into `value`</message>
<message time='20140506T18:17:25' id='pyon' name='pyon' token='' isuser='false' type='normal'>kimundi: How will this be implemented? Will there be some kind/intrinsic/whatever for boxed types? :-O</message>
<message time='20140506T18:17:25' id='pyon' name='pyon' token='' isuser='false' type='normal'> </message>
<message time='20140506T18:17:35' id='bvssvni' name='bvssvni' token='' isuser='false' type='normal'>generalelectrix: you can add a default method to the trait and require all types to implement it</message>
<message time='20140506T18:17:37' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>kimundi: listen, all I care about is the syntax :)</message>
<message time='20140506T18:17:54' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>pyon: Like most such things: A trait with a lang item on it.</message>
<message time='20140506T18:17:57' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>the syntax is what you first said</message>
<message time='20140506T18:18:14' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>steveklabnik: is that the most it can ever be?</message>
<message time='20140506T18:18:19' id='pyon' name='pyon' token='' isuser='false' type='normal'>How many lang items are there already?</message>
<message time='20140506T18:18:19' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>steveklabnik: I want a maximal example</message>
<message time='20140506T18:18:26' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: To late, you&apos;ll get the full semantic, now and planned :P</message>
<message time='20140506T18:18:36' id='pyon' name='pyon' token='' isuser='false' type='normal'>I am having a hard time keeping track of them all.</message>
<message time='20140506T18:18:38' id='generalelectrix' name='generalelectrix' token='' isuser='false' type='normal'>bvssvni: thanks, that&apos;s what I thought, and it makes sense why.  just figured I&apos;d check.  my collection is a time-ordered series, and ideally I just want to call one function get_time() which interpolates if T is numeric, and just returns the closest value if it isn&apos;t</message>
<message time='20140506T18:18:53' id='pepper_chico' name='pepper_chico' token='' isuser='false' type='normal'>no info on that?</message>
<message time='20140506T18:18:57' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>steveklabnik: like does specifying an allocator look like `let x = box(HEAP&lt;Foo&gt;) 6;` ?</message>
<message time='20140506T18:19:04' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>or am I completely off-target</message>
<message time='20140506T18:19:07' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: Yes, box(expr) expr; will be the most it&apos;ll get, unless we grow some way to explicitly type annotate stuff in there as well</message>
<message time='20140506T18:19:25' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: Of target</message>
<message time='20140506T18:19:33' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: Its not a type, but a value</message>
<message time='20140506T18:20:10' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>bstrie: let arena = Arena::new(); let my_arena_alloc: ArenaHandle&lt;T&gt; = box(arena) foo();</message>
<message time='20140506T18:20:28' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>kimundi: ok, that&apos;s all I wanted to know :)</message>
<message time='20140506T18:21:14' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>because if that&apos;s all, then suddenly I&apos;m thinking that maybe it would be nice to reuse @ there instead of parens... `let x = box@GC 8;`</message>
<message time='20140506T18:21:17' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>maybe</message>
<message time='20140506T18:21:21' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>I&apos;m just, so tired of parens</message>
<message time='20140506T18:21:49' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>bstrie: my understanding is the maximal example is box(foo) val;</message>
<message time='20140506T18:21:58' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>err box (foo) val</message>
<message time='20140506T18:22:06' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>wait is the space compulsory</message>
<message time='20140506T18:22:12' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>no</message>
<message time='20140506T18:22:19' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>thank od</message>
<message time='20140506T18:22:23' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>praise be tood</message>
<message time='20140506T18:22:30' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>damnthiskeyboard</message>
<message time='20140506T18:22:36' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>rusti: box 1</message>
<message time='20140506T18:22:36' id='rusti' name='rusti' token='' isuser='false' type='notice'>1</message>
<message time='20140506T18:22:39' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>lol</message>
<message time='20140506T18:22:46' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>rusti: box(HEAP) 1</message>
<message time='20140506T18:22:47' id='rusti' name='rusti' token='' isuser='false' type='notice'>&lt;anon&gt;:18:13: 18:17 error: unresolved name `HEAP`.</message>
<message time='20140506T18:22:47' id='rusti' name='rusti' token='' isuser='false' type='notice'>&lt;anon&gt;:18         box(HEAP) 1</message>
<message time='20140506T18:22:47' id='rusti' name='rusti' token='' isuser='false' type='notice'>                      ^~~~</message>
<message time='20140506T18:22:47' id='rusti' name='rusti' token='' isuser='false' type='notice'>error: aborting due to previous error</message>
<message time='20140506T18:22:47' id='rusti' name='rusti' token='' isuser='false' type='notice'>playpen: application terminated with error code 101</message>
<message time='20140506T18:22:49' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>also, HEAP and GC are hacks</message>
<message time='20140506T18:22:54' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>Ah right, where does that live...</message>
<message time='20140506T18:22:57' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>HEAP needs to be required</message>
<message time='20140506T18:23:10' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>http://static.rust-lang.org/doc/master/std/owned/index.html</message>
<message time='20140506T18:23:36' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>rusti: box(()) 1</message>
<message time='20140506T18:23:37' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>rusti: box(owned::HEAP) 5</message>
<message time='20140506T18:23:40' id='rusti' name='rusti' token='' isuser='false' type='notice'>pastebinned 10 lines of output: http://ix.io/c8a</message>
<message time='20140506T18:23:41' id='rusti' name='rusti' token='' isuser='false' type='notice'>pastebinned 11 lines of output: http://ix.io/c8b</message>
<message time='20140506T18:23:52' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>rusti: box(std::owned::HEAP) 5</message>
<message time='20140506T18:23:53' id='rusti' name='rusti' token='' isuser='false' type='notice'>5</message>
<message time='20140506T18:23:56' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>nice</message>
<message time='20140506T18:23:57' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>lol</message>
<message time='20140506T18:24:20' id='pepper_chico' name='pepper_chico' token='' isuser='false' type='action'>=/</message>
<message time='20140506T18:27:23' id='luqman' name='Luqman' token='' isuser='false' type='normal'>richo1: hey, finally made some updated arm rustc builds</message>
<message time='20140506T18:43:42' id='pepper_chico' name='pepper_chico' token='' isuser='false' type='normal'>ok, I&apos;ve wrapped up my doubt in an issue, expecting it&apos;s not a duplicate https://github.com/mozilla/rust/issues/13988</message>
<message time='20140506T18:45:20' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>eddyb, any idea how middle::trans::consts::get_const_value should handle foreign items?</message>
<message time='20140506T18:45:52' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: it shouldn&apos;t</message>
<message time='20140506T18:46:14' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: foreign statics are always mutable, AFAIK</message>
<message time='20140506T18:46:20' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>they don&apos;t have constant values</message>
<message time='20140506T18:46:32' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>eddyb, Ahh, so it shouldn&apos;t even be making it here?</message>
<message time='20140506T18:46:54' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>I doubt it</message>
<message time='20140506T18:46:58' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>eddyb, https://gist.github.com/bgamari/58ac32daf7787d9ccf64</message>
<message time='20140506T18:47:07' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>that&apos;s the relevant part of the backtrace</message>
<message time='20140506T18:47:24' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: trans::base::get_item_val is where foreign statics should be instantiated</message>
<message time='20140506T18:48:24' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>hmm</message>
<message time='20140506T18:54:55' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>How do I enable debug! output?</message>
<message time='20140506T18:55:12' id='ms2ger' name='Ms2ger' token='' isuser='false' type='normal'>RUST_LOG=&lt;crate&gt;</message>
<message time='20140506T18:56:37' id='max' name='Max' token='' isuser='false' type='normal'>Hey, I have this code:</message>
<message time='20140506T18:56:40' id='max' name='Max' token='' isuser='false' type='normal'>let mut layer = self.layers.get_mut(layer_id); ... layer.vertex_buffer.push(*self.vertices.get(v1));</message>
<message time='20140506T18:56:50' id='max' name='Max' token='' isuser='false' type='normal'>and the compiler tells me layer doesn&apos;t need to be mutable</message>
<message time='20140506T18:57:07' id='max' name='Max' token='' isuser='false' type='normal'>i don&apos;t understand why, since I push something on a vector of that variable</message>
<message time='20140506T18:57:44' id='ms2ger' name='Ms2ger' token='' isuser='false' type='normal'>I guess layer is of type &amp;mut SomeThing</message>
<message time='20140506T18:58:13' id='max' name='Max' token='' isuser='false' type='normal'>layers is a Hashmap&lt;uint, Layer&gt;</message>
<message time='20140506T18:58:17' id='strcat' name='strcat' token='' isuser='false' type='normal'>Max: mut on the variable makes the contents of the variable mutable</message>
<message time='20140506T18:58:21' id='strcat' name='strcat' token='' isuser='false' type='normal'>get_mut returns &amp;mut</message>
<message time='20140506T18:58:26' id='max' name='Max' token='' isuser='false' type='normal'>and layer is of type Layer which is a struct I defined</message>
<message time='20140506T18:58:28' id='strcat' name='strcat' token='' isuser='false' type='normal'>you don&apos;t need the &amp;mut to be mutable</message>
<message time='20140506T18:58:28' id='ms2ger' name='Ms2ger' token='' isuser='false' type='normal'>You only inherit mutability for things you own</message>
<message time='20140506T18:58:46' id='strcat' name='strcat' token='' isuser='false' type='normal'>&amp;/&amp;mut are non-owning views so the mutability of what they point at isn&apos;t related the variable</message>
<message time='20140506T18:59:13' id='max' name='Max' token='' isuser='false' type='normal'>ah okay</message>
<message time='20140506T18:59:38' id='max' name='Max' token='' isuser='false' type='normal'>so layer doesn&apos;t need to be mutable, but I still have to call get_mut?</message>
<message time='20140506T19:00:04' id='ms2ger' name='Ms2ger' token='' isuser='false' type='normal'>Yep</message>
<message time='20140506T19:00:33' id='max' name='Max' token='' isuser='false' type='normal'>okay, it compiles, thanks!</message>
<message time='20140506T19:00:47' id='edwardw' name='edwardw' token='' isuser='false' type='normal'>Max: let mut layer = ... means you can assign to layer again</message>
<message time='20140506T19:01:18' id='max' name='Max' token='' isuser='false' type='normal'>okay, i understand</message>
<message time='20140506T19:01:24' id='edwardw' name='edwardw' token='' isuser='false' type='normal'>such as: let mut layer = SomeStuff; layer = AnotherStuff</message>
<message time='20140506T19:21:38' id='generalelectrix' name='generalelectrix' token='' isuser='false' type='normal'>does anyone know why Vec&lt;T&gt; doesn&apos;t have a method like get_opt(index) that returns Option&lt;T&gt; instead of failing, like get(index) ?</message>
<message time='20140506T19:22:04' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>generalelectrix: you can work with a slice instead...</message>
<message time='20140506T19:22:07' id='generalelectrix' name='generalelectrix' token='' isuser='false' type='normal'>This seems to be kind of incongruous, considering the existence of, say, last() which returns None if the vector is empty</message>
<message time='20140506T19:22:18' id='strcat' name='strcat' token='' isuser='false' type='normal'>generalelectrix: the current get/get_mut are temporary</message>
<message time='20140506T19:22:25' id='strcat' name='strcat' token='' isuser='false' type='normal'>when there are indexing traits they will go away</message>
<message time='20140506T19:22:25' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>get, get_mut and set are hacks to get around the lack of index traits</message>
<message time='20140506T19:22:28' id='strcat' name='strcat' token='' isuser='false' type='normal'>just be patient</message>
<message time='20140506T19:22:32' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>oh hey strcat</message>
<message time='20140506T19:22:34' id='generalelectrix' name='generalelectrix' token='' isuser='false' type='normal'>ah ok cool.</message>
<message time='20140506T19:22:46' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>thanks for making my answer obsolete before I pressed enter \o/</message>
<message time='20140506T19:23:18' id='strcat' name='strcat' token='' isuser='false' type='normal'>you&apos;re welcome</message>
<message time='20140506T19:27:33' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>eddyb, https://github.com/mozilla/rust/pull/13950/files</message>
<message time='20140506T19:27:40' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>eddyb, Do those test cases look reasonable?</message>
<message time='20140506T19:28:09' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>They seem to still be crashing the compiler (although my original program compiles)</message>
<message time='20140506T19:28:37' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>get_const_val seems to be getting called on foreign item test_extern::test_extern</message>
<message time='20140506T19:28:57' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>this happens within get_item_val on static test::test</message>
<message time='20140506T19:30:06' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>so what&apos;s crashing?</message>
<message time='20140506T19:31:41' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>eddyb, rustc</message>
<message time='20140506T19:32:03' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>backtrace: https://gist.github.com/bgamari/58ac32daf7787d9ccf64</message>
<message time='20140506T19:32:19' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>very shortly I&apos;ll have a bit more debugging output</message>
<message time='20140506T19:32:46' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: aaah</message>
<message time='20140506T19:32:52' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: well...</message>
<message time='20140506T19:33:06' id='generalelectrix' name='generalelectrix' token='' isuser='false' type='normal'>is it not possible to use the trait method is_zero() to check if an instance of a type that implements Zero is zero?  I&apos;m getting this error: source trait is private</message>
<message time='20140506T19:33:25' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>I&apos;ve instrumented constr_expr to print the expression</message>
<message time='20140506T19:34:01' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: something prevents get_const_val from being called on mutable statics</message>
<message time='20140506T19:34:10' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: because they would share the same fate, I believe</message>
<message time='20140506T19:35:14' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>hello</message>
<message time='20140506T19:35:19' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>hi</message>
<message time='20140506T19:35:31' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: https://github.com/bgamari/rust/blob/master/src/librustc/middle/trans/consts.rs#L642-L644</message>
<message time='20140506T19:36:01' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>is it intended that the, er, arguments to `box` will always be static?</message>
<message time='20140506T19:36:12' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bgamari: hmm, I wonder why that doesn&apos;t handle mutable statics...</message>
<message time='20140506T19:36:20' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bstrie: static?</message>
<message time='20140506T19:36:25' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>im new to rust and i cant find the use of # symbol??</message>
<message time='20140506T19:36:28' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>eddyb: box (HEAP)</message>
<message time='20140506T19:36:34' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bstrie: that&apos;s a hack</message>
<message time='20140506T19:36:44' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>any help please?</message>
<message time='20140506T19:36:49' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>eddyb: right, what is it*supposed*to look like :P</message>
<message time='20140506T19:36:49' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>HEAP and GC are magic tokens to work around a missing box implementation</message>
<message time='20140506T19:36:53' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bstrie: box</message>
<message time='20140506T19:37:06' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>and box(target) value, but HEAP and GC aren&apos;t targets</message>
<message time='20140506T19:37:12' id='depp' name='depp' token='' isuser='false' type='normal'>nikz1: a few special things use #[...] syntax... what are you looking at?</message>
<message time='20140506T19:37:19' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>eddyb: ok, great,explain what a &quot;target&quot; is please :)</message>
<message time='20140506T19:37:28' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>any time that implements the pointer traits?</message>
<message time='20140506T19:37:32' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>*type</message>
<message time='20140506T19:37:40' id='bgamari' name='bgamari' token='' isuser='false' type='normal'>eddyb, I also wonder why bool is used instead of a more descriptive type</message>
<message time='20140506T19:37:52' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: no, box is more general than smart pointers</message>
<message time='20140506T19:38:08' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>how do we declare targets? are they types?</message>
<message time='20140506T19:38:15' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: don&apos;t know</message>
<message time='20140506T19:38:18' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>haha</message>
<message time='20140506T19:38:26' id='strcat' name='strcat' token='' isuser='false' type='normal'>it needs to be possible to have state or pass in state</message>
<message time='20140506T19:38:32' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>bstrie: you&apos;re like the hero in some film noire movie</message>
<message time='20140506T19:38:39' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>always asking questions</message>
<message time='20140506T19:38:40' id='steveklabnik' name='steveklabnik' token='' isuser='false' type='normal'>asking all the tough questions, leaving no rock unturned</message>
<message time='20140506T19:38:51' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bstrie: targets would be values</message>
<message time='20140506T19:38:51' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>and never getting any straight answers</message>
<message time='20140506T19:39:19' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>bstrie: common examples would be allocators or something like vec.emplace_back()</message>
<message time='20140506T19:39:35' id='strcat' name='strcat' token='' isuser='false' type='normal'>eddyb: don&apos;t say allocators for that ;p</message>
<message time='20140506T19:39:40' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>&quot;emplace_back&quot; is a hilarious name for a method</message>
<message time='20140506T19:39:45' id='strcat' name='strcat' token='' isuser='false' type='normal'>reusing terms for something different is confusing</message>
<message time='20140506T19:39:48' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>sounds like a star wars villain</message>
<message time='20140506T19:40:01' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>i found in a tutorial &gt;   # fn get_tuple() -&gt; (int, int) {1, 1}</message>
<message time='20140506T19:40:01' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>why it needs the # ?</message>
<message time='20140506T19:40:06' id='depp' name='depp' token='' isuser='false' type='normal'>So I want to append to a Vec&lt;[i16, ..4]&gt;, but here&apos;s no Clone for [i16, ..4]</message>
<message time='20140506T19:40:20' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>strcat: are you saying allocators wouldn&apos;t be usable as targets?</message>
<message time='20140506T19:40:28' id='strcat' name='strcat' token='' isuser='false' type='normal'>eddyb: yes</message>
<message time='20140506T19:40:34' id='strcat' name='strcat' token='' isuser='false' type='normal'>I&apos;m saying box is not a way to use allocators</message>
<message time='20140506T19:40:41' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>then this is bloody pointless</message>
<message time='20140506T19:40:43' id='depp' name='depp' token='' isuser='false' type='normal'>nikz1: I don&apos;t think that # belongs there</message>
<message time='20140506T19:40:43' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>nikz1: that&apos;s just part of the documentation, I think. tells the document to not render that line. are you reading the raw source?</message>
<message time='20140506T19:40:43' id='strcat' name='strcat' token='' isuser='false' type='normal'>everyone needs to stop calling boxers allocators</message>
<message time='20140506T19:40:47' id='strcat' name='strcat' token='' isuser='false' type='normal'>eddyb: no, it&apos;s not</message>
<message time='20140506T19:40:50' id='strcat' name='strcat' token='' isuser='false' type='normal'>it&apos;s orthogonal to allocators</message>
<message time='20140506T19:40:53' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>nikz1: in real code, that wouldn&apos;t be there</message>
<message time='20140506T19:40:55' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>depp: vec.push([1i16, 2, 3, 4])?</message>
<message time='20140506T19:41:07' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>strcat: the only usable example is emplace_back right now...</message>
<message time='20140506T19:41:13' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>oh.. ok</message>
<message time='20140506T19:41:18' id='strcat' name='strcat' token='' isuser='false' type='normal'>eddyb: emplace_back and smart pointers</message>
<message time='20140506T19:41:20' id='nikz1' name='nikz1' token='' isuser='false' type='normal'>thank you </message>
<message time='20140506T19:41:45' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>strcat: what do smart pointers have to do with this?</message>
<message time='20140506T19:41:51' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>with the target, I mean?</message>
<message time='20140506T19:42:05' id='strcat' name='strcat' token='' isuser='false' type='normal'>eddyb: constructing a smart pointer in-place?</message>
<message time='20140506T19:42:11' id='depp' name='depp' token='' isuser='false' type='normal'>sfackler: Cool, but push_all doesn&apos;t work</message>
<message time='20140506T19:42:21' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>strcat: yeah but that doesn&apos;t need a target AFAICT</message>
<message time='20140506T19:42:24' id='strcat' name='strcat' token='' isuser='false' type='action'>shrugs</message>
<message time='20140506T19:42:28' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>unless the design is really silly</message>
<message time='20140506T19:42:41' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>depp: try http://static.rust-lang.org/doc/master/std/iter/trait.Extendable.html#tymethod.extend</message>
<message time='20140506T19:42:43' id='strcat' name='strcat' token='' isuser='false' type='normal'>well it&apos;s not like it&apos;s been completely thought out in advance</message>
<message time='20140506T19:42:52' id='strcat' name='strcat' token='' isuser='false' type='normal'>eddyb: I still think unboxed closures + a macro would make it obsolete</message>
<message time='20140506T19:43:00' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>rusti: let mut x : Vec&lt;[i16,..4]&gt; = vec![]; vec.push([1,2,3,4]); vec.get(0)[2]</message>
<message time='20140506T19:43:03' id='rusti' name='rusti' token='' isuser='false' type='notice'>pastebinned 8 lines of output: http://ix.io/c8f</message>
<message time='20140506T19:43:15' id='eridius' name='Eridius' token='' isuser='false' type='normal'>depp: push_all() clones from the thing it&apos;s pushing. It doesn&apos;t move from it</message>
<message time='20140506T19:43:15' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>rusti: let mut x : Vec&lt;[i16,..4]&gt; = vec![]; x.push([1,2,3,4]); vec.get(0)[2]</message>
<message time='20140506T19:43:15' id='rusti' name='rusti' token='' isuser='false' type='notice'>&lt;anon&gt;:18:65: 18:68 error: unresolved name `vec`. Did you mean `x`?</message>
<message time='20140506T19:43:16' id='rusti' name='rusti' token='' isuser='false' type='notice'>&lt;anon&gt;:18         let mut x : Vec&lt;[i16,..4]&gt; = vec![]; x.push([1,2,3,4]); vec.get(0)[2]</message>
<message time='20140506T19:43:16' id='rusti' name='rusti' token='' isuser='false' type='notice'>                                                                          ^~~</message>
<message time='20140506T19:43:16' id='rusti' name='rusti' token='' isuser='false' type='notice'>error: aborting due to previous error</message>
<message time='20140506T19:43:16' id='rusti' name='rusti' token='' isuser='false' type='notice'>playpen: application terminated with error code 101</message>
<message time='20140506T19:43:21' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>rusti: let mut x : Vec&lt;[i16,..4]&gt; = vec![]; x.push([1,2,3,4]); x.get(0)[2]</message>
<message time='20140506T19:43:21' id='rusti' name='rusti' token='' isuser='false' type='notice'>3</message>
<message time='20140506T19:43:34' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>strcat: it&apos;s starting to get so confusing I don&apos;t want to touch it</message>
<message time='20140506T19:43:34' id='eridius' name='Eridius' token='' isuser='false' type='normal'>depp: push_all_move() is the variant that doesn&apos;t require Clone.</message>
<message time='20140506T19:43:43' id='eridius' name='Eridius' token='' isuser='false' type='normal'>but it consumes the argument (which is a Vec&lt;T&gt;)</message>
<message time='20140506T19:43:50' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>depp: or http://static.rust-lang.org/doc/master/std/vec/struct.Vec.html#method.push_all_move</message>
<message time='20140506T19:44:09' id='depp' name='depp' token='' isuser='false' type='normal'>I was using push_all([ [...], [...], ... ])</message>
<message time='20140506T19:46:48' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>strcat: maybe I should stop caring about these changes or even blocking on them. still, DST is neat. oh and I have to open a RFC for &quot;split stream&quot; pointers</message>
<message time='20140506T19:58:23' id='xilo' name='xilo' token='' isuser='false' type='normal'>i&apos;m having problems compiling rust. here&apos;s the last bit of output http://pastie.org/9146810</message>
<message time='20140506T19:59:04' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>xilo: how much RAM do you have?</message>
<message time='20140506T19:59:30' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>you&apos;ll need ~1.6GB free to build the compiler</message>
<message time='20140506T19:59:40' id='xilo' name='xilo' token='' isuser='false' type='normal'>running in VM. the VM has 3gb of ram</message>
<message time='20140506T20:00:19' id='xilo' name='xilo' token='' isuser='false' type='normal'>everything else is only using 500mb</message>
<message time='20140506T20:04:00' id='generalelectrix' name='generalelectrix' token='' isuser='false' type='normal'>Is it possible to call is_zero() on a generic type that implements Zero?  I keep getting a &quot;source trait is private&quot; error</message>
<message time='20140506T20:05:22' id='xilo' name='xilo' token='' isuser='false' type='normal'>sfackler: any idea? getting annoyed trying to use libraries that only compile against rust-git</message>
<message time='20140506T20:06:08' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>xilo: it looks like it&apos;s getting OOM-killed by the kernel. You might just want to grab the nightly builds off of rust-lang.org: http://www.rust-lang.org/install.html</message>
<message time='20140506T20:06:45' id='strcat' name='strcat' token='' isuser='false' type='normal'>xilo: which OS are you on?</message>
<message time='20140506T20:06:57' id='xilo' name='xilo' token='' isuser='false' type='normal'>arch linux</message>
<message time='20140506T20:06:59' id='strcat' name='strcat' token='' isuser='false' type='normal'>rust-git makes it sound like Arch, in which case there&apos;s a nightly package</message>
<message time='20140506T20:07:07' id='strcat' name='strcat' token='' isuser='false' type='normal'>[thestinger]</message>
<message time='20140506T20:07:08' id='strcat' name='strcat' token='' isuser='false' type='normal'>SigLevel = Optional</message>
<message time='20140506T20:07:10' id='strcat' name='strcat' token='' isuser='false' type='normal'>Server = http://pkgbuild.com/~thestinger/repo/$arch</message>
<message time='20140506T20:07:22' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>strcat: btw, that hasn&apos;t built in a couple days</message>
<message time='20140506T20:07:33' id='strcat' name='strcat' token='' isuser='false' type='normal'>sfackler: I know, rust bugs :)</message>
<message time='20140506T20:07:42' id='strcat' name='strcat' token='' isuser='false' type='action'>is too lazy to deal with it right away</message>
<message time='20140506T20:07:48' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>ah</message>
<message time='20140506T20:08:04' id='xilo' name='xilo' token='' isuser='false' type='normal'>strcat: cool thanks</message>
<message time='20140506T20:08:07' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>strcat: /nick fatcat</message>
<message time='20140506T20:08:25' id='strcat' name='strcat' token='' isuser='false' type='normal'>sfackler: actually it did build. hm</message>
<message time='20140506T20:08:52' id='strcat' name='strcat' token='' isuser='false' type='normal'>sfackler: thestinger/rust-git     0.10.808.gb5d6b07-1  0.10.906.gc600dc0-1  1.07 MiB        35.06 MiB</message>
<message time='20140506T20:08:54' id='strcat' name='strcat' token='' isuser='false' type='normal'>sfackler: *shrug*</message>
<message time='20140506T20:09:01' id='strcat' name='strcat' token='' isuser='false' type='normal'>looks like being lazy worked, the problem was fixed in rust</message>
<message time='20140506T20:09:07' id='strcat' name='strcat' token='' isuser='false' type='normal'>I don&apos;t even have to know what it is</message>
<message time='20140506T20:12:40' id='astrum|z' name='Astrum|Z' token='' isuser='false' type='normal'>why is it a warning to use a custom attribute macro?</message>
<message time='20140506T20:17:55' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>Astrum|Z: an unused attribute warning?</message>
<message time='20140506T20:18:23' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>because the current lint pass is bad and I haven&apos;t gotten around to implementing https://github.com/rust-lang/rfcs/blob/master/active/0002-attribute-usage.md</message>
<message time='20140506T20:18:54' id='astrum|z' name='Astrum|Z' token='' isuser='false' type='normal'>warning: unknown attribute, #[warn(attribute_usage)] on by default</message>
<message time='20140506T20:19:36' id='astrum|z' name='Astrum|Z' token='' isuser='false' type='normal'>let me read the rfc real quick</message>
<message time='20140506T20:21:29' id='astrum|z' name='Astrum|Z' token='' isuser='false' type='normal'>yup, that&apos;s it</message>
<message time='20140506T20:21:43' id='kmc' name='kmc' token='' isuser='false' type='normal'>derived operations on raw pointer fields are shallow, right? (and that&apos;s why there&apos;s a warning)</message>
<message time='20140506T20:22:02' id='astrum|z' name='Astrum|Z' token='' isuser='false' type='normal'>I should probably learn to look at the RFCs before asking questions, heh</message>
<message time='20140506T20:24:45' id='sfackler' name='sfackler' token='' isuser='false' type='normal'>kmc: yes, IIRC</message>
<message time='20140506T20:40:48' id='siegelord' name='SiegeLord' token='' isuser='false' type='normal'>Hmm... I wonder if I should merge vectors and matrices in my library... it&apos;d probably complicate indexing</message>
<message time='20140506T20:41:07' id='siegelord' name='SiegeLord' token='' isuser='false' type='normal'>I assume it&apos;s not possible to implement the same trait twice for a single type (with different type parameters)?</message>
<message time='20140506T20:44:24' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>I always forget, is there a difference between ucs4 and utf32?</message>
<message time='20140506T20:44:49' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>SiegeLord: good question</message>
<message time='20140506T20:45:19' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>SiegeLord: as long as neither of the type parameters is generic, I feel like there&apos;s no reason for it to not work</message>
<message time='20140506T20:45:20' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>bstrie: No difference</message>
<message time='20140506T20:45:25' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>FreeFull: thanks</message>
<message time='20140506T20:45:25' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>Two names for the same thing</message>
<message time='20140506T20:45:37' id='strcat' name='strcat' token='' isuser='false' type='normal'>FreeFull: kind of.</message>
<message time='20140506T20:45:41' id='siegelord' name='SiegeLord' token='' isuser='false' type='normal'>bstrie, There&apos;s many things like that that don&apos;t work</message>
<message time='20140506T20:45:45' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>but there *is* a difference between ucs2 and utf16, right?</message>
<message time='20140506T20:45:52' id='siegelord' name='SiegeLord' token='' isuser='false' type='normal'>Perhaps it will get better until the trait rewrite happens</message>
<message time='20140506T20:45:59' id='siegelord' name='SiegeLord' token='' isuser='false' type='normal'>*get beter when</message>
<message time='20140506T20:46:14' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: there&apos;s a difference with both</message>
<message time='20140506T20:46:24' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>dammit unicode</message>
<message time='20140506T20:46:27' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>UCS2 only encodes the BMP</message>
<message time='20140506T20:46:44' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>UTF-16 is variable-length</message>
<message time='20140506T20:46:55' id='strcat' name='strcat' token='' isuser='false' type='normal'>ucs2 specified a 16-bit range, utf-16 specifies a 21-bit (approx) range and makes non-encoding usage of the surrogate range invalid</message>
<message time='20140506T20:47:16' id='strcat' name='strcat' token='' isuser='false' type='normal'>ucs4 specified a 32-bit range, UTF-32 specifies an ~21-bit one</message>
<message time='20140506T20:47:40' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>utf8 is what you should use if not restricted by compability</message>
<message time='20140506T20:47:48' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: the proper term for rust&apos;s `char` is &quot;unicode scalar value&quot;</message>
<message time='20140506T20:48:07' id='eddyb' name='eddyb' token='' isuser='false' type='normal'>USV21</message>
<message time='20140506T20:48:10' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>dammit unicode</message>
<message time='20140506T20:48:10' id='strcat' name='strcat' token='' isuser='false' type='normal'>it&apos;s not a &quot;code point&quot; (because surrogates aren&apos;t permitted)</message>
<message time='20140506T20:48:17' id='strcat' name='strcat' token='' isuser='false' type='normal'>and ot</message>
<message time='20140506T20:48:23' id='strcat' name='strcat' token='' isuser='false' type='normal'>it&apos;s certainly not a character*</message>
<message time='20140506T20:48:24' id='strcat' name='strcat' token='' isuser='false' type='normal'>;p</message>
<message time='20140506T20:49:04' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>basically I want to rename our `char` type because I think the word &quot;character&quot; is overloaded to the point of uselessness</message>
<message time='20140506T20:49:09' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>maybe `rune`, like Go</message>
<message time='20140506T20:49:14' id='strcat' name='strcat' token='' isuser='false' type='normal'>please not rune</message>
<message time='20140506T20:49:20' id='strcat' name='strcat' token='' isuser='false' type='normal'>sounds way too much like it</message>
<message time='20140506T20:49:26' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>at least that has the benefit of having no precedents :P</message>
<message time='20140506T20:49:28' id='strcat' name='strcat' token='' isuser='false' type='normal'>it&apos;s a glyph</message>
<message time='20140506T20:49:41' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: rune means something pre-plan9</message>
<message time='20140506T20:49:52' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>how about just `ucs4`</message>
<message time='20140506T20:50:00' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>who even uses chars</message>
<message time='20140506T20:50:07' id='cmr' name='cmr' token='' isuser='false' type='normal'>why not remove them</message>
<message time='20140506T20:50:09' id='cmr' name='cmr' token='' isuser='false' type='normal'>strings, too</message>
<message time='20140506T20:50:14' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>Hard to shorten &quot;unicode scalar value&quot; to something nice</message>
<message time='20140506T20:50:26' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: but it&apos;s not ucs4</message>
<message time='20140506T20:50:29' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>FreeFull: how about &quot;uniscava&quot;</message>
<message time='20140506T20:50:31' id='strcat' name='strcat' token='' isuser='false' type='normal'>usv would be &apos;correct&apos;</message>
<message time='20140506T20:50:48' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>uval?</message>
<message time='20140506T20:50:49' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>&quot;unicalue&quot;</message>
<message time='20140506T20:50:54' id='jesse98' name='jesse98' token='' isuser='false' type='normal'>apple uses &quot;unichar&quot;</message>
<message time='20140506T20:51:00' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>hmm</message>
<message time='20140506T20:51:06' id='strcat' name='strcat' token='' isuser='false' type='normal'>still makes it sound like a character when it&apos;s not ;p</message>
<message time='20140506T20:51:12' id='strcat' name='strcat' token='' isuser='false' type='normal'>C11 uses uchar</message>
<message time='20140506T20:51:14' id='strcat' name='strcat' token='' isuser='false' type='normal'>as does ICU</message>
<message time='20140506T20:51:23' id='jesse98' name='jesse98' token='' isuser='false' type='normal'>well it&apos;s more a character than a glyph :-)</message>
<message time='20140506T20:51:26' id='strcat' name='strcat' token='' isuser='false' type='normal'>but that&apos;s to distinguish it from a C char</message>
<message time='20140506T20:52:09' id='strcat' name='strcat' token='' isuser='false' type='normal'>jesse98: sure, I guess character half makes sense</message>
<message time='20140506T20:52:14' id='jesse98' name='jesse98' token='' isuser='false' type='normal'>not sure char is really a character either, stuff like BEL and FF aren&apos;t so charactery</message>
<message time='20140506T20:52:38' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>Combining characters, and things like RTL</message>
<message time='20140506T20:54:39' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>let&apos;s get someone on the unicode committee and have them come up with punchy alises to all these gonzo terms</message>
<message time='20140506T20:55:34' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>&quot;unicode scalar value&quot; -&gt; &quot;blasto&quot;</message>
<message time='20140506T20:55:51' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>&quot;grapheme cluster&quot; -&gt; &quot;shebam&quot;</message>
<message time='20140506T20:57:57' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>there was a proposal that went through RFCs and replaced each new defined term with a unique pokemon</message>
<message time='20140506T20:58:42' id='o11c' name='o11c' token='' isuser='false' type='normal'>cool idea, but wouldn&apos;t that be trademark violation?</message>
<message time='20140506T20:58:55' id='o11c' name='o11c' token='' isuser='false' type='normal'>hm, though I suppose trademarks only apply in the same area ...</message>
<message time='20140506T20:59:13' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>XMPPwocky: I want to read this</message>
<message time='20140506T20:59:23' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>I think nintendo wouldn&apos;t be happy either way</message>
<message time='20140506T21:02:08' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>i think it was on github or something</message>
<message time='20140506T21:07:21' id='luqman' name='Luqman' token='' isuser='false' type='normal'>sweet, got a rust ident server compiled and running on a rasberrypi</message>
<message time='20140506T21:11:26' id='kmc' name='kmc' token='' isuser='false' type='normal'>Luqman: nice! how hard was it?</message>
<message time='20140506T21:12:36' id='kmc' name='kmc' token='' isuser='false' type='normal'>might try rewriting https://gist.github.com/kmcallister/7715891 in Rust</message>
<message time='20140506T21:15:35' id='luqman' name='Luqman' token='' isuser='false' type='normal'>kmc: not too bad, just had to fiddle with my script to get rustc for arm building again</message>
<message time='20140506T21:16:07' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>does rustc like armv7?</message>
<message time='20140506T21:16:56' id='siegelord' name='SiegeLord' token='' isuser='false' type='normal'>Does C ABI differ between Windows and Linux?</message>
<message time='20140506T21:17:39' id='luqman' name='Luqman' token='' isuser='false' type='normal'>XMPPwocky: i&apos;d assume it&apos;d work, maybe with a bit of fiddling</message>
<message time='20140506T21:17:50' id='kmc' name='kmc' token='' isuser='false' type='normal'>SiegeLord: yes</message>
<message time='20140506T21:18:22' id='kmc' name='kmc' token='' isuser='false' type='normal'>e.g. http://en.wikipedia.org/wiki/X86_calling_conventions#x86-64_calling_conventions</message>
<message time='20140506T21:20:12' id='dardevelin' name='dardevelin' token='' isuser='false' type='normal'>windows is all fast call</message>
<message time='20140506T21:20:27' id='dardevelin' name='dardevelin' token='' isuser='false' type='normal'>or at least used to be</message>
<message time='20140506T21:33:16' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>strcat: so what did </message>
<message time='20140506T21:33:28' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>strcat: sowhat did &quot;rune&quot; mean before Go&apos;s usage?</message>
<message time='20140506T21:33:51' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: https://en.wikipedia.org/wiki/Runes#Unicode ;p</message>
<message time='20140506T21:33:57' id='kmc' name='kmc' token='' isuser='false' type='normal'>I just learned about std::ty::Unsafe -- do I need to use this whenever I take a *mut to the interior of a Rust data structure?</message>
<message time='20140506T21:34:05' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: Well except Plan9 called it a rune</message>
<message time='20140506T21:34:14' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>which is where Go got the name, being Pike and all</message>
<message time='20140506T21:34:16' id='strcat' name='strcat' token='' isuser='false' type='normal'>kmc: you need to use it when you mutate something that&apos;s not mutable</message>
<message time='20140506T21:34:28' id='strcat' name='strcat' token='' isuser='false' type='normal'>it&apos;s for breaking the mutability rules when you&apos;re enforcing safety another way</message>
<message time='20140506T21:34:32' id='strcat' name='strcat' token='' isuser='false' type='normal'>so rust doesn&apos;t tell LLVM it is immutable</message>
<message time='20140506T21:34:50' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>bstrie: https://github.com/Earnestly/plan9/blob/master/sys/src/cmd/unix/drawterm/libc/utf.h</message>
<message time='20140506T21:35:25' id='kmc' name='kmc' token='' isuser='false' type='normal'>okay</message>
<message time='20140506T21:36:59' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>strcat: I don&apos;t honestly think that renaming `char` to `rune` would cause anyone to mistakenly believe that all values contained within must be elder futhark :P</message>
<message time='20140506T21:37:02' id='strcat' name='strcat' token='' isuser='false' type='normal'>nmatsakis: hm, I think I found a bug</message>
<message time='20140506T21:37:16' id='earnestly' name='Earnestly' token='' isuser='false' type='action'>thinks rune is a nice name for it</message>
<message time='20140506T21:37:34' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>I don&apos;t love it, but it&apos;s a better name than char</message>
<message time='20140506T21:37:56' id='strcat' name='strcat' token='' isuser='false' type='normal'>nmatsakis: well, nvm I guess it&apos;s not a bug :)</message>
<message time='20140506T21:37:57' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>i still like charpoint</message>
<message time='20140506T21:37:57' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>char has too much historical baggage, too many assumptions, 1 char = 1 visible character, etc.</message>
<message time='20140506T21:38:19' id='strcat' name='strcat' token='' isuser='false' type='normal'>nmatsakis: http://sprunge.us/dGLQ it would be nice if rust considered that return value as not being usable</message>
<message time='20140506T21:38:32' id='strcat' name='strcat' token='' isuser='false' type='normal'>nmatsakis: because I want to use &amp;mut in place of a raw pointer to mark it noalias (and non-null)</message>
<message time='20140506T21:38:34' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>(But it&apos;s also not hard to think of char in the rust sense and just relearn)</message>
<message time='20140506T21:38:53' id='kmc' name='kmc' token='' isuser='false' type='normal'>&apos;int&apos; also has historical baggage</message>
<message time='20140506T21:38:58' id='strcat' name='strcat' token='' isuser='false' type='action'>shrugs</message>
<message time='20140506T21:39:03' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>Earnestly: that&apos;s just it, I don&apos;t think we have a consistent story on what it means &quot;in the rust sense&quot;</message>
<message time='20140506T21:39:12' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>kmc: I want to rename int and uint as well :P</message>
<message time='20140506T21:39:14' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>bstrie: Valid utf-8 codepoints</message>
<message time='20140506T21:39:41' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>Earnestly: ...but `char` *isn&apos;t* utf-8</message>
<message time='20140506T21:39:41' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>I have to ask, is it actually valid UTF-8, or is it C &quot;UTF-8&quot; which isn&apos;t exactly UTF-8 due to NUL?</message>
<message time='20140506T21:40:01' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>rust needs more stories</message>
<message time='20140506T21:40:05' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>bstrie: char doesn&apos;t represent utf-8 codepoints?</message>
<message time='20140506T21:40:06' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>that&apos;s like the biggest thing imo</message>
<message time='20140506T21:40:08' id='kmc' name='kmc' token='' isuser='false' type='normal'>you can have NULL in Rust strings so presumably the former</message>
<message time='20140506T21:40:09' id='strcat' name='strcat' token='' isuser='false' type='normal'>nmatsakis: https://github.com/mozilla/rust/issues/13996 oh well, missing feature :)</message>
<message time='20140506T21:40:15' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>as far as documentation</message>
<message time='20140506T21:40:24' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>Earnestly: it&apos;s utf-32</message>
<message time='20140506T21:40:28' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>or ucs-4, or whatever the ell</message>
<message time='20140506T21:40:42' id='freefull' name='FreeFull' token='' isuser='false' type='normal'>Rust strings don&apos;t care if there is null or not</message>
<message time='20140506T21:40:45' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: C UTF-8 is not UTF-8</message>
<message time='20140506T21:40:52' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: I know</message>
<message time='20140506T21:40:54' id='strcat' name='strcat' token='' isuser='false' type='normal'>0 is a valid code point, UTF-8 encodes it as \0</message>
<message time='20140506T21:40:55' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: that&apos;s what I was asking</message>
<message time='20140506T21:40:59' id='strcat' name='strcat' token='' isuser='false' type='normal'>rust UTF-8 is really UTF-8</message>
<message time='20140506T21:41:01' id='strcat' name='strcat' token='' isuser='false' type='normal'>you can have inner \0</message>
<message time='20140506T21:41:06' id='strcat' name='strcat' token='' isuser='false' type='normal'>rusti: &quot;foo\0bar&quot;</message>
<message time='20140506T21:41:07' id='rusti' name='rusti' token='' isuser='false' type='notice'>foo&#x10;0bar</message>
<message time='20140506T21:41:10' id='strcat' name='strcat' token='' isuser='false' type='normal'>er</message>
<message time='20140506T21:41:12' id='strcat' name='strcat' token='' isuser='false' type='normal'>rusti: &quot;foo\x00bar&quot;</message>
<message time='20140506T21:41:13' id='rusti' name='rusti' token='' isuser='false' type='notice'>foo&#x10;0bar</message>
<message time='20140506T21:41:14' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>Good</message>
<message time='20140506T21:41:15' id='kmc' name='kmc' token='' isuser='false' type='normal'>I&apos;m mutating a tree where all nodes are owned by a &quot;pool&quot; object, and I want to freely store and copy pointers to nodes, since they&apos;ll live as long as the pool does</message>
<message time='20140506T21:41:22' id='strcat' name='strcat' token='' isuser='false' type='normal'>why does it print like that</message>
<message time='20140506T21:41:24' id='strcat' name='strcat' token='' isuser='false' type='action'>shrugs</message>
<message time='20140506T21:41:35' id='kmc' name='kmc' token='' isuser='false' type='normal'>but I guess I need some kind of dynamic freezing too</message>
<message time='20140506T21:41:44' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>bstrie: Erm, is the documentation on char incorrect? http://static.rust-lang.org/doc/master/std/char/index.html</message>
<message time='20140506T21:42:07' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>It&apos;s not UTF-32 afaics</message>
<message time='20140506T21:42:44' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>like 90% sure it&apos;s utf8, so it&apos;s c compatible to a first approximation</message>
<message time='20140506T21:42:58' id='kimundi' name='kimundi' token='' isuser='false' type='normal'>Earnestly: The doc is correct</message>
<message time='20140506T21:43:03' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: it&apos;s a unicode scalar value, aka a UTF-32 encoding unit in native endian</message>
<message time='20140506T21:43:07' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>Earnestly: but it&apos;s not utf-8</message>
<message time='20140506T21:43:10' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>Hm</message>
<message time='20140506T21:43:35' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: code points are a set of { unicode scalar values, surrogates }</message>
<message time='20140506T21:43:51' id='strcat' name='strcat' token='' isuser='false' type='action'>needs a union key</message>
<message time='20140506T21:44:00' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: Right, I see now (just skimming over the standard)</message>
<message time='20140506T21:45:46' id='kmc' name='kmc' token='' isuser='false' type='normal'>also, I had the thought that HKT would be particularly useful with lifetime variables</message>
<message time='20140506T21:46:01' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>so yes, I would enjoy it if &quot;characters&quot; in rust was consistently used to refer to {whatever the heck term exists for each eight-bit segment ofa utf-8 value}</message>
<message time='20140506T21:46:21' id='kmc' name='kmc' token='' isuser='false' type='normal'>e.g. trait TreeSink&lt;Handle&gt; { fn create_element&lt;&apos;t&gt;(&amp;&apos;t mut self, name: Atom) -&gt; Handle&lt;&apos;t&gt;; ... }</message>
<message time='20140506T21:46:25' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: hm?</message>
<message time='20140506T21:46:33' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: the bytes in UTF-8 are code units</message>
<message time='20140506T21:46:38' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>bstrie: in that case you should just have a newtype around u8</message>
<message time='20140506T21:46:51' id='strcat' name='strcat' token='' isuser='false' type='normal'>they encode unicode scalar values, which are a subset of code points (not including the surrogates)</message>
<message time='20140506T21:46:54' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>really I just want *one* meaning for it</message>
<message time='20140506T21:46:54' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>the reason for str and char and friends is to make utf-8 not terrible, right?</message>
<message time='20140506T21:47:04' id='strcat' name='strcat' token='' isuser='false' type='normal'>bstrie: I am actually find with the current naming</message>
<message time='20140506T21:47:21' id='strcat' name='strcat' token='' isuser='false' type='normal'>XMPPwocky: StrBuf is Vec&lt;u8&gt; internally, it enforces a valid UTF-8 guarantee</message>
<message time='20140506T21:47:31' id='strcat' name='strcat' token='' isuser='false' type='normal'>char is basically a u32, but enforces that it&apos;s a valid unicode scalar value</message>
<message time='20140506T21:47:53' id='strcat' name='strcat' token='' isuser='false' type='normal'>this means all the methods can assume they are dealing with valid UTF-8</message>
<message time='20140506T21:47:55' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>right</message>
<message time='20140506T21:48:28' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: Probably a silly question, but how does conversions or whatever with UTF-8 deal with endianness?</message>
<message time='20140506T21:48:38' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: doesn&apos;t need to</message>
<message time='20140506T21:48:41' id='strcat' name='strcat' token='' isuser='false' type='normal'>UTF-8 is a byte encoding</message>
<message time='20140506T21:48:47' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>utf-8 is magic</message>
<message time='20140506T21:48:55' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: But if it stores it as a UTF-32 native endianness?</message>
<message time='20140506T21:48:59' id='strcat' name='strcat' token='' isuser='false' type='normal'>huh?</message>
<message time='20140506T21:49:06' id='strcat' name='strcat' token='' isuser='false' type='normal'>UTF-8 and UTF-32 are totally different things</message>
<message time='20140506T21:49:06' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: &quot; it&apos;s a unicode scalar value, aka a UTF-32 encoding unit in native endian&quot;</message>
<message time='20140506T21:49:12' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>that does have the annoying effect that replacing a &quot;compact&quot; utf-8 character (e.g. 8 bits) with a &quot;big&quot; character (utf-32) in strbuf is O(bytes after replacement)</message>
<message time='20140506T21:49:15' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>no?</message>
<message time='20140506T21:49:16' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: UTF-16 and UTF-32 are not byte encodings</message>
<message time='20140506T21:49:28' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: I know... but I&apos;m confused by your statement above</message>
<message time='20140506T21:49:42' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: 16-bit and 32-bit integers vary in representation based on endianness</message>
<message time='20140506T21:49:45' id='strcat' name='strcat' token='' isuser='false' type='normal'>bytes do not</message>
<message time='20140506T21:50:33' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE are the unicode byte representations</message>
<message time='20140506T21:51:00' id='strcat' name='strcat' token='' isuser='false' type='normal'>utf-16 and utf-32 need a byte order mark for I/O</message>
<message time='20140506T21:51:09' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: Yes, I&apos;m aware</message>
<message time='20140506T21:51:33' id='strcat' name='strcat' token='' isuser='false' type='normal'>XMPPwocky: sure, but you&apos;re using &apos;character&apos; to refer to a unicode scalar value</message>
<message time='20140506T21:51:38' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>strcat: What were you refering to then?  (aka a UTF-32 encoding unit in native endian, when refering to a char)</message>
<message time='20140506T21:51:41' id='strcat' name='strcat' token='' isuser='false' type='normal'>XMPPwocky: it is *not* a user-facing concept</message>
<message time='20140506T21:51:53' id='strcat' name='strcat' token='' isuser='false' type='normal'>XMPPwocky: if a user hits backspace, they expect a glyph to be deleted</message>
<message time='20140506T21:52:10' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: what I just said - there are 2 versions of UTF-16/UTF-32</message>
<message time='20140506T21:52:21' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: bytes don&apos;t vary based on endianness, larger integers do</message>
<message time='20140506T21:52:25' id='strcat' name='strcat' token='' isuser='false' type='normal'>endianness is about byte order</message>
<message time='20140506T21:52:39' id='strcat' name='strcat' token='' isuser='false' type='normal'>16-bit and 32-bit integers are represented differently in little/big endian, 8-bit integers are not</message>
<message time='20140506T21:53:02' id='earnestly' name='Earnestly' token='' isuser='false' type='normal'>But you were talking about char</message>
<message time='20140506T21:53:07' id='strcat' name='strcat' token='' isuser='false' type='normal'>yes</message>
<message time='20140506T21:53:23' id='strcat' name='strcat' token='' isuser='false' type='normal'>char is represented as an integer, it&apos;s a unicode scalar value</message>
<message time='20140506T21:53:28' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>char is not a character</message>
<message time='20140506T21:53:30' id='strcat' name='strcat' token='' isuser='false' type='normal'>aka it&apos;s a UTF-32 code unit in native endian</message>
<message time='20140506T21:53:33' id='strcat' name='strcat' token='' isuser='false' type='normal'>i.e. *</message>
<message time='20140506T21:53:51' id='strcat' name='strcat' token='' isuser='false' type='normal'>Earnestly: I don&apos;t think you&apos;re going to get anywhere by asking me, just read the standard</message>
<message time='20140506T21:54:12' id='kokakiwi' name='KokaKiwi' token='' isuser='false' type='normal'>Ohai</message>
<message time='20140506T21:54:13' id='kokakiwi' name='KokaKiwi' token='' isuser='false' type='normal'>&quot;let vec = Vec::from_elem(456456456464645, 0);&quot; -&gt; &quot;illegal hardware instruction&quot; -&gt; boom.</message>
<message time='20140506T21:54:18' id='kokakiwi' name='KokaKiwi' token='' isuser='false' type='normal'>._.</message>
<message time='20140506T21:54:21' id='strcat' name='strcat' token='' isuser='false' type='normal'>KokaKiwi: intended</message>
<message time='20140506T21:54:28' id='strcat' name='strcat' token='' isuser='false' type='normal'>illegal hardware instruction == abort</message>
<message time='20140506T21:54:35' id='kokakiwi' name='KokaKiwi' token='' isuser='false' type='normal'>wut?</message>
<message time='20140506T21:54:42' id='strcat' name='strcat' token='' isuser='false' type='normal'>run abort</message>
<message time='20140506T21:54:48' id='strcat' name='strcat' token='' isuser='false' type='normal'>std::intrinsics::abort</message>
<message time='20140506T21:55:16' id='strcat' name='strcat' token='' isuser='false' type='normal'>and yes it should print an error (&quot;out of memory&quot;) but we didn&apos;t have a non-allocating way of printing when it was written</message>
<message time='20140506T21:56:51' id='o11c' name='o11c' token='' isuser='false' type='action'>screams something about not abusing signals for things they don&apos;t mean</message>
<message time='20140506T21:57:01' id='strcat' name='strcat' token='' isuser='false' type='normal'>o11c: talk to LLVM</message>
<message time='20140506T21:57:06' id='strcat' name='strcat' token='' isuser='false' type='normal'>we use the llvm.trap intrinsic</message>
<message time='20140506T21:57:19' id='strcat' name='strcat' token='' isuser='false' type='normal'>o11c: anyway linux throws a floating point exception on integer division</message>
<message time='20140506T21:57:19' id='kokakiwi' name='KokaKiwi' token='' isuser='false' type='normal'>._.</message>
<message time='20140506T21:57:23' id='strcat' name='strcat' token='' isuser='false' type='normal'>these are meaningless</message>
<message time='20140506T21:57:47' id='strcat' name='strcat' token='' isuser='false' type='normal'>make a C program doing x / 0</message>
<message time='20140506T21:57:50' id='strcat' name='strcat' token='' isuser='false' type='normal'>floating point exception</message>
<message time='20140506T21:58:02' id='strcat' name='strcat' token='' isuser='false' type='normal'>do it with floating point, no signal (since they don&apos;t trap by default)</message>
<message time='20140506T21:58:08' id='strcat' name='strcat' token='' isuser='false' type='action'>shrugs</message>
<message time='20140506T22:01:43' id='csun' name='csun' token='' isuser='false' type='normal'>rust noob here, I read that ~ syntax was recently removed</message>
<message time='20140506T22:01:51' id='csun' name='csun' token='' isuser='false' type='normal'>I still see this in the tutorial, has it just not been updated yet</message>
<message time='20140506T22:02:10' id='strcat' name='strcat' token='' isuser='false' type='normal'>csun: it hasn&apos;t been removed yet</message>
<message time='20140506T22:02:20' id='bstrie' name='bstrie' token='' isuser='false' type='normal'>csun: that document was just the proposal</message>
<message time='20140506T22:02:21' id='strcat' name='strcat' token='' isuser='false' type='normal'>the RFC for removing it was accepted, needs to be implemented</message>
<message time='20140506T22:02:34' id='csun' name='csun' token='' isuser='false' type='normal'>oh, I see!</message>
<message time='20140506T22:02:47' id='leo`' name='Leo`' token='' isuser='false' type='normal'>strcat: nit sure to understand. oom raises a SIGABRT ? or a SIGILL ?</message>
<message time='20140506T22:02:59' id='leo`' name='Leo`' token='' isuser='false' type='normal'>not*</message>
<message time='20140506T22:02:59' id='strcat' name='strcat' token='' isuser='false' type='normal'>Leo`: it doesn&apos;t raise anything, it calls abort</message>
<message time='20140506T22:03:01' id='strcat' name='strcat' token='' isuser='false' type='normal'>which is llvm.trap</message>
<message time='20140506T22:03:07' id='leo`' name='Leo`' token='' isuser='false' type='normal'>ok</message>
<message time='20140506T22:03:32' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>oom killer in *nix sends SIGKILL</message>
<message time='20140506T22:03:34' id='huon' name='huon' token='' isuser='false' type='normal'>(in practice, it results in the program dying with SIGILL)</message>
<message time='20140506T22:03:34' id='strcat' name='strcat' token='' isuser='false' type='normal'>which causes the process to exit &apos;abnormally&apos; by doing something invalid or using int</message>
<message time='20140506T22:03:43' id='xmppwocky' name='XMPPwocky' token='' isuser='false' type='normal'>but that&apos;s if the entire system .is out of RAM</message>
<message time='20140506T22:03:46' id='leo`' name='Leo`' token='' isuser='false' type='normal'>ok</message>
<message time='20140506T22:03:51' id='strcat' name='strcat' token='' isuser='false' type='normal'>XMPPwocky: or a cgroup ;p</message>
<message time='20140506T22:03:54' id='leo`' name='Leo`' token='' isuser='false' type='normal'>so this is not a bug</message>
<message time='20140506T22:03:54' id='huon' name='huon' token='' isuser='false' type='normal'>(on x86-64 at least)</message>
<message time='20140506T22:04:02' id='strcat' name='strcat' token='' isuser='false' type='normal'>Leo`: yeah, it&apos;s intentional</message>
<message time='20140506T22:04:13' id='strcat' name='strcat' token='' isuser='false' type='normal'>it could print an error, it doesn&apos;t atm</message>
<message time='20140506T22:04:14' id='leo`' name='Leo`' token='' isuser='false' type='normal'>just an unimplemented error reporting</message>
<message time='20140506T22:04:19' id='leo`' name='Leo`' token='' isuser='false' type='normal'>I see</message>
<message time='20140506T22:10:42' id='siegelord' name='SiegeLord' token='' isuser='false' type='normal'>Alright, I think I have isolated the FFI struct-by-value bug... it involves a separate crate o_O</message>
</log>
