»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
00:00 synth left
TimToady transit gloria [sic] & 00:01
00:02 nihiliad joined
quietfanatic Is there a way to concatenate two functions, like Haskell's >> operator? 00:13
diakopter wrap ?
quietfanatic I know sub {&sub1; &sub2} works, but if you do that a lot of times, you get a lot of depth. 00:14
Wrap? Maybe, depending on how it's implemented. But I don't think that's what I'm looking for. 00:15
For one thing, wrap modifies in place
diakopter o
Tene rakudo: sub foo { say 'hi' }; my @a; @a.push(&foo); say 'omg'; .() for @a; 00:16
p6eval rakudo 6c4bab: OUTPUT«omg␤hi␤»
Tene you could do that.
quietfanatic: can you give an example?
quietfanatic Like, I'm writing an event system for my game engine, 00:17
and I want certain events (like collisions) to have a parameter
but of course I can't check every object for every possible collision, so 00:18
diakopter create a global register!! :)
quietfanatic I'd have the object keep a "collision method" and append the new collision code when I register a new collision event.
If I explained that sensically enough. :) 00:19
diakopter sounds like you create a list property on each object that stores its collision events, and the collision method iterates them like Tene said
quietfanatic Yes, I could just have a list of subs. And overload postfix:<( )> on the list. 00:20
diakopter with the argument, if ..
quietfanatic Tene's idea will work fine. 00:21
diakopter .Net has an entire member system for events, though I heard someone say they regretted designating them at that level; they shoulda been just normal members whose slot types are treated as events when they're registered as such. 00:22
quietfanatic I gotta read up more on event implementation anyway. 00:23
diakopter there are scads of techniques of queuing up events on DOM objects
quietfanatic The thing is, I need a really robust system, including parametric events. 00:24
diakopter so make your event method iterator pass in the events as arguments
I mean, pass in the event args as args to the subs
quietfanatic That's not what I mean. 00:25
I mean, the parameter determines when the event gets called.
diakopter you could use the multiple dispatch system for that, or
quietfanatic If I say the ball object has a collision(Brick) routine, it needs to be called when it collides with a Brick and not when it collides with a Paddle.
That's also why I wanted to introspect signatures, by the way. 00:26
diakopter sounds like Collision is a parametric type
on two objects 00:27
I mean, are there 3-body collisions?
quietfanatic They happen, though coding them would be a pain. 00:28
What I'm doing for now is I don't have collisions as events, but as normal checking in other events. 00:29
diakopter do you have a Movement event?
quietfanatic Yes, it's called move.
diakopter is it a sub or a 'data' object 00:30
quietfanatic The collisions would be checked after that event.
It's a data object, that calls the object's move method.
Actually, it's onbly kind of a data object.
00:30 rhr left
quietfanatic What happens is, when registering the event, I put the object class into the event's queue, rather than putting the event on the object somewhere. 00:31
00:32 rhr joined
diakopter do your objects use a discrete 2D grid when detecting collisions and calculating movement, or some kind of relative proximity checking to other objects 00:32
quietfanatic They're effectively rectangles, so it's easy to check their positions against eachother even though the grid is not discrete. 00:33
Doing collisions based on a bitmask will be fun and tricky. (and slow)
diakopter I don't know.. assuming there's no superposition of objects' "centers", seems to me it'd be faster 00:34
quietfanatic No, I mean checking each pixel of the object's image (or mask or something) to see if they overlap.
diakopter oh, rather I'd think each object would register its boundaries into an array of arrays that represents the pixel grid 00:35
quietfanatic Oh. If I used integer positions, that'd be possible. 00:36
diakopter and each movement would check whether the movement would cause an overlap..
right, integer aka discrete 00:37
quietfanatic In fact, it would even be easier if I was writing my own graphics library.
Yeah, integer = discrete, but I'm using Nums.
diakopter runs. at least they're not bigints or smth :) 00:38
quietfanatic The only thing that bothers me about Nums here is that they have higher accuracy toward the top-right of the screen :)
I mean top-left
diakopter where's the origin 00:39
quietfanatic If somebody inplements a fast fixed-point data type, I'll use it.
The origin is in the top-left.
diakopter k
so each objects' movement is turn-based
quietfanatic Yes-ish. 00:40
diakopter so with 50 moving objects, each contributes toward computing the state that will determine how to draw the next frame?
quietfanatic I'm thinking that unless a specific turn order is specified, the objects will be moved in parallel.
Um, yes, I think? 00:41
diakopter I think that's what you mean by in parallel
each object's individual movement doesn't get its own frame redraw
quietfanatic No.
All objects move, then all objects are drawn. 00:42
diakopter that's what I was saying
quietfanatic (skipping over after_move events and such)
Well, I've got to get to class now. Be back this evening. 00:44
00:46 quietfanatic left 00:54 jaldhar joined
diakopter std: my $a = 0; say $a while (++$a < 10) if ($a < 3) 01:04
p6eval std 28539: OUTPUT«===SORRY!===␤Missing block (apparently gobbled by undeclared routine?) at /tmp/grRhPqfkh7 line 1 (EOF):␤------> 0; say $a while (++$a < 10) if ($a < 3)⏏<EOL>␤ expecting any of:␤ parameterized block␤ standard stopper␤ terminator␤
.. whitespace␤F…
diakopter rakudo: my $a = 0; say $a while (++$a < 10) if ($a < 3)
p6eval rakudo 6c4bab: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤Could not find non-existent sub if␤»
01:11 justatheory left 01:12 nErVe joined 01:16 orafu left, orafu joined 01:17 payload left 01:18 kst` is now known as kst, cdarroch left 01:19 nErVe left 01:21 patspam1 joined, patspam1 left
colomon moritz_: Think I've figured out the sin glitch. I took the "is export" off of Num.sin, erased the sin(Complex) functions, and now things seem to work. More soon. 01:24
dukeleto "rakudo on rockets" web framework has a nice ring to it. just sayin' 01:29
01:40 hercynium left
diakopter rakudo: my $a=0;for (;++$a < 1e380;) {} 01:41
p6eval rakudo 6c4bab: OUTPUT«undefined identifier 'Inf'␤»
diakopter rakudo: my $a=0;for (;++$a < 1e280;) {}
p6eval rakudo 6c4bab: ( no output ) 01:42
diakopter that's fast
the bug is that it doesnt' complain about not finding for() sub 01:44
01:45 payload joined 01:58 htns joined
htns Hi. Never used IRC before. Hope this works... 01:59
Just built Parrot and then Rakudo. 02:00
Ran a simple script (say "hi", count to 10), and `time` tells me it took just under 5 seconds.
Is that about right right now for Rakudo on Parrot? 02:01
02:01 htns left 02:06 htns_ joined
pugs_svn r28540 | diakopter++ | [sprixel] implement trailing if/while (actually I'd already done if) 02:08
diakopter htns_: what does your script look like
rakudo: say 'hi'; my $a=0; say $a while ++$a < 10
p6eval rakudo 6c4bab: OUTPUT«hi␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
htns_ use v6;
say "hi";
for 1 .. 10 {
say ">>>$_<<<";
That's in a file named `foo.pl`. 02:09
In comparison, a similar file for Perl 6 runs in some crazy small amount of time (0.04 s). 02:10
02:10 stephenlb left
diakopter htns_: you mean Perl 5? 02:10
diakopter@d5dev01:~/src/pugs/src/perl6$ time rakudo -e 'my $a=0; 1 while ++$a <= 10'
real 0m1.052s
user 0m0.732s
sys 0m0.280s
htns_ [sigh] Yes. Sorry.
diakopter around 1 second here 02:11
02:11 rfordinal joined
htns_ Wow. Hm. 02:12
Well, I built Parrot from source from svn.
diakopter diakopter@d5dev01:~/src/pugs/src/perl6$ time perl sprixel.pl -e 'my $a=0; 1 while ++$a <= 10'
real 0m1.682s
htns_ Did a `perl Configure.pl --prefix=/home/john/opt/parrot`.
diakopter user 0m1.508s
sys 0m0.176s
there's an --build-optimized or something switch
htns_ Then got Rakudo from svn.
`perl Configure.pl --parrot-config=/home/john/opt/parrot/bin/parrot_config` 02:13
Built and installed fine.
Didn't want to have Rakudo get Parrot. Wanted to do my own Parrot installed and all set, *then* get Rakudo.
diakopter sprixel: my $a=0; say $a if ($a < 20) while ++$a < 100
p6eval sprixel 28539: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤» 02:14
diakopter sprixel: my $a=0; say $a if ($a < 20) while ++$a < 100; say $a
p6eval sprixel 28539: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤100␤»
htns_ Did not use any `--build-optimized` options to anything.
diakopter htns_: ok... my 1s time is in linux in a vmware VM on windows vista
htns_ Sorry, forgot to mention, this is on Ubuntu 9.04. 02:15
(No idea what sprixel is, though maybe you're talking to me... :) ) 02:16
diakopter sry, I'm testing it
it's this Perl 6 interpreter I'm writing in JavaScript
pugs_svn r28541 | colomon++ | [t/spec] Change generate-tests.pl to generate a test file for each forward trig function. Works at the moment, but is duplicating the atan2 tests in every file.
htns_ Ah.
diakopter it uses TimToady's standard grammar/parser
htns_ s/talking/not talking/ . Wow, having trouble with the english language tonight. :) 02:18
Can you please tell me: what's the `use v6;` for? 02:19
It doesn't seem like I need it (the script behaves the same with or without it). 02:20
diakopter sprixel: my $a=7; ($a = $a*$a) while $a < 1e21; say $a; 02:21
p6eval sprixel 28541: OUTPUT«33232930569601␤»
02:21 TiMBuS joined
diakopter htns_: that's b/c "Perl 5 by default" is not yet implemented in Rakudo 02:22
02:22 msmatsko joined
htns_ Rakudo on Parrot will, by default, assume code in .pl files is Perl 5? 02:22
diakopter if someone implements that, yes.. :) which I assume is the plan since that's part of the Perl 6 spec. maybe not by Rakudo Star though? 02:23
colomon I don't recall hearing any mention of that at all this year. 02:24
02:24 rhr_ joined
diakopter mention of what 02:24
colomon I had been figuring "use v6;" was so Perl 5 knew not to try to run the file.
Perl 5 being on by default for Rakudo. 02:25
htns_ I'd assumed something like that as well.
diakopter yeah, but Perl5-mode-by-default is still part of the speculatifications
htns_ S01 says "Migration is important. The perl interpreter will assume that it is being fed Perl 5 code unless the code starts with a "class" or "module" keyword, or you specifically tell it you're running Perl 6 code in some other way, such as" 02:26
diakopter yeah
colomon diakopter: not saying you're wrong about that, just that I haven't heard any recent mention of making things work like that.
htns_ s/perl interpreter/perl 6 interpreter/ ?
diakopter well, perl, since it's both 5 & 6 02:27
so *presumably*, a fully to-spec implementation would be a drop-in replacement
I'm not presuming that part of the spec won't get de-idealized :) 02:28
htns_ Oh, I see. I didn't realize that Rakudo + Parrot was intended to be able to be used as a drop-in replacement for my Perl 5.
colomon it's really kind of insane, isn't it? I mean, implementing Perl 6 is already hard enough. Asking every implementor to add the entirety of Perl 5 as well seems over the top. 02:29
diakopter well, pmichaud (but it applies to every implementor too) was writing somewhere recently that [extremely paraphrased] rakudo (substitute: each implementation)'s spec coverage progress would continue, and if it reached the totality by eternity, then so be it 02:30
and he was also willing to draw a box around a particular set of features and give it names/labels/version numbers 02:31
and even eventually call it "stable", if not "finished" or "fully to spec" 02:32
colomon: well, by doing interop/bindings/linking/hosting with Perl 5, pugs was able to achieve *quite* *a* *lot* toward that goal 02:33
but then again, messiahs advent only a few times per eon. er something
htns_ I'm still trying to fathom totality by eternity. :) 02:34
diakopter oh, the unfathomable depths...
02:35 rhr left
Tene Jonathan and a couple of others are working on integrating the Perl 5 interpreter as a language on Parrot. 02:38
The project is called Blizkost.
htns_ I remember reading about it when Rakudo was removed from Parrot proper. Have all the parrot languages been removed? 02:39
Tene Yes.
diakopter colomon: but yeah, it's daunting. :) 02:41
htns_ Ah. I see. All the languages listed on the parrot site now link to wherever they are now hosted.
The Parrot certainly lost a lot of weight there. ;) 02:42
Tene Yes.
colomon moritz_: I haven't actually tested it yet, but I think the current changes ought to make the named argument trig tests which are currently skipped work... Errr... but I haven't pushed the changes yet, still running spec test to make sure they don't break anything. If I'm up in the middle of the night I'll push them. 02:43
moritz_: Hmmm... actually looks like named argument sin still doesn't work. Puzzling. 02:57
diakopter TimToady: I got an Use of uninitialized value in concatenation (.) or string at STD.pm line 11515. mebbe I should svn up; rebuild 02:58
colomon rakudo: sub f($x, $y = 1) { say $x + $y; }; f(:x(3/2)); 03:02
p6eval rakudo 6c4bab: OUTPUT«too many named arguments - 'x' not expected␤in sub f (/tmp/N929ueuN2f:1)␤called from Main (/tmp/N929ueuN2f:0)␤»
diakopter TimToady: did you commit everything? make clean ; make # lots of warnings
03:04 htns_ left
dalek kudo: f52e459 | (Solomon Foster)++ | src/setting/ (3 files):
Make Complex sin and asin work correctly.
03:10 TiMBuS left, nihiliad left, silug left, Helios- left, kolibrie left, rjh left, avuserow left, ezra left, pugs_svn left, christine left, sjohnson left, zerhash left, pmichaud left, omega left, yves left, PacoLinux left, allbery_b left, phenny left, gbacon left, lambdabot left, rhr_ left, Rint left, araujo left, orafu left, mikehh left, Intensity left, colomon left, fredrecsky left, hudnix left, blaze-x left, garron left, Infinoid left, sri_ left, broquaint left, clkao left, buu left, ewilhelm_ left, dmpk2k left, integral left 03:12 pmichaud joined, rhr_ joined, TiMBuS joined, orafu joined, nihiliad joined, mikehh joined, Intensity joined, colomon joined, silug joined, Rint joined, Helios- joined, kolibrie joined, avuserow joined, ezra joined, pugs_svn joined, phenny joined, yves joined, christine joined, allbery_b joined, sjohnson joined, irc.freenode.net sets mode: +ovvo pmichaud pugs_svn phenny sjohnson, zerhash joined, PacoLinux joined, omega joined, gbacon joined, lambdabot joined, araujo joined, rjh joined, fredrecsky joined, hudnix joined, broquaint joined, sri_ joined, dmpk2k joined, Infinoid joined, buu joined, garron joined, blaze-x joined, integral joined, clkao joined, ewilhelm_ joined, kent\n left 03:26 Guest13417 left, bigpresh_ joined 03:32 bigpresh_ left, bigpresh_ joined
TimToady I only get one warning on failure to remove *.syml.store 03:35
and that's benign
and there's no files I haven't checked in 03:36
03:38 msmatsko left
pugs_svn r28542 | lwall++ | [generate-tests.pl] suppress STD error on \# in regex 03:40
diakopter hum 03:49
I think my svn checkout was broken by switching between versions of svn client tools... also switching linux->windows via samba. hrm. :/ 03:50
04:00 mberends joined
mberends \o impressive backlog :) 04:00
diakopter hi 04:01
sprixel: my $a=0; say $a if ($a < 50) while ($a = ++$a*2) < 1000; say $a 04:02
p6eval sprixel 28542: OUTPUT«2␤6␤14␤30␤1022␤»
mberends funky! nice progress diakopter. today more harness building, and then expanding the test suite. 04:03
04:05 tak11 left
mberends first putting in a few more test scripts manually, then try adding something like rakudo/tools/autounfudge.pl 04:08
diakopter: why not spend a moment to toot your trumpet on blogspot? 04:11
diakopter mberends: eh.. well, there's not much to write home about... it's 10,000x slower than Perl 5 and 100,000x slower than JS/V8 for a minimal preincrement/while microbenchmark 04:16
once I got loop (;;) {} working, I just had to try some microbenchmarking.
mberends srsly!? did you remember to subtract the startup time? 04:17
diakopter yeah; this was a pretty big N
rakudo was around 2,000-3,000x slower than Perl 5, which .. isn't ultra encouraging, since (barring analysis/optimization) sprixel will only get slower... 04:19
04:20 [particle] joined
mberends I added some simple relative benchmarking to Rakudo's test suite, planning to extend that incrementally as it settles in. I'll also think of that in sprixel's harness, which will be pretty portable anyway. 04:22
diakopter cool
pugs_svn r28543 | lwall++ | [STD] improve errors regarding loops for diakopter++
04:23 [particle]1 left
colomon rakudo: sub f($x) { say $x + 1; }; f(:x(3/2)) 04:23
p6eval rakudo f52e45: OUTPUT«too many named arguments - 'x' not expected␤in sub f (/tmp/DuWWxsEjtR:1)␤called from Main (/tmp/DuWWxsEjtR:0)␤» 04:24
mberends rakudo: sub f(:$x) { say $x + 1; }; f(:x(3/2)) # saw that once somewhere 04:25
p6eval rakudo f52e45: OUTPUT«2.5␤»
colomon moritz_: Hmmm.... also, my Complex.asin implementation is plainly broken, but my tests don't seem to detect that. Clearly more / smarter tests are needed. 04:27
diakopter sprixel: my $a=0; 1 while ++$a <= 10000; # 151 JS function calls for each iteration of the 2nd statement. 04:33
p6eval sprixel 28542: ( no output )
diakopter that's a few too many 04:34
mberends on a weeny Intel Atom that took "real 0m17.026s user 0m16.765s sys 0m0.164s" 04:37
diakopter ick. 04:39
mberends shower && commute &
04:46 kidd left 05:00 redicaps joined 05:05 mberends left 05:10 quietfanatic joined 05:21 [particle]1 joined 05:23 snearch joined 05:34 synth^2 left 05:39 [particle] left 05:40 snearch left 06:05 meppl joined 06:06 NorwayGeek joined 06:08 nihiliad left 06:09 NorwayGeek left
moritz_ \o/ 06:32
06:34 mberends joined
diakopter \/o\ 06:34
mberends ..must..have..coffee..
diakopter /o\
pugs_svn r28544 | lwall++ | [Cursor.pmc] handle stringish enums a bit better 06:36
diakopter eegslursh
mberends: largish refactor committing
mberends whee! 06:37
pugs_svn r28545 | diakopter++ | [sprixel] refactored CPS technique (no longer returns an array each call) 06:39
r28545 | made AutoIncrement a bit more "native" by having bigint modify in place when it's a *variable* that's being incremented/decremented..
r28545 | added in place increment/decrement methods to the bigint lib
diakopter 0.30 speedup, ish
or so I imagine
mberends diakopter++: cool. And just when you decided to explain it to me, you also decided to Change Everything ;) 06:41
moritz_ colomon: most tests so far just check that sin/cos/tan etc are consistent with each other... that's not enough
colomon: we should just take some lists of values, run them through other program we're confident with, compare the results 06:42
quietfanatic Oops, I've challenged myself to make an automated C library importer for Rakudo. 06:43
moritz_ quietfanatic++ 06:44
mberends quietfanatic++: I had been (day)dreaming about such a tool. make it come true!
quietfanatic Except for parsing the header file, I more or less know how to do it.
I mean, it'll take some grizly Q:PIR-ing, but yeah. 06:45
moritz_ in the parrot repo there's a tool called cgigen that parses the header-files
quietfanatic Oh really?
moritz_ it might be a bit out of date 06:46
but it basically contains a C parser in PGE
mberends quietfanatic: could it look like Q:C{ ... } eventually?
quietfanatic mberends: Then I'd have to include a c compiler, like Inline::C, and I don't want to do that. 06:47
mberends oh, ok 06:48
quietfanatic But it's possible, yeah.
Especially if someone writes a C compiler in Perl 6. :)
mberends :) I'll lend you a copy of my GCC 06:49
quietfanatic Let's start with precompiled libraries, shall we?
06:49 nicomen left 06:50 rfordinal left
quietfanatic moritz_: Oh, you mean ncigen? 06:54
moritz_ yes 06:55
07:03 patspam1 joined, patspam1 left 07:09 cognominal left
sjohnson o/ 07:15
07:21 rfordinal joined 07:25 payload left 07:29 pmichaud left, pmichaud joined 07:30 avuserow_ joined, avuserow left 07:40 c9s_ is now known as c9s
mikehh rakudo (f52e459) builds on parrot r41610 - make test / make spectest_smolder (up to r28545 -> #28453) PASS - Ubuntu 9.04 amd64 07:45
07:48 rfordinal left 07:52 NorwayGeek joined 07:53 NorwayGeek left, NorwayGeek joined 08:03 TiMBuS left 08:05 mspauldi1g joined, TiMBuS joined 08:16 mspaulding left 08:23 iblechbot joined 08:36 rgrau joined 08:46 dakkar joined 09:44 riffraff joined, [particle]1 left 09:46 Ctrl-ZZZ left 10:12 riffraff left 10:16 Whiteknight left 10:21 payload joined 10:23 araujo left 10:44 masak joined
masak oh hai, fellow pioneers. 10:44
10:45 am0c joined
Matt-W o/ mighty bug-finder 10:45
colomon moritz_: actually, the sin tests are against a list of known values for sine. the asin tests (this is from running S32=trig.generate-tests.pl and looking in sin.t) are just to see if it consistent with sin. 10:46
masak nah, I just like to destroy things. :)
colomon (sorry, half awake one-handed typing not so good this moening.) 10:48
masak abstains from obvious jokes 10:49
oh wait, this isn't Slashdot. never mind. 10:52
10:54 NorwayGeek left
colomon Danke. 10:54
masak speaking of faux pas, this page seems topical and sensical: geekfeminism.wikia.com/wiki/So_you_..._a_mistake 10:57
colomon moritz_: figured out the asin mystery. I was still declaring a version of it in the test file, and wierdly enough, that version + my new version generated correct answers. 10:59
11:10 patspam1 joined
masak diakopter: so, how long before I can run Druid in sprixel? :> 11:20
mberends masak: greetings! After carefully thinking about Date, Time and DateTime, I am sure it's not the effect of having recently written some code that way. They are the data types of the real world, and appear in many computer languages. My MS Basic from 1978 had date() and time() functions. Microsoft has just unbundled DateTime into Date and Time in Transact-SQL 2008. So that's my vote 11:32
masak thank you for this soul-searching answer. I appreciate it.
11:35 lichtkind joined 11:38 NorwayGeek joined
masak I'm currently pondering if some extra measure needs to be taken to get ranges of DateTime objects to work. 11:38
maybe they'll work out-of-the-box because DateTime does Real or something. 11:39
11:39 lichtkind left
masak I won't add anything to the spec until I know. 11:39
11:39 lichtkind joined 11:48 am0c left 11:49 payload left 11:52 ssm left 12:09 takadonet joined
takadonet morning all 12:09
12:13 jogla joined
colomon morning! 12:14
jogla Moin 12:15
moritz_ \o/ 12:16
jogla Hi moritz_ 12:19
moritz_ long time no see jogla :-)
jogla Yeah 12:20
masak jogla++ # returning customer 12:27
jogla :) 12:28
pugs_svn r28546 | colomon++ | [spec/t] Update trig test generation code -- remove all the faked Complex functions previously included with the test code, and add Complex.asin tests (for all inverted functions). 12:32
takadonet Still working on those lovely math function Colomon? :) 12:33
12:38 nErVe joined
pmichaud good morning, #perl6 12:44
takadonet morning sir
masak morning, pmichaud. 12:46
pmichaud: those Cursors look very useful!
pmichaud yes, they do seem to be useful.
I'm very happy I have a working implementation of protoregexes. 12:47
Today's focus is on a p6 regex parser
takadonet !!
masak \o/
12:47 moritz_ sets mode: +o pmichaud
pmichaud (to follow the STD.pm definition of regexes) 12:47
masak looking forward to that.
pmichaud same here
I had lots of non-coding things I had to do yesterday, so not so much progress there. But I think nearly all of the core pieces are in place 12:48
afk for a bit, kids to school 12:50
Matt-W \o/ 12:54
Matt-W likes to hear about progress 12:55
12:55 iblechbot left, redicaps left
colomon takadonet: Yup, slowly grinding away at the math. Though I expect that now I have working Complex versions of sin and asin, the end of the trig function work is in sight. All I need to do is clone the framework of those two for all the other trig functions. 13:04
13:04 rgrau left
takadonet colomon: Sweet 13:05
13:05 synth^2 joined 13:11 [particle] joined 13:13 huf left 13:14 patspam1 left 13:28 Camenix joined 13:29 SmokeMachine joined, Camenix left
dalek kudo: c4dbb59 | (Solomon Foster)++ | src/setting/ (3 files):
Fix the previous asin checkin so it actually works.
masak what's the recommended way to run Rakudo on feather nowadays when Parrot and Rakudo should be installed? 13:33
I just tried 'perl6' but got the 'shared libraries' error one gets when things aren't installed all the way. 13:34
moritz_ masak: build & install one yourself
masak and the incantations for installing non-globally...?
moritz_ perl Configure.pl --gen-parrot 13:35
make install
masak hokay.
13:40 KyleHa joined 13:43 _Jedai_ joined 13:45 |Jedai| left
mberends masak, what kind of ranges of datetime objects do you ponder? discrete or continuous? something like "18:30 every Tuesday between t1 and t2", or "any time between t1 and t2"? 13:48
masak the latter. that is, infix:<..>
the former should fall out automatically from dt/duration addition and infix:<...>.
mberends ponders a TimeSpan object that could smartmatch a DateTime 13:51
.oO( DateTimeSpan )
PerlJam wishes google calendar had a way to say "the thursday after the 3rd tuesday of every month"
masak mberends: what advantage would such an object confer over just $dt1..$dt2 ? 13:56
13:59 jaldhar left 14:00 huf joined 14:04 icwiener joined
mberends masak: not sure, it was a suggestion to possibly help your "ranges of DateTime objects". It's non essential. Just ignore it :) 14:04
masak I think I'm heavily biased by generic solutions nowadays, to the point where I prefer existing A[B] solutions to a new AB solution almost all the time. :) 14:05
mberends masak: $t1..$t2 it is then, worksforme :) 14:09
14:12 snearch joined
mberends sprixel: use Test; plan 2; is(1,1,"one");is(2,2,"two"); 14:13
p6eval sprixel 28546: OUTPUT«1..2␤ok 1 - one␤ok 2 - two␤»
14:13 Guest86057 left 14:14 Ctrl-ZZZ joined 14:15 justatheory joined 14:21 Chillance joined
masak sprixel: use Test; plan 2; is 1, 1, "one"; is 2, 2, "two"; 14:22
p6eval sprixel 28546: OUTPUT«1..2␤ok 1 - one␤ok 2 - two␤»
masak \o/
moritz_ sprixel: use Test; plan 2; is 1, "1", "one"; is "2", 2, "two";
p6eval sprixel 28546: OUTPUT«1..2␤ok 1 - one␤ok 2 - two␤»
moritz_ sprixel: use Test; is 1.0, 1, 'a' 14:23
p6eval sprixel 28546: OUTPUT«ok NaN - a␤»
moritz_ you could still start counting at 1, even without a plan
sprixel: use Test; is '01', 1, 2;
p6eval sprixel 28546: OUTPUT«not ok NaN - 2␤» 14:24
mberends moritz_, istr the Test.pm.js script uses the plan() call to initialize the test number to 1 14:25
"feature" ;)
masak not for us done_testing fans. 14:26
moritz_ those call plan *; at the start 14:28
masak we do?
I don't.
pmichaud if "plan *;" is required, then that means that * (as a term) needs to be in the 01-sanity suite 14:29
*probably needs
moritz_ pmichaud: plan *; is an option, not a requirement
pmichaud sure, but 01-sanity is intended to be "the minimal features needed to parse most of the tests"
moritz_ pmichaud: and for the 01-sanity suite I'd continue using planned tests 14:30
pmichaud that's not what 01-sanity does
moritz_ uhm, it's not been that for ages :/
pmichaud 01-sanity is the tests needed to say "okay, you have enough features to run Test.pm"
01-sanity doesn't itself use Test.pm
14:30 Psyche^ joined
pmichaud s/"parse most of the tests"/"run Test.pm" 14:31
moritz_ well, that's what you thought in the initial stages of building rakudo - if my memory serves right then it didn't work that way in reality
pmichaud right, because nobody kept 01-sanity up to date with Test.pm :)
moritz_ and also there's not one Test.pm
pmichaud but when we re-implemented Test.pm, I at least made an effort to not use features in Test.pm that weren't tested in 01-sanity
or to add things to 01-sanity that were needed for Test.pm 14:32
mberends thanks for this explanation pmichaud, it helps the work on sprixel testing while dis-commuting :) 14:34
14:34 ruoso joined
masak is dis-commuting a more chaotic process than de-commuting? :) 14:38
14:40 ejs joined 14:42 Patterner left, Psyche^ is now known as Patterner
mberends masak: yes, it seems to take far longer ;) 14:43
masak :) 14:44
14:48 SmokeMachine left 14:52 SmokeMachine joined 14:53 nihiliad joined 15:02 mberends left
masak eew, November symlinks in Test.pm from the Rakudo directory. it's better than almost all other approaches, but it's still pretty icky. 15:03
masak looks forward to the Central Solution
moritz_ make rakudo's 'make install' copy Test.pm to $prefix/lib/perl5/ 15:04
masak perl5? :) 15:05
moritz_ erm 15:06
masak as long as Rakudo finds it in its path _by default_, I'm happy.
moritz_ rakudo: say @*INC.perl
masak that'll be the nice part of the Central Solution: less fiddling with PERL6LIB.
p6eval rakudo c4dbb5: OUTPUT«["/home/p6eval/.perl6/lib", "/home/p6eval//p1/lib/parrot/1.6.0-devel/languages/perl6/lib", "lib", "."]␤»
moritz_ ok, it's $prefix/languages/perl6/lib 15:07
masak wfm
15:10 kidd_ joined
masak Tweets: ""Ruby 2.0 will be production stable in 10 years" — Matz" -- "Hmm, sounds like they'll beat Perl 6 by a hefty margin then." 15:12
I find it difficult sometimes to predict whether intervening would be a net win.
colomon I think if you just submitted a rakudobug every time you were tempted to respond to a tweet like that, it might have better results on the whole. :) 15:13
huf i guess this is like the french not bathing. 10 milennia from now ignorant people will still claim the french dont bathe and perl is unreadable and perl6 will never be finished... 15:14
masak (1) rakudobugs don't appear spontaneously. :) (2) I sincerely believe that responding to some tweets have good results. maybe not this one, though.
15:14 jan__ joined
pmichaud sometimes it's best to simply embrace the insanity :) 15:14
colomon masak: I bet if you gave yourself ten minutes to find a rakudobug, you could do it every time. 15:15
moritz_ or ignore it ;-)
colomon It just seems to me that, if we do our jobs well, these guys will be forced to eat crow in about eight months. 15:16
masak Twitter is a great place to actually spread the word about Perl 6. providing factual, sometimes tongue-in-cheek answer to a selection of taunts or false rumors can, I believe, have results.
Matt-W Mmm 15:18
It is a good strategy - if you can come up with a reply of the right kind of tone