»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
pugssvn r30065 | Darren_Duncan++ | the '%','mod' are the 'modulo' op; 'modulus' is either what you call the result besides 'remainder', or it is another name for 'absolute value' op 00:06
00:10 lue left
sorear Tene: Here's my take - if your $LANGUAGE is insufficiently Parrot-like to handle arbitrary PMCs thrown at it, it should provide an overriden 'import' that can take outside PMCs and coerce them into the most appropriate local object, possibly creating a proxy for things with state 00:14
Tene: note that get_exports needs to do the same thing, for contravariant types
Tene: if possible, said language should provide pragmata for controlling how it munges Parrot data 00:15
Tene: see github.com/jnthn/blizkost/raw/1dd01.../SEMANTICS 00:16
Tene: that's what I'm going to do for Perl 5... you cannot take an arbitrary PMC and make it look like a SV, so I've had to make up a few rules. 00:17
Unrelatedly, I wonder if there would be a market for a Perl5 on Parrot implementation that can't handle XS (but could use Parrot and Perl6 libs) 00:19
jnthn sorear: Thing is, CPAN is of epic importance, and a decent bit of it relies on XS. 00:21
Either directly or indirectly. 00:22
That's why I wanted to go the "embed Perl 5" route with Blizkost'.
sorear yes
Blizkost is our only hope for *direct* XS users
jnthn uh, Blízkosť, I mean, of course. :-) 00:23
sorear but a lot of Perl 5 modules that use XS directly, are actually small little things that could be reimplemented in terms of Parrot
jnthn That's quite possible. 00:24
TimToady in any case, p6 needs a p5 parser built in so that it can find the extent of p5 code, even if it ends up feeding it off to the p5 interpreter
sorear then there's big stuff like DBI and POE that use XS for performance hacks, but I'm sure other people will port those
jnthn TimToady: If you're embedding 5 in 6 or interleaving, sure.
sorear \o/ I just got a license to write Parse::Perl5 00:25
jnthn TimToady: I'm mostly hoping for being able to do a "use" of Perl 5 modules for Rakudo *.
TimToady that's also a good thing
jnthn Well
It's the one I think we have some vague chance of actually being successful with in the timeframe too :-) 00:26
TimToady I wasn't suggesting anyone other than me work on STD_P5 :) 00:27
jnthn Granted Zavolaj has somewhat calmed our immediate "omg no way to access databases in Perl 6" issues, so being able to use Perl 5 DBI isn't as absolutely critical as I first expected, but it's still nice, and there's the rest of CPAN of course. :-)
.oO( One day I might start a project and give it an English name... )
00:28
sorear One day I might start a project and finish it. 00:30
TimToady mee2 00:33
viv was supposed to replace gimme5, but hasn't happened yet... 00:34
jnthn It's almost as if implementing Perl 6 is hard or something.
:-) 00:35
TimToady
.oO(hard things should be possible)
00:47 jhuni joined 01:02 xomas left
spinclad
.oO(impossible things should be before breakfast)
01:04
pugssvn r30066 | lwall++ | [STD] allow for the fact that ambiguous use of . probably indicates p5-think, not missing method parens 01:07
01:18 meppl left 01:22 dolmen left 01:30 jaldhar left 01:36 jaldhar joined 01:58 synth left 02:07 hercynium left, brushie joined 02:21 silug left 02:29 am0c left 02:31 Chillance left 02:35 ruoso left
TimToady std: my @%a = (1, (2, (3, 4))); 02:48
p6eval std 30066: OUTPUT«===SORRY!===␤Invalid hard reference syntax at /tmp/pyJNqSN2CT line 1:␤------> my @⏏%a = (1, (2, (3, 4)));␤ expecting any of:␤ desigilname␤ twigil␤FAILED 00:01 107m␤»
TimToady std: $_ .= 'string'; 02:53
p6eval std 30066: OUTPUT«===SORRY!===␤Unsupported use of . to concatenate strings or to call a quoted method; in Perl 6 please use ~ to concatenate, or if you meant to call a quoted method, please supply the required parentheses at /tmp/oPXbPZo4R5 line 1:␤------> $_ .=
..'string'⏏…
colomon rakudo: $_ .= 'string'; 02:56
p6eval rakudo 328227: OUTPUT«Quoted method name requires parenthesized arguments at line 11, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon LTA.
02:59 lue joined
lue ...not doing that again! :) 03:00
03:03 gfx joined
colomon TimToady: ping? 03:07
rakudo: say 0 ?| Mu
p6eval rakudo 328227: OUTPUT«No applicable candidates found to dispatch to for 'infix:<?|>'. Available candidates are:␤:(Any $a, Any $b)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon rakudo: say 0 || Mu 03:08
p6eval rakudo 328227: OUTPUT«Mu()␤»
colomon rakudo: say Mu || 0 03:09
p6eval rakudo 328227: OUTPUT«0␤»
TimToady pang
lue Moo
colomon TimToady: should 0 ?| Mu work? Right now it gripes because ?| is defined on Any, Any. 03:10
03:10 vamped left 03:11 vamped joined
TimToady seems reasonable for it to fail 03:13
colomon rakudo: say ?Mu
p6eval rakudo 328227: OUTPUT«0␤»
colomon I will change the test to Any, then... 03:14
rakudo: say 0 ?| Any
p6eval rakudo 328227: OUTPUT«0␤»
TimToady most failures should return a Failure, anyway
or Nil
Mu is more undef than undef :)
colomon :) 03:15
lue Aw, but I like cheese ( :D )
colomon rakudo: say 7 > any(4..12) 03:16
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
TimToady rakudo: say 7 > any(4...12) 03:17
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
TimToady rakudo: say 7 > any(4,5,6,7,8,9,10,11,12)
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤» 03:18
colomon is not going to learn how auto-threaded is implemented before going to bed tonight.
TimToady rakudo: say 7 > 4|5|6|7|8|9|10|11|12
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤» 03:19
lue result: true (in my book)
TimToady rakudo: say "yes" if 7 > 4|5|6|7|8|9|10|11|12
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
TimToady rakudo: say "yes" if 7 > 4
p6eval rakudo 328227: OUTPUT«yes␤»
TimToady rakudo: say "yes" if 7 > 4|5
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
TimToady rakudo: say 4|5
p6eval rakudo 328227: OUTPUT«any(4, 5)␤»
lue That's is not what recursion is not that is not...! 03:20
TimToady rakudo: say "yes" if 7 == 4|5
p6eval rakudo 328227: ( no output )
TimToady rakudo: say "yes" if 7 == 4|7
p6eval rakudo 328227: OUTPUT«yes␤»
TimToady rakudo: say "yes" if 7 == any(4..12)
p6eval rakudo 328227: OUTPUT«yes␤»
TimToady problem seems to be with >
lue rakudo: say "yes" if 7 > (4|5|6|7|8|9|10|11|12) 03:21
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
TimToady rakudo: say "yes" if 7 >= any(4..12)
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
TimToady rakudo: say "yes" if 7 <= any(4..12)
p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
TimToady rakudo: say "yes" if 7 <=> any(4..12) 03:22
p6eval rakudo 328227: OUTPUT«yes␤»
pugssvn r30067 | colomon++ | [t/spec] Refudge for Rakudo.
TimToady are the comparisons defined in Mu rather than Any?
lue what does <=> do? Does it mean less than, equal to, or greater than? 03:23
TimToady yes
so does leg
colomon TimToady: looking... they don't appear to be in operators.pm... 03:24
TimToady is > or < used in Junction?
03:24 hercynium joined
sorear does auto-threaded actually even exist yet? seems like an odd priority for pre-R* 03:25
lue rakudo: say 3 <=> 4
TimToady it was in alpha
p6eval rakudo 328227: OUTPUT«-1␤»
lue rakudo: say 3 <=> Mu
p6eval rakudo 328227: OUTPUT«No applicable candidates found to dispatch to for 'infix:<<=>>'. Available candidates are:␤:(Any $a, Any $b)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
lue rakudo: say 3 <=> Any
colomon sorear: it works for ==, as TimToady just showed...
p6eval rakudo 328227: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14489 (src/builtins/Seq.pir:77)␤»
TimToady alpha: say 7 > any(4..12)
p6eval alpha 30e0ed: OUTPUT«any(Bool::True, Bool::False)␤»
sorear colomon: Oh, so auto-threaded only means distribution over junctions 03:26
I was taking it to imply actual parallel execution
colomon rakudo: say 7 == any(4..12)
p6eval rakudo 328227: OUTPUT«any(Bool::False, Bool::True)␤»
TimToady it can be parallel
colomon TimToady: I can't figure out where the comparisons are defined at all. 03:27
lue rakudo: my $boot=3; my $up=True; say $boot leg $up # Is there something I can fix? I'm bored :/
p6eval rakudo 328227: OUTPUT«1␤»
colomon (except for before and after, which I wrote.)
sorear What is alpha?
TimToady rakudo: say 7 after any(4..12)
colomon sorear: the first Rakudo
p6eval rakudo 328227: OUTPUT«any(Bool::True, Bool::False)␤»
TimToady you'll be please to know that your creation works righ 03:28
*pleased
colomon sorear: the current Rakudo is a major refactor of the original, and lots of bits still don't work.
sorear rakudo: if (7 == any(4 .. 12)) { say "Y" } else { say "N" }
colomon on the other hand, lots of bits work better than before.
p6eval rakudo 328227: OUTPUT«Y␤»
sorear rakudo: if (7 != any(4 .. 12)) { say "Y" } else { say "N" }
p6eval rakudo 328227: OUTPUT«Y␤»
colomon TimToady: before and after are declared Any, Any. 03:29
TimToady maybe > and < get turned into parrot codes
03:30 MAK_ joined
colomon TimToady: could be. beyond my ken. 03:30
lisppaste3 MAK pasted "Num in context of reference" at paste.lisp.org/display/96351 03:31
MAK_ say didn't work as I expected 03:32
TimToady you don't say
sorry :)
colomon rakudo: my @a = 1..3; say "hello @a[1]"
p6eval rakudo 328227: OUTPUT«hello @a[1]␤»
colomon that's NYI.
dalek kudo: fefb298 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-operators/misc.t.
colomon rakudo: my @a = 1..3; say "hello { @a[1] }" 03:33
p6eval rakudo 328227: OUTPUT«hello 2␤»
lue Is there anything critical that needs fixing? I hate lurking.
MAK_ ok
colomon afk # bed 03:34
lue bye o/ 03:36
rakudo: my $a=1; say "hello there $a" 03:37
p6eval rakudo 328227: OUTPUT«hello there 1␤»
lue rakudo: my @a=[1,2,3]; say "hello there @a and to you too @a[1]"
p6eval rakudo 328227: OUTPUT«hello there @a and to you too @a[1]␤»
03:37 MAK_ left
lue ah, so array don't interpolate AT ALL yet (what about hashes...) 03:38
rakudo: my %a={"hi",1,"oi",2}; say %a # making sure I typed this right...
p6eval rakudo 328227: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 16872 (src/builtins/Junction.pir:373)␤»
lue rakudo: my %a="hi",1,"oi",2; say %a # making sure I typed this right...
p6eval rakudo 328227: OUTPUT«hi 1␤oi 2␤␤»
lue rakudo: my %a="hi", 1, "oi", 2; say "Oh hello %a" 03:39
p6eval rakudo 328227: OUTPUT«Oh hello %a␤»
lue I guess everyone leaves with colomon. (Here TimToady, I has your cricket) 03:41
03:41 [particle] joined
TimToady tnx...tnx...tnx...tnx... 03:42
03:42 [particle]1 left
lue RED ALERT! Particle 1 has vanished. All units out to recover! </nonsense> 03:44
lue considers fixing the interpolation issue... 03:49
03:58 hercynium left 04:04 rv2733 left
lue xkcd.com/353/ this comic almost killed XKCD :) (read the title text) 04:07
lue --not-here & 04:12
04:15 lest_away is now known as lestrrat 04:17 alester joined 04:25 vamped left 04:29 silug joined 04:37 eternaleye joined 05:17 c1sung joined 05:47 jferrero left 06:18 molaf joined 06:24 wolf2k_ubuntu left 06:28 wolf2k_ubuntu joined 06:38 gfx left 06:56 snarkyboojum left
colomon rakudo: say Mu // 42 07:17
p6eval rakudo fefb29: OUTPUT«42␤»
07:17 justatheory left
colomon rakudo: say 0 ^^ 42 07:17
p6eval rakudo fefb29: OUTPUT«42␤»
colomon rakudo: say 1 ^^ 42 07:18
p6eval rakudo fefb29: OUTPUT«␤»
07:22 k23z__ joined
k23z__ came to ask about set operations 07:22
if we'll have them in p6
I mean in the core
now I have to use Set::Scalar in p5 to use them 07:23
and they're written in pure Perl which makes them a bit slow ..
so for example for size of intersection of 2 sets I do (Set::Scalar->new(elements) * Set::Scalar->new(elements))->size
colomon There is a Set type specified for p6, but as I understand it, the details are still in doubt. 07:24
k23z__ this is .. ok , but we I've seen better things
colomon: ah ok.. it would be very useful if it would be implemented ...
sorear How do I export a trait? 07:25
use My::Module; class Foo { has $.moo is cool; }
colomon rakudo: say 0 ^^ 0 07:27
p6eval rakudo fefb29: OUTPUT«0␤»
pugssvn r30068 | colomon++ | [t/spec] Refudge, switch return 1 if to if { return 1 }. 07:29
07:32 alester left
dalek kudo: 60f9b3b | (Solomon Foster)++ | t/spectest.data:
Move some S03-operators tests back into their proper location, delete duplicate, turn on S03-operators/short-circuit.t.
07:33
colomon rakudo: say 42 if 0 07:43
p6eval rakudo fefb29: ( no output )
colomon rakudo: say (42 if 0)
p6eval rakudo fefb29: OUTPUT«␤»
07:43 M_o_C left
colomon rakudo: say (42 if 0).WHAT 07:44
p6eval rakudo fefb29: OUTPUT«Parcel()␤»
pugssvn r30069 | colomon++ | [t/spec] Fudge out "return if" test.
dalek kudo: 345f63d | (Solomon Foster)++ | t/spectest.data:
Turn on S04-statement-modifiers/if.t.
07:50
jhuni rakudo: say [+] ^5; 07:56
p6eval rakudo fefb29: OUTPUT«Confused at line 11, near "say [+] ^5"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
08:47 masak joined
masak good morning, #perl6 08:47
sorear hello
masak this Japanese twitterer who wants 'are' as a synonym of 'is'... is there some simple grammar-extending code snippet we could throw at him to give him that? 08:50
masak tries to answer his own question by reading STD.pm
sorear While you're there, could you please tell me how to export a trait 08:56
masak not sure the answer to that is in STD.pm.
09:04 Trashlord left 09:06 rgrau joined 09:07 iblechbot joined 09:15 eternaleye left
k23z__ this STD.pm seems to be quite central , I should read it too 09:18
masak it's a good read.
in terms of the Perl 6 code out there, it's one of the most complex pieces of code, and it's virtually devoid of short-term workarounds due to implementation limitations. 09:20
09:22 eternaleye joined 09:23 jhuni left 09:28 rgrau left 09:31 mssm joined
k23z__ when I git pull on the rakudo 09:35
how do I know if I have to recompile in order to get the new things added ?
for example now I see this modifs
build/PARROT_REVISION | 2 +-
src/Perl6/Actions.pm | 121 +++++++++++++++++++++++++++++-------------
src/Perl6/Grammar.pm | 28 +++++++---
src/Perl6/Module/Loader.pm | 41 +++++++++++----
src/Perl6/Module/Locator.pm | 15 ++++--
src/core/Any-str.pm | 6 ++-
src/core/EnumMap.pm | 7 ++-
src/core/Num.pm | 15 +++++
src/core/Parcel.pm | 2 +-
src/core/Seq.pm | 45 ++++++++++++++++ 09:36
masak basically, if anything changed withing src/, you need to recompile.
k23z__ src/core/operators.pm | 20 +++++++
src/core/traits.pm | 4 ++
src/glue/dispatch.pir | 27 ++++++++++
src/pmc/p6opaque.pmc | 3 +
src/pmc/perl6multisub.pmc | 63 ++++++++++++++++------
t/spectest.data | 47 +++++++++--------
masak k23z__: please don't paste large amounts of text on the channel.
k23z__ do the .pir or .pmc mean I need to recompile rakudo ?
ah ok
sorry
masak k23z__: use nopaste services for that, such as the ones in the topic.
k23z__: yes, any change within src/ means you very probably need to recompile Rakudo. 09:37
k23z__ can I open a socket currently in rakudo ?
09:37 jhuni joined
masak one used to be able to do that in alpha. 09:37
it doesn't work yet in master.
sorear no sockets? I guess I'm going to be fixing that soon 09:38
I have this wonderful knack for jumping in the deep end accidentally 09:39
masak yay
k23z__ sorear: if you do please let me know, I'd hack something with it
sorear is trying to learn the perl 6 way by righting an IRC client
09:39 Trashlord joined
sorear writing 09:39
masak sorear: cool.
we need apps like that. 09:40
09:41 saleem left
sorear well, it's also competing with bliznost for brain cycles 09:41
do you still say cool? :)
k23z__ masak: if I hit make now it says there's nothing to be done, although I have "git pull" before
masak sorear: I wouldn't dream of laying out your schedule for you :) 09:42
sorear when in doubt, git clean -dfx # read the documentation before running this
masak k23z__: what sorear said. also, it makes little sense, so one of us is missing something. :) 09:43
k23z__ hm 09:45
sorear masak: can you give me an example of perl 6 socket code?
k23z__ sorear: src/old/setting/IO/Socket/INET.pm ? 09:46
masak aye.
was just going to link to that: github.com/rakudo/rakudo/tree/alpha...etting/IO/
sorear k23z__: socket code, not socket implementation
masak oh. 09:47
k23z__ oh
masak well, there's Web.pm.
sorear I need to know exactly what's not working if I'm going to fix anything at all
k23z__ but I remember there was this wiki called november implemented in p6 , that surely needed to use some sockets sooner or later
masak sorear: github.com/masak/web/blob/master/li...PDaemon.pm
I should probably link to the HTTP::Daemon code as well... 09:48
gitorious.org/http-daemon/mainline/.../Daemon.pm 09:49
sorear So why is there lots of setting stuff in old?
sorear is really, really new here
09:49 z3ndrag0n joined
masak sorear: the old/ directory contains alpha code. 09:49
I'm actually not sure what prompted people to keep it around in the new branch. 09:50
then again, I can sometimes be a purist, and I don't always see the pragmatic reasons for things.
09:50 Su-Shee joined
sorear When did rakudo cease being alpha? 09:50
masak sorear: a week or so after the January release, I believe. 09:51
sorear oh 09:52
right
ng
now I just need to figure out what's wrong
I guess ng doesn't support a setting? 09:53
masak it does. but it calls it CORE instead. 09:57
sorear where is it kept? 10:04
masak github.com/rakudo/rakudo/tree/master/src/core/
araujo guys, pugs was abandoned? 10:05
masak araujo: no, but the air went out of its one single implementor.
sorear that's exactly the same thing
araujo :P 10:06
masak unless you count 'abandon' as a conscious, deliberate act.
I don't think anyone wanted Pugs to slow down to a halt, implementation-wise. 10:07
it just happened.
araujo I see I see, ok
sorear Is it possible for me to modify the setting without rebootstrapping Rakudo? 10:11
k23z__ sorear: what you suggested is equivalent to make clean ; make
sorear no
k23z__ sorear: which is ok but it takes the time of a build from scratch ...
sorear: it's not ?
hm
sorear make clean is unreliable
you should always expect it to not work
because, quite simply, it never gets tested
k23z__ ah ok, I was just trying to say it's building from scratch now 10:12
masak sorear: if by 'rebootstrapping' you mean 'rebuilding', then no.
k23z__ sorear: I was hoping for incremental builds
sorear: would that be possible ?
sorear k23z__: don't ask me
masak k23z__: usually, that's what make does.
sorear wait, nevermind, there's no way what I asked for is even possible 10:13
10:13 zoi joined
masak :) 10:13
sorear parrot perl6.pbc src/gen/core.pm > src/gen/core.pbc # this command takes 12 hours on my machine, I'd *love* it if it could be broken up somehow
k23z__ hey sorry 10:14
masak sorear: you don't have much RAM, do you?
k23z__ if parrot had something like distcc ... 10:15
and you had a build farm
sorear core.pm build has a VMSIZ of ~400MB, I have 384MB of RAM
if there were some magic parrot --use-10%-less-ram switch I'd be set
k23z__ sorear: use swap on disk ? 10:16
sorear or if I could somehow figure out why rakudo uses so much ram
k23z__: I *do* use swap on disk. If I were using swap on network I would know exactly what was wrong
masak sorear: it's taking so long because you have so little RAM. if you'd get more, it would go faster. 10:17
building Rakudo easily gobbles up 1024MB. probably a lot more.
the memory consumption definitely went up as we switched to the ng branch. 10:18
sorear what does it even use that much for 10:20
sorear wonders if there's a memory leak somewhere; compiling a bunch of functions ought not to require that much more than compiling one
also, I was watching top during the build, and total allocated memory never went above ~420 10:21
masak I am compiling Rakudo now. top tells me that the allocated memory is 620 MB. 10:25
sorear oh, probably word size differences
masak how would word size differences affect the number of bytes allocated? 10:26
sorear PMC* is 4 bytes on my system, 8 bytes in most of the rest of the world
an awful lot of the data Parrot allocates is made of void*
masak I see.
k23z__ sorry my question went unanswered about incremental builds, my question was if I could recompile faster please ? 10:29
recompile rakudo
sorear no, you can't
k23z__ because for example if I change 10 lines I need to wait ~30m to see the result
sorear: ah ok then
sorear the bulk of the time spent compiling rakudo is compiling the prelude
which is a single monolithic thing 10:30
k23z__ sorear: and could it be broken up ?
sorear then it wouldn't be a prelude
masak k23z__: I don't know if it answers your question -- but usually, unless one did 'make clean' or equivalent, the 'make' process only rebuilds the thing that change and those things that are dependencies of that.
the CORE/Setting/Prelude is quite late in the build chain, for example.
if you only change that, make won't rebuild the grammar and actions files. 10:31
sorear masak: src/core/* is 3ksloc of code. Can I expect that, if my own programs grow to that size, they too will consume 400+ MiB to load?
k23z__ masak: yes the problem is I tried "make" exactly after I "git pull" and it told me there was nothing else to do(which was weird since I saw that git pulled ~335 new lines) and so sorear told me to do "git clean -dxf" which erased all the built binaries and then I "perl ./Configure.PL --gen-parrot" again and "make" again ... and now I'm waiting for it to finish ... 10:32
I'm pretty sure I missed something ... I don't know what
masak sorear: I'm not one to either give promises or dire predictions about Rakudo memory use. but I do know that competent people are working at optimizing Parrot and Rakudo.
k23z__: right. neither do I. I hope 'make' works for you next time. 10:33
it usually does for me.
k23z__ masak: I will try to change one line in some file under src/ and see if make behaves the same way(telling me there's nothing else to be done) 10:34
but about the build times I wonder
wouldn't it be possible to build a dependency tree
of the whole rakudo project
and then compile distributed on multiple machines 10:35
looking at that tree to see if there are no inter-dependencies ?
if they are on differen branches of the tree they can be compiled on differen machines I would think
that is how I suppose distcc works
I have 3-4 idle machines I could put them to work for me like that :)
10:36 perl7 joined
masak k23z__: those are interesting questions. I don't have the answer, unfortunately. 10:36
sorear masak: fair enough. 10:37
perl7 What does "Rakudo *" really mean?
masak [baclog] TimToady: what remains before viv can replace gimme5?
perl7: it's a point in the development of Rakudo where we say "Here. This is something that you can start building applications with." 10:38
perl7 masak: production ready?
masak perl7: depends on what you're producing :)
more like 'usable'. 10:39
k23z__ masak: :)
perl7 masak: applications in wich I have no time to fix language tricks
masak perl7: 'fix language tricks'? what do you mean?
perl7 mberends: There are more intelligent ways of calling me stupid 10:40
sorry
k23z__ wtf ?
masak very non sequitur, I must say.
perl7 masak: I don't like to work with language implementation issues,... 10:41
masak perl7: we're still finding a lot of them. that's just where we are right now. 10:42
perl7: it will get better, but we simply have to find the issues before that.
there's no magical way that I'm aware of.
perl7 masak: will be the Rakudo * clean of identified issues?
masak :) 10:43
is that the same as asking 'will the RT queue be empty?' ?
because I don't think it ever will. even if you're charitably only counting the real bugs in there.
and that's not because of Rakudo, that's because of software in general. 10:44
perl7 masak: you're rigth, but I ask for identified ones
masak RT contains the identified ones.
k23z__ if you have supplies of f00d and a place to crash and paid utilities ... I could take the bug count to zero
sorear perl7: please realize that you are not dealing with a contracted company here
masak k23z__: you're welcome to stay at my house.
perl7 sorear: I'm asking, nor requiring
k23z__ masak: that is very nice of you Carl , very hospitable :) 10:45
perl7 masak: do you have a link to see the RT status for Rakudo *
masak perl7: tinyurl.com/yak6y85 10:46
perl7 masak: thnaks
masak k23z__: it'll be fun. I'll provide the f00d, a mattress, and even a laptop if you need it. free wifi. stay as long as you fix things in the RT queue. 10:47
10:48 xinming_ joined
masak k23z__: we can even race and see if you can fix more tickets than I can submit :) 10:50
10:50 meppl joined 10:51 xinming left 10:55 jaldhar left, jaldhar joined
masak rakudo: subset OddInt of Int where { $_ % 2 }; class OhNoes is OddInt {}; my $i = OddInt.new; say $i 10:57
p6eval rakudo 345f63: OUTPUT«0␤»
masak should classes be allowed to inherit from subtypes?
um. I mean. 10:58
rakudo: subset OddInt of Int where { $_ % 2 }; class OhNoes is OddInt {}; my $i = OhNoes.new; say $i
p6eval rakudo 345f63: OUTPUT«0␤»
masak both of these cases are problematic, of course. but the first one is already known. 10:59
11:05 perl7 left 11:07 m6locks left, m6locks joined 11:08 zibri joined 11:10 mssm left 11:22 payload joined 11:23 mssm joined
k23z__ masak: hehe :) 11:26
11:28 payload left
masak '"Talent" is the worst excuse cited by people who give up." -- Carl, the glassblower in ソ・ラ・ノ・ヲ・ト (Soranowoto) 11:38
that's heartening for those of us who just make it up as we go along. :) 11:41
11:46 pmurias joined
masak rakudo: subset A of Int where { $_ == 42 }; grammar G is A {} 11:50
p6eval rakudo 345f63: ( no output )
masak rakudo: subset A of Int where { $_ == 42 }; grammar G does A {}
p6eval rakudo 345f63: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: 'perl6;ClassHOW;add_composable' pc 3996 (src/metamodel/ClassHOW.pir:186)␤»
masak those two make even less sense. 11:51
11:56 k23z__ left
jnthn oh hai 12:33
12:33 k23z__ joined
masak lolitsjnthn 12:33
jnthn huh...inheriting from a subset type? :-/ 12:34
Or does-ing one
masak k23z__: I saw you were asking about set operations in the backlog. jnthn and I were just discussing that on the train back from the Copenhagen++ hackathon.
jnthn Yes, I think we'll ban that. :-)
masak jnthn: I agree.
jnthn Good find.
k23z__ Queried user last spoke 14s ago. masak is currently in this channel.
masak :)
jnthn still needs to finish up a few other aspects of subset too 12:35
May do that today.
masak yay
k23z__ hmm my seen irssi script seems to work
jnthn was happy to close a masakbug last night too :-) 12:36
masak yeah, saw that. jnthn++
jnthn I still need to make $x.SomeRole::methname() work
Though did put things back so there'll be an easy-ish way to do taht. 12:37
*that
masak in 'my $a := $b;', both $a and $b are treated as lvalues. 12:38
that's the same, I guess, as saying that the operation is on the level of the containers, not the values.
alpha: my $c = 42; my $a := my $b = $c; $b = 5; say ($a, $b, $c).perl 12:40
p6eval alpha 30e0ed: OUTPUT«[5, 5, 42]␤»
k23z__ masak: ban ? 12:41
12:41 iblechbot left
masak k23z__: sorry, I don't have an op bit. you'll have to ask someone else. 12:41
k23z__ jnthn: ban ?
masak: no no, I was talking about
<@jnthn> Yes, I think we'll ban that. :-)
masak oh.
k23z__ I didn't understand what he meant
jnthn: you will ban set operations ?
masak k23z__: no, jnthn was talking about a class inheriting from a subset. 12:42
k23z__ aah yes
masak: yes and can you tell me your conclusion from your train conversation please ?
jnthn k23z__: What masak said. I don't want to ban sets! :-)
masak k23z__: only loose things. we want set operations. there are many ways to do them; the least adventurous should probably be in CORE. 12:43
k23z__: might support one Unicode op set and one Texas/ASCII op set.
k23z__ If I were to implement them should I write them in PIR, NPQ , Perl6 ? 12:44
masak k23z__: might be simplest to do it as a Perl 6 module for now.
jnthn Aye, Perl 6.
k23z__ I understand and maybe it can be ported to PIR/NPQ later
masak k23z__: watch out for serious bikeshedding around the topic.
jnthn Avoid porting stuff to PIR.
masak k23z__: well, the nice thing about the CORE/Setting/Predule is that it doesn't need to be ported to PIR.
jnthn I'm trying to reduce the amount of PIR we have, not increase it.
k23z__ is PIR/NPQ faster than Perl6 ? I mean if it's more close to Parrot I'd imagine it would be faster but I may be wrong 12:45
jnthn k23z__: Yes, for the moment that's certainly true. 12:46
12:46 masak left
jnthn Writing stuff in Perl 6 means that all of the metamodel bits and code types Just Work, though. 12:46
colomon it also means it will work for other implementations of Perl 6. 12:53
and good morning. :) 12:54
jnthn morning, colomon :-) 12:55
Yes, that too - and other backends that Rakudo gets in the future. 12:56
colomon jnthn: tried to get S03-smartmatch/any-num.t last night in the middle of the night by defining Rat.ACCEPTS. But that just broke things even worse.
> say 1 ~~ 1.0 12:57
Ambiguous dispatch to multi 'ACCEPTS'. Ambiguous candidates had signatures:
:(Mu : Any $other;; *%_)
:(Mu : Any ::Complex $other;; *%_)
k23z__ you guys like morphisms ? 12:58
13:02 M_o_C joined
k23z__ ah then I'll write it in Perl6 13:02
those haskell guys apparently have a permutation module since april 2009
but I'm catching up on them :) 13:03
jnthn colomon: That's...weird. 13:08
colomon jnthn: agreed
jnthn oh wait
thsoe candidates are ambiguous
Wait, ::Complex is a type capture 13:09
Not a constraint.
Is Complex not defined at this point?
Or can you stub it?
colomon rakudo: ("That's" ... "weird").batch(10).perl.say
p6eval rakudo 345f63: OUTPUT«("That's", "That't", "That'u", "That'v", "That'w", "That'x", "That'y", "That'z", "That'aa", "That'ab")␤»
jnthn wow. :-) 13:10
colomon jnthn: that's actually your Num.ACCEPTS (::Complex $other) it's referring to there, I think.
13:10 k23z__ left
jnthn Removing the :: should work. 13:11
colomon trying...
jnthn (if Complex has been stubbed)
colomon which it hadn't been, so it failed, but now I've added class Complex { ... } 13:13
13:13 k23z__ joined, k23z__ left
colomon jnthn: I think that may have done it. 13:22
jnthn \o/ 13:23
colomon: I think after that one, the rest of the smart-match tests are syntactic ones.
colomon unfortunately, while that makes test #2 in that testfile work, that doesn't get the test file working, because test #3 is a hard fail. 13:24
rakudo: say Mu ~~ 0
p6eval rakudo 345f63: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14489 (src/builtins/Seq.pir:77)␤»
colomon jnthn: next problem: 13:29
> say 3+1i ~~ 3
You can only coerce a Complex to Num if the imaginary part is zero
(which means I'm going to make some more tests here....) 13:30
13:33 jhuni left 13:36 sECuRE joined
sECuRE my perl6 segfaults with a trivial hello world program. output, rakudo and parrot versions here: p.nnev.de/1210 - what could that be? 13:37
pugssvn r30070 | colomon++ | [t/spec] Fudge and add some more obvious tests. 13:38
dalek kudo: 2751645 | (Solomon Foster)++ | src/core/ (2 files):
Fix Num.ACCEPTS(Complex), and implement Rat.ACCEPTS.
13:45
kudo: 8f0ca97 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-smartmatch/any-num.t.
jnthn sECuRE: How did you build? With --gen-parrot, or a seperate Parrot build? 13:47
sECuRE jnthn: using --gen-parrot
i also deleted parrot* before calling that because it wouldn’t build otherwise
before i used git pull ; git reset --hard to update my checkout of rakudo
jnthn That all sounds fine. 13:49
I'm sure I've seen something like this get posted a few days ago, I'm trying to remember what the outcome was.
colomon just realized he pushed his last change without spectesting. Drat. 13:50
jnthn colomon: Oh noes! ;-)
colomon Mind you, I don't know of any fails yet. 13:51
jnthn ah yes... irclog.perlgeek.de/perl6/2010-03-13#i_2097693
sECuRE: Looking at the IRC log, last time somebody ran into this they were able to get around it with a "make install" of Rakudo. 13:52
sECuRE let’s see if it works
indeed, it did. thanks!
jnthn What platform are you building on, out of curiosity? 13:53
sECuRE debian gnu/linux, x86_64
jnthn OK. 13:54
13:56 mssm left 13:57 Trashlord left
jnthn Ah, I just remembered...if you want to run Rakudo from outside of the build directory, make install is required. I think we used to have a nice check and helpful error message at startup about that... 13:59
13:59 mssm joined
jnthn ...should try to re-instate it. 13:59
sECuRE ok, just trying a simple grep command, but it says it’s confused by that. what am i doing wrong? p.nnev.de/1211 14:03
colomon rakudo: my @events = grep { 1 } @events; 14:04
p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "my @events"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
jnthn Missing comma.
(after the closure) 14:05
colomon rakudo: my @events; @events = grep { 1 }, @events;
p6eval rakudo 345f63: ( no output )
sECuRE thanks
but what about the following?
rakudo: my @events; @events .= grep { 1 };
p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "@events .="␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
sECuRE rakudo: my @events; @events .= grep { 1 },;
p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "@events .="␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon rakudo: my @events; @events .= grep {1}; 14:06
p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "@events .="␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon rakudo: my @events; @events .= grep: {1}
p6eval rakudo 345f63: ( no output )
colomon or
jnthn std: my @events; @events .= grep { 1 }; # better errors than Rakudo usually
p6eval std 30070: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/m3TAoiW43Y line 1:␤------> my @events; @events .= grep ⏏{ 1 }; # better errors than Rakudo usual␤ expecting any of:␤
..bracke…
colomon rakudo: my @events; @events .= grep({1})
p6eval rakudo 345f63: ( no output )
sECuRE colomon: what’s the : syntax about? 14:07
colomon jnthn can probably explain it better than me. I just know it works. 14:08
sECuRE what is the "new XS" in perl6? so, is it already possible to create bindings for a C library, and if so, where can i read about it? 14:12
colomon Parrot has a facility for adding C bindings, which ought to work with Rakudo. I don't know the details, and I don't know where there is documentation. (But hopefully someone out there on the channel does...) 14:15
jnthn: help? 14:20
14:20 iblechbot joined
colomon Looks like my Int.ACCEPTS patch broke is m2(1), "a", 'literal Int in signature matches value correctly'; 14:21
jnthn oops, sorry...was afk for a moment 14:25
sECuRE: When a method call is parsed, you have two ways of specifying the arguments for it: either a colon and then a list, or by putting them in parens. 14:26
You can choose which looks nicest. :-)
sECuRE ah, i see 14:27
jnthn sECuRE: There's some early implementation work on C bindings. The one I've hacked on with mberends++ is github.com/jnthn/zavolaj/
See for example github.com/jnthn/zavolaj/blob/maste...lclient.p6 - a mysql binding written in Perl 6. 14:28
colomon jnthn: woah, how'd I miss zavolaj? cool!
sECuRE thanks, will have a look at it
jnthn colomon: Well, it was written while I was moving country. :-)
And shown off at the hackathon first. 14:29
I guess maybe the details didn't make it to the channel. :-)
(Int.ACCEPTS) way odd. :-/
colomon: How does it break? 14:30
colomon Null PMC access in get_bool() 14:31
current instr.: 'm2' pc 1208 (EVAL_1:471)
... call repeated 1 times
called from Sub '_block127' pc 840 (EVAL_1:353)
afk... biab
jnthn Can't really guess from that...would need to glance the patch. 14:32
sECuRE jnthn: unfortunately, it does not seem to work atm: p.nnev.de/1212 14:34
jnthn sECuRE: It's early code and the errors suck. 14:36
sECuRE: If it gave good errors
Then it'd probably want to tell you that it couldn't find the mysqlclient library. 14:37
jnthn makes mental note to improve the errors.
sECuRE ah, it needed the -dev-package. sorry ;)
jnthn :-)
bbiab, phone call, other bits 14:38
lisppaste3 colomon pasted "Int.ACCEPTS patch" at paste.lisp.org/display/96370 14:54
15:08 jferrero joined, Psyche^ joined 15:11 Patterner left, Psyche^ is now known as Patterner 15:39 Chillance joined 15:50 pmurias left 15:55 Trashlord joined 16:00 Exodist left 16:11 envi^home joined 16:21 payload joined 16:26 justatheory joined 16:37 Exodist joined 16:43 rv2733 joined 16:45 Exodist left
pugssvn r30071 | lwall++ | [STD] read minds of people who forget that ".meth args" is a TTIAR error 16:46
16:49 Exodist joined 16:56 Exodist_ joined, Exodist left 16:57 Exodist_ left, iblechbot left, Exodist joined 16:58 Lorn joined
payload TTIAR? 16:58
TimToady two terms in a row 17:00
the restriction that makes p6 code "self clocking" 17:01
and allows the parser to know whether you meant / as division or regex 17:02
17:02 wolf2k_ubuntu left
pugssvn r30072 | lwall++ | [STD] no need to rescan whitespace, just check if line number changed 17:07
r30072 | add "previous line missing its semicolon" to the unexpected block checker
r30072 | s/acomp/arraycomp/ for more clarity
betterworld Could $x/$y be made a short form for Rat(:numerator($x), :denominator($y)) in a signature? 17:15
17:18 k23z__ joined, k23z__ left, k23z__ joined 17:22 wolverian left
jnthn colomon: I wonder if we're hitting a .tailcall somewhere in the chain of things... 17:23
colomon: Will see if I can fathom it. 17:24
17:24 wolverian joined
jnthn betterworld: Not without making it a special case of some kind...I'm not sure it's a common enough need for that though? 17:24
betterworld: Note that rather than unpacking it in the signature - cool as that is - you may be better served by doing nude in the method body.
sub foo(Rat $r) { my ($x, $y) = $r.nude; ... } 17:25
TimToady signature unpacking can already do it, if there are methods 17:28
jnthn TimToady: The problem isn't the lack of methods, just that numerator and dominator are quite lon 17:30
*denominator, long
TimToady: If they were .nu and .de it'd be...like a bunch of European domains name TLDs. :-)
It does work today though afaik
Think the request was just for a shorter way, but I'm not sure it's worth huffmanizing. 17:31
betterworld well, I just thought that "sub foo($x/$y)" would be cool and nice to read and quite consistent with the unpacking semantics 17:32
17:42 payload left
lue hiya! 17:46
rakudo: my $a=1; say "hello $a" 17:48
p6eval rakudo 8f0ca9: OUTPUT«hello 1␤»
lue rakudo: my @a=1,2,3; say "hello @a" 17:49
p6eval rakudo 8f0ca9: OUTPUT«hello @a␤»
lue rakudo: my %a=1,2,3,4; say "hello %a"
p6eval rakudo 8f0ca9: OUTPUT«hello %a␤»
lue rakudo: my $a=1; say "hello $b"
p6eval rakudo 8f0ca9: OUTPUT«Symbol '$b' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
hejki my @a=1,2,3; say "hello" ~ @a.join(" "); 17:50
rakudo: my @a=1,2,3; say "hello" ~ @a.join(" "); 17:51
p6eval rakudo 8f0ca9: OUTPUT«hello1 2 3␤»
lue heijki: of course you can do something like that. The problem itself is string interpolation, and I want to try and fix it.
Just making sure no else did in the meantime :D
hejki :P 17:52
TimToady std: my @events; @events .= grep { 1 };
p6eval std 30072: OUTPUT«===SORRY!===␤Unexpected block in infix position (method call needs colon or parens to take arguments) at /tmp/atj443WWtI line 1:␤------> my @events; @events .= grep ⏏{ 1 };␤ expecting any of:␤ bracketed infix␤ infix or
..meta-infix␤FAILED 00:01…
17:58 nihiliad joined, wknight8111 joined 18:02 envi^home left
colomon is back from a failed trip to the pub. 18:03
szbalint failed? 18:04
lue were there people inside with paper bags over their heads? 18:05
jnthn How does a pub trip fail?
EOUTOFBEER?
szbalint feels like in a pub. He has 5 different types of alcohol on his desk atm. 18:07
arnsholt Not bad, not bad. What kinds of booze? 18:08
jnthn Wow. My kitchen isn't even quite that awesome (yet). :-)
jnthn only has 4 types to hand at the moment 18:09
colomon too many st pat's celebrators to have lunch with my family there. it was a complete zoo.
szbalint Caol Ila, Zubrowka, homebrew pálinka, stiegl and some red wine
colomon pity, because my friends were playing music.
oooo, Caol Ila!!!
jnthn Borovička, Slivovica, Lemon Cello, Beer. 18:10
I finished all my vodka and Korean stuff before moving.
Żubrówka sounds nice. :-) 18:12
lue colomon: were people wearing paper bags over their heads? It's very important! [ :) ]
colomon no, they were wearing giant green leprechaun hats. (among other things, but no paper bags.) 18:13
jnthn Pálinka sounds like Hungarian version of what is called Slivovica in Slovakia.
lue good! The end of the world isn't in 10 minutes then.
colomon lue: I thought you might be worried about something like that.
jnthn colomon: Too bad about the fail. :-(
lue well, you went to a PUB. If there were people wearing paper bags, I'd advise you to run to the nearest bulldozer :D 18:14
colomon well. we still had a nice lunch out and then cupcakes from the super-tasty cupcake shop, so not a complete fail.
szbalint not too much left :( I'll keep the packaging though. dev.perl.hu/static/IMG_2923.JPG
18:14 mberends joined
szbalint jnthn: yeah, that's about right :) 18:14
colomon and I'll probably be back at the pub playing music myself in about three hours. :) 18:15
lue get yourself some peanuts their. Just in case. :)
OOPS there
colomon jnthn: any luck with Ints and ACCEPTS? 18:16
jnthn szbalint: Wow, nice packacing indeed!
colomon: No, I have a hunch what it may be though.
colomon hunches are good... 18:17
jnthn If you end up doing a tailcall in a call from C (e.g. the one made by the binder), it can happen that an annoying Parrot bug bites, which results in getting a null PMC back rather than the desired result.
It may be that we're hitting something still written in PIR that tailcalls to prefix:<?> 18:18
I can dig more later today, but right now I have a Need For Nom. 18:19
colomon huh. and by all means, nom! 18:20
rakudo: say Any ~~ 0 18:22
p6eval rakudo 8f0ca9: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14489 (src/builtins/Seq.pir:77)␤»
18:23 hercynium joined 18:43 hercynium left
lue how would one ssh in emacs? TRAMP comes up a lot. 18:43
18:43 zibri left 18:46 zibri joined 18:48 nadim left
sorear it occurs to me that I don't *actually* have to mess around with the rakudo recompiler 19:08
I can write the missing parts of the setting as external modules
then, when they're completely working, let someone else worry about integration 19:09
who invented Q:PIR?
jnthn Q:blah as a general quoting syntax is part of the Perl 6 spec 19:12
Q:PIR was done by pmichaud, iirc.
sorear pmichaud++
colomon pmichaud++
arnsholt lue: Open one of the Emacs terminal emulators and fire off the OpenSSH client? =) 19:14
19:21 brushie_ joined 19:23 brushie left
spinclad pir::<opname> is nice too. pmichaud++ 19:25
oh and hi all 19:26
19:28 Trashlord left
colomon o/ 19:29
19:29 IllvilJa left 19:30 eternaleye left
colomon rakudo: say 3 !> 5 19:30
p6eval rakudo 8f0ca9: OUTPUT«1␤»
19:31 eternaleye joined
pugssvn r30073 | unobe++ | [t/spec] Fudge S06-other/main-eval.t 19:31
r30073 |
r30073 | modified: S06-other/main-eval.t
19:32 molaf left, k23z__ left 19:37 rv2733 left
colomon rakudo: my $b = 0; say not($b) + 1); say (not $b) + 1 19:38
p6eval rakudo 8f0ca9: OUTPUT«Confused at line 11, near "); say (no"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon rakudo: my $b = 0; say not($b) + 1; say (not $b) + 1
p6eval rakudo 8f0ca9: OUTPUT«0␤2␤»
colomon is (not($b) + 1), ((not $b) + 1), 'not($b) is (not $b)'; 19:39
can anyone see a reason that test makes any sense?
arnsholt Makes sure that the operator not and the function not do the same, methinks 19:40
colomon actually, I think it's intended to make sure not is higher precedence than +, maybe?
arnsholt Doesn't look like it from the description 19:41
colomon If not, then why have the "+ 1"s in there?
arnsholt Not entirely sure =)
colomon raudo: my $b = 0; say not($b); say (not $b) 19:42
rakudo: my $b = 0; say not($b); say (not $b) 19:44
p6eval rakudo 8f0ca9: OUTPUT«1␤1␤»
pugssvn r30074 | colomon++ | [t/spec] Add some more tests for not. 19:45
jnthn colomon: But that fail reproduced here now. 19:49
spinclad given that rakudo seems to get it wrong ( as not($b) should make not's arglist be just '$b' ), it seems like a good test to have...
rakudo: my $b = 0; say not($b)+1 19:50
p6eval rakudo 8f0ca9: OUTPUT«0␤»
colomon spinclad: are you sure that's not how it should work? 19:51
spinclad (why isn't this parsed 'say( (not($b)) + 1 )' ?)
colomon alpha: my $b = 0; say not($b)+1 19:52
p6eval alpha 30e0ed: OUTPUT«0␤»
spinclad perl6: my $b = 0; say not($b)+1
p6eval elf 30074, pugs: OUTPUT«2␤»
..rakudo 8f0ca9: OUTPUT«0␤»
colomon not is loose_unary, which is much lower precedent than addition. 19:54
spinclad (how again do you ask p6eval for rakudo --output=parse ?)
colomon *precedence 19:55
spinclad but ident(args) is always taken as function call... 19:56
perl6: my $b = 0; say not $b + 1
p6eval rakudo 8f0ca9: OUTPUT«0␤»
..elf 30074, pugs: OUTPUT«␤»
spinclad (without the ident(args), all are agreed on precedence, as you say) 19:57
perl6: my $b = 1; say not $b - 1 19:58
p6eval elf 30074, pugs, rakudo 8f0ca9: OUTPUT«1␤»
spinclad perl6: my $b = 1; say not($b)-1
p6eval rakudo 8f0ca9: OUTPUT«1␤»
..elf 30074, pugs: OUTPUT«-1␤»
spinclad (another example) 19:59
perl6: my $b = 1; say (not $b)-1 20:02
p6eval elf 30074, pugs, rakudo 8f0ca9: OUTPUT«-1␤»
spinclad mildew: my $b = 0; say not($b)+1 20:03
p6eval mildew: OUTPUT«Can't open perl script "mildew": No such file or directory␤»
spinclad sprixel: my $b = 0; say not($b)+1 20:04
p6eval sprixel 30074: OUTPUT«Undeclared routine:␤ 'not' used at line 1␤NYI: term__S_scope_declarator␤»
colomon spinclad: it's okay, I won't take the test out.
spinclad sorry, i wasn't trying to pile up witnesses, i was curious how many witnesses we actually have at this point 20:06
20:09 rgrau joined
colomon :) 20:09
not that I give a fig for the number of witnesses. ;) 20:10
but it occurred to me I'd be really cheesed off if sin($b) + 1 was the same as sin($b + 1).
arnsholt Indeed =)
colomon (I mean, not that I give a fig for number of witnesses in terms of establishing what it should do. It's way cool there are that many implementations out there!) 20:11
jnthn colomon: That would be...epicly confusing. :-)
colomon jnthn: yeah, it's not obvious to me how "not" should work, but it's very obvious to me how "sin" should. :) 20:12
sigh,. 20:13
I had this great ambition to see how many meta ops I could get implemented before going back to the pub.
but my conscience said, well, you should get !op working as well as possible first.
and then my conscience said, and where are the !op tests, anyway?
and then I looked in not.t and got completely sidetracked. :) 20:14
spinclad sideyakked
colomon so, does anyone remember where the !op tests are? I remember looking at a few of them when I implemented it, but I can't recall where now... 20:15
rakudo: say so(1) + 1 20:16
p6eval rakudo 8f0ca9: OUTPUT«1␤»
colomon same deal there...
jnthn rakudo: say so(1) 20:17
p6eval rakudo 8f0ca9: OUTPUT«1␤»
jnthn rakudo: say (so(1) + 1) 20:18
p6eval rakudo 8f0ca9: OUTPUT«1␤»
jnthn ...huh?
spinclad rakudo: say so (1) + 1
p6eval rakudo 8f0ca9: OUTPUT«1␤»
colomon those are all so (1 + 1)
spinclad perl6: say so (1) + 1
p6eval rakudo 8f0ca9: OUTPUT«1␤»
..pugs: OUTPUT«*** No such subroutine: "&so"␤ at /tmp/6RHmCn1n0m line 1, column 5 - line 2, column 1␤»
..elf 30074: OUTPUT«Undefined subroutine &GLOBAL::so called at (eval 123) line 3.␤ at ./elf_h line 5881␤»
colomon rakudo: say (so 1) + 1
p6eval rakudo 8f0ca9: OUTPUT«2␤»
spinclad rakudo isn't seeing so(1) as func(args) as i think it ought 20:19
colomon right 20:20
any idea how STD.pm sees it?
afk # taking out the garbage while my spectest runs
spinclad std: say so(1) + 1
p6eval std 30074: OUTPUT«ok 00:01 106m␤»
spinclad doesn't say ;) 20:21
colomon right, but people with high magic can get the parse tree from STD...
spinclad but again i seem to remember p6eval would pastebin a parsetree given the right xx-yy: invocation 20:22
std-parse: say so(1) + 1
rakudo-parse: say so(1) + 1
which i can't lay recall on 20:23
jnthn gets to the bottom of why colomon++'s Int.ACCEPTS patch doesn't work, and swears loudly at Parrot. 20:24
TimToady std parses so() as a function call 20:25
spinclad
.oO( what, build my own copy? such a thought. ... back in 12 hours o/ )
(easily verified at home...) 20:26
colomon oooo, jnthn++ 20:28
dalek kudo: d631c8f | (David Romano)++ | (9 files):
Merge remote branch 'upstream'
20:30
kudo: e013cab | (David Romano)++ | t/spectest.data:
Merge remote branch 'upstream'
kudo: 5d15313 | (David Romano)++ | (3 files):
Merge remote branch 'upstream'
kudo: 77ee50d | (David Romano)++ | t/spectest.data:
Turn on S06-other/main-eval.t remove unneeded comment lines in t/spectest.data
jnthn Epic merge 20:31
pugssvn r30075 | colomon++ | [t/spec] Add needed done_testing. 20:33
colomon Hmmm..... wonder what was up with all those merge branches? My bad somehow? 20:34
20:36 huf joined 20:37 rindolf joined
jnthn git happens. 20:38
rindolf jnthn: heh.
jnthn++
eat git!
jnthn colomon: Think I has a fix. 20:44
rindolf jnthn: I has?
jnthn *have :-) 20:45
rindolf jnthn: OK.
I can haz the fix?
20:46 IllvilJa joined
jnthn oh, so you DO know lolspeak! 20:46
:-P
rindolf jnthn: I doez. 20:47
jnthn colomon: spectesting.
colomon: Shall I put the Int part of your patch in too?
Or will that create bother/conflicts for you?
colomon jnthn: I actually completely backed out the Int part locally, so by all means please put it back in. :) 20:48
jnthn colomon: OK, will do provided the test run is OK. 20:49
colomon \o/ 20:56
20:57 tylerni7 joined, tylerni7 left, tylerni7 joined
colomon is off to the pub again... 21:01
21:01 payload joined
jnthn colomon: enjoy! 21:02
21:10 rv2733 joined
dalek kudo: 9ffe679 | jonathan++ | src/pmc/perl6multisub.pmc:
Tweak to make sure Perl6MultiSub matches a (somewhat dubious) Parrot heuristic.
21:10
kudo: 558c638 | jonathan++ | src/ (2 files):
Apply patch from colomon++ to move Int.ACCEPTS into the setting.
21:11 hercynium joined
jnthn std: my Nil $x 21:13
p6eval std 30075: OUTPUT«ok 00:01 107m␤»
rindolf A few TODO tests passed for me here on x86-64. 21:20
pugssvn r30076 | jnthn++ | [t/spec] Re-fudge S02-builtin-data-types/declare.t. 21:22
dalek kudo: 8915a61 | jonathan++ | t/spectest.data:
Turn S02-builtin_data_types/declare.t back on.
21:27
21:28 Su-Shee left 21:31 nihiliad left
pugssvn r30077 | jnthn++ | A couple of todos and skips; we can now run most of what alpha did of unspace.t. 21:32
m6locks hmm make spectest returned FAIL although all the tests were ok 21:33
dalek kudo: a2ceb6f | jonathan++ | t/spectest.data:
Turn unspace.t back on.
jnthn std: sub baz ($.x) { ... } 21:37
p6eval std 30076: OUTPUT«ok 00:01 108m␤»
jnthn std: sub quuux ($?VERSION) { ... } 21:39
p6eval std 30076: OUTPUT«Potential difficulties:␤ Illegal to use ? twigil in signature at /tmp/PUhtqGp33c line 1:␤------> sub quuux (⏏$?VERSION) { ... }␤ok 00:01 106m␤»
pugssvn r30078 | jnthn++ | [t/spec] Toss two wrong tests. 21:45
22:00 vamped joined, rindolf left
lue rakudo: my @a=1,2,3; say "@a" # just checking 22:25
p6eval rakudo a2ceb6: OUTPUT«@a␤»
diakopter rakudo: my @a=1,2,3; say "{@a}" 22:28
p6eval rakudo a2ceb6: OUTPUT«1 2 3␤»
22:40 alanm joined 22:41 alanm left
lue where is string interpolation defined? (guessing String.pir/.pm) 22:42
mberends lue: perlcabal.org/syn/S02.html 22:46
lue oh noes I pressed that for firefox! What have I done! It's gonna die! :( 22:48
jnthn mberends: o/ 22:51
mberends \o jnthn, are you down to only 4 kinds of alcohol? 22:52
jnthn YARLY!
mberends :-( sorry to hear that
jnthn Well, I depleted my Ukrainian vodka shortly before leaving Slovakia.
That obviously means I have to go to the Perl workshop there later this year. :-) 22:53
lue does S02 say it's okay for @ and % vars to interpolate in strings like $ can?
rakudo: my $a=3; say "hey $a" 22:54
p6eval rakudo a2ceb6: OUTPUT«hey 3␤»
jnthn lue: iirc, "@foo" will not interpolate but "@foo[]" or "@foo[1,2]" for example would.
Or in general, only if there's a postcircumfix.
dalek kudo: 17766db | jonathan++ | src/Perl6/Actions.pm:
Add a missing twigil in signature check from STD.
kudo: 1d5c09f | jonathan++ | t/spectest.data:
Turn S06-signature/errors.t back on.
kudo: 7a56f35 | jonathan++ | src/ (3 files):
Get $x.$y() idirect method calls working again.
kudo: e704ef9 | jonathan++ | src/Perl6/Actions.pm:
The illegal twigil detection was a little...over-eager...to complain. Fixed in this patch.
mberends lue: inside "{ ... }"
jnthn Or that. :-) 22:55
lue so this should fail: 22:56
rakudo: my @a=1,2,3; say "@a"
p6eval rakudo a2ceb6: OUTPUT«@a␤»
jnthn needs to focus on putting some more S12 bits back over the next day or two.
lue and this should win:
rakudo: my @a=1,2,3; say "@a[1]"
p6eval rakudo a2ceb6: OUTPUT«@a[1]␤»
jnthn lue: I think Rakudo is correct on the above one.
lue: And wrong on that second one.
(that is, we win at failing, but fail at winning) 22:57
mberends I think Rakudo is correct in both cases
jnthn orly?
mberends *I think*
lue and what if a nonexistant variable is encountered?
jnthn std: say "@a"
p6eval std 30078: OUTPUT«ok 00:01 108m␤»
jnthn std: say "@a[]"
lue rakudo: say "$b"
jnthn std: say "@a[1]"
p6eval std 30078: OUTPUT«ok 00:01 106m␤»
rakudo a2ceb6: OUTPUT«Symbol '$b' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
std 30078: OUTPUT«ok 00:01 106m␤»
jnthn std: say "{@a[1]}" 22:58
p6eval std 30078: OUTPUT«ok 00:01 106m␤»
jnthn ...oh.
std: say @a[1]
p6eval std 30078: OUTPUT«ok 00:01 105m␤»
jnthn Um.
That wasn't quite what I was expecting...
std: say $a
p6eval std 30078: OUTPUT«ok 00:01 105m␤»
jnthn was sure STD complained about undeclared lexicals. 22:59
mberends std: say "hello @a[";
p6eval std 30078: OUTPUT«===SORRY!===␤(Possible runaway string from line 1)␤Bogus statement at /tmp/TXaQfxALPJ line 1 (EOF):␤------> say "hello @a[";⏏<EOL>␤ expecting escape␤FAILED 00:01 107m␤»
mberends std: say "hello @a[0]";
p6eval std 30078: OUTPUT«ok 00:01 106m␤»
lue If the scalar doesn't exist, shouldn't NOT error out? What If you wrote a string "@result[1] is $x (add four for £)"
and $x doesn't exist?
jnthn lue: Yes, it should error out, imo.
rakudo: say "lol $x does not exist"
p6eval rakudo a2ceb6: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
jnthn And it does.
lue rakudo: say "lol \$x does exist" 23:00
p6eval rakudo a2ceb6: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
lue darn :/
jnthn From STD: 23:02
Bare scalar variables always interpolate in double-quotish
strings. Bare array, hash, and subroutine variables may I<never> be
interpolated. However, any scalar, array, hash or subroutine variable may
start an interpolation if it is followed by a sequence of one or more bracketed
dereferencers
lue: That above issue is a rakudobug.
er, *From S02
If it's bare, interpolation don't dare...
But an array subscript makes it interpolate
It's listed near the top of S02 as one of the very few places that the Perl 6 grammar does lookahead beyond one token. 23:03
lue so @a[3] should interpolate? If that's the case, just tell me where interpolation is defined (in the code) and I'll look at it (no promises on fixing it :D )
jnthn It should
I think that bit is defined in nqp-rx
mberends rakudo: my @a=1,2; say "total = { @a[0]+@a[1] }" 23:04
p6eval rakudo a2ceb6: OUTPUT«total = 3␤»
lue and let me guess nqp-rx is part of svn? 23:05
mberends part of Parrot, which you can get via svn
lue s/svn/pugs/
mberends nope
jnthn lue: github.com/perl6/nqp-rx/blob/master...rammar.pir 23:06
See quote_EXPR
lue and now I has to get parrot too!? :/
mberends lue: if you built Rakudo using --gen-parrot, it happened automagically 23:07
jnthn lue: You already have Parrot if you have Rakudo. What you do need is to check out the nqp-rx source from github
Unless there's a way to do it solely in Rakudo. 23:08
I don't understand that area of the codebase very well.
lue Well then. Here we go, as a plumber once said. :) 23:09
rakudo: my @a=1,2,3; my @a[3]=5; say @a 23:12
p6eval rakudo a2ceb6: OUTPUT«Redeclaration of symbol @a at line 11, near "=5; say @a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:12 M_o_C left
lue rakudo: my @a=1,2,3; @a[3]=5; say @a 23:12
p6eval rakudo a2ceb6: OUTPUT«1235␤»
lue rakudo: my @a=1,2,3; @a[3] := @a[1]; say @a
p6eval rakudo a2ceb6: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 16859 (src/builtins/Junction.pir:373)␤»
lue alpha: my @a=1,2,3; @a[3] := @a[1]; say @a 23:13
p6eval alpha 30e0ed: OUTPUT«rtype not set␤in Main (file <unknown>, line <unknown>)␤»
23:14 PacoLinux left
lue & 23:15
23:21 mssm left 23:30 payload left 23:31 alester joined 23:32 payload joined
vamped building on that ... 23:33
rakudo: my @a=0,1,2; @a[5]=5; @a.perl.say
p6eval rakudo e704ef: OUTPUT«[0, 1, 2, Proxy.new(), Proxy.new(), 5]␤»
23:34 Lorn left
vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; say @a.perl 23:34
p6eval rakudo e704ef: OUTPUT«[0, 1, 2, Seq.new(), Proxy.new(), 5]␤»
vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; say |@a
p6eval rakudo e704ef: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
23:34 mssm joined 23:35 Lorn joined, lisppaste3 left
vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; @a[4]=4; say @a' 23:37
p6eval rakudo e704ef: OUTPUT«Confused at line 11, near "say @a'"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; @a[4]=4; say @a 23:38
p6eval rakudo e704ef: OUTPUT«0123 445␤»
vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; @a[4]=4; say @a.perl
p6eval rakudo e704ef: OUTPUT«[0, 1, 2, Seq.new(), 4, 5]␤»
23:43 snarkyboojum joined
sorear Is there a nice list anywhere of all the P6 setting bits that are missing in rakudo? 23:51
jnthn Don't think there's even a nasty list of that, let alone a nice one. 23:53
The spectests we don't yet attempt give some hints
But there's stuff in the spec that's neither implemented nor has tests.