00:01 ClarusCogitatio joined
masak wollmers: `unshift %bMatches{$_} for @b[$bmin..$bmax]; $index += $bmax - $bmin + 1;` 00:04
00:06 virtualsue left 00:12 ClarusCogitatio left
wollmers masak: Why the +1? 00:14
00:22 erkan left
masak because a range that includes both its endpoints will contain one element more than the difference between them. 00:23
00:23 erkan joined, erkan left, erkan joined
masak m: say (10..30).elems 00:24
camelia rakudo-moar 315ec6: OUTPUT«21␤»
wollmers m: my @b = <a b a b>;my %bM;my $i;unshift %bM{$_},$i++ for @b;%bM.perl;
camelia ( no output )
wollmers m: my @b = <a b a b>;my %bM;my $i;unshift %bM{$_},$i++ for @b;%bM.perl.say; 00:25
camelia rakudo-moar 315ec6: OUTPUT«("a" => [2, 0], "b" => [3, 1]).hash␤»
masak oh, right, you actually want to unshift the $i++. sorry :)
wollmers masak: yea. I am sure, there is something more elegant in P6 00:26
masak not so sure.
wollmers Hmm. It goes through a list, and stores the positions of the keys as values. 00:31
00:33 raiph left 00:36 thou joined 00:41 thou left
wollmers masak: can I combine this in a hash: <a b a b>.kv 00:41
m: <a b a b>.kv.say
camelia rakudo-moar 315ec6: OUTPUT«0 a 1 b 2 a 3 b␤»
masak m: say <a b a b>.pairs.perl 00:42
camelia rakudo-moar 315ec6: OUTPUT«(0 => "a", 1 => "b", 2 => "a", 3 => "b").list␤»
masak m: say <a b a b>.pairs.classify(*.value).perl
camelia rakudo-moar 315ec6: OUTPUT«("b" => [1 => "b", 3 => "b"], "a" => [0 => "a", 2 => "a"]).hash␤»
masak m: say <a b a b>.pairs.classify(*.value).map({; .key => [.value.keys]}).perl 00:43
camelia rakudo-moar 315ec6: OUTPUT«("a" => [0, 1], "b" => [0, 1]).list␤»
wollmers But with ethe letters as key, and the values as arrays.
masak \o/
01:00 wollmers left 01:02 slavik left
timotimo actually 01:03
m: say ((my %).push: <a b a b>.pairs).perl
camelia rakudo-moar 315ec6: OUTPUT«("1" => "b", "0" => "a", "2" => "a", "3" => "b").hash␤»
timotimo ah 01:04
m: say ((my %).push: %<a b a b>.invert).perl
camelia rakudo-moar 315ec6: OUTPUT«().hash␤»
timotimo how did that work again
m: say %<a b a b>.perl
camelia rakudo-moar 315ec6: OUTPUT«().hash␤»
timotimo ah, of course
m: say %(<a b a b>).perl
camelia rakudo-moar 315ec6: OUTPUT«("a" => "b").hash␤»
timotimo m: say %(<a b a b>.pairs).perl
camelia rakudo-moar 315ec6: OUTPUT«("1" => "b", "3" => "b", "0" => "a", "2" => "a").hash␤»
timotimo m: say %(<a b a b>.pairs).invert.perl 01:05
camelia rakudo-moar 315ec6: OUTPUT«("a" => "0", "b" => "1", "a" => "2", "b" => "3").list␤»
timotimo m: my %target; %target.push: %(<a b a b>.pairs).invert; say %target
camelia rakudo-moar 315ec6: OUTPUT«"a" => ["0", "2"], "b" => ["1", "3"]␤»
timotimo that's what i meant
01:15 slavik joined 01:25 grettis joined 01:30 grettis left 01:31 leont left 01:48 BenGoldberg left 01:52 dj_goku left 01:57 dj_goku joined
dj_goku [Coke]: hi. Yeah I want to add tests to what ingy has downloaded. 01:58
02:21 molaf_ left
PerlJam got an email today from Mr. Laurence Wall 02:24
02:24 thou joined 02:29 thou left
colomon PerlJam: ooooo 02:34
02:36 molaf_ joined 02:42 grettis joined, kurahaupo left 02:46 grettis left 02:51 eternaleye left 02:55 tinyblak joined 03:10 noganex joined 03:13 noganex_ left, eternaleye joined 03:38 tinyblak left 03:39 tinyblak joined
dalek rl6-bench/stress: 8fc4746 | (Geoffrey Broadwell)++ | / (2 files):
Add --show-relative analyze option, defaulting to --compare, turned off for diagnosis
rl6-bench/stress: 63330ac | (Geoffrey Broadwell)++ | lib/Analyze/Summary.pm:
Fix 'showing' subheader to correctly reflect various --show-* options
rl6-bench/stress: 5e2a95b | (Geoffrey Broadwell)++ | analyze:
Improve diagnosis layout in --compare mode
03:48 araujo joined 03:57 rmgk left 03:59 rmgk joined 04:13 thou joined 04:15 tinyblak_ joined, tinyblak left 04:16 jepeway left, PZt left 04:17 thou left 04:37 zombcode is now known as bcode 04:41 immortal joined 04:42 erkan left 04:51 baest_ joined 04:53 baest left 05:11 labster left 05:30 tinyblak_ left 05:55 tinyblak joined, anaeem1 joined 06:01 thou joined 06:06 thou left 06:10 raiph joined
dalek rl6-bench/stress: 83fb590 | (Geoffrey Broadwell)++ | analyze:
Prepare analyze for detection of timeouts
rl6-bench/stress: a9ba519 | (Geoffrey Broadwell)++ | analyze:
Reorder code slightly for clarity
rl6-bench/stress: 47c5376 | (Geoffrey Broadwell)++ | analyze:
Refactor summarize_results_html_snippet() in preparation for adding failure diagnoses
06:24 tinyblak_ joined 06:26 notfix is now known as xfix 06:28 tinyblak left, renormalist left 06:33 gfldex left 06:34 kaare_ joined
dalek rl6-bench/stress: 918d15a | (Geoffrey Broadwell)++ | analyze:
Only show summary scores when --show-relative is set, HTML edition
rl6-bench/stress: 4ba1f4a | (Geoffrey Broadwell)++ | analyze:
Show failure diagnosis icons in HTML output
06:39 FROGGS_ left 06:42 gfldex joined 06:43 cognominal left 06:47 raiph left 06:51 noganex left 06:57 renormalist joined 07:16 avuserow left
moritz good morning #perl6 07:21
timotimo hello :) 07:23
07:34 ugator joined, avuserow joined 07:35 jfredett left 07:45 anaeem1 left 07:49 thou joined, kurahaupo joined 07:53 thou left 08:00 kaare_ left 08:03 anaeem1 joined 08:08 sqirrel_ joined 08:09 FROGGS_ joined 08:13 darutoko joined 08:17 MilkmanDan left, MilkmanDan joined
lizmat good *, #perl6! moritz timotimo o/ 08:32
timotimo hai liz :)
08:38 gfldex left
FROGGS_ morning 08:40
lizmat FROGGS_ \o 08:41
08:56 sqirrel_ left
FROGGS_ .tell wollmers It looks like /:P5\X/ is post NFG... because right now "E\c[COMBINING GRAVE ACCENT]" ~~ /./ only matches 'E' 08:59
yoleaux FROGGS_: I'll pass your message to wollmers.
09:03 sqirrel_ joined 09:05 zacts joined 09:08 rindolf joined 09:17 virtualsue joined 09:21 PZt joined 09:26 khisanth_ joined 09:27 chenryn joined 09:28 Khisanth left 09:29 chenryn left 09:31 chenryn joined 09:32 spider-mario joined 09:37 sqirrel_ left, thou joined 09:41 chenryn left 09:42 thou left
moritz now I wonder -- what's the use case for the m/.../ immediate matching forms? 09:48
for @list { if m/.../ } # would work with rx or / / too, because of boolean context 09:52
m/(.)(.)/; say join '|', $0, $1; # could work with rx or / / if sink context triggers regex matches 09:53
09:54 ugator left
FROGGS_ hmmm, maybe m/../ as the last statement of a routine? 09:55
dalek kudo/nom: 685ee66 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
Fix dirname/succ/pred
kudo/nom: 86af5ee | (Elizabeth Mattijsen)++ | src/core/IO.pm:
kudo/nom: c466b28 | (Elizabeth Mattijsen)++ | tools/build/ (3 files):
Add IO/Dir.pm to settings
09:57 sqirrel_ joined 10:17 anaeem1 left 10:18 ilbot3 left 10:19 ilbot3 joined 10:33 virtualsue left 10:46 jack_rabbit left 10:59 sqirrel_ left
masak hi there, #perl6 11:08
11:10 virtualsue joined 11:12 leont joined 11:15 kjs_ joined 11:26 thou joined
firefish5000 I am trying to figure out subsets. What are they? <my subset Min of Int where (0..60); my Min $min=1; say $min.WHAT;> prints Int, <$min=62;> fails (so its still effective), and <my $b=$a; $b=62;> works (so subsets arn't kept by =, which is unfortunate for my use case), 11:27
11:28 nebuchadnezzar left, nebuchadnezzar joined
masak it's containers that are typed, not their values. 11:28
and subsets are refinement types, not nominal types. 11:29
(so you won't see the subset type when you .WHAT) 11:30
11:30 thou left
lizmat cycling& 11:31
firefish5000 so since its just the container constrained, copies will be unconstrained, which is why I cannot pass them as arguments and have them work the way I want... 11:32
11:35 kjs_ left
masak yes, you got it. 11:37
11:38 kjs_ joined
firefish5000 Thanks masak! I would have gone down this route for an eternity without that... 11:39
masak prego. enjoy your Perl 6. 11:40
11:43 PZt left
firefish5000 now as a follow up. Is there a way for me to create a normal type such as <class Min { has Int $.min where (0..60); }; my Min $a; $a = 4;> where some p6 black magic makes $a=4 work like $a.min=4? I have tried overloading '=' for Min, but thats not possible.. 11:43
11:44 nebuchadnezzar left
timotimo mumbles something about box targets 11:44
11:45 anaeem1 joined
firefish5000 if anyone says 'no' or 'i don't think so', 90% of my stress from over complicating my p6 to achieve this functionality will be revealed as I just deal with the 4 extra chars... 11:47
timotimo well, Int itself is implemented as having a "has $!int is box_target" attribute 11:49
that makes it possible to nqp::box_i(123, Int)
11:49 anaeem1 left
timotimo (though pretty much all code in rakudo itself should use nqp::p6box_i(123), which gives the Int automatically) 11:49
and many operations will use one of the two Int box types that "come in" to do calculations 11:50
so if you use the minute Int type everywhere, it might just work out
i forgot the important part
"has int $!int is box_target" 11:51
and native ints cannot have subsets applied to them
11:52 nebuchadnezzar joined, xfix is now known as notfix
firefish5000 is googleing box targets and enjoying the streamed information throughly 11:52
11:53 virtualsue_ joined, Alula left
timotimo i had no idea %) 11:53
11:54 virtualsue left, virtualsue_ is now known as virtualsue
firefish5000 thanks timotimo, Ill see what I can do with this and hopefully will be able to put it to good use! (my hate those 4 chars is worth 1000 lines of code, and from a 2min google this looks like it may be done in <100) 11:57
timotimo hmm 11:58
masak so, how do you young'uns connect to SQLite from your Perl 6 code these days?
do you use DBIish?
timotimo i haven't done database stuff with perl 6 yet
but i'd probably just use DBIish
masak will try this 11:59
11:59 virtualsue left
masak I am now at a point where a hobby project takes about an hour just to start up, mostly because it's building a data model. 11:59
I figure if I put some of this in a db, the boot sequence will be faster :)
timotimo oh wow 12:01
well, we should still become faster 12:02
but yeah ... db is your friend
masak it's a really data-heavy thing I'm doing.
timotimo so i was thinking of how to model unions for NativeCall
12:02 anaeem1 joined
timotimo one way seems to be to create a new REPR, but that sounds quite iffy 12:03
another way is to have an "is union" trait on classes that can set a "create a union" flag in the repr_data, which requires changing Metamodel::ClassHOW, which seems iffy, too
with an ExportHOW i could perhaps create a "cunion" keyword that'd do a whole lot of magic for creating dummy attributes so that the resulting CStruct is big enough and for each class you put into it it'd create an accessor that'd cast and return self 12:05
that kind of sounds not too terrible
it's still pretty annoying to cast CStructs into other CStructs 12:06
another thing i thought about for the particular use case of SDL_Event is this: 12:07
every SDL_Event has an int32 type and an int32 timestamp at the start and then there's more stuff following it
so if CStruct would actually implement change_type, it could be "casted" like this: 12:08
have a role that contains the extra attributes
and a cast would just be return self but SDL_MouseButtonEventAttributeRole
that's kind of neat, but has its problems, as well
12:09 Alula joined
timotimo like if you .= new your own SDL_Event - which is what you do before you SDL_PollEvent - it'd only have space for the beginning and everything after that would be writing/reading garbage memory 12:09
12:12 ggoebel111111119 joined
timotimo i suspect it'd be the best thing to teach nativecallcast about casting CStruct into something; currently it just complains that it expects a CPointer REPR'd thing 12:13
12:14 ugator joined 12:15 ggoebel111111118 left 12:18 Isp-sec joined 12:24 virtualsue joined 12:27 notfix is now known as xfix 12:36 JimmyZ joined 12:44 slavik left 12:46 xinming joined, pecastro joined 12:52 bcode is now known as we 12:55 kurahaupo left, pecastro left 12:56 virtualsue left 12:57 slavik joined, pecastro joined 13:04 tinyblak joined 13:07 raiph joined 13:08 tinyblak_ left
moritz note to self: the day after halloween is a holiday. Not good for shopping. 13:10
13:10 Alina-malina left 13:14 thou joined 13:19 thou left, erkan joined 13:21 immortal left
timotimo interesting 13:22
my code is causing MVM to try to free() the string data for a piece of string data that wasn't malloc'd 13:23
that string is "$OUT" ... i have no clue where my program found that
moritz the setting uses '$OUT' for initializing '$*OUT', iirc 13:27
PROCESS::<$OUT> = ...; 13:28
timotimo that would mean it comes from the string heap? 13:30
13:30 firefish5000 left
moritz I have no idea; just speculating wildly 13:31
13:31 isBEKaml joined
timotimo it does smell a lot like memory corruption. 13:31
moritz oh fun, mk.de is down (and all their network lines, which they lend to others) 13:32
13:39 pat_js joined, tinyblak_ joined 13:41 tinyblak left
isBEKaml moritz: what's mk.de? 13:47
I'm guessing ISP of some sort?
13:51 bjz left 13:52 bjz joined 13:57 Alina-malina joined 13:59 isBEKaml left
timotimo interesting 13:59
the problem occurs even when i'm not using nativecallcast at all ... and it also occurs if i revert the latest commit to moarvm
14:02 esaym153 left 14:03 esaym153 joined 14:06 chenryn joined 14:08 esaym153 left 14:09 esaym153 joined, [Sno] left, [Sno] joined 14:11 [Sno] left, [Sno] joined 14:14 chenryn left 14:30 sqirrel_ joined 14:47 ugator left 14:52 anaeem1 left 15:02 thou joined 15:07 thou left 15:16 jfredett joined 15:21 fragiletag joined 15:34 guru joined, guru is now known as Guest77676, Guest77676 is now known as ajr_
masak quiet in here today. 15:36
15:36 [Sno] left 15:37 sqirrel_ left 15:39 kjs_ left
timotimo mhm 15:39
i'm having a hard time trying to motivate myself to hunt that memory corruption look-alike
moritz timotimo: I promise you a cookie for a fix 15:44
timotimo how am i supposed to fix such a stupid thing like that? :( 15:47
moritz timotimo: ok, I promise you two cookies
timotimo i can feel the problem become easier 15:48
moritz timotimo: what kinds of cookies do you like? 15:49
timotimo i like many kinds of cookies
moritz timotimo: www.amazon.de/Bahlsen-Selection-1er...000FWHWEU/ :-) 15:51
timotimo that *is* a "many kinds of cookies" kind of thing :D 15:52
moritz and it's more than two cookies too 15:53
timotimo :)
moritz timotimo: sudo feel motivated :-) 15:54
15:54 renormalist left
timotimo hah 15:54
well, i've already reproduced the bug on my desktop, so there's that
15:55 JimmyZ left
timotimo oh, wait ... if it says "freed by thread T0 here:" followed by "==31298== AddressSanitizer CHECK failed: ../../../../libsanitizer/sanitizer_common/sanitizer_stackdepot.cc:182 "((id & (1u << 31))) == ((0))" (0x80000000, 0x0)" ... 15:55
moritz just made one commit so far today 15:56
timotimo does that mean it tries to double-free? or did that error get triggered while trying to show the error properly?
15:58 kaare_ joined, we is now known as bcode
timotimo oh! someone could have told me that you need the llvm-symbolizer binary to get symbols resolved in asan stack traces 15:59
-fno-omit-frame-pointer and --debug=3 is not enough
16:00 jfredett left
timotimo er ... except i already have that installed and i still only get memory addresses 16:00
16:03 molaf__ joined 16:05 molaf_ left
dalek rl6-bench/stress: 2cb1967 | (Geoffrey Broadwell)++ | analyze:
Non-plot HTML pages are UTF-8 too
rl6-bench/stress: 2dbd21e | (Geoffrey Broadwell)++ | analyze:
Reduce visual noise by de-emphasizing the icon for successful runs
16:13 raiph left
raydiak good morning #perl6 16:17
timotimo hey ray :) 16:18
moritz: what if the memory error is just from passing incorrectly sized structs to SDL's functions? 16:20
valgrind apparently has trouble following our function pointers around for REPRops 16:21
16:22 [Sno] joined
FROGGS_ timotimo: can we already profile stuff that has an exit in it? 16:24
timotimo i've figured out how to do it, but it looked too wrong to be committed ... 16:25
FROGGS_ ahh, hmmm
TimToady moritz: re irclog.perlgeek.de/perl6/2014-10-31#i_9594588 I'd say s/generic/specific/ is incorrect.
timotimo basically you nqp::gethllsymbol('perl6', '@END_PHASERS') or what it's called
and .push a little closure in there that does the dump_profile_info
that would go into rakudo's HLL Backend 16:26
FROGGS_ timotimo: okay, I add that now temporarily to profile cpandatesters :o)
timotimo :)
wow. 16:27
my SDL_Event struct is 56 bit big. it needs to be 56 bytes.
that's why SDL is writing outside of malloc'd space
16:27 ugator joined
FROGGS_ ohh, heh 16:28
timotimo i quite competently calculated what combination of 64 bit, 32 bit, 16 bit and 8 bit integers i'd have to put in there so that it'd be the "right size"
except int64 is 64 bits, not bytes big ...
moritz just a factor 8 off :-) 16:29
timotimo yup
16:31 kurahaupo joined
timotimo *nice* 16:32
now i got an empty window that i can close by clicking the window decoration's close button
and the only valgrind messages i get come from inside libnvidia-glcore 16:33
FROGGS_ that sounds good!
dalek rlito: 2aa46bf | (Flavio S. Glock)++ | / (2 files):
Perlito5 - js - fix context propagation in if()
TimToady timotimo: I don't see offhand why unboxed types cannot have constraints enforced at the time they are stored; after all, something like int16 is constrained to 16 bits, even if the actual storage is wider. native constraints "merely" have to be enforced by the compiler rather than the runtime, using knowledge stored somewhere outside the native 16:39
much like C knows whether you're using a foo** or a bar*, but it's still just a native pointer 16:40
16:43 denis_boyun_ joined 16:44 raiph joined 16:45 raiph left 16:51 thou joined
TimToady or to look at another way, native assignment merely has to inline the appropriate assignment code 16:51
"merely", I mean :)
but that's why C has to be so picky about knowing the difference between an lvalue and an rvalue at compile time 16:53
timotimo mhm mhm 16:54
TimToady I suspect this is part of what jnthn++ is mulling over subconsciously while he's hiking around :)
16:55 thou left, vendethiel joined
vendethiel well met, #perl6. 16:55
FROGGS_ hi vendethiel
16:56 sqirrel_ joined
timotimo hey ven 16:57
did you know that if you malloc a 56 bit wide area and give it to SDL2's event polling function, which expects a 56 byte wide area to write all over, there'll be trouble?
FROGGS_ SDL2 is a bit picky, that's for sure 16:58
timotimo FROGGS_: how can you call that sdl2 being picky? %) 16:59
FROGGS_ ohh, is it byte picky instead? :o) 17:00
timotimo yeah
that must be it
.o( now that i get it ... it's funny )
dalek p: 05cb90e | (Tobias Leich)++ | src/vm/moar/HLL/Backend.nqp:
also write profiler output when rakudo exit()s

  timotimo++ for the proposed patch.
17:03 immortal joined
.oO(obviously C needs better constraint checking on its native types...)
17:06 erkan left
timotimo turns out the struct i built wasn't even 56bit big, it was 120 bit big 17:06
i wonder how i reached the conclusion that that would be the right size 17:07
but it was pretty late at night, so at least i have an excuse - sort of
vendethiel timotimo, I did know that, yes 17:10
timotimo well then why didn't you tell me? :\ 17:11
vendethiel C is like "if I fit, I sit, otherwise LOL mate".
timotimo well, it did fit
there was just something else that it had to partially sit upon ...
FROGGS_ eww, I got a 17MB profile from my cpandatesters run >.< 17:12
17:13 anaeem1 joined
timotimo yup, that's how our profiler does it 17:13
let me dig out my partial patch that cuts down on size but also sadly makes the results wrong
maybe you can fix it? :)
remotes/origin/finite_callgraph_depth 17:14
please have a look at that :)
17:17 raiph joined
timotimo i'm definitely looking forward to native shaped arrays; that's going to give us flattened arrays in CStruct almost immediately 17:20
17:24 anaeem1 left 17:25 H2O1 joined
raydiak so I've seen people talking about cpan and perl 6...should I be worried about making p6 modules with the same names as p5 modules? 17:29
17:29 kjs_ joined, [Tux] left
timotimo nope, no worries there 17:29
17:29 [Tux] joined
raydiak cuz math::symbolic is almost ready to go up, but it's not yet a faint glimmer of p5's math::symbolic, I almost felt bad for naming it the same when I saw it :) 17:30
timotimo in that case, just call it Math::Symbolish :P
raydiak heh not that bad 17:31
17:31 raiph left
raydiak how's it goin anyway timo? working on anything interesting today? 17:33
timotimo my current focus is SDL2 bindings 17:34
raydiak awesome!
timotimo afk for a tiny bit &
17:35 H2O1 left 17:43 flussence left, sqirrel_ left, flussence joined
timotimo and you? anything besides math::symbolic keeping you busy? 17:43
raydiak I'm procrastinating walking/bussing half way across town in the rain to jack up my g/f's car and carry the flat tire w/wheel to the nearest gas station and pray it holds air :P 17:44
timotimo oh my 17:45
i had b0rked my car recently, too
17:45 anaeem1 joined, adu joined
raydiak ah, sorry to hear it...you okay? the car? 17:45
timotimo yeah, it was only damage to the autobody 17:46
happened at very low speeds
raydiak one time I rear-ended a truck in an entry-level new car at like 5 mph and half the engine compartment crumpled up like an accordian
gotta love them crumple zones 17:47
timotimo :o
that doesn't sound so good
also, that sounds like it'd be very expensive to repair
raydiak was just body stuff mostly, didn't total it...drove it a couple blocks home, hanging my head out the window so I could see around the hood
timotimo d'oh
i only lost the bumper 17:48
it was hanging on by one of the light's cables, so before i could drive it away "to safety" i had to unscrew the light using one of my keys :S
cars can be fun
raydiak hah yes they can
I've learned a *ton* about physics just from learning about cars, too 17:49
timotimo oh, yeah
i recently went karting with friends and i was kind of disappointed that all the stuff i learned from my dad, who's big into racing simulation games, wasn't enough to make my performance stand out :| 17:50
17:50 FROGGS__ joined
raydiak I haven't really done any kind of competitive driving 17:51
except a little fling with need for speed once in a while 17:52
17:52 Sqirrel left
timotimo ah, you were considering "simulated driving" in that description, too 17:52
raydiak I have done a *ton* of fixing (and breaking)
timotimo i think i've been karting twice in my life so far; once with regular combustion engines and recently with electric karts 17:53
electric karts are way cool.
raydiak oh I'll bet...weird to have all the torque right from the start?
17:53 FROGGS_ left
timotimo didn't feel weird; not entirely sure why, though 17:55
raydiak wI've always wanted to try an electric car, a car w/a cvt, and a rotary mazda, to see what they feel like 17:56
17:57 colomon left
timotimo i know neither what a cvt nor a rotary mazda is :\ 17:57
raydiak cvt=continuously variable transmission, no discreet "1st", "2nd", "3rd" gear
17:58 Ven joined
timotimo ah 17:58
liz and wendy took me to APW in their plug-in prius
raydiak and mazda has made some cars with rotary engines, which don't have pistons 17:59
17:59 gfldex joined
raydiak instead it's this weird sort of "triangle spinning in an oval" shape 17:59
timotimo en.wikipedia.org/wiki/Wankel_engine - like this one?
raydiak yeah that one!
I knew there was a more specific term I wasn't remembering 18:00
timotimo i always thought wankel engines were really neat 18:01
but i never saw one in action
raydiak I hear they love to accelerate...almost no reciprocating mass, very well-balanced, high redline, wide powerband
poor fuel economy b/c of a low compression ratio, but that means they probably do well with turbo/supercharging 18:02
timotimo mhm
i'd love to own a tesla one day
or at least drive
raydiak yeah no kidding 18:03
timotimo i've seen a quite big amount of charging stations all around the city
raydiak haven't seen any here yet
though tbh if I had a bunch of money and wanted a nice car, I'd rather have a lotus than most other things...they tend to be crazy light, good fuel economy and power-weight ratio 18:06
not that expensive either, by comparison to most other "exotic" brands
entry-level elise was like $60k US last time I looked 18:07
timotimo what's missing in the entry-level ones? 18:08
raydiak but I got a few years to worry about how to bankroll my midlife crisis yet :)
no supercharger, for one
18:08 raiph joined
raydiak or was it a turbo on the exige? I forget, either way, naturally aspirated 18:08
timotimo i wouldn't accept a car that doesn't have air conditioning and heating, for example
raydiak not sure if the bottom-end elise has limited-slip or not, either 18:09
18:09 BenGoldberg joined
timotimo to me, a "supercharger" is the thing that you can charge your car very quickly with 18:09
raydiak I don't use A/C, but I'd be surprised if it has no heat
japhb raydiak: Back in the 80's my dad had a rotary-engine sports car. The acceleration was indeed amazing. It had an auditory readline, because you might not notice you were hitting it.
timotimo i kind of sort of know what a turbo is
... a readline? 18:10
japhb redline
raydiak the way the slang around here goes, turbo is forced-induction (air pump in your intake) powered by the exhaust flow, while supercharger is belt-driven
japhb Clearly you know which one I type more often
raydiak japhb: nice :) I'm jealous
timotimo oh, redline is the point where your rpm is too high?
japhb timotimo: yeah
timotimo OK
raydiak yeah past that you're risking immediate internal engine damage 18:11
TimToady the redline on a rotary was up like 6-7000 rpm, iirc
timotimo mhm
raydiak though many engines make peak power below their redline anyway
18:11 xenoterracide_ joined
raydiak hm, 7k isn't much higher than many piston engines 18:12
TimToady the three main problems with rotaries were: seals, efficiency, and emissions
well, back in the day, was more like 3000 for most pistons 18:13
materials have improved :)
raydiak when was this? :)
18:13 thou joined
TimToady back when you added more cylinders, not more rpms :) 18:13
japhb From the WP article on the Mazda RX-7: "Because of the smoothness inherent in the Wankel rotary engine, little vibration or harshness was experienced at high engine speeds, so a buzzer was fitted to the tachometer to warn the driver when the 7,000 rpm redline was approaching."
raydiak ah, before my time :) 18:14
japhb: hah that's awesome
guess the limiting factor for a rotary is burning the seals or something, then? 18:15
japhb There was a running joke that only Mazda mass-produced them, because they were the only ones that had figured out how to seal them well enough. 18:16
18:16 anaeem1 left
TimToady well, the center of mass of the rotor does move around some, so you still get some vibrational effects, just less than in a piston engine 18:16
18:17 anaeem1_ joined
TimToady there was also a diesel wankel that had more lobes 18:17
raydiak there was?
TimToady german, not japanese, iirc
japhb There's also a story that when they first came out they caused some issues in racing competitions because they produced so much more power for unit displacement and engine weight, so rules had to be refined to place them off in their own bracket.
TimToady then there was the episode of turbines at Indy... 18:18
japhb Oh dear, I can imagine that being ... spectacular.
And not in a "I want to be in that car" sense
TimToady I think they basically outlawed them by limiting air intake
japhb dislikes the fact that so many racing competitions deal with real innovation by disallowing it. 18:19
My uncle (an avid race fan) tells me of when active aerodynamics first came out, and cars that could turn their spoiler into an air brake started lapping cars that didn't ... so they disallowed that. I would like to have seen that kind of thing in my day, rather than what frankly looks like slot cars sometimes. 18:21
raydiak I had a co-worker tell me about some guy way back that affixed huge fans or something to the bottom of his car for downforce, b/c there wasn't a rule against it 18:22
idk where or what sort of racing he was talking about 18:23
japhb The rules of modern downforce boggle me -- "If you don't enter that corner going FAST ENOUGH, you'll lose traction" 18:24
kurahaupo japhb: rumour has it the Mazda put an RX7 engine on a test bench and ran it up to something like seven times the official redline rpm
japhb woah 18:25
BenGoldberg Another problem with mazda's (early) rotary engines was how they dealt with emmissions... to get rid of unburnt hydrocarbons in the exhaust, they decided to just throw a bit of air and fuel into the exhaust, and burn it. This was *just* before fuel economy requirements went up, which was unfortunate for them.
Modern rotarys use extra spark plugs, to fully burn the fuel inside the engine, to avoid that problem. 18:26
japhb Yeah, dad's car got like 14 MPG. But they were very fun miles. :-)
Ulti if I have a sub with two typed parameters and pass in a list as the arguments with two elements how can I get that to match the sub?
.oO( Oh no, on topic conversation! )
timotimo fun miles and likely also cheap gallons
BenGoldberg Ulti, typed parameters? Using Moose, or what?
Ulti o___O using Perl6 18:27
timotimo Ulti: sounds like you'd my_sub(|@foo)
BenGoldberg Erps, wrong channel ;)
BenGoldberg feels silly, now.
japhb m: sub foo(Int $a, Str $b) { say "$a $b" }; my @a = (1, 'bar'); foo(|@a);
Ulti sub add (int $a, int $b --> int) {$a+$b} and then add(@args)
camelia rakudo-moar 315ec6: OUTPUT«1 bar␤»
Ulti timotimo: aha!
I tried @args[*] living in hope 18:28
japhb Ulti: Is what I sent what you meant?
Ulti yeah
timotimo Ulti: well, that's already syntax for "the element after the last element"
japhb OK, cool
ugator reading S09#Compact_structs: I wonder if it's possible to translate strongly typed code directly into C - for specific operators, loops or simiar? 18:29
18:29 Mso150 joined
timotimo ugator: MoarVM's jit will come very close 18:29
TimToady timotimo: * by itself is not a closure
timotimo oh
TimToady so @args[*] is just all the values
@args[*-0] is the one beyond the end 18:30
Ulti ha! now I have the inverse problem that the one with @args isnt *@args
timotimo mhm mhm
18:30 flussence left
ugator timotimo: in terms of speed too? that would be a huge thing?! 18:30
18:30 flussence joined
timotimo ugator: we hope! :) 18:31
ugator :-))
timotimo perl6 classes with native attributes are already only a bit more expensive than a regular struct would be
Ulti oh wow adding typed information to that recent benchmark with the ast makes it incredibly slow 18:32
timotimo but our jit is currently not clever enough to avoid reading from and writing to the stack before and after every single op